dimhold.by
← Артыкулы

Я навучыў мадэль узнагароды на 16 000 галасоў з Reddit. Даўжыню яна любіць больш, чым самі тыя, хто галасаваў

На мінулым тыдні артыкул пра InstructGPT з’явіўся на arXiv. У сябе на сайце OpenAI выклала яго яшчэ ў студзені. Галоўнае сцвярджэнне такое: людзі аддалі перавагу адказам мадэлі на 1,3 млрд параметраў, данавучанай на зваротнай сувязі ад людзей, перад адказамі GPT-3 на 175 млрд. Я прачытаў і зразумеў, што сам кажу “навучана на зваротнай сувязі ад людзей”, а што такое гэтая зваротная сувязь фізічна, сказаць не магу. Нехта нешта націскае і адказы робяцца лепшымі. Вось на такім узроўні магіі я і быў.

Да InstructGPT тая ж група рабіла гэта на пераказах пастоў з Reddit. У 2020 годзе яны выклалі сырыя клікі, таму я іх спампаваў і паспрабаваў паўтарыць механізм на 4 ядрах працэсара.

Што такое клік

Даныя гэта summarize_from_feedback ад OpenAI. Кожны радок гэта пост з Reddit, 2 кароткія пераказы да яго і той, які выбраў чалавек. У часткі радкоў ёсць яшчэ ацэнка ўпэўненасці і нататкі, але прычыны выбару няма. У навучальнай частцы 92 858 такіх параўнанняў, у праверачнай 83 802 на іншых пастах.

Некаторыя пары размячалі некалькі чалавек. У пасце пра дзяўчыну, з якой аўтар пазнаёміўся на адпачынку паўтара года таму і дагэтуль да яе неабыякавы, 11 чалавек параўналі адны і тыя ж 2 пераказы і разышліся 6 на 5. Па ўсіх паўторна размечаных парах у праверачнай частцы 2 разметчыкі згодныя ў 72,5% параўнанняў, у навучальнай у 74,7%. Гэта значыць, “чаго хочуць людзі” гэта галасаванне. Прыкладна ў кожным чацвёртым выпадку другі чалавек галасуе наадварот.

1 пост, 2 пераказы, 11 чалавек Пост: Me [21 M] with my...idk [19 F] Just not sure what to do. Пераказ A 6 галасоў Had a great time with a great girl. Left for vacations 1 1/2 years ago and keep in contact. Still have feelings for her. Relationship just started. Don't know if I should tell her how I feel or move on. Пераказ B 5 галасоў Had an amazing time with this girl before we had to leave for summer vacation 1 1/2 years ago. Still have feelings for her and want to pursue relationship w/ her. Don't know whether to tell her or not.
Зваротная сувязь тут гэта клік па адным з 2 тэкстаў. Па ўсіх паўторна размечаных парах у праверачнай частцы 2 чалавекі згодныя ў 72,5% выпадкаў.

Самая танная мадэль узнагароды

Да ўсякага навучання я запісаў чаканні. Першае было такое: дурное правіла ўжо дае больш за 55%. Правіла такое: выйграе даўжэйшы пераказ. На праверачнай частцы яно мае рацыю ў 58,0% выпадкаў, не лічачы нічыіх. У сярэднім у выбраным пераказе 28,4 слова, у адкінутым 26,6. Стынан з сааўтарамі, якія збіралі гэтыя даныя, у сваім артыкуле даўжыню ўжо ўлічвалі.

Потым лінейная мадэль, лагістычная рэгрэсія з scikit-learn 1.0.2. Кожны пераказ ператвараецца ў мяшок слоў і пар слоў плюс лагарыфм яго даўжыні. Па розніцы паміж 2 пераказамі мадэль вучыцца адгадваць, які выбралі. Гэта мадэль Брэдлі і Тэры 1952 года, тая ж формула, што і ў лагістычным варыянце шахматнага рэйтынгу Эла. Першы прагон выйшаў горшым за адну толькі даўжыню, 56,9%, бо я не падабраў рэгулярызацыю. Пасля падбору на адкладзенай частцы навучальных даных выйшла 58,3% на праверачнай. Адна даўжыня ў той жа мадэлі дае 57,7%. Атрымліваецца, 103 587 прыкмет са слоў дадалі паўпункта. Вагі чытаюцца, але нічога цікавага ў іх няма. “ex”, “relationship”, “boyfriend”, “wedding” з плюсам. Сярод верхніх слоў многія пра стасункі і сэкс. Самы моцны мінус у “edit”. Адна з ранніх мадэляў OpenAI часам дапісвала ў канцы пераказу радок “EDIT:” у духу Reddit. Людзі галасавалі супраць такіх.

Сапраўдная мадэль узнагароды, толькі маленькая

У артыкулах гэта вялікі трансфармер з адным лікам на выхадзе, таму я хацеў узяць GPT-2 small. На гэтай машыне адна навучальная пара займала каля 7 секунд, гэта значыць 16 000 пар занялі б больш за суткі. Я ўзяў MiniLM: 6 слаёў, 22 млн параметраў, энкодар сказаў 2021 года. Ён чытае пост і пераказ разам, зверху 1 лінейны выхад. Функцыя страт тая ж, што ў артыкулах. Гэта мінус лагарыфм сігмоіды ад розніцы ўзнагарод выбранага і адкінутага пераказаў. Навучаў на 16 000 пар за 1 праход. Ацэнкі выніковай мадэлі я асобна пераправерыў на torch 1.11 і transformers 4.17.

Правяраў на 3000 пар з праверачнай часткі. Там яна мае рацыю ў 60,3% выпадкаў. На тых жа парах даўжыня дае 57,5%, лінейная мадэль 58,1%. Пасля 2000 навучальных пар было 57,8%, пасля 8000 59,0%. Рост працягваўся, але пад канец і крок навучання падаў да нуля, таму прамежкавыя кропкі не чыстыя. На 772 парах, дзе пераказы адрозніваюцца па даўжыні не больш чым на 10%, даўжыня дапамагчы не можа. Там мадэль дае 58,4%, значыць, акрамя даўжыні яна нешта вывучыла.

Сярод гэтых пар, дзе даўжыні розныя, людзі выбіралі даўжэйшы пераказ у 57,5% выпадкаў. Мадэль узнагароды аддае перавагу даўжэйшаму ў 69,0%. Пасля першых 2000 пар было 74,8%, гэта значыць 3 разы з 4. Усё, што ідзе разам з даўжынёй, больш падрабязнасцей або больш капіявання, яна ўзнагароджвае часцей, чым людзі, якія клікалі.

Як часта суддзя выбірае той жа пераказ, што і чалавек (3000 пар з праверачнай часткі) манетка 50% даўжэйшы выйграе 57,5% лінейная мадэль, словы і даўжыня 58,1% мадэль узнагароды, 16 000 пар 60,3% другі чалавек 72,5% Як часта суддзя аддае перавагу даўжэйшаму пераказу, пары рознай даўжыні людзі 57,5% мадэль узнагароды пасля 2000 пар 74,8% мадэль узнагароды пасля 16 000 пар 69%
Мадэль узнагароды апярэджвае даўжыню ненамнога і выбірае даўжэйшы пераказ часцей, чым людзі, якія клікалі.

Цягнем адказ да ўзнагароды

InstructGPT цягне адказ да ўзнагароды навучаннем з падмацаваннем, PPO, а яго я тут запусціць не магу. Прасцейшы спосаб называецца best of n: згенераваць n адказаў і пакінуць той, у якога ўзнагарода найвышэйшая. WebGPT карыстаўся ім у снежні.

Мая палітыка гэта звычайны GPT-2 small без усякага данавучання. Промпт гэта пост і потым “TL;DR:”. Я браў па 16 сэмплаў на пост пры тэмпературы 0,7, не даўжэй за 48 токенаў, і абразаў на першым пераносе радка, для 100 пастоў з праверачнай часткі. З 1600 пераказаў 134 пустыя. Для кожнага паста я палічыў па ўсіх падмноствах з n сэмплаў, які з іх пакіне мая мадэль узнагароды.

nслоўтрыграм скапіявана з пастапустых
121,56,2%8,4%
430,010,4%0,4%
1635,416,1%0

Выбраны пераказ робіцца даўжэйшым на 65%. У 54 пастах са 100 лепшы з 16 упіраецца ў ліміт 48 токенаў. 48 з іх абрываюцца на сярэдзіне сказа. Выпадковы сэмпл упіраецца ў ліміт у 22 пастах.

Што капіявання стане больш, я чакаў: цэлыя скапіяваныя сказы Цыглер з сааўтарамі бачылі яшчэ ў 2019 годзе. З GPT-2 без данавучання яны ў мяне таксама з’явіліся. 17 сэмплаў з 1600 маюць не менш за 5 слоў і не менш за 90% трыграм з паста, у большасці гэта проста суцэльны кавалак паста. Мадэль узнагароды ставіць іх у сярэднім на 2,8 месца з 16. 7 з іх перамаглі ў сваім пасце. Адзін пост пачынаецца словамі “I met this girl online, we planned a date but by talking with her I saw some traits I’m not really sure I like”. Пераможца для яго якраз гэты сказ. Ён па тэме і паўтарае якраз тое, што чытач толькі што прачытаў.

Best of n па мадэлі ўзнагароды, GPT-2 small, 100 пастоў слоў у выбраным пераказе 21,5 n 1 26 n 2 30 n 4 33,1 n 8 35,4 n 16 трыграм скапіявана з паста, % 6,2 n 1 8 n 2 10,4 n 4 13,4 n 8 16,1 n 16
Чым з большай колькасці варыянтаў выбірае мадэль узнагароды, тым даўжэйшы пераказ і тым больш у ім скапіявана з паста.

Што я з гэтага вынес

Чаканні пра даўжыню і капіяванне пацвердзіліся. Мадэль узнагароды дала 60,3%. Я чакаў ад 60 да 68 для GPT-2 small. Мадэль, якую давялося ўзяць, меншая больш чым у 5 разоў. Ад лінейнай мадэлі я чакаў каля 60%, а яна дала 58,3%.

Нічога новага тут няма. Стынан з сааўтарамі ў 2020 годзе паказалі, што калі занадта моцна аптымізаваць палітыку пад мадэль узнагароды, пераказы робяцца для людзей горшымі. Далей хачу паглядзець, што PPO зробіць з такой узнагародай, калі знайду GPU.

Чаго я не правяраў

  • PPO няма. Best of n паказвае толькі кірунак, куды цягне ўзнагарода.
  • 1 прагон навучання, 1 seed, 16 000 пар з 92 858.
  • Палітыка гэта GPT-2 small без данавучання, таму мадэль узнагароды выбірае паміж тэкстамі мадэлі, якую ніхто не вучыў пераказваць.
  • Ніхто не ацэньваў, ці лепшыя выбраныя пераказы для чалавека. Я мераў толькі тое, што яны даўжэйшыя і ў іх больш скапіявана.