0: Всем привет. Я надеюсь, меня нормально слышно. Сегодня у нас будет доклад про обучение больших языковых моделек с помощью методов обучения с подкреплением. Меня зовут Паша Темирчев. Я работаю в яндексе, руковожу командой, которая называется лаборатория прикладного подкрепления.
1: Я надеюсь, я вас не сильно как бы утомлю формулами, которые все-таки будут сегодня на слайде. Может быть, не очень подходят под зал конкретный, но давайте попробуем. Собственно, будем говорить про обучение лмок. Я верю, что большая часть аудитории, она знает, как обучаются лмки там.
2: Есть 2 основные такие стадии, есть претрейн, есть элаймент претрейн. Это когда вы учите модель просто продолжать тексты, то есть на большом корпусе текстов с интернета просто продолжаете тексты. Есть алаймент. Это когда вы уже берете запросы и учитесь генерировать. Хорош
3: Ответы на запрос пользователя. Сегодня мы будем говорить про алайнмент. И вот стадия алайнмента, она делится на 2 таких под кусочка есть супервайз лернинг. Это когда вы берете запрос, подписываете к нему правильный ответ и пытаетесь это выучить. Есть
4: Тюнинга. И вот про стадию рельфа тюнинга мы с вами сегодня и будем говорить.
5: Если вы не знаете, что такое обучение с подкреплением, полезно думать про это как про дрессировку собак. Когда вы учите собаку выполнять какой-нибудь трюк, вы не переставляете ей лапки так, чтобы она этому научилась. Вы её вместо этого хвалите или не хвалите за те?
6: Действия, которые она делает, и хорошие действия, она запоминает. В нашем случае собака справа попробовала 6 зелёных действий, измерила за них награду свою, и в зависимости от того, какая была награда, она может оценить, в каком направлении ей изменить своё поведение.
7: Так, чтобы в среднем получать больше награды, примерно таким образом и работает обучение с подкреплением. Этот метод, он также известен как метод пробы ошибок, потому что в отличие от обучения с учителем, где правильный ответ известен заранее,
8: Здесь вы вынуждены пробовать большое количество гипотез, и этот метод из за этого чрезвычайно неэффективен. Вы не можете делать эрели все обучение, потому что это слишком дорого. Поэтому только последний кусочек делаем эрлем, если вы попробуете какую-нибудь статью,
9: Про эрэль почитать, то вы там увидите такую страшную штуку, как мдипи Марков. Дисижен процесс Марковский процесс принятия решений. Это такая вещь абстракция, которая описывает процедуру взаимодействия агента со средой. Мы считаем, что у нас есть некоторый агент. В нашем случае это лмка есть
10: Некоторая среда агент отправляет в среду действие среда на это реагирует следующим состоянием среды и какой-то наградой, при этом мы считаем, что у агента есть какие-то мозги, мы rt мозги будем называть пи политика rt мозги говорят, как нужно действовать.
11: В той или иной ситуации это вероятностное распределение над действиями при условии наблюдаемого состояния.
12: В мире алайнмента нам чуть проще живётся в мире алаймента. У нас нет циклов. Мы считаем, что наш процесс одношаговый. Мы считаем средой пользователя. Он приходит к нам с каким-то запросом. Дальше наш агент генерирует на этот запрос ответ
13: И после этого получает какую-то награду теоретически здесь можно было бы использовать какие-то циклы, и так люди делают, но самый простой сценарий не использовать никаких циклов взаимодействия со средой просто ответили на ответ, набрали максимальную награду.
14: Это такой базовый сценарий. А собственно, математически, чем мы занимаемся? Мы пытаемся найти такую политику, которая оптимизирует среднюю награду. Если вы не знаете, что вот эти страшные символы е значат, да, они вас чуть чуть пугают, нам сегодня никакие
15: Свойства этого символа не пригодятся. Штука называется математическое ожидание. А нам сегодня достаточно думать про это, как просто про среднее. Мы считаем, что мы хотим найти такого агента, который будет оптимизировать среднюю по датасету. Мы считаем, что у нас есть какая-то корзинка с запроса.
16: От пользователя, на который мы учимся, средняя по ответам модели на каждый запрос. То есть мы на каждый запрос генерируем много ответов и усредняем мы нашу награду. То есть задача в обучении с подкреплением найти такого агента. Такие параметры тета, что вот эта штука
17: Будет максимальная, как я уже сказал, на практике мы всегда математические ожидания оцениваем как средние, просто как сумму с весами, ничего сложного тут не будет.
18: Наш сегодняшний доклад вообще не про модели награды. Мы про это не будем говорить в деталях. Хочется тут чуть подсветить, как их считать. Эти награды. Есть 2 разных сценария. 1 сценарий называется эрэль Фром, верифай ревордс. 2 сценарий называетс.
19: Chef собственно верифай ревордс это когда у вас задача так устроена, что вы заранее знаете на неё правильный ответ. Это обычно математика или какой-нибудь код, когда вы можете проверить, правильно ли вы ответили или неправильно ответили и в таком случае вы верность.
20: Ответа оцениваете с помощью джадж. Это такая элэма необучаемая. Вы в неё показываете правильный ответ, показываете ответ, который дал ассистент, и она вам говорит, был ли этот ответ правильный или неправильный. Бинарная есть обучаемые модели награды.
21: Они обучаются на что-то, что называется брэдли терри лос. Нам это сегодня не очень интересно, но в итоге вы получаете обученную реворд модель, которая получает на вход запросы действия и выдаёт вещественное число. Чем это число выше, тем как бы ответ был круче.
22: Собственно, окей, есть награды, есть функционал, который мы хотим оптимизировать. Как мы его будем оптимизировать. Это самое интересное. Давайте поговорим про какие-то методы. Я верю, что многие из вас здесь известны, знакомы с машинным обучением. В машинном обучении есть супер стандартный подход.
23: Давайте мы применим градиентный Подъём или градиентный спуск. В нашем случае это Подъём, потому что это задача оптимизации. Обычно вы применяете градиентные спуски, сори, задача максимизации. Обычно вы применяете градиентные спуски. Собственно, в чем идея? Вот мы написали функционал какой-то. Да, давайте мы от него
24: Считаем градиент как-то и дальше этот градиент прибавим к нашим параметрам с каким-то коэффициентом. И можно гарантировать, что в такой процедуре я найду такую политику, которая будет выбивать максимум награды. Единственная здесь проблема в том заключается, что
25: Этот градиент сложно посчитать. Не очень понятно, как его считать. И мы сегодня с вами не будем разбирать, как его считать. Слава Богу, я вам сразу напишу формулу, готовую, как его считать. Вам придётся мне поверить. Формула чуть чуть стала более Страшной, чем была до этого. Давайте раз.
26: Берёмся здесь прям супер. Страшного не очень много. Во первых, у нас появилась новая переменная, она обозначается, а это эдвентед, эдвентед, это превосходство вашего ответа над средним. Че это такое? Ну, представьте себе, вы взяли запрос, да, сгенери.
27: На него много ответов. И посчитали, сколько в среднем награды на этом запросе набирает ваш текущий агент. Вот адвенте считается. Так вы берете награду за ваш ответ и вычитаете из неё среднее. Если это число положительное, это, это значит, что ваш ответ лучше, чем среднее, если
28: Отрицательный, то он хуже, чем средний. Все остальное мы здесь в целом умеем считать. В этой формуле у нас все также есть среднее по состояниям. То есть по запросам пользователя есть среднее по ответам модели, есть градиент, логарифма политики страшно выглядит на практике, легко считается в
29: Берете логарифм от выхода модели и делаете от него точка бэкворд. Есть вентед, который мы только что обсудили, как считать.
30: На деле нам обычно не очень приятно с градиентами работать. Когда вы пишите что-то на торче, какое-нибудь обучение, вам всегда удобно работать с лоссами, поэтому здесь мы тоже переходим к лоссам. Можно придумать такой лос, что если мы его продифференцируем в торче, то у него будет Ровно такой
31: Какой градиент, как мы хотим, будет средняя логарифма политики умножить на адвенте. Считаем такую штуку, делаем бэквард, делаем оптимайзер степ. Вот наш эрелль. Этот метод, кстати, называется адвенте актор критик, потому что здесь используется адвенте, ну и
32: Детальнее объяснять не буду. С позволения. Собственно, как это работает на практике. На практике мы используем примерно вот такой цикл. У нас есть batch запросов на запросы. Никакие правильные ответы нам заранее не известны. Берём батч за
33: Вопросов и отправляем его на специальные видеокарты, где происходит инференс. Генерация ответов. Это всегда специальные видеокарты со специальным движком типа вилм или сглнг, который делает генерацию очень шустро после того, как мы
34: Генерировали несколько ответов на каждый запрос. Мы считаем награду и получаем батч с ответами и наградами. Этот бач мы отправляем на видеокарты, которые делают обучение, считаем лосс по формуле, раньше делаем бэквард, делаем оптимайзер степ, поскольку
35: У нас обучение и генерация происходит на разных видеокартах. После того, как мы обновили веса генератора, нам нужно новые веса скопировать на видеокарты, которые делают инференс. Собственно, весь цикл, все с ним замечательно. Он работает, можно получать классные
36: Награды, но в нём есть 1 маленькая проблема. Он дико неэффективный. Ваши видеокарты будут утилизироваться примерно на 0%. Когда вы попробуете это имплементировать. Давайте разберёмся, почему, во первых, а какой размер батча у вас здесь? Сколько у вас запросов?
37: В бч с это гиперпараметр и вы этот гиперпараметр подбираете из соображений качества вашей модели. То есть ищете самый оптимальный и этот гиперпараметр он обычно маленький, не очень большой бачай с маленьким батч сайзом. Ваш инференс будет работать жут.
38: Неэффективно, потому что вилм и с golang любят большие батчи. С маленькими плохо работают. 2 проблема ваши все остальные операции они очень дешёвые. Да вычислить лос, сделать бэкворд на маленьком батче недорого, а вот скопировать веса.
39: На видеокарты, где делается инференс, дорого, одинаково, вне зависимости от того, какой у вас бач сайз, весов одинаково много, и поэтому у вас большая доля времени копирования происходит и большая доля времени неэффективный инференс. Давайте разберёмся, как это чинить.
40: Есть идея номер 1. Давайте-ка мы сделаем разбивку, разобьём бач генерации и butch обучения. У нас будет такой внутренний цикл обучения. Вы берете большой бач, генерируете ответы, получаете генерации и дальше вот эти генерации.
41: Разбиваете на микро бачи и микро батчами итерируетесь по большому Бачу в цикле делаете вычисление лосса, делаете бэкворд, делаете степ и так делаете. До тех пор, пока большой бач не исчерпается. Потом обновляете веса. Мы решили проблему
42: С маленьким батчом есть ещё 1 проблема, которая характерна вот именно для инференса. Чтобы понять её. Давайте копнём в то, как этот инференс устроен.
43: В моменте инференса у вас для сразу большого количества запросов здесь они обозначены с генерируется сразу по несколько ответов. Здесь они обозначены, а в начале этой процедуры все происходит эффективно, все делается параллельно и
44: Ваши видеокарты утилизируются хорошо, но в конце часто возникает ситуация, что у вас большая часть ответов уже сгенерировалась, к ним уже посчитались награды, а какая-то небольшая часть ответов все ещё генерируется. Это плохо. Хочется с этим как-то бороться.
45: Поэтому мы применяем асинхронный инференс. Асинхронный инференс устроен так мы на вход инферелки подаём очень много запросов и следим. Как только у нас сгенерировалось достаточное количество ответов, чтобы собрать батч, мы процедур.
46: Останавливаем. При этом у нас какая-то доля ответов не догенерирует. Я. Вот они здесь мутно обозначены, и мы с этим ничего не делаем. Отправляем готовый бач на обучение происходит обучение. В инференс приезжают новые веса, и когда к нам приехали
47: Новые веса, те ответы, которые мы не успели в прошлый раз догенерирует, мы догенерирует. Тут получается, что у нас какие-то ответы могут быть сгенерированы несколькими разными версиями 1 и той же модели, и мы на это, ну, забиваем, собственно, итоговый
48: Pipeline выглядит вот так. Он чуть сложнее, чем было до этого. И он жутко эффективный. Тут как бы особо то и улучшать больше нечего. Все хорошо происходит. Видеокарты наши довольны, но мы, когда сделали этот супер эффективный, a2 ц,
49: Критик, мы пожертвовали 1 вещью. Вообще говоря, алгоритм выводился из предположения, что мы будем учиться в режиме. Он полиси. Что такое режим? Он полиси. Это когда вы для подсчёта градиента используете действия, то есть ответы порождённые
50: Самой свежей версии модели. Здесь написано, что мы считаем математическое ожидание по действиям из модели пиитет, то есть из модели с параметрами, которые вот у нас сейчас, а на практике, поскольку мы теперь не всегда копируем веса в инференс, часто может так получиться, что ответы
51: Были сгенерированы устаревшие версии модели, модель, которая была актуальной. 10, 15 операций назад. Ну и, казалось бы, кого это вообще волнует? Да, можно ничего с этим не делать.
52: К сожалению, нельзя. Если мы посмотрим на то, как выглядит награда от итерации обучения в норме, она монотонно растёт. То есть наш пёс учится выполнять трюки монотонно. Хорошо. Если у нас нет устаревших данных, это самый левый график, то
53: Все классно, все работает классно. Как только у нас появляется хотя бы устаревшие на 2 итерации данные, все сразу же разваливается. Если у вас устаревание итераций типа до 16 итераций, то все разваливается примерно сразу же.
54: Это плохо. Нужно как-то чинить. И здесь математики придумали такой метод, который называется импортант семплинг. Супер древняя история. На самом деле ничего сложного. Вы можете от 1 математического ожидания перейти к другому математическому ожиданию математически корректно. Если вы добавите вот такую поправ,
55: Дробь эта дробь. Ева говорит, давайте мы посмотрим, насколько вероятность этого ответа, по мнению текущей модели, больше, чем вероятность. По мнению генератора, если эти вероятности поменялись, то этот коэффициент внесёт как раз нужную поправку.
56: Супер. Если мы перепишем лос, то есть вернёмся опять не от градиентов к лоссам, то los получится даже проще. Теперь тут нет логарифма политики, есть просто дробь, её очень легко считать, но она тоже не работает, если вы попробуете обучаться.
57: Так-то все тоже шустро развалится. Давайте коротенько поймём, почему, когда мы считаем отношение вероятности ответов, нам нужны вероятности ответа целиком. Ответ порождается моделью токен за токеном. Если вы не знаете, что такое токен, ну, как бы лмка генери,
58: Ответ слово за словом если мы хотим посчитать вероятность целиком ответа, нам нужно вероятности слов перемножить и слов бывает много сами вероятности это числа от нуля до 1 если мы перемножаем много чисел от нуля до 1, то мы получаем что-то близкое к null.
59: В итоге делим 0 на 0 что-то супер нестабильное, поэтому все разваливается. Че с этим делать? Есть метод, который называется гспо, который решает эту проблему 2 идеями. 1 идея. Давайте мы вместо того, чтобы считать
60: Просто отношение вероятностей, будем считать их среднее, геометрическое, оно чуть сложнее считается вот на слайде формула, но не важно. Важно то, что оно численно устойчивое. У него нет проблем деления 0 на 0. И там все классно считается. Лос в итоге получает
61: Такой, мы вместо important семплинга коэффициента подставляем вот среднее геометрическое. Здесь какая-то небольшой нюанс появляется. На самом деле хочется его тоже обсудить сразу. Если посмотреть на градиент среднего геометрического, то он в целом на
62: Мне то что мы хотели бы, но здесь ещё вылезает вот такой коэффициентик, замечательный перед каждым ответом 1 поделить на длину ответа. Это значит, что в итоговый лосс у нас длинные ответы войдут с меньшим коэффициентом, чем короткие ответы. Это такая
63: Типа регуляризация на самом деле ничем не обоснованная, это как будто баг, да, но многим нравится. Мы чуть дальше посмотрим, почему это хорошо бывает. А бывает нехорошо.
64: 2, что в гспо предлагается, давайте-ка мы ещё будем вот это среднее геометрическое обрезать. Если оно слишком большое, то мы его будем заменять на 1 плюс эпсилон, если слишком маленькое заменять на 1 минус эпсилон. И это позволяет нам
65: Каким-то образом ограничивать то, насколько сильно мы можем оптимизировать нашу политику. Давайте чуть подробнее. Если мы посмотрим на градиент среднего геометрического с клиппингом, то в случае, если у вас произошёл клипинг, то ваш градиент будет равен нулю, потому что вы
66: Заменили ваш коэффициентик на константу, а если клиппинга не было, то он не поменяется. Если вы не поняли ничего страшного, идея в том, что вы запрещаете себе отходить слишком далеко от той политики, которая породила текст. Вы просто такие.
67: Изменения блокируете. Это значит, что ваша обучаемая политика будет похожа на ту политику, которая породила текст. А значит, этот коэффициентик никогда не будет слишком большой или слишком маленький. Ваше обучение будет эффективно работать.
68: Собственно, смотрим на результаты. Есть гспо, есть график награды от операции, и мы видим, что гспо выбивает большие награды. Здесь, простите меня, пожалуйста, зелёненький график от 2 ц. Он чуть не доучился, но поверьте, он просто сходится к меньшей награде.
69: Если опять же экстраполировать время обучения, можно заметить, что гспо почти в 3 раза быстрее, чем он в полисе обучения, потому что мы себе позволяем вот эту эффективную имплементацию обучения и награда выше. Ну как бы не золото, разве если смотреть.
70: На другие градусники длины ответа не сильно дифу у он полисе обучения, они чуть более шумные, а вот энтропия сильно дифу, у он полисе обучения энтропия. То есть то, насколько вы разнообразные ответы порождаете, она сильно
71: Ниже давайте разберёмся, почему так происходит. Почему он в полисе обучения получается хуже, чем в полисе обучения. Мы будем разбирать на примере собаки, которую мы учим делать команду сидеть ваша собака на 1 итерации обучения.
72: Умеет делать 5 действий, да, по аналогии с алгоритмом эр эль, она должна попробовать несколько действий, за которые мы её оценим, и она что-то выучит. Ну, собственно, наша собака пробует вот такие 3 действия. Вы её за первые 2 ругаете. 2.
73: Действие. Ой, прошу прощения, 3 действие, получается, получает положительный эдвентед. Ваша собака выучивает, что действия лежать лучше, чем те остальные. Ну и плюс ещё она как-то экстраполирует. Вы её поругали за то, где она сидит и где она стоит, и она запоминает
74: Что сидеть и стоять, наверное, плохо для тех действий тоже снижает вероятность на следующей итерации, пробует 3 других действия. Опять там цветы раскапывает, писает и лежит. И вы её ругаете за первые 2. И уже после 2 операции ваша собака уверена, что на команду сидеть.
75: Ей нужно лежать, что как бы не то, чего мы хотели. Почему так произошло, так произошло, потому что за эти 2 итерации она ни разу не попробовала сидеть. В случае, если мы применяем о полисе, то мы не можем сделать слишком большой шаг в пространстве вероятностей.
76: Как раз из за клиппинга он не позволяет слишком большие шаги делать. Поэтому после этого 1 шага вероятность лежать, она чуть увеличится, но не так что прям невероятно сильно и вероятность сидеть не уменьшится прям в 0. И того у вас будет большее количество
77: Итераций, чтобы выучить правильное поведение. Казалось бы, это такой вымышленный пример, который никогда не бывает на практике, но все становится сильно лучше, когда у вас очень много действий, а в случае с лэмками у вас бесконечно много действий, лмка может породить бесконечно много разных ответов, поэтому
78: Очень часто во время обучения эмка никогда не пробует самый хороший и выучивает субоптимальный. Поэтому в полисе все работает лучше. Казалось бы, на этом можно было закончить. Да, у нас есть метод, который классно работает, бьёт бейзлайн и все круто, но
79: Сообщество после этого немножко взбесилось и опубликовало невероятное количество статей, которые решают ту же самую проблему, ту же самую проблему, какие-то её аспекты лечит. Но в целом тоже самое. Давайте чуть разберёмся, что это все за звери.
80: Такие, и может быть среди них есть какая-то жемчужина, которую стоит рассмотреть. Мы эти методы называем семейство по, потому что они все заканчиваются на по
81: И, собственно, что мы сделали? Мы взяли релиеф сетап, то есть setup с Релич наградами здесь нет ризани. И на этом сетапе мы обучили все, что у нас было, все, что на этот момент было опубликовано. Мы попробовали здесь на слайде не прям все методы. И что мы видим?
82: Метод, который называется гспо, который мы только что разобрали, он в топе, он самый крутой, ещё в топе есть метод из статьи химика полтора, все остальные методы ниже. И, например, грпо, который так нравится многим из вас. Я предположу, он где-то посередине, он довольно
83: Плохой, наверное, не стоит использовать грпо, если вы его используете. Есть ещё несколько хороших, как будто методов сспо сапа цисп. Но они все страдают 1 проблемой, если посмотреть на то, как они учатся у них в процессе обучения длин.
84: Ответа очень сильно скачут. Здесь красным нарисован гспо, а замутнённым, которые скачут, нарисованы ответы сапа. И вот от итерации к итерации у нас длина ответа увеличивается на 100 токенов, потом уменьшается.
85: На 100 токенов это супер плохо, потому что вы не очень понимаете, че вы в итоге получите. Какая у вас в итоге ответа? Длина ответа будет plus такой знак, что мы как будто че то не очень правильно делаем. Не должно быть таких Скачков сильных говорит о нестабильности метода.
86: Если эти методы как-то все пытаться кластеризовать, мы, понятное дело, не успеем их все разобрать. Если их пытаться класстеризовать, можно их разбить на 2 группы в каких-то, как в гспо используется сессионный импортант семплинг. Это когда вы Дели
87: Вероятность ответа на вероятность ответа есть методы, где вы делите вероятность 1 слова на вероятность другого слова и делить вероятности слов намного более стабильно работает как будто менее шумно, но при этом теоретически коррект.
88: Делать именно сессионный импортант семплинг, а потоенные он неправильный. Вот в грпо потокено. Импортент семплинг в гспо более правильный, сессионный можно разбить. По другой классификации можно делать клиппинг как в гспо можно делать жест.
89: Клип, то есть если вы перешагнули порог, вы градиенты прям сразу занулили. Есть методы, которые говорят, давайте, если мы сильно отличаемся, то мы градиенты снизим, но прям нулю их приравнивать не будем, как сапа, например, интересно, что и по той, и по другой классификации кими, который
90: Тоже в топе. Он и не обладает импортант семплингом вообще, и в нём нет клиппинга. Он как бы прикольный в этом плане. Давайте пару слов про наши какие-то изыскания. Мы пытались скрещивать разные методы, чтобы объединить плюсы.
91: Тех и других скрещивали гспо с цспо, скрещивали гспо с сспо, но объединили минусы и тех и других. У нас все разваливалось, поэтому тут сильно долго останавливаться не будем. А на чем хотелось бы остановиться, так это на раз.
92: Qumi qumi классный метод если мы посмотрим на то, как он устроен, он довольно сильно отличается от a2 ц. Здесь теперь есть какой-то квадрат разности между адвантедж и логарифмом вероятностей ну короче, что-то отличное его.
93: Не сложно вывести, если прочитать статью дерект преференс оптимизейшн. Да, авторы кими мотивировались информацией оттуда вот приклеить к ней скотч, сделать костыли и вот получится кими, казалось бы, метод абсолютно теоретически необоснованный, но
94: Давайте мы вот этот квадрат распишем, я это сделал за вас, чтобы вам не пришлось мучиться. Получим вот что получится. Такая довольно страшная штука. Я не хочу, чтобы вы прям сильно в неё вчитывались. Важно, что здесь левая часть. Это на самом деле, то, что у нас было в а, 2 ц, но
95: Теперь у нас здесь среднее по действиям уже из старой политики, из полт. Это значит, что вот Ровно такую штуку, как слева, мы умеем считать эффективно, а справа это штраф, штраф в виде кль дивергенции, которая как-то оценена. Этот
96: Штраф штрафует нас за отличия между питет и пиот и вообще вот такой метод он называется пипи оо кэль те кто из вас больше динозавры как я знают, что pypi был в 2 версиях был версия с клиппингом и была версия с кэль штрафом. Вот. Pp оо кэль это.
97: Версия с кэль штрафом, и вас никто не заставляет использовать здесь именно ту оценку, которая была в киме. Вы можете использовать другую оценку, более хорошую для кэль дивергенции. И мы взяли и попробовали использовать самую хорошую, которая есть посчитанную по всему словарю её.
98: Чуть дороже считать, она чуть дороже по памяти, но в общем обучении не сильно значима, но она прям сильно стабильнее и ничего не поменялось. Награда растёт точно также это как бы с 1 стороны плохо, с другой стороны, хорошо мы
99: Подтвердили, что kimi это пипика эль, да, то есть мы тут можем что-то варьировать, приделывать к тому методу, который мы лучше понимаем, чем к кастыльному кими. С другой стороны, мы показали, что улучшение качества оценки не приводит к повышению качества модели возмо
100: У нас просто не очень хороший сетап, да, мы учимся в лич, в сетапе, и тут в целом все и так стабильно. Если посмотреть на то, как учатся резанине в ризонинг х, все частенько разваливается, и, возможно, там это изменение было бы более значимо, но мы на этом не остановились. Мы подумали,
101: Что наш, нашу идею с вот этим честно оценённым кэлем можно применить в другом месте. И мы посмотрели на задачу, которая называется он полиси distillation. С точки зрения ллоса. Это буквально то, что у нас было раньше в
102: Кль. Но мы оттуда выкинули всю часть оптимизации награды. Осталась только минимизация кэль дивергенции между 2 политиками. Зачем это может быть нужно? Представьте себе, что у вас есть модель, которая, не знаю, хорошо решает математику. Какой-то эксперт математический есть.
103: Другая модель, которая хорошо делает все, кроме математики. Вы часто хотите их сдест лировать в 1. И вот эта задача дистилляции называется он полиси distillation. Решается она тоже эрэлим, и решение выглядит примерно так. Вы расписываете кэль, какую-то оценку исполь.
104: И говорите, что вот эта оценка каэля, это и есть ваша награда. И вы эту награду хотите максимизировать, просто применять кэль с другой функцией награды. И мы сказали, давайте-ка мы вместо такой плохой оценки используем нашу хорошую оценку, заменим на
105: По честному посчитанную кл дивергенцию и вуаля наше обучение по итерациям и по времени в 2 раза быстрее, чем обучение бейзлайн с плохой оценкой кл дивергенции это круто, потому что он полисе distillation, скажем, у на.
106: Используется очень много, где мы часто нестили одних экспертов, других экспертов, сильно экономит время и ресурсы. При этом там, если на бенчи посмотреть, то бэнчмарки этих 2 моделей практически не отличаются. Их вообще на самом деле, нескольких Десятков бэнчмарков, но
107: Значимые отличия только в 5, при этом 2 в + 2, 3 в минус, ну, как бы более или менее незначимый результат. То есть мы ускорили обучение в 2 раза, не сильно пожертвовав качеством, что круто, о чем ещё хочется.
108: Прям шустренько я вам обещал чуть чуть рассказать про вот этот вот коэффициентик, который в гэспо вылезал 1, поделить на длину ответа, если вы когда-нибудь щупали какие-нибудь фреймворки для обучения лк эрелль, вы видели, наверное, разные типы усреднения ллоса. И вот
109: Есть что-то похожее на то, что здесь обозначено токен мин, когда вы усредняете лос вне зависимости от длины ответа. То есть длина ответа не фигурирует там, либо у вас есть усреднение типа сёк, мин, токен, мин, это как в гспо, где вы каждый ответ делите на его длину. То есть
110: Lose за каждый ответ делите на его длину то, что справа теоретически некорректно, но вы этим лоссом уменьшаете влияние длинных ответов в общем функционале. Если присмотреться к нему чуть более как бы теоретически, то вот то, что справа ло,
111: Он запрещает вашей модели генерировать слишком длинные ответы. Ответы получаются короче, и часто. Ну, например, мы алису обучаем колоночного ассистента. Мы не хотим, чтобы у алисы были слишком длинные ответы. Это не очень хорошо для пользователя, для пользовательского впечатления, поэтому
112: Мы исторически всегда использовали сёк, мин, токен, мин. И вот мы тут провели какой-то эксперимент. Видно, что токен мин, который фиолетовый, который теоретически корректный, он набирает намного больше награды, она слева. С другой стороны, у него намного ли
113: Не ответы. Длина ответов справа, но мы взяли и запустили. Человеческий замер прям на супер хорошей картинке. Супер хорошие редакторы нам это все разметили, и мы показали, что даже длинные ответы для колоночной модели все-таки лучше, чем
114: Короткие людям нравятся больше длинные ответы, чем короткие ответы. Даже в таком сетапе, собственно, выводы, которые здесь можно сделать. Доклад довольно разрозненный. Давайте как-то все объединим. Ну, во первых, если вы используете грпо, не используйте грпо.
115: Но используйте другие методы в полисе, потому что вы теряете очень сильно в скорости обучения и в эффективности. Если вы используете он полисе distillation, возьмите нашу оценку, она классная, если вы не уверены, как вы усредняете ваш лос, ну, проверьте, возможно, возможно.
116: Вы жертвуете качеством просто потому, что никогда этот гиперпараметр не крутили в целом на этом все, если у вас есть какие-то вопросы welcome, если хотите мне написать, я вот тут справа.
117: Так, паш, спасибо за доклад. Я по традиции попрошу оставить фидбэк по докладу Паши. Вот, пожалуйста, сделайте это и давайте перейдём к вопросам.
118: 0 вопросов. 0 вопросов. Сейчас, сейчас вот.
119: Не слышу.
120: Алло. Ага, спасибо большое. Очень интересный доклад. Был. Есть пару вопросов. 1 вопрос. Вот когда вот вы синхронизируете веса между эктором и инференс, сервером в асинхронном сценарии?
121: Ну, короче, вот, например, в Верле, да, по умолчанию у вилма используется юз префикс кэшинг. Вот. И, то есть у вас в полисе сценарий такой небольшой, у вас и веса отстают, и кв. Кэши тоже, что вы делаете с ними? То есть, это, ну, кв, каши тоже могут ло.
122: Качество обучения, вы их вообще перестаёте использовать, либо как-то перерасчитываете заново или как хороший вопрос. На самом деле, как сделано. Прям супер свежей реализации, наверное, не скажу, но, по моему там используется перепрел.
123: Ага, спасибо. Перечитываешь. Вы тут нигде не рассказывали про дапо, там как будто бы тоже есть, кого вы нигде не рассказали про дапо, там тоже есть, ну, клиппинг градиентов, ну, клиппинг проб, плюс ещё.
124: Есть онлайн фильтрация тех семплов, где 0 адвантедж и так далее. А почему вы, вы его не используете у себя в экспериментах или как? Смотри, давай отвечу, сорри, что на ты я как-то чуть привыкший. Короче, что касается допо, допо, это алгоритм.
125: Который чинит проблемы. Ризонинг, в основном в целом это грпо с улучшениями. Мы часть из этих улучшений используем, в частности, в допо у тебя клип сверху и клип снизу разными коэффициентами делается. Мы это используем. Фильтрация по длинам сейчас не используется, потому что есть другие, как бы
126: Это более умные методы, и мы большого эффекта от именно контроля. Длин в допо не видим грпо. Как я уже сказал, база, на которой допо, основан. Он не очень хорош. Ты можешь перенести большую часть из улучшений допо на гспо, и у тебя получится строго лучше там.
127: Спасибо большое. Благодарю.
128: Так есть.
129: Здравствуйте. Здрасьте. Так, короче, я душить никак не собираюсь. Просто у меня такой вопрос. А можно слайд с лоссом гспо открыть? А можно, пожалуйста, слайды, да?
130: Звучит, как будто собираешься. Да не может. Я просто че то не понял, скажу сразу, я статью гспо не читал, но плюс минус, ну, типа, есть понимание, че там было предложено, да?
131: Секунду, мы вернёмся.
132: Собаки.
133: Ну, пусть вот так, да. Ага, отлично. Короче, вот я не понял такой момент, вот этот клип, да, там 1 плюс эпсилон там ещё. Ну да, вот, плюс минус эпсилон. Обычно эта тема вся возникла из pypi. О, ещё когда там
134: Получается, решали проблему вот этого монотонного обновления. Вот. И это было сделано для того, чтобы, когда мы стратегию обновляем, да, мы же как бы начинаем с какой-то пиол, её ещё так называют.
135: А потом мы её обновляем, обновляем, и чтобы она, типа, далеко не расходилась от этого пиолдга, как раз этот импортанс рейшо добавляем. Да, вот вы же сейчас про это говорили в контексте асинхронного обучения, то есть там же ещё
136: Возникает проблема с тем, что данные, которые мы собираем, мы типа старые стратегии собираем и по хорошему, как будто там ещё должен быть импорт, семплинг накинут. Вот смотри, такой вопрос. Вопрос. Давай попробуем. Почему 1 импорт?
137: В целом, вне зависимости от природы устаревания твоей политики это асинхроннщина или не асинхронщина, или как в pypi у тебя там вот внутренний цикл, что ты стартуешь с пиол, ты потом улучшаешь её вне зависимости от природы появления.
138: Различия ты их чинишь 1 и тем же импорте, семплингом, коэффициентом есть большой спор относительно того, нужно ли его весь клипать или, возможно, какую-то составляющую часть его нужно клипать какую-то не нужно есть методы типа this, где ты часть не клипаешь, часть.
139: Клипаешь, но как будто, короче, большой разницы между ними нет, а можно сразу возразить, потому что есть направление типа квантизации, да, когда мы ускоряем фазу сбора роллаут, да, мы там, ну, типа, не фп, там 32 условно используем, ну,
140: Там понижаем, грубо говоря, количество знаков после запятой, да, грубо говоря, и там известный подход, он как-то this называется, точно статью не помню буквально, но там как раз навешивается ещё 1 импортант семплинг как раз.
141: Из за того, что данные другой стратегии собраны. Ну вот смотри, 1 это для обновления, a2 из за данных. Да, супер. Спасибо. Смотри, что касается тиса в гспо есть свой коэффициент в тисе есть свой коэффициент. Вот я говорю про то, что если ты их перемножишь, и клип,
142: То получится примерно тоже самое, что у тебя с тисом, его нужно использовать. Эту поправку нужно внести, но как бы вот здесь, где у меня есть формула, как его посчитать? Питта на полт. Вот пиол.
143: В данном случае это будет квантизованная модель, которая в низшей размерности когда-то давно ты можешь? Нет, по формулам не так, это стратегия, которая вот в обучении, она, там 32 могут применяться. Давай мы эту формулу обсудим потом.
144: Но, короче, поверь мне, так можно делать. Ну хорошо, может я каких-то нюансов не знаю. Типа, вот спрошу заодно. Ну, у меня все так, да, у нас есть ещё время на вопросы. Давайте, вот тут ещё рука есть. Привет, привет, у меня так.
145: Такой вопрос. Вот когда сетапы экспериментов делались, там в основном 1 какой-то реворд обучался или сумма нескольких просто вот, ну, некоторые методы там, типа джидипи, они как раз это оптимизируют, что вот у нас если несколько ревордов, то
146: Чуть получше обучает для людей с повышенной внимательностью. Там, короче, был на слайде джитипи. Я его вообще не обсудил. Короче, смотри, у нас на практике реворды это набор ревордов разных. Некоторые из них многоголовые, и все мы их
147: Агрегируем с линейными весами, где веса мы тоже как-то обучаем. То есть есть отдельная процедура обучения ревордов. Мы их все смешиваем в 1 чиселку. Примерно то, о чем говорится в гдп. Сам гдп мы пробовали, и мы не получили от него прироста качества.
148: Возможно, как бы у нас какой-нибудь setup не прям репрезентативный. У нас дтппо работает так же, как все остальные методы. Вот вопрос хороший. Спасибо.
149: Так вот, тут ещё вопрос был, да.
150: Так подними, пожалуйста, руку.
151: Спасибо за доклад. У меня вопрос по поводу организации пайплайна. Да, вот вы говорите, что у вас модель получает устаревшие ответы, и вы их скипаете. Не получается ли такое, что вы
152: В процессе генерации ответы, которые вы не успели сгенерировать, они просто длинные, и вы таким образом зарезаете длину, и у вас ответы статистически, короче, получаются. Смотри, я, возможно, чуть летел по докладу, мы их не скипаем, мы их
153: Останавливаем и на итерации следующей генерации. Мы их дегенерируем новой моделью. Если их скипать, и мы такое проверяли, у тебя действительно происходит скорее даже часто увеличение длины, потому что твоя модель никогда не видит, что слишком длинны.
154: Ответы это плохо, мы её никогда за это не штрафуем, поэтому она их начинает больше генерить. Окей, есть ещё 2 часть вопроса. Вот когда вы перегенерирует, вы используете уже те контексты, которые сгенерировали или заново прям начинаете те, которые есть, ну то есть
155: Мы продолжаем часть ответа. Сгенерировали прошлой. Подсовываете новую? Да? Ага, все, понял. Спасибо. Так, давайте. Есть время для последнего вопроса. Есть ли этот у кого-нибудь последний вопрос?
156: Спасибо большое за доклад. Можно, пожалуйста, 54 слайд. Ох, ёлки, тоже духота. Я запомнил номер.
157: Там, где график обучения для разных методов был вот он, я вот обратил внимание, здесь политика 30 б, a3 б. Так понимаю, награда 235 б. Может ли быть такое, что метод, которым делается эрэль, здесь именно
158: По разному обучает именно агентов здесь, потому что это обучение микшеров экспертс, я так понимаю. И, может быть, здесь как раз-таки представление не очень релевантно из за того, что есть проблема с дообучением одних агентов, а другие не дообучаются именно в этой
159: Смотри, вообще вопрос тоже классный. Люди давно пытаются какой-то специальный метод Реля придумать именно для миксеров экспертс учесть то, что это миксер экспертс есть метод, который называется, господи.
160: Replay, когда ты запоминаешь во время генерации, по каким агентам ты прошёлся и ты в обучении это как-то учитываешь. Но, короче, общее наблюдение такое, что и маешки, и dance модели обладают одинаковыми свойствами относительно этих алгоритмов, то есть
161: То, что мы запускали на dance моделях репрезентативно относительно того, что мы получаем на агентах, поэтому мы не считаем, что это связано как-то именно с агентским поведением. Окей, спасибо. Спасибо.