Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ систСму счислСния Β» DailyTechInfo

НСйронныС сСти, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строятся соврСмСнныС систСмы Π³Π»ΡƒΠ±ΠΈΠ½Π½ΠΎΠ³ΠΎ машинного самообучСния ΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ стандартный 32-разрядный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой IEEE FP32. Π­Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов памяти ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссоров, ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство энСргии. Π’ систСмах ΠΆΠ΅ с высокими трСбованиями ΠΊ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ 8-разрядныС Ρ†Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ INT8. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСм искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, принСся Π² ΠΆΠ΅Ρ€Ρ‚Π²Ρƒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанной с компромиссом ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ систСм искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… чисСл, спСциалисты Google Brain Π² своС врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для Π³Π»ΡƒΠ±ΠΈΠ½Π½ΠΎΠ³ΠΎ самообучСния ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ потСрями точности.

Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, BF16 (BFloat16, Brain Float 16) ΡƒΠΆΠ΅ нашСл ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ускоритСлях, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… компаниями Google, Intel, ARM ΠΈ Π΄Ρ€.

Π’ Ρ‡Π΅ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ FP32 ΠΈ BF16? Число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ FP32 состоит ΠΈΠ· 1 Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°ΠΊ числа (+ ΠΈΠ»ΠΈ -), послС Π½Π΅Π³ΠΎ слСдуСт 8-битная экспонСнта (ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ числа), послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ 23-битная мантисса (само число). И Π² суммС Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½Ρ‹Π΅ 32 разряда.

Для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° BF16 спСциалисты Google Brain ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΡƒΡΠ΅Ρ‡ΡŒ мантиссу Π΄ΠΎ 7 Π±ΠΈΡ‚. Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ Π±Ρ‹Π» сдСлан Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ случайно, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ экспСримСнты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ качСство Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ экспонСнты, Π½Π΅ΠΆΠ΅Π»ΠΈ мантиссы. И Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ BF16 являСтся самым ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ компромиссом.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число Π² BF16 состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, 8-Π±ΠΈΡ‚Π½ΠΎΠΉ экспонСнты ΠΈ 7-Π±ΠΈΡ‚Π½ΠΎΠΉ мантиссы, Ρ‡Ρ‚ΠΎ Π² суммС составляСт ΠΏΠΎΠ»Π½Ρ‹Π΅ 16 Π±ΠΈΡ‚. Для провСдСния Ρ‚Π΅Π½Π·ΠΎΡ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с числами Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BF16 Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшиС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ мощности, ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ памяти ΠΈ энСргСтичСскиС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. Напомним нашим читатСлям, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π½Π·ΠΎΡ€ β€” это трСхмСрная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° чисСл, Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ² β€” это ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ опСрация, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоят всС вычислСния Π² систСмах искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

МоТно Π·Π°Π΄Π°Ρ‚ΡŒ вопрос, Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² систСмах искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° стандартный усСчСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой IEEE FP16? Π’Π΅Π΄ΡŒ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ достаточно ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… прилоТСниях, связанных с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΈΠ³Ρ€Π°ΠΌΠΈ. Число Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ FP16 выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚, 5-битная экспонСнта ΠΈ 10-битная мантисса, Ρ‡Ρ‚ΠΎ Π² суммС составляСт ΠΏΠΎΠ»Π½Ρ‹Π΅ 16 Π±ΠΈΡ‚.

Π‘Ρ€Π°Π·Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ усСчСнная экспонСнта опрСдСляСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньший динамичСский Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл, Ρ‡Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° BF16, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π°Π²Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ FP32. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, для прСобразования числа FP32 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ FP16 трСбуСтся достаточно слоТная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ опСрация ΠΏΠΎ ΡƒΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ разрядности мантиссы, нСобходимая для прСобразования FP32 Π² BF16. И, Π²-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, усСчСнная мантисса Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° BF16 позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΠΈΠ½Ρƒ Π±Π»ΠΎΠΊΠΎΠ² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ мСньшС, Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° FP16.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого сами Π±Π»ΠΎΠΊΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° BF16 Π² восСмь Ρ€Π°Π· мСньшС ΠΏΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ Π½Π° кристаллС Ρ‡ΠΈΠΏΠ° ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ, Ρ‡Π΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ для FP32, ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС, Ρ‡Π΅ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ для FP16.

И Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ BF16 являСтся Π½Π΅ СдинствСнным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ для систСм искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°. Π’ 2017 Π³ΠΎΠ΄Ρƒ компания Nervana ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Flexpoint, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС прСимущСства Ρ†Π΅Π»Ρ‹Ρ… чисСл с числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. По сути, этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ прСдставляСт собой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ чисСл с фиксированной запятой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число прСдставляСт собой Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ числа Π΄ΠΎ запятой, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ числа (послС запятой). БпСциалисты ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nervana Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ числа с фиксированной запятой Π΅Ρ‰Π΅ ΠΈ экспонСнтой, ΠΎΠ΄Π½Π°ΠΊΠΎ, для ускорСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ экспонСнта Π±Ρ‹Π»Π° ΠΎΠ΄Π½Π° для всСх чисСл, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит Ρ‚Π΅Π½Π·ΠΎΡ€. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π½Π·ΠΎΡ€ΠΎΠ² ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° основС ΠΎΡ‡Π΅Π½ΡŒ быстрых цСлочислСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Но Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, связанная с ΡƒΠ·ΠΊΠΈΠΌ динамичСским Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ чисСл, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚ΡƒΠΆΠ΅ экспонСнту. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сдСлала Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Β«Π²Π·Π»Π΅Ρ‚Β» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Flexpoint ΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ускоритСлях ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nervana ΡƒΠΆΠ΅ использовался Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ BF16.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова:
Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ, Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, НСйронная, Π‘Π΅Ρ‚ΡŒ, Π€ΠΎΡ€ΠΌΠ°Ρ‚, Число, Π Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒ, Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ

ΠŸΠ΅Ρ€Π²ΠΎΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ новости ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅:

  • НайдСно Π½ΠΎΠ²ΠΎΠ΅ простоС число с Ρ€Π΅ΠΊΠΎΡ€Π΄Π½Ρ‹ΠΌ количСством Ρ†ΠΈΡ„Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ составляСт 22.3 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π·Π½Π°ΠΊΠΎΠ²
  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ самоС большоС, 50-Π΅ ΠΏΠΎ счСту, число ΠΈΠ· ряда простых чисСл ΠœΠ΅Ρ€ΡΠ΅Π½Π½Π°
  • НайдСно ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… простых чисСл, Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ 9 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π·Π½Π°ΠΊΠΎΠ²
  • НайдСно самоС большоС Π½Π° сСгодняшний дСнь простоС число, Π΄Π»ΠΈΠ½ΠΎΠΉ 17 425 170 Ρ†ΠΈΡ„Ρ€
  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ NEC StarPixel обСспСчиваСт качСство JPEG2000 ΠΏΡ€ΠΈ скорости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ JPEG
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ прайс Ρ€ΠΈΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… услуг ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ «ИМИ».

    практичСскоС руководство ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ LLaMA с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RLHF / Π₯Π°Π±Ρ€

    ChatGPT, GPT-4 ΠΈ Claude β€” это ΠΌΠΎΡ‰Π½Ρ‹Π΅ языковыС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся Β«ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² людСй» (Reinforcement Learning from Human Feedback, RLHF). Благодаря этому Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ наши оТидания Π² ΠΏΠ»Π°Π½Π΅ ΠΈΡ… повСдСния, ΠΎΠ½ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ собираСмся ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

    Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ рассмотрим процСсс обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ LLaMa c использованиСм RLHF. МодСль Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° вопросы с сайта Stack Exchange. Π’ Ρ…ΠΎΠ΄Π΅ обучСния ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

    • Π”ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ (Supervised Fine-tuning, SFT).

    • ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вознаграТдСния / ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ (Reward / preference modeling, RM).

    • ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² людСй (Reinforcement Learning from Human Feedback, RLHF).

    Π”ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² людСй (источник: Training language models to follow instructions with human feedback)

    ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡ эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΌΡ‹ выпустили модСль StackLLaMA. Π­Ρ‚Ρƒ модСль ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π·Π΄Π΅ΡΡŒ (Π²ΠΎΡ‚ β€” исходная модСль LLaMA). Π’Π΅ΡΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Hugging Face TRL. ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с модСлью, ΠΏΠΎΠ½ΡΡ‚ΡŒ β€” Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° способна, ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡŒ.

    МодСль LLaMA

    ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ RLHF Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ модСль ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ. Π’Π΅Π΄ΡŒ Π½Π° шагС примСнСния RLHF Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ лишь Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΅Ρ‘ подстройкой ΠΏΠΎΠ΄ Ρ‚ΠΎ, ΠΊΠ°ΠΊ с Π½Π΅ΠΉ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΏΠΎΠ΄ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ прСдставлСнными эффСктивными модСлями LLaMA. Π­Ρ‚ΠΎ β€” самыС свСТиС языковыС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Meta AI. Π˜Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ 7 Π΄ΠΎ 65 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΡ€ΠΈ ΠΈΡ… ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π² количСствС ΠΎΡ‚ 1 Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½Π° Π΄ΠΎ 1,4 Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ². Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ вСсьма Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠœΡ‹, Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π½Π° всСх этапах нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, примСняСм модСль с 7 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π—Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ доступ ΠΊ исходному Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡŒ.

    Набор Π΄Π°Π½Π½Ρ‹Ρ… Stack Exchange

    Π‘ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎΡ‚ людСй β€” это слоТно ΠΈ Π΄ΠΎΡ€ΠΎΠ³ΠΎ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ Π±Π°Π·Ρƒ для нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΡ€ΠΈ этом ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΌΡ‹ воспользовались Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… StackExchange. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Π½ΠΈΡ… с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ StackExchange (Π² Ρ‚ΠΎΠΌ числС β€” вопросы со StackOverflow Π² части ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π΅ΠΌ). Он каТСтся Π½Π°ΠΌ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² свСдСниях ΠΎΠ± ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ количСствС Β«Π»Π°ΠΉΠΊΠΎΠ²Β» ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ принятыС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.

    ΠœΡ‹, назначая ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌ Π±Π°Π»Π»Ρ‹, слСдовали ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ, описанному Π² ΡΡ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅:

    Π±Π°Π»Π»Ρ‹ = log2 (1 + Π»Π°ΠΉΠΊΠΈ) ΠΎΠΊΡ€ΡƒΠ³Π»Ρ‘Π½Π½ΠΎΠ΅ Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, плюс 1 Ссли Π°Π²Ρ‚ΠΎΡ€ вопроса принял ΠΎΡ‚Π²Π΅Ρ‚ (ΠΌΡ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ βˆ’1 Π±Π°Π»Π»ΠΎΠ² Π² Ρ‚ΠΎΠΌ случаС, Ссли количСство Π»Π°ΠΉΠΊΠΎΠ² β€” это ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число).

    ПозТС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ для ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π°Π³Ρ€Π°Π΄ всСгда Π½ΡƒΠΆΠ½Ρ‹ Π΄Π²Π° ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ. К Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ вопросам ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ дСсятки ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ мноТСству Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². ΠœΡ‹ обращаСмся, самоС большСС, ΠΊ дСсяти ΠΏΠ°Ρ€Π°ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° ΠΎΠ΄ΠΈΠ½ вопрос для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ количСство Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, связанных с ΠΎΠ΄Π½ΠΈΠΌ вопросом. И Π½Π°ΠΊΠΎΠ½Π΅Ρ† β€” ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π² порядок Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста, конвСртируя Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° HTML Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Markdown, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠžΠ±ΡΡƒΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΡƒΡ‚ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ IPython, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π·Π΄Π΅ΡΡŒ.

    Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ стратСгии обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

    Π”Π°ΠΆΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ самой малСнькой ΠΌΠΎΠ΄Π΅Π»ΠΈ сСмСйства LLaMA Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ° памяти. ΠŸΡ€ΠΈΠΊΠΈΠ½Π΅ΠΌ ΠΏΠΎ-быстрому: ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… bf16 ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 2 Π±Π°ΠΉΡ‚Π° (для fp32 это β€” 4 Π±Π°ΠΉΡ‚Π°) Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ 8 Π±Π°ΠΉΡ‚Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ Adam (подробности смотритС Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ трансформСров). ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ с 7 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² понадобится (2+8)*7B=70GB Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. На самом ΠΆΠ΅ Π΄Π΅Π»Π΅ Π΅ΠΉ, вСроятно, понадобится Π΅Ρ‰Ρ‘ больший ΠΎΠ±ΡŠΡ‘ΠΌ памяти ΠΏΡ€ΠΈ расчётС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ внимания.

    ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ получится, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ…ΠΈΡ‰Ρ€Π΅Π½ΠΈΠΉ, ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ модСль Π΄Π°ΠΆΠ΅ Π½Π° Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Nvidia A100 80GB. МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠΉΡ‚ΠΈ Π½Π° ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ хитрости, Π²Ρ€ΠΎΠ΄Π΅ использования Π±ΠΎΠ»Π΅Π΅ эффСктивного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π°, ΠΈΠ»ΠΈ обучСния с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ΅Ρ‚ΠΈΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΠ»Π°Π½Π΅ памяти. Но, ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, памяти, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚.

    Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ β€” это Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с эффСктивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Parameter-Efficient Fine-Tuning, PEFT). Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ peft, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΈΠ·ΠΊΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² (Low-Rank Adaptation, LoRA) Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π² 8-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

    LoRA для Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… слоёв: послС Β«Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ…Β» слоёв (Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ синим) Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΌ). Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ скрытыС состояния ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ со скрытыми состояниями Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… слоёв.

    Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² 8-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ вСсьма Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ сниТаСт ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для вСса Π½ΡƒΠΆΠ΅Π½ лишь ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΌΠΎΠ΄Π΅Π»ΠΈ LlaMa с 7 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², понадобится 7 Π“Π± памяти). ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² Ρ…ΠΎΠ΄Π΅ обучСния исходныС вСса, ΠΏΡ€ΠΈ использовании LoRa ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… слоёв (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ β€” это слои Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ внимания) Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ малСнькиС слои Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ оказываСтся, Ρ‡Ρ‚ΠΎ количСство ΠΎΠ±ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ сильно сниТаСтся.

    ΠŸΡ€ΠΈ использовании Ρ‚Π°ΠΊΠΎΠ³ΠΎ сцСнария ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ практичСскоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1,2-1,4 Π“Π± памяти Π½Π° ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² этот ΠΎΠ±ΡŠΡ‘ΠΌ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΎΡΡŒ Π±Ρ‹ всё, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для дообучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ. Как сказано Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡΡΡ‹Π»Π°Π»ΠΈΡΡŒ Π²Ρ‹ΡˆΠ΅, это позволяСт Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π΄ΠΎ 50-60 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π° Nvidia A100 80GB).

    Π­Ρ‚ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… устройствах ΠΈ Π² срСдС Google Colab. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², достойных внимания, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ facebook/opt-6.7b

     (13 Π“Π± с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… float16) ΠΈ openai/whisper-large Π² Google Colab (15 Π“Π± памяти GPU). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ подробности ΠΎΠ± использовании Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ peft β€” ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊ ΡΡ‚ΠΎΠΌΡƒ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ, посвящённому ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ с 20 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Β«ΠΆΠ΅Π»Π΅Π·Π΅Β».

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ GPU ΠΎΡ‡Π΅Π½ΡŒ большиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½ΠΎ ΠΈΡ… ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вСсьма ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ процСссом. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ сцСнарии развития событий самой простой стратСгиСй Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ…. А ΠΈΠΌΠ΅Π½Π½ΠΎ β€” Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… GPU ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΊΠΎΠΏΠΈΠΈ срСды обучСния, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΌ устройствам Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ позволяСт Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ прямых ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ обучСния Π·Π° счёт количСства примСняСмых GPU.

    РаспараллСливаниС обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ

    Π’ΡƒΡ‚ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π»ΠΈΠ±ΠΎ transformers.Trainer, Π»ΠΈΠ±ΠΎ accelerate. ОбС эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ распараллСливаниС Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· нСобходимости измСнСния исходного ΠΊΠΎΠ΄Π°. ДостигаСтся это ΠΏΡƒΡ‚Ρ‘ΠΌ простой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ скриптов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ torchrun ΠΈΠ»ΠΈ accelerate launch. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π³Π΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ эти Π΄Π²Π° инструмСнта, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ скрипт Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π½Π° 8 GPU, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

    accelerate launch --multi_gpu --num_machines 1 --num_processes 8 my_accelerate_script.py
    torchrun --nnodes 1 --nproc_per_node 8 my_torch_script.py

    Π”ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройкой ΠΌΠΎΠ΄Π΅Π»ΠΈ, примСняя ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли модСль ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ нас сфСрС. Π’ нашСм случаС Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π»Π° Π½Π° вопросы. А Π²ΠΎΡ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° слСдовала Π±Ρ‹ Π½Π΅ΠΊΠΈΠΌ инструкциям. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с ΠΌΠΎΠ΄Π΅Π»ΠΈ, которая ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ инструкции. Нам Π»Π΅Π³Ρ‡Π΅ всСго Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ: ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ языковой ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ β€” ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ языка, Π½Π° тСкстах ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ нас ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΈΠ»ΠΈ Π½Π° тСкстах ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡. Набор Π΄Π°Π½Π½Ρ‹Ρ… StackExchange ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ (Π±ΠΎΠ»Π΅Π΅ 10 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² инструкций), поэтому ΠΌΡ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль Π½Π° Π΅Π³ΠΎ подмноТСствС.

    Π’ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ RLHF Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ особСнного. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ всСго лишь ΠΎ Ρ†Π΅Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎΠ³ΠΎ языкового модСлирования Π½Π° Π±Π°Π·Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Для эффСктивного использования Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ. ΠŸΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ тСкст, Π° послС этого ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΠΏΠΎ самому Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡƒ тСксту, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ контСксту ΠΌΠΎΠ΄Π΅Π»ΠΈ. А ΠΌΡ‹ вмСсто этого ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΡƒΠ΅ΠΌ мноТСство тСкстов, помСщая ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Ρ‚ΠΎΠΊΠ΅Π½ EOS, ΠΈ Π²Ρ‹Ρ€Π΅Π·Π°Π΅ΠΌ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ контСкста, Ρ‡Ρ‚ΠΎ позволяСт Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ выравнивания.

    ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° тСкстов

    Благодаря этому ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ оказываСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивным, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаётся Ρ‡Π΅Ρ€Π΅Π· модСль, Ρ‚Π°ΠΊ ΠΆΠ΅ участвуСт Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² выравнивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ°ΡΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. Если Ρƒ вас Π½Π΅Ρ‚ большого ΠΎΠ±ΡŠΡ‘ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ссли вас большС Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ случайноС отсСчСниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΡΡŽΡ‚ контСкст, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ классичСский Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π΄Π°Π½Π½Ρ‹Ρ….

    Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ConstantLengthDataset. Π—Π°Ρ‚Π΅ΠΌ, послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ peft, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Trainer. Π‘Π½Π°Ρ‡Π°Π»Π° модСль Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ с использованиСм Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… int8, готовят Π΅Ρ‘ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, Π° послС этого Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ LoRA.

    # Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ с использованиСм 8-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…
    model = AutoModelForCausalLM.from_pretrained(
            args.model_path,
            load_in_8bit=True,
            device_map={"": Accelerator().local_process_index}
        )
    model = prepare_model_for_int8_training(model)
    # Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² LoRA
    lora_config = LoraConfig(
        r=16,
        lora_alpha=32,
        lora_dropout=0.05,
        bias="none",
        task_type="CAUSAL_LM",
    )
    model = get_peft_model(model, config)

    ΠœΡ‹ ΠΎΠ±ΡƒΡ‡Π°Π΅ΠΌ модСль Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тысяч шагов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†Π΅Π»ΡŒ CAUSAL_LM, ΠΈ сохраняСм модСль. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ снова Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ модСль, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ, ΠΌΡ‹ объСдиняСм вСса Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² с вСсами исходной ΠΌΠΎΠ΄Π΅Π»ΠΈ.

    ЗаявлСниС ΠΎΠ± ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΠ± отвСтствСнности: ΠΈΠ·-Π·Π° особСнностСй Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ LLaMA ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ лишь вСса Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ заявлСниС Π½Π° доступ ΠΊ вСсам Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² ΡΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡƒ, Π° послС этого ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ трансформСров Hugging Face, воспользовавшись этим скриптом. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ для этого, Π΄ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ вСрсии 4.28, понадобится ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты ΠΈΠ· исходного ΠΊΠΎΠ΄Π°.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ модСль, дообучСнная Π² расчётС Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ.

    ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вознаграТдСния ΠΈ чСловСчСскиС прСдпочтСния

    ΠœΡ‹, тСорСтичСски, ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ с использованиСм RLHF Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ аннотациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСлал Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. Но для этого Π½Π°ΠΌ понадобилось Π±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ людям Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ для ΠΎΡ†Π΅Π½ΠΊΠΈ, поступая Ρ‚Π°ΠΊ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ β€” Π΄ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ для обСспСчСния схоТдСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ², ΠΈ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ люди, ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅, Π½Π΅ слишком быстро Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с тСкстами.

    Π’ΡƒΡ‚ ΠΌΡ‹ ΠΏΡ€ΠΈΠ±Π΅Π³Π½Π΅ΠΌ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ хитрости, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹, вмСсто использования для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ нСпосрСдствСнных ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², сдСланных людьми, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Ρ‹ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, сдСланныС людьми Π΄ΠΎ Ρ†ΠΈΠΊΠ»Π° обучСния с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Ρ†Π΅Π»ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ люди ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ тСксты. Для построСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… стратСгий. Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” это ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π² Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π±Π°Π»Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΎΒ» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ…ΠΎΒ»). На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ сСбя ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ для Π΄Π²ΡƒΡ… ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ², ΠΊΠΎΠ³Π΄Π° модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π²Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π°-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° yk,yj для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° x, послС Ρ‡Π΅Π³ΠΎ Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡˆΠ΅ ΠΎΡ†Π΅Π½Ρ‘Π½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.

    Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ:

    Π—Π΄Π΅ΡΡŒ β€” это ΠΎΡ†Π΅Π½ΠΊΠ°, назначСнная модСлью, Π° β€” это ΠΎΠ±Ρ€Π°Π·Π΅Ρ†-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΡ‚Π΄Π°Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅.

    Работая с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… StackExchange, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‘Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΎΡ†Π΅Π½ΠΊΠ΅ этих ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ². ИмСя эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ transformers.Trainer, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² систСму ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

    class RewardTrainer(Trainer):
        def compute_loss(self, model, inputs, return_outputs=False):
            rewards_j = model(input_ids=inputs["input_ids_j"],  attention_mask=inputs["attention_mask_j"])[0]
            rewards_k = model(input_ids=inputs["input_ids_k"], attention_mask=inputs["attention_mask_k"])[0]
            loss = -nn.functional.logsigmoid(rewards_j - rewards_k).mean()
            if return_outputs:
                return loss, {"rewards_j": rewards_j, "rewards_k": rewards_k}
            return loss

    ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ подмноТСство ΠΈΠ· 100000 ΠΏΠ°Ρ€ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π½Π°Π±ΠΎΡ€Π΅ ΠΈΠ· 50000 ΠΏΠ°Ρ€ ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ использовались ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ скромный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π²Π½Ρ‹ΠΉ 4, ΠΌΡ‹ ΠΎΠ±ΡƒΡ‡Π°Π΅ΠΌ модСль LLaMA с использованиСм LoRA-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, созданного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ peft. ΠœΡ‹ примСняСм ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ Adam с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ BF16. Π’ΠΎΡ‚ наша конфигурация LoRA:

    peft_config = LoraConfig(
        task_type=TaskType.SEQ_CLS,
        inference_mode=False,
        r=8,
        lora_alpha=32,
        lora_dropout=0.1,
    )

    Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»ΠΎΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Weights & Biases. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ длилось нСсколько часов, ΠΎΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ срСдствами Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… GPU Nvidia A100 Π½Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ кластСрС Hugging Face. МодСль достигла ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ точности Π² 67%. Π₯отя Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈ выглядит Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ высоким, Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π»ΠΈ, вСсьма слоТна Π΄Π°ΠΆΠ΅ для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

    Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹, послС ΠΈΡ… обучСния, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с Β«Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½ΠΎΠΉΒ» модСлью ΠΈ сохранСны для дальнСйшСго использования ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π·Π°Π΄Π°Ρ‡.

    ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² людСй

    ИмСя Π² своём распоряТСнии Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль ΠΈ модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ запуску Ρ†ΠΈΠΊΠ»Π° обучСния с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ. Π•Π³ΠΎ, Ссли Π½Π΅ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ шага:

    1. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½Π° основС ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠ².

    2. ΠžΡ†Π΅Π½ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ.

    3. Запуск шага ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ стратСгии обучСния с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ с использованиСм ΠΎΡ†Π΅Π½ΠΎΠΊ.

    ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° основС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² людСй

    ΠŸΡ€ΠΎΠΌΠΏΡ‚Ρ‹ Query ΠΈ Response ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΡƒΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ:

    Question: <Query>
    Answer: <Response>

    Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ шаблон оформлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° этапах SFT, RM ΠΈ RLHF.

    Когда языковыС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‚, примСняя ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ, часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ модСль ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² своих интСрСсах. А ΠΈΠΌΠ΅Π½Π½ΠΎ, модСль Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ Π΅Ρ€ΡƒΠ½Π΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡˆΡ‚Ρ€Π°Ρ„ΠΎΠΌ ΠΏΡ€ΠΈ расчётС вознаграТдСния. А ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ ΡΡ‚Π°Π»ΠΎΠ½Π½ΡƒΡŽ модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π½Π΅ ΠΎΠ±ΡƒΡ‡Π°Π΅ΠΌ, ΠΈ сравниваСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сгСнСрировала новая модСль, с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π΄Π°Π»Π° эталонная модСль, вычисляя расхоТдСниС ΠšΡƒΠ»ΡŒΠ±Π°ΠΊΠ°-Π›Π΅ΠΉΠ±Π»Π΅Ρ€Π° (Kullback–Leibler divergence, KL-divergence, KL):

    Π—Π΄Π΅ΡΡŒ β€” это Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π° β€” это расхоТдСниС ΠšΡƒΠ»ΡŒΠ±Π°ΠΊΠ°-Π›Π΅ΠΉΠ±Π»Π΅Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ тСкущая стратСгия ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ эталонная модСль.

    ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌΡΡ β€” ΠΌΡ‹ примСняСм peft Ρ€Π°Π΄ΠΈ эффСктивного использования памяти ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства Π² контСкстС RLHF. Π—Π΄Π΅ΡΡŒ эталонная модСль ΠΈ модСль, Π³Π΄Π΅ рСализуСтся тСкущая стратСгия, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ основаниС β€” SFT-модСль, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π² 8-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ Β«Π·Π°ΠΌΠΎΡ€Π°ΠΆΠΈΠ²Π°Π΅ΠΌΒ» Π²ΠΎ врСмя обучСния. ΠœΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ PPO, лишь LoRA-вСса ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом вСса Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

    for epoch, batch in tqdm(enumerate(ppo_trainer.dataloader)):
        question_tensors = batch["input_ids"]
            
        # ВзятиС ΠΎΠ±Ρ€Π°Π·Ρ†Π° ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²
        response_tensors = ppo_trainer.generate(
            question_tensors,
            return_prompt=False,
            length_sampler=output_length_sampler,
            **generation_kwargs,
        )
        batch["response"] = tokenizer.batch_decode(response_tensors, skip_special_tokens=True)
        # ВычислСниС показатСля Ρ‚ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
        texts = [q + r for q, r in zip(batch["query"], batch["response"])]
        pipe_outputs = sentiment_pipe(texts, **sent_kwargs)
        rewards = [torch. tensor(output[0]["score"] - script_args.reward_baseline) for output in pipe_outputs]
        # Запуск шага PPO 
        stats = ppo_trainer.step(question_tensors, response_tensors, rewards)
        # Log stats to WandB
        ppo_trainer.log_stats(stats, batch, rewards)

    ΠœΡ‹ ΠΎΠ±ΡƒΡ‡Π°Π»ΠΈ модСль Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 20 часов Π½Π° 3Γ—8 GPU Nvidia A100 80GB, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кластСр Hugging Face. Но достойный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” послС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 20 часов Π½Π° 8 GPU Nvidia A100). ВсС статистичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ…ΠΎΠ΄Π΅ обучСния ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Weights & Biases.

    Π’ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС обучСния. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ пСрСстаёт расти послС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1000 шагов.

    На Ρ‡Ρ‚ΠΎ способна модСль послС обучСния? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ!

    МодСль ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° вопрос

    Π₯отя ΠΏΠΎΠΊΠ° Π½Π°ΠΌ Π½Π΅ слСдуСт Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ совСту ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² вопросах, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π»Π°ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ выглядит Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ, ΠΈ Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ Π΄Π°ΠΆΠ΅ Π΅ΡΡ‚ΡŒ ссылка Π½Π° поиск Π² Google. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слоТностях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² Ρ…ΠΎΠ΄Π΅ обучСния.

    БлоТности, Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ

    ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… языковых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с использованиСм обучСния с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ β€” это Π½Π΅ всСгда просто. МодСль, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сСгодня рассказывали, прСдставляСт собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ мноТСства экспСримСнтов, Π½Π΅ΡƒΠ΄Π°Ρ‡ ΠΈ очисток Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². И Π΄Π°ΠΆΠ΅ послС всСго, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, эта модСль Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π°. Π’ΡƒΡ‚ ΠΌΡ‹ подСлимся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ наблюдСниями ΠΈ рассказами ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ, работая Π½Π°Π΄ этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

    ΠŸΡ€Π°Π²Π΄Π° Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅ΠΌ большС Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅ β€” Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ?

    Волько посмотритС Π½Π° это Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅! Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ просто Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΌ.

    Если Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΈΠΌ занимаСтся, стрСмится Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ΅Π³ΠΎ вознаграТдСния. ΠœΡ‹, примСняя RLHF, задСйствуСм модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠΌ. Π­Ρ‚ΠΈΠΌ, Π² своих интСрСсах, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ PPO. ΠŸΡ€ΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ это ΠΌΠΎΠΆΠ΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠ³ΠΎ увСличСния вознаграТдСния. Но ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ тСксты, сгСнСрированныС модСлью, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, эти тСксты, Π² основном, содСрТали ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹ строки ```. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ модСль Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ выяснила, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Stack Exchange, содСрТащиС Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ, Ρ‡Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄Π° Π½Π΅Ρ‚. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΡ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ, ΠΈ, Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ расхоТдСниС ΠšΡƒΠ»ΡŒΠ±Π°ΠΊΠ°-Π›Π΅ΠΉΠ±Π»Π΅Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Β«Π²Ρ‹Ρ…ΠΎΠ΄ΠΊΠ°ΠΌΒ» ΠΌΠΎΠ΄Π΅Π»ΠΈ.

    ΠŸΡ€Π°Π²Π΄Π° Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ расхоТдСниС ΠšΡƒΠ»ΡŒΠ±Π°ΠΊΠ°-Π›Π΅ΠΉΠ±Π»Π΅Ρ€Π° β€” это всСгда ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

    Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ KL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π»ΠΈΠΆΠ΅ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ Ρ†Π΅Π»ΠΎΠΌ, этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ измСряСт расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя распрСдСлСниями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ всСгда выраТаСтся ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом. Но Π² trl ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΡ†Π΅Π½ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого показатСля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, ΠΊΠ°ΠΊ оТидаСтся, эквивалСнтно Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

    ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Ρ‚ΠΎΠΊΠ΅Π½ взят ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° Π±ΠΎΠ»Π΅Π΅ низкая Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Ρƒ SFT-ΠΌΠΎΠ΄Π΅Π»ΠΈ, это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΡˆΡ‚Ρ€Π°Ρ„Ρƒ KL, Π½ΠΎ, Π² срСднСм, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΈΠ½Π°Ρ‡Π΅ нСльзя Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ. ΠŸΡ€ΠΈ этом Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стратСгии гСнСрирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π°Π²Π»ΡΡ‚ΡŒΡΡ. НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΡŽ, Π° ΠΏΡ€ΠΈ установкС минимальной Π΄Π»ΠΈΠ½Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ EOS ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‚ΡΡ. МодСль ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ высокиС ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΈΠ΅ вСроятности Ρ‚Π°ΠΊΠΈΠΌ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ значСниям KL. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ PPO осущСствляСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ систСмы с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ вознаграТдСния, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΠ½ΡΡ‚ΡŒΡΡ Π·Π° этими ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΡˆΡ‚Ρ€Π°Ρ„Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

    ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ расхоТдСния ΠšΡƒΠ»ΡŒΠ±Π°ΠΊΠ°-Π›Π΅ΠΉΠ±Π»Π΅Ρ€Π°

    ΠŸΡ€ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ всСгда сначала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ получСния ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠ², Π° ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ, Ссли Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ гСнСрирования Π΄Π°Π½Π½Ρ‹Ρ….

    Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

    Π£ нашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ всё Π΅Ρ‰Ρ‘ имССтся мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. НапримСр, ΠΈΠ½ΠΎΠ³Π΄Π° функция ΠΏΠΎΡ‚Π΅Ρ€ΡŒ дСмонстрируСт ΠΏΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ вСсти ΠΊ дальнСйшСй Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

    Пики Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ

    По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСния Π² trl, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с сообщСством Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

    Π˜Ρ‚ΠΎΠ³ΠΈ

    Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ рассмотрСли ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ RLHF. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с аннотациями, сдСланными людьми, Π·Π°Ρ‚Π΅ΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль ΠΊ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±ΡƒΡ‡ΠΈΠ»ΠΈ модСль вознаграТдСния, ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† β€” ΠΎΠ±ΡƒΡ‡ΠΈΠ»ΠΈ модСль, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ обучСния с ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ.

    Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ peft Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌ GPU! Если ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· измСнСния ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Ρ‘ΠΌ использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… GPU.

    Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Ρ‚ΠΎ это β€” лишь ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг! ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ модСль ΠΎΠ±ΡƒΡ‡Π΅Π½Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ модСлями для понимания Ρ‚ΠΎΠ³ΠΎ, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠ½Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Ρƒ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ, оцСнивая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ гСнСрирования Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π§Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΌΡ‹ занимались, создавая Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ.

    ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ создана систСма оцСнивания ΠΌΠΎΠ΄Π΅Π»ΠΈ, начинаСтся самоС интСрСсноС: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ со срСдствами для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ β€” даст Π»ΠΈ это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ модСль. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ качСствСнныС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ β€” ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ модСлями Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ дольшС ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ модСль.

    ΠœΡ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ TRL для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС шаги, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RLHF, Π±ΠΎΠ»Π΅Π΅ доступными. Нам ΠΎΡ‡Π΅Π½ΡŒ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исслСдоватСли построят Π½Π° основС Π½Π°ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти Π²ΠΊΠ»Π°Π΄ Π² нашС Π΄Π΅Π»ΠΎ β€” заглянитС Π² Ρ€Π°Π·Π΄Π΅Π» Issues ΡΡ‚ΠΎΠ³ΠΎ GitHub-рСпозитория.

    О, Π° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ Π½Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? πŸ€— πŸ’°

    ΠœΡ‹ Π² wunderfund.io Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ Π²Ρ‹ΡΠΎΠΊΠΎΡ‡Π°ΡΡ‚ΠΎΡ‚Π½ΠΎΠΉ Π°Π»Π³ΠΎΡ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ Ρ 2014 Π³ΠΎΠ΄Π°. Высокочастотная торговля β€” это Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ сорСвнованиС Π»ΡƒΡ‡ΡˆΠΈΡ… программистов ΠΈ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ² всСго ΠΌΠΈΡ€Π°. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Π½Π°ΠΌ, Π²Ρ‹ станСтС Ρ‡Π°ΡΡ‚ΡŒΡŽ этой ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ схватки.

    ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ интСрСсныС ΠΈ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ low latency Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ для ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Ρ… исслСдоватСлСй ΠΈ программистов. Π“ΠΈΠ±ΠΊΠΈΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π±ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚ΠΈΠΈ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ быстро ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΈ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°ΡŽΡ‚ΡΡ Π² Тизнь.

    БСйчас ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ плюсовиков, питонистов, Π΄Π°Ρ‚Π°-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠ»-рисСрчСров.

    ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

    Мозговой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (bfloat16) β€” WikiChip

    Мозговой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π­Ρ‚ΠΎ эквивалСнтно стандартному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности с усСчСнным ΠΏΠΎΠ»Π΅ΠΌ мантиссы. Bfloat16 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² машинного обучСния. Bfloat Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Google ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Intel Π² своих FPGA, Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… процСссорах Nervana ΠΈ ЦП.

    Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

    • 1 ΠžΠ±Π·ΠΎΡ€
    • 2 ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ
    • 3 Аппаратная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°
      • 3.1 ЦП
      • 3.2 NPU
    • 4 МБА
    • 5 Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅
    • 6 Библиография

    ΠžΠ±Π·ΠΎΡ€[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    Bfloat16 слСдуСт Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ стандартный IEEE 754 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности, Π½ΠΎ усСкаСт ΠΏΠΎΠ»Π΅ мантиссы с 23 Π±ΠΈΡ‚ Π΄ΠΎ всСго 7 Π±ΠΈΡ‚. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ² экспонСнты ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΈ 32-Π±ΠΈΡ‚Π½Ρ‹ΠΉ FP с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (~ 1e -38 Π΄ΠΎ ~3e 38 ). Π­Ρ‚ΠΎ обСспСчиваСт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, нСсмотря Π½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, числа всС Π΅Ρ‰Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны. Microsoft Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для 8-Π±ΠΈΡ‚Π½Ρ‹Ρ… чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π½Π° основС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° float16.

    float32 : (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ~1e -38 Π΄ΠΎ ~3e 38 )
    900 51
    float16 : (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ~5,96e -8 Π΄ΠΎ 65 504)
    bfloat16 : (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ~1e -38 Π΄ΠΎ ~3e 38 )

    ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½ΠΎΠΉ мантиссы ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· экспСримСнтов Google, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ мантиссу Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€ΠΎΡˆΠ΅Ρ‡Π½Ρ‹Π΅ значСния Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½ΡƒΠ»ΡŽ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ суммирования Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π²ΠΎ врСмя обучСния. МСньшая мантисса Π΄Π°Π΅Ρ‚ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… прСимущСств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ мощности мноТитСля ΠΈ физичСской ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ крСмния.

    • float32: 24 2 =576 (100%)
    • float16: 11 2 =121 (21%)
    • bfloat16: 8 2 =64 (11%)

    Из ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ количСство Π±ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ (ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹), увСличиваСтся Π² Π΄Π²Π° ΠΈ Π΄Π΅ΡΡΡ‚ΡŒ Ρ€Π°Π·. . Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния эффСктивности Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ стоил Ρ‚ΠΎΠ³ΠΎ для Google ΠΈ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ TPU. На систСмном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ прСимущСства экономии Смкости памяти ΠΈ пропускной способности.

    Π•ΡΡ‚ΡŒ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… прСимущСств с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈ bfloat16, ΠΈ float32 ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ динамичСский Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ошибок для bfloat16 ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для float32. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ bfloat16 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ динамичСский Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, использованиС Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ точности Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с bfloat16 Π±Π΅Π· ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. Для обучСния сходимости Π½Π° стандартном 16-Π±ΠΈΡ‚Π½ΠΎΠΌ числС с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 2 10 , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обучСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ числовой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π­Ρ‚Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ устранСна с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bfloat16, Π³Π΄Π΅ Π½Π΅Ρ‚ нСобходимости ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ динамичСского Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

    Аппаратная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    ЦП[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    • Intel Cooper Lake, Ice Lake (сСрвСр)
    • IBM POWER10
    • Arm Neoverse V1, Neoverse N2

    NPU[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅: Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ процСссоры
    • Arm Project Trillium
    • Centaur Technology CHA (NCORE)
    • Flex Logix InferX
    • Π“ΡƒΠ³Π» ВПУ
    • Π“Π°Π²Π°Π½Π° HL
    • Π˜Π½Ρ‚Π΅Π» ННП
    • Wave Computing DPU
    • ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅: Power ISA v3.1
    • x86-64: AVX512_BF16 (Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DL Boost )
    • AArch64: ARMv8.6-BF16

    Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    • MSFP8-11
    • Flexpoint

    Библиография[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

    • ΠšΠ»ΠΈΡ„Ρ„ Π―Π½Π³, Google AI. (ΠΎΠΊΡ‚ΡΠ±Ρ€ΡŒ 2018 Π³.). Β« ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Google TPU: Π²Ρ‹Π²ΠΎΠ΄Ρ‹, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Β». Основной Π΄ΠΎΠΊΠ»Π°Π΄, Processor Conference 2018.
    • ΠšΡΡ€ΠΈ Клосс, Π²ΠΈΡ†Π΅-ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ Intel ΠΏΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°. (Π°ΠΏΡ€Π΅Π»ΡŒ 2019 Π³.). Β«Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ; Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ крСмния для ИИ». Processor Conference 2019.

    Числовой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ bfloat16 | Cloud TPU

    ИспользованиС чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ точности являСтся распространСнным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя сходимости Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ точности. TPU ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ bfloat16 числовой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° значСниях bfloat16 , Π° накоплСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° IEEE ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ32 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

    bfloat16 β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой для машинного обучСния, состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° Π·Π½Π°ΠΊΠ°, восьми Π±ΠΈΡ‚ΠΎΠ² экспонСнты ΠΈ сСми Π±ΠΈΡ‚ΠΎΠ² мантиссы. На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Ρ‚Ρ€Π΅Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой: float32 : одинарная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ IEEE, float16 : половинная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ IEEE ΠΈ bfloat16 .

    ДинамичСский Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² bfloat16 ΠΈ float32 эквивалСнтСн. Однако Π±ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ16 Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ памяти. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ bfloat16 см. см. ИсслСдованиС BFLOAT16 для обучСния Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ.

    Π’Ρ‹Π±ΠΎΡ€ bfloat16

    Π“Ρ€ΡƒΠΏΠΏΠ° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния Google Π²Ρ‹Π±Ρ€Π°Π»Π° bfloat16 для ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… TPU для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ оборудования ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ сохранСнии способности Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния, всС с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с float32 Π½Π° . ЀизичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ оборудования ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ с ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ мантиссы. Π‘ мСньшим количСством мантиссы Π±ΠΈΡ‚, Ρ‡Π΅ΠΌ FP16 , ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ bfloat16 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²Π΄Π²ΠΎΠ΅ мСньшС ΠΊΡ€Π΅ΠΌΠ½ΠΈΠ΅Π²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ FP16 , ΠΈ ΠΎΠ½ΠΈ Π² восСмь Ρ€Π°Π· мСньшС, Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ float32 .

    НСйронныС сСти Π±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ экспонСнты, Ρ‡Π΅ΠΌ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ мантисса. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ значимости, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈ NaN, bfloat16 ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСпСни, Ρ‡Ρ‚ΠΎ ΠΈ float32 . bfloat16 ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈ отличаСтся ΠΎΡ‚ float32 , ΠΎΠ½ сбрасываСт ΠΈΡ… Π² ноль. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ float16 , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, bfloat16 являСтся Π·Π°ΠΌΠ΅Π½ΠΎΠΉ для float32 ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈ запускС Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

    ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ смСшанной точности

    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ вычислСний Π² Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π° с Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ значСния с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. НСкоторыС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°ΠΆΠ΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π±ΠΎΠ»Π΅Π΅ высокой точности с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ значСниями точности.

    ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… TPU компилятор XLA автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ значСния ΠΌΠ΅ΠΆΠ΄Ρƒ float32 ΠΈ bfloat16 .

    ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ

    ЗначСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΉ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сохранСны Π² 32-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС TPU ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ эти значСния Π² bfloat16 . ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… TPU, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ»ΠΈ тонкая настройка ЦП ΠΈΠ»ΠΈ Π“ΠŸ) Π±Π΅Π· ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Ρ… Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

    ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ bfloat16

    Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ автоматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π² TPU позволяСт Π²Π°ΠΌ Π½Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ числовая Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, дальнСйшиС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ достигнуты ΠΏΡƒΡ‚Π΅ΠΌ явноС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊ bfloat16 . Π•ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для явного ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² bfloat16 :

    1. для обучСния Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ использования Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Ρ‚ΠΈΠΉ.

    2. НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ привязаны ΠΊ полосС пропускания памяти, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚. Π—Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· памяти ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ расчСт. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² bfloat16 Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ объСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ ΠΎΠ±Ρ‰Π΅Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.

    Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ практичСский ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· bfloat16 β€” эталонныС ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… TPU.