OpenAI o1 — LLM, обученная выполнять сложные логические рассуждения
OpenAI изменили направление развития своих языковых моделей, от просто генерации текста их последняя модель перешла к решению задач с использованием логики и пошагового анализа проблемы.
До сих пор LLM генерировали текст на основе данных, использованных в процессе обучения. Веса модели хранят представление о зависимостях между текстовыми токенами, полученное из исходного корпуса данных. Соответственно, модель просто генерирует наиболее вероятные токены «по памяти», но не выполняет с их помощью никакой по-настоящему интеллектуальной работы.
o1 — это модель рассуждения, которая разбивает сложную проблему на промежуточные шаги, делает осмысленные выводы на каждом из них и в итоге приходит к финальному ответу. Есть два важных ингредиента в этом процессе.
Во-первых, промпт, который требует от модели выполнять пошаговое рассуждение, «Chain of Thoughts» (Wei et al., 2022). Было установлено, что инференс с таким промптом заметно улучшает способность модели строить логически верные рассуждения.
Отличие CoT от обычного промпта видно на этом изображении: в примере ответа приводится пример цепочки рассуждений, который модель может использовать для нахождения правильного ответа.
Второй ингредиент более сложный — модель обучают генерировать собственные цепочки мыслей. С помощью Reinforcement Learning — обучения с подкреплением — модель тренируют формировать наиболее эффективные цепочки, ведущие к правильному решению. И это — действительно важное открытие, которое позволяет масштабировать модели в сторону все более и более сложных рассуждений, задач, требующих нетривиальной логики.
Досадно то, что OpenAI не открыли доступ к своим цепочкам рассуждений, которыми оперирует o1. Официальная причина — рассуждения модели не цензурируются, чтобы они не потеряли эффективность. Так что пользователь видит только краткое саммари и финальный ответ. Но основная причина того, что цепочки мыслей скрыты, это защита от конкурентов, как легко догадаться. Используя тот же подход обучения с подкреплением и данные цепочек мыслей, можно было бы обучить открытую модель генерировать их так же, как это делает o1.
Впрочем, рано или поздно это все равно произойдет. Недавно компания SambaNova опубликовала демо на HuggingFace — Llama-3.1-Instruct-O1. Как становится понятным из названия, они использовали модель Llama-3.1-Instruct, а именно версию 405B. Модель работает со сложным системным промптом, который заставляет ее строить цепочки мыслей, что похоже на o1. Этот эксперимент показывает достаточно хорошие результаты. Осталось улучшить способность Llama или другой открытой модели генерировать собственные цепочки мыслей путем обучения или файнтюнинга.
Генерация сложных цепочек мыслей действительно требует значительных ресурсов, и при выборе вычислительных мощностей нужно учитывать, как оно справляется с высокими нагрузками. Одно из решений — использование квантизации моделей и серверных видеокарт с высокой пропускной способностью. В своих экспериментах я пробую разные облачные платформы, включая те, которые предлагают производительные видеокарты. Если вам интересно, какие результаты я получил, можно ознакомиться с подробным анализом на моем YouTube канале, где я делюсь своим опытом работы с различными конфигурациями.
Скорость генерации становится особенно важной для моделей рассуждений типа o1. Качество ответа повышается пропорционально времени, которое модель тратит на обдумывание проблемы. Но ждать ответа часами пользователь не может, поэтому например SambaNova для своего демо использовали собственный AI-чип SN40L, с помощью чего удалось достичь скорости генерации 129 токенов в секунду. Еще один известный стартап в области AI-чипов, который преодолевает лимит скорости генерации — Groq. Такие решения понадобятся для инференса «думающих» языковых моделей.