Открываем instruct-версию YandexGPT 5 Lite

от автора

Недавно мы выложили в открытый доступ pretrain-версию модели YandexGPT 5 Lite, обученную нами с помощью технологий Яндекса и без применения каких-либо сторонних моделей. За прошедший месяц в сообществе её скачали более 15 тысяч раз, на её основе создали больше десятка квантизованных моделей и даже дообучили instruct-версии.

Тем не менее мы видим большой интерес к instruct-версии Яндекса, поэтому сегодня выкладываем её в открытый доступ. В том числе — в совместимом с llama.cpp формате, о чём нас просили на Хабре. Кроме того, мы обновили лицензионное соглашение для обеих моделей так, чтобы применять её стало возможно в ещё большем числе проектов, в том числе во многих коммерческих проектах.

Для тех, кто хотел бы попробовать новую модель онлайн, она также доступна для выбора в Чате с Алисой и через API в Yandex Cloud.

Описание новой модели

Кратко напомним о том, как обучалась модель YandexGPT 5 Lite.

Pretrain

Претрейн модели проходил в два этапа. На первом этапе модель обучалась преимущественно на русскоязычных и англоязычных текстах общим объёмом 15T токенов с длиной контекста до 8k токенов. Состав датасета: 60% — веб-страницы, 15% — код, 10% — математика, остальное — другие специфичные данные, в том числе сгенерированная с помощью наших моделей синтетика и датасеты наших сервисов, например Яндекс Переводчика и база фактов Поиска.

На втором этапе, который мы назвали Powerup, модель обучалась на высококачественных данных объёмом 320B токенов. Состав Powerup-датасета: 25% — веб-страницы, 19% — математика, 18% — код, 18% — образовательные данные, остальное — синтетика, датасеты сервисов и прочие качественные тексты. На этом этапе мы увеличили длину контекста до 32k токенов. 

Более подробно об этапах претрейна мы уже рассказывали в предыдущей статье в главе про pretrain-версию модели Lite.

Alignment

Алайнмент Lite-версии совпадает с алайнментом YandexGPT 5 Pro, о котором мы рассказывали в прошлый раз. На этапе SFT мы сконцентрировались на сложных запросах и методах фильтрации и ранжирования данных. На этапе RLHF мы комбинируем RL-подходы, которые дают лучшие результаты: DPO, LogDPO и PPO.

Однако хочется подсветить несколько моментов, которые могут быть полезны сообществу.

Не всегда один и тот же пайплайн алайнмента может быть переиспользован для разных версий модели. Все знают про подбор гиперпараметров, однако даже одинаковые данные могут привести к разным проблемам. Например, на нашей модели Lite мы увидели, что function-call разучивается после этапа DPO, что вообще не соответствовало нашему опыту с Pro-версией. Починить эту проблему удалось так: с помощью нашей модели мы сгенерировали дополнительные пары вызовов функций и добавили их в DPO.

Также хочется упомянуть проблему, когда генерируются слова, состоящие из токенов разных языков. Для авторегрессионной модели генерация контента происходит токен за токеном. Поэтому модели могут случайно написать «наboard» вместо «onboard», а конkurs может оказаться relevantным. Мы называем их лангсвопами (от англ. langswap). Модели сталкиваются с ними всё чаще по двум причинам. Во-первых, некоторые веб-разработчики или авторы контента сознательно заменяют в словах русские буквы на схожие по написанию латинские в попытке обмануть различные алгоритмы модерации или ранжирования. Во-вторых, в сети всё больше сгенерированных нейросетями текстов, которые уже содержат лангсвопы. Со временем такие тексты попадают в претрейн-датасеты и тем самым закрепляют ошибки в новых моделях. Мы стараемся фильтровать такие данные на всех этапах обучения. Также мы придумали несколько эвристик для минимизации числа таких лангсвопов на этапе RL — здесь важно добавить, что работает только подлив в DPO-стадию данных с ошибками модели. Произвольные langswap-пары слабо влияют на исправление проблемы. За счет этого нам удалось значительно минимизировать число лангсвопов, но говорить о полной победе, конечно, пока raно.

Бенчмарки и SbS

По результатам внутреннего слепого попарного сравнения (side-by-side) новая модель YandexGPT 5 Lite превосходит Qwen-2.5-7B-instruct в 62% случаев и не уступает GPT-4o mini в решении стандартных задач сервисов Яндекса.

По результатам международных бенчмарков и их адаптаций для русского языка, YandexGPT 5 Lite вплотную приблизилась к аналогам (Llama-3.1-8B-instruct и Qwen-2.5-7B-instruct) и превосходит их в ряде сценариев, в том числе — в знании русской культуры и фактов.

MMLU — 5-shot, все остальные бенчмарки — 0-shot

MMLU — 5-shot, все остальные бенчмарки — 0-shot
Напомним описания наших бенчмарков

(ya)MMLU — это автоперевод MMLU на русский язык с дополнительной корректурой и исправлением ошибок переводчиками. 

(ya)RuFacts — на основе фактового среза поисковых запросов отобрали подходящие (нетривиальные, но достоверные и не меняющиеся во времени) запросы, с помощью AI-тренеров написали эталонные ответы, а также тесты и вопросы с коротким ответом.

(ya)RuWikiFacts — на популярных страницах Википедии выбирали содержательные абзацы, к ним генерировали вопросы с помощью GPT-4o и AI-тренерами, после чего уже решали и валидировали AI-тренерами.

(ya)RuCulture — с помощью AI-тренеров собрали 2 тыс. вопросов (тестов и с коротким ответом) по русским фильмам, литературе, пословицам, сленгу и т. д., стратифицировано по темам, стратифицировано по «возрасту». Подробнее

(ya)GSM8K — автоперевод GSM8K на русский язык. 

(ya)DROP — автоперевод DROP на русский язык.

(ya)Closed-QA (Bookworm) — взяли большие, но малоизвестные художественные тексты на русском, через GPT-4o сгенерировали вопросы и варианты ответа к определённому абзацу, при замере подаём больше текста, добавляя исходный текст до и после абзаца.

(ya)Extract from recipes 32k — собрали базу рецептов на русском, через GPT-4o задали вопросы про КБЖУ (калории, белки, жиры, углеводы), время приготовления и т. д. 

(ya)SchoolMath 5–9 — на основе контрольных работ к школьным учебникам за 5–9 классы создавались новые задачи, чтобы ответы на них не содержались в свободном доступе в интернете. 

(ya)SchoolMath 10–11 — аналогично предыдущему, но для 10–11 классов.

(ya)Crowd v2 — бенчмарк, построенный на задачах краудсорсной разметки данных; оценивает, насколько модель может заменить краудсор разметчиков. 

IFEvalRU — на основе IFEval создали свой расширенный бенчмарк, добавили в него новые классы задач, которые встречаются в задачах B2B-пользователей.

Где скачать и попробовать

Hugging Face

Мы опубликовали на Hugging Face instruct-версию модели YandexGPT 5 Lite на 8B параметров с длиной контекста 32k токенов. Вместе с полными весами мы выложили квантизованную версию нашей модели в формате GGUF. Это значит, что теперь вы можете запустить YandexGPT 5 Lite даже на ноутбуке без GPU. Сделать это можно с помощью llama.cpp или Ollama.

Кроме того, мы продолжаем вести работу над лицензией, под которой наши модели публикуются в опенсорс. Изначально наша лицензия допускала свободное использование только в исследовательских и образовательных целях. Мы решили внести изменение в эту часть: теперь модель можно использовать ещё и в коммерческих проектах при условии, что они укладываются в 10 миллионов исходящих токенов в месяц. Этого достаточно для большинства малых и средних проектов. Также мы удалили из текста пункты про возмещение убытков и про возможность отзыва лицензии, так как они звучали неоднозначно. Новая редакция лицензии распространяется как на instruct-, так и на pretrain-версии YandexGPT 5 Lite.

Алиса

Для тех, кто хотел бы воспользоваться instruct-версией, но пока не готов разворачивать опенсорс на своих мощностях, мы добавили новую модель в Чат с Алисой. Выбрать её можно в разделе «Технологии» при наличии подписки с опцией Про (либо в рамках бесплатного ежедневного лимита). Напомним, что модели из этого раздела не обращаются в Поиск и не обучены «быть» Алисой.

Yandex Cloud

Модель также доступна пользователям Yandex Cloud через API и ML SDK. Ещё её можно использовать для создания ассистентов с RAG через AI Assistant API. Кроме того, пользователи могут дообучить YandexGPT 5 Lite в сервисе Foundation Models методом LoRA, чтобы кастомизировать модель для специфических задач: например, писать письма в корпоративном стиле или извлекать важные данные из документов в нужном формате.

И ещё кое-что: в сообществе нас об этом просили, поэтому теперь API сервиса Foundation Models (включает YandexGPT 5 Pro и YandexGPT 5 Lite) совместим с OpenAI API. Это значит, что вы сможете использовать наши модели с помощью библиотек OpenAI на Python, JavaScript и других языках программирования. Это позволит переключаться между нейросетями Яндекса, OpenAI и других разработчиков без изменений в коде. Модели YandexGPT теперь проще интегрировать с популярными решениями для работы с ML-технологиями: например, с платформой для запуска ИИ-ассистентов AutoGPT и с инструментом для создания приложений на базе нейросетей LangChain.

Пример работы с API
from openai import OpenAI  # Инициализация клиента client = OpenAI(     api_key="",  # Укажите ваш API ключ     base_url="https://llm.api.cloud.yandex.net/v1"  # Укажите базовый URL вашего сервера )  response = client.chat.completions.create(     model="gpt://тут_айди_фолдера/yandexgpt/latest",     messages=[         {"role": "user", "content": "Напиши стихотворение про кетчунез"}     ],     max_tokens=10000,     temperature=0.7,     stream=True )  # Получение результата for chunk in response:     if chunk.choices[0].delta.content is not None:         print(chunk.choices[0].delta.content, end="")

Заключение

Сегодня мы впервые в нашей практике опубликовали instruct-версию модели, которая разработана и применяется в Яндексе. YandexGPT 5 Lite создана на базе собственной pretrain-версии, без применения каких-либо сторонних моделей. При её обучении мы переиспользовали наш опыт в алайнменте, который приобрели в процессе работы над Pro-версией. По качеству модель сопоставима с решениями Llama и Qwen схожих размеров (а в ряде ключевых для нас сценариев — превосходит их). Новая модель уже доступна для использования в Чате с Алисой или через API в Yandex Cloud.

Спасибо всем, кто тестировал, квантизировал, дообучал или даже просто комментировал pretrain-модель, которой мы поделились месяц назад. Во многом именно ваша обратная связь помогла нам при подготовке публикации instruct-версии. Будем ждать ваших отзывов и в этот раз.


ссылка на оригинал статьи https://habr.com/ru/articles/895428/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *