Хватит сидеть на промптах! Альтман нас ограничивает! Мы хотим дообучить опенсорс LLM на наших данных, чтобы оптимизировать нашу задачу.
По теореме о бесплатных завтраках вы абсолютно правы. Оптимизация под конкретную область должна бить базовое решение. Теоретически. А на практике?
На практике.
Начнём издалека. Вы купили автомобиль. Не самые глупые люди много времени настраивали двигатель, коробку передач, рулевое управление… чтобы все работало вместе хорошо. Сбалансированно. Вот вы его купили и стали тюнинговать. Вкорячили турбину, занизили, поставили колонки в багажник (и не забыли проинформировать ГИБДД!)
Если вы не Xzibit, то большой шанс, что машина потеряет статус «все стабильно работает», которого добивались инженеры на заводе. Нештатные ситуации будут случаться намного чаще. Будет хуже управляться, иногда ломаться и чаще кряхтеть. А могли бы просто спокойно ездить на дачу на заводском…
Сева, блин, при чем тут LLM?
В обучении базовых LLM есть стадия “alignment”. Она нужна, чтобы модель поняла, что вообще от нее хочет человек. Изначально модель пыталась просто токен следующий предсказать, никто ей не объяснил, что вообще-то она создана, чтобы созвоны суммаризовывать. "Заводской" alignment делает много умных ИИ-инженеров в несколько стадий (более подробно смотрите мою любимую лекцию)
Можно считать, что это базовая настройка модели, которая еще защищает ее от делания гадостей. Когда ее просят наврать в ответе, послать пользователя на 3 буквы, выдать
Неправильное дообучение может, например, заставить модель сильнее галлюцинировать. Почему? Посмотрите, например, статью от коллег из Google. Вы добавили в обучающее множество информацию, которой не было у модели во время pretraining. Это вызывает у нее противоречие: "я про это первый раз слышу, вы сейчас просите так отвечать, мне теперь всегда надо ответы придумывать?" Я так тоже делал в универе, когда пропустил 90% материала и пытался выучить билеты за ночь.
Когда нужно дообучать?
Я знаю ровно 3 кейса:
1) Невозможно в промпте описать все ваши продуктовые желания. Например, вы хотите с помощью LLM писать карточки товаров, максимизируя CTR клика. Словами это так просто не передать.
2) У вас так много запросов, что вам дешевле поднять LLM на своем железе, чем платить за каждый запрос в API.
3) Вы не хотите, чтобы данные выходили за ваш контур.
Заключение
Делайте дообучение, только если без него совсем нельзя. Например, еще есть промпты и RAG.
А если уж решили прокачивать вашу LLM, то делайте это как Xzibit. Чтобы разобраться, как это делать, настоятельно рекомендую этот канал.