Шрифт:
Интервал:
Закладка:
Вторая группа методов основана на идее постепенного усложнения заданий по мере обучения модели. Это направление в машинном обучении носит название «Обучение на базе учебного курса» [Curriculum learning][2689], [2690]. Усложнение может заключаться, например, в увеличении размера контекста (рецептивного поля) модели по мере обучения (в простом случае обучение может разделяться на две стадии: на первой модель обучается на более коротких последовательностях, а на второй — на более длинных)[2691], [2692], [2693] или в отборе для более поздних шагов обучения тех примеров из обучающей выборки, на которых обучаемая (или более простая) модель ошибается сильнее всего (такой подход называют «использованием сложных примеров» [Exploiting Hard Samples])[2694], [2695].
2. Ограниченная длина контекста (рецептивного поля) классических трансформеров. Мы уже говорили об этой проблеме в предыдущем разделе, когда рассказывали о трудностях, испытываемых современными генеративными моделями при написании длинных текстов. Объём вычислений, производимых базовым строительным элементом классических трансформеров — блоком многоголового внутреннего внимания, — растёт пропорционально квадрату длины контекста[2696]. Замедлить этот рост можно лишь ценой некоторых потерь в точности. Следовательно, актуальным становится вопрос о том, какие методы могут позволить увеличить длину контекста моделей оптимальным образом, чтобы не оставить без внимания все важные «дальнодействующие» зависимости внутри моделируемых последовательностей. Причём проблема эта относится к работе не только с длинными текстами, но и с мультимодальными данными, где она приобретает особенную остроту. Например, если мы имеем дело с мультимодальным диалогом (содержащим помимо текстовых частей картинки и звуковые сообщения), то число токенов в обрабатываемых последовательностях сильно возрастает — их нужно довольно много, чтобы закодировать звук или изображение без потери существенных деталей.
Для борьбы с этой проблемой создаются различные уже упоминавшиеся нами механизмы разреженного внимания, а также нейросети, дополненные памятью (MANN), уже упоминавшиеся нами в разделах 6.2.4 и 6.3.4.3. Тем не менее, несмотря на наличие различных многообещающих прототипов, общепринятого решения этой проблемы пока не найдено, и, как нередко бывает в современной науке, многие идеи, изначально казавшиеся перспективными, при более скрупулёзном рассмотрении не приносят ожидаемого успеха. В 2022 г. исследователи из Google Research и DeepMind тщательно протестировали различные варианты трансформерных архитектур, в том числе созданные с целью увеличения длины контекста, и пришли к неутешительному выводу: «серебряной пули»[2697] для решения этой проблемы пока что не найдено[2698]. Поэтому активные изыскания в этой области продолжаются.
3. Современные многослойные трансформеры не являются рекуррентными сетями, значит, число «шагов рассуждения» при вычислении сети конечно — это мешает моделям выполнять многие нехитрые алгоритмы (арифметические действия с большими числами, сортировка больших списков, «перевёртывание» длинных списков или текста, подсчёт элементов и т. д.).
Внимательный читатель может задаться вопросом: если вышесказанное верно, то каким же образом сервисы, подобные ChatGPT или GigaChat, способны генерировать ответы практически произвольной длины? В действительности, как мы уже рассказывали ранее, нейросети, подобные GPT-3 или ruGPT-3.5, на выходе дают лишь распределение вероятностей для следующего токена в последовательности. Сама же последовательность генерируется не нейросетью, а алгоритмом семплирования, который выбирает токены из распределения, предсказываемого нейросетью. Этот алгоритм основан обычно на нехитрой системе правил и не является продуктом машинного обучения. Сигналом окончания генерации является специальный токен, обозначающий конец текста, или же превышение заданного лимита длины последовательности. Таким образом, система, состоящая из генеративной языковой модели и алгоритма семплирования, действительно способна выполнить почти неограниченное число шагов рассуждения, однако не способна самостоятельно вырабатывать последовательность из необходимых для решения задачи шагов. Конечно, можно попытаться дообучить языковую модель на диалогах, содержащих между вопросом пользователя и правильным ответом некоторое количество прописанных в явном виде шагов рассуждения. Например:
Пользователь: Какое слово получится, если перевернуть слово «база»?
Система: Для решения этой задачи предпримем следующие шаги:
1. Берём пустую строку и слово «база».
2. Удаляем из слова «база» последнюю букву и прибавляем её к нашей строке, получаем строку «а» и слово «баз».
3. Удаляем из слова «баз» последнюю букву и прибавляем её к нашей строке, получаем строку «аз» и слово «ба».
4. Удаляем из слова «ба» последнюю букву и прибавляем её к нашей строке, получаем строку «аза» и слово «б».
5. Удаляем из слова «б» последнюю букву и прибавляем её к нашей строке, получаем строку «азаб» и пустое слово.
Теперь буквы в слове кончились, а полученная нами строка «азаб» будет ответом на заданный вопрос.
Ответ: азаб
Этот подход получил название «Цепь рассуждений» [Chain-of-Thought]. Он позволяет справиться с некоторыми несложными задачами, требующими нескольких шагов рассуждения, но, к сожалению, для его использования необходима специальная разметка обучающих данных и он подходит пока лишь для сравнительно простых задач[2699].
Этот подход вполне можно расширить до деревьев рассуждений [Tree of Thoughts][2700], а дальше и до графов[2701] и гиперграфов, почему бы и нет? Вообще одной из очевидных идей для решения проблем 2 и 3 является создание гибридных архитектур, которые могут быть получены в результате добавления рекуррентных связей в трансформерные модели. Но сделать это можно очень разными способами. Вероятно, первая попытка была предпринята в 2018 г., когда группа исследователей из DeepMind и Google Brain предложила архитектуру под названием «универсальный трансформер» [Universal Transformer]. В ней сигналы (активации) циркулируют внутри кодирующей и декодирующей частей сети до тех пор, пока не будет превышено заданное максимальное число шагов или на выходе специальной подсети, ответственной за динамическую остановку [dynamic halting], не будет сгенерирован соответствующий сигнал[2702]. В последующие годы другие исследовательские группы предложили ряд альтернативных рекуррентно-трансформерных архитектур, например: R‑Transformer[2703], Transformer-XL[2704], Looped Transformer[2705] и так далее.
Вообще важным классом моделей машинного обучения являются модели с адаптивным временем вычисления [Adaptive Computation Time] [2706], [2707] , [2708]. Идея этого подхода в том, что в модель встраивается механизм, позволяющий ей самостоятельно принимать решение о завершении вычислений, если решение, соответствующее заданным критериям, уже найдено, и продолжать вычисления, если необходимые критерии ещё не достигнуты. При этом сами критерии остановки также могут быть выучены моделью. Действительно, во многих интеллектуальных задачах для получения конечного результата в некоторых сложных случаях может потребоваться значительно больше вычислений, чем в более простых. При таком подходе вы можете динамически решать, как долго следует обрабатывать входные данные, обучая нейронную