Pull to refresh
677.21
Яндекс
Как мы делаем Яндекс

YandexGPT 2 — большое обновление языковой модели Яндекса

Level of difficultyEasy
Reading time4 min
Views53K
Сегодня на конференции Practical ML Conf была представлена новая версия нашей большой языковой модели YandexGPT 2. Она уже работает в навыке Алисы «Давай придумаем», где помогает структурировать информацию, генерировать идеи, писать тексты и многое другое. Новая модель отвечает лучше старой в 67% случаев, а в некоторых сценариях побеждает с ещё бо́льшим перевесом. Этого результата мы добились благодаря улучшениям на каждом этапе обучения модели, но ключевое изменение — новый pretrain.

Коротко расскажу о том, что изменилось в процессе обучения модели, в каких сценариях это принесло наибольший эффект и чем мы планируем заниматься дальше.



В каких сценариях новая модель особенно полезна


Для начала несколько слов о том, как модели сравниваются друг с другом. Одна и та же модель может быть сильна в одном сценарии, но проигрывать в другом. Как в таком случае определить, стала модель в целом умнее или нет?

Мы решили эту задачу так: собрали 500 максимально непохожих друг на друга примеров задач пользователей. Дальше мы отдали их старой и новой моделям и посчитали, как часто ответ новой модели оказывался лучше ответа старой. Если новая побеждает в бо́льшем числе заданий, то мы считаем её более умной. YandexGPT 2 одолела предыдущую версию в 67% случаев.

С оценкой модели в целом всё понятно. Но как она ведёт себя на конкретных срезах сценариев, которые популярны у пользователей? Чтобы понять это, мы разбили те же 500 примеров задач на отдельные группы, соответствующие разным сценариям, и замерили, как изменилось качество модели в каждой из них:
  • генерация текста — победа в 69% случаев;
  • пересказ и анализ текста — 68%;
  • брейншторм идей — 66%;
  • стилизация текста под аудиторию или персонажа — 62%;
  • ответы на вопросы — 62%.

Вот несколько примеров для разных сценариев:


Пример работы YaGPT 2 для стилизации текста


Пример ответа на вопрос в виде таблицы


Пример генерации идеи


Пример анализа текста


Пример генерации текста

Что изменилось в обучении новой модели


Есть два основных этапа обучения модели: претрейн (pretrain) и файнтюн (finetune). На первом этапе нейросеть повышает свою эрудицию и общие знания о мире, языке и задачах, а на втором — учится выполнять просьбы, придерживаться формата и стиля ответа. Об этих этапах я уже рассказывал в предыдущей статье про запуск YaGPT в Алисе. Главное, что важно помнить: проблему одного этапа нельзя решить улучшением другого.

В рассказе про запуск первой модели мы фокусировались на сборе данных для файнтюна. Сейчас более подробно расскажу про претрейн.

Задача претрейна — впитать в себя все полезные знания интернета. Самая большая сложность этого этапа — выбрать из бесконечного потока самые полезные данные для обучения. Но как понять, становится ли датасет лучше после каждой новой порции данных? Заново обучать большую модель на каждое изменение датасета и измерять её качество — невероятно долго и дорого. Если бы мы так делали, то двигались бы со скоростью улитки. Более реалистичный подход: копить много изменений в датасете и только затем переобучать модель. Но есть существенный риск не угадать с выбранным направлением и вместо роста получить падение качества.

Раньше мы отсматривали изменения сами и даже создали инструменты для ручного поиска информации в претрейне. Сбор датасета был сродни искусству. И чем лучше становился датасет, тем сложнее было искать проблемы вручную. Поэтому мы пошли другим путём.

Теперь при изменениях в датасете мы обучаем на нём маленькую, быструю модель и сравниваем её с такой же моделью для старой версии датасета. Если результат положительный, то изменение принимается. Так мы тратим ресурсы только на те изменения в датасете, которые помогают растить качество базовой модели, а это значит, что мы можем проверять существенно бо́льшее количество гипотез в единицу времени. Ключевая сложность в том, что маленькая модель не в полной мере отражает свойства большой. То есть такой подход к замерам не идеален, но на практике с ним лучше, чем без него.

Нам удалось проверить множество идей и принять среди них те, которые приносят пользу. Вот некоторые из них:
  • Обучили классификатор некачественного текста. Такой текст может содержать ошибки в кодировке, HTML-разметку, повторы предложений и тому подобное.
  • Обучили классификатор полезного текста. Текст может хорошо выглядеть, но быть бесполезным для пользователя. Полезными мы считаем тексты, которые содержат ответы на реальные запросы пользователей Яндекс Поиска.
  • Увеличили долю текстов с высокой цитируемостью.
  • Улучшили алгоритм дедупликации: дублей стало меньше 0,5%.
  • Создали отдельный инструмент для оценки «фактовой полноты». Взяли реальные фактовые запросы из Поиска и замерили, какая доля из них может получить ответ из претрейна. Увеличили эту долю с 70% до 80%.

Где попробовать и что ждать в будущем


Новая модель уже работает в Алисе в навыке «Давай придумаем». Он доступен в Яндекс Станциях, телевизорах с Алисой, приложении Яндекс, Яндекс Браузере, на странице с результатами поиска и на ya.ru. Кстати, в Поиске окно чата с нейросетью теперь можно развернуть на весь экран для более удобной работы.

Что дальше? Мы продолжим растить качество датасетов претрейна и файнтюна, поскольку по-прежнему видим хороший эффект от качественных примеров. Мы ещё не внедрили RLHF, но готовимся к этому шагу. Ну и, конечно же, продолжим внедрять YaGPT в сервисы Яндекса. Но только там, где это будет полезно.
Tags:
Hubs:
Total votes 40: ↑36 and ↓4+44
Comments88

Articles

Information

Website
www.ya.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия