tgoop.com/knowledge_accumulator/219
Last Update:
Training language models to follow instructions with human feedback [2022]
Те, кто на канал подписан давно, знают, что я делаю обзоры и на классику. RLHF уже можно считать таковой, но я хотел бы взглянуть на эту работу под необычным углом.
Вспомним базовый механизм:
1) Supervised Finetuning - модель файнтюнят на датасете prompt -> output, где output сгенерирован человеком
2) Для набора промптов генерируют пачки вариантов output, далее человек их сортирует, показывая, какие лучше. Учим Reward Model (RM) - модель-энкодер, которая по тексту говорит, насколько он 👍
3) Сам RL - с помощью PPO учим генератор токенов выдавать такую последовательность, которую предпочтёт RM
Итак, теперь давайте проведём RL-аналогию с Го. Действия - это токены или ходы в игре. Состояние - это контекст - весь уже сгенерированный текст или состояние доски в Го. Награда - в случае текстов это выход из Reward Model, а в Го это простая программа, которая со 100% точностью считает, кто выиграл в конце игры.
В Го мы наблюдаем стандартный феномен - это "NP-задача", в которой элементарно понять, выиграна ли игра в конце, но очень сложно сгенерировать траекторию. На доске в 19x19 клеточек генератор учат на миллионах игр, выжимая из RM кучу информации и пытаясь ей угодить. И несмотря на это, на практике приблизиться к RM невозможно, хотя человека обойти всё же удаётся.
Возвращаемся к текстовому RLHF - чем он отличается от Го? Тут несопоставимо более сложное пространство состояний и действий, чем у настольной игры, то есть разрыв между RM и генератором должен быть более существенный. Да, над разрешением проблемы работают, и Chain of Thoughts / Tree of Thoughts / o1 как раз про это - модель лучше умеет понимать по тексту, хороший ли он, и мы ищем способы вытащить из неё крутые траектории.
Но есть более фундаментальная проблема - может быть, вы догадались, это RM. Представим, что произошло нечто невероятное и наш генератор сравнялся с RM по своей крутости - аналог того, что мы в Го построили бы полное дерево по всем 10^170 состояниям. Давайте подумаем, насколько текстовая RM "крутая" вещь?
Фундаментально, её "крутость" ограничена теми данными, на которых она обучалась. У нас есть размеченный людьми датасет из предпочтений ответов, сгенерированных самим генератором (или может быть людьми в каких-то датасетах). Думаю, можно предполагать, что RM по крутости близка к LLM, делающей вывод о готовом ответе. Измеряется крутость разными вещами - например, по уровню запоминания информации она сильно лучше человека, но далека от самого интернета - иначе бы она хотя бы знала все статьи с arxiv. С логикой и решением новых задач наблюдаются сложности.
На мой взгляд, это вполне легко объясняется - у вас есть огромный трансформер, обучающийся предсказывать крутость текста, причём тексты большие, а сэмплов явно не миллиарды (уже на этапе RLHF). У RM есть 2 варианта - закодировать логический вывод, способность обучаться и человеческий интеллект во всех его проявлениях или выучить простые статистические паттерны того, какие комбинации токенов в каком примерно порядке хорошо, а какие плохо. Наиболее простое решение - второе.
Это очень хорошо видно на тестировании LLM на задаче Монти-Холла. Вы даёте модели любую задачку про 3 двери, машину и 2 козы, а у неё в 99.999% обучающих данных с таким контекстом содержится ответ "выбрать другую дверь". Вот она и выбирает другую дверь, какую бы вы модификацию задачи не дали.
Для того, чтобы модель пользовалась логикой, а не релаксированным запоминанием, нужен другой баланс объёма модели, кол-ва данных и, главное, характера данных - необходимы "adversarial"-образцы, в которых ответ неправильный только из-за логической ошибки, хотя вроде бы последовательность очень близка к верной. Тогда мы, может быть, приблизим LLM к чему-то мыслящему.
@knowledge_accumulator
BY Knowledge Accumulator
Share with your friend now:
tgoop.com/knowledge_accumulator/219