#чтивонаночь

RL + retrival feedback

В чем идея: в оригинальном ресерче open ai использовалась схема при которой люди прописывали ревард для ответов модели, что вообще то не оч коректно и не оч скейлиться. Потом они выкинули часть людей и поствили gold RM учиться оценивать ответы, а людей оценивать генерации, писать промпты и оценивать оценку gold rm.

А потом добавили вместо людей proxy model которая учиться быть reward model.



Что я предлагаю: А зачем нам оценки от людей когда мы можем набрать таски которые легко оценивать по cosine similarity, и мы легко можем сравнить что нам модель наврала, а что нет, давая в качестве

reward = cosine_similarity(ground true answer, predicted answer)



Собственно, банальный вопрос анальный ответ, взял gpt2(110m), написал простой retrival(возвращает по вопросу -ответу ревард) на sentence transformer, взял trl и поcтавил учиться.



А дальше начинается сааамое интересное:

0.37 Question: Sarah didn't like the activity she was doing, but she did it anyway. She felt that it was better than what? Answer: QuestionInvGrooSGroijaWCoSWCGroGroECDGroCVGroDTGroMJGroWCGBTGroDWWCECDGBTECDBMGroJOWCBMFGGroBMWCWCFMLGBTFML



КАЗАЛОСЬ БЫ в чем проблема?

А все довольно просто, видите ли, ppo+gpt довольно умная штука и отлично умеет находить разного рода локальные минимумы и улетает в них легко и весело, ломая reward и emdedings у sentence transofomer.



Я не буду описывать цирк которым занимался по вечерам две последние недели, просто скажу: китайский зло, ироглифы зло, bpe отлично ломает sentence трансформер, в итоге 200 строк кода на эвристики вида (if bad_regex in answer): return 0



А еще очень сильно помог подбор гиперпараметров для KL value и LM weight, cпасибо за уточнение от @nadlskom что каждые 10 эпох open ai прогоняли эпоху классического FineTune(стабилизировало трейн и mean начал быстрее рости)



Баги в целом очень специфичные и на некоторые запросы модель по прежнему ломается и бредит(вероятно через пару недель я выложу код + модель поинтереснее с таким подходом), но уже сейчас модель с PPO тюнингом дает +10 к blue score на задаче QA относительно ванильного трейна.



Благодарности @nadlskom за внимательное чтение статей, @gradientdip за полезные советы, neverix за поиск багов, @dealer_ai за выслушивание моего нытья, @seeallochnaya просто потому что.



Ну и да, очевидно это можно применять к любой задаче которая выглядит как: ну вот input, сделай output похожим на <единственный вариант ответа>





сollab если хочется посмотреть на еще багованную версию



Примеры генераций:



Question: What part of a property may be next to a driveway? Answer: The next part is a house or garage or a garage





Question: Jamie wen to the theater near his home. He was surrounded by servicemen. Where might he be? Answer: in the outdoor.