В апреле я побывал в гостях в Университете Тарту. И одна из свежих штук, которую мне там показали - это эстонская LLaMA, названная llammas (по-эстонски баран, ибо модель получилась весьма упрямая 🐏). Вот статья про неё.



Что её авторы сделали:

1. До-предобучили Llama-2-7B на 5B токенов: 75% эстонских и 25% английских (чтобы английский не забывался).

1. Сгенерировали с помощью GPT-3.5-turbo датасет, аналогичный Alpaca, на эстонском (50K примеров).

1. Взяли кучу открытых шумных датасетов для перевода между английским и эстонским, и сконвертировали их в формат инструкций (1М примеров). Дополнительно взяли ещё 2К более чистых примеров для перевода.

1. Дообучили эту модель: сначала опционально на полном датасете перевода (1М примеров), потом на чистом переводе и английских и эстонских инструкциях (100К примеров из английской и эстонской альпак, и ещё 25К из более качественных английских инструкций).

1. Оценили модель на задачах question answering, choice of plausible alternative, grammatical error correction, и перевода.



Что выяснили:

- Для большинства задач (кроме CoPA) большая часть эффекта от продолженного предобучения на эстонском была достигнута уже на 1B токенов.

- Если дообучать сначала на полном датасете для перевода, а потом на инструкциях, то перевод и исправление ошибок даются модели лучше, а логика и ответы на вопросы - хуже, чем если дообучать сразу на инструкциях.

- Модели, дообученные на инструкциях, в принципе способны поддерживать осмысленную беседу на эстонском, хоть они и не всегда звучат естественно.

- Модель переводит между эстонским и английским достаточно близко к уровню SOTA (типа NLLB).

- На большинстве английских бенчмарков модель, которую до-предобучили на смеси эстонского с английским, не очень сильно падает в качестве по сравнению с исходной.

- Нужно ли дообучаться на большом датасете для перевода, и нужно ли это делать вперемешку с инструкциями или до них, не вполне понятно (разные задачи дают разные сигналы). Но в целом нет свидетельств, что реально много параллельных текстов для такой модели нужно.



Из этого, казалось бы, можно сделать вывод, что для адаптации LLM к новому языку не очень-то и нужно иметь много хороших параллельных данных для этого языка; достаточно иметь большой моноязычный датасет для продолженного предобучения (хотя бы 1B токенов, при том что токенайзер LLaMA даёт для эстонского в среднем вдвое больше токенов на предложение, чем для английского) и умеренно большой датасет с инструкциями.

Но как раз наличие датасета с инструкциями и представляет из себя большое "но": он был получен благодаря магии GPT, который уже каким-то чудом знает эстонский достаточно хорошо. А значит, для языков, на которых GPT работает не так классно, такой датасет нужно будет ли собирать вручную с нуля, или переводить с других языков. Так что я думаю, что без этапа создания хорошего машинного перевода - а значит, и сбора хороших параллельных корпусов - всё-таки не обойтись.



Ну и да, основной позитивный сингал: если таки вы нашли данные, то даже такую англоцентричную модель, как LLaMA 2, можно адаптировать на такой нишевой язык, как эстонский, за где-то 1300 GPU-часов (как это сделали TartuNLP), или даже, скажем, всего за 300 (если предобучаться на 1 млрд токенов, а не на 5, что уже тоже даёт неплохой результат). То есть: doable даже в домашних условиях.