У каждого есть свое мнение о выборе между fine-tuning и RAG. Пролистайте любой ИИ-форум, и вы найдете жаркие дискуссии, полные диаграмм архитектуры и заявлений о результатах бенчмарков. Большинство авторов этих комментариев никогда не обучали модель на собственных данных и не видели, как RAG-конвейер незаметно ломается в продакшене.

Я потратил месяцы на проведение экспериментов. Точнее, на двенадцать. Я проводил fine-tuning LLM. Я дообучал эмбеддеры. Я построил шесть различных конфигураций RAG. Областью исследования было финансовое прогнозирование, а именно попытка предсказать шумные рыночные результаты на основе хаотичных исторических данных. Я придерживался строгих статистических стандартов, потому что мне нужны были реальные ответы, а не заявления из постов в блогах.

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

Горькая правда о сигнале

Прежде чем переходить к деталям, вот урок, который связывает всё воедино. Fine-tuning и RAG — это инструменты для изменения того, что модель знает или что она видит. Это не волшебные палочки, создающие сигнал из ничего. Если ваши исходные данные не содержат реального, пригодного для использования паттерна, эти методы его не создадут. Они лишь помогут вам построить более убедительную историю вокруг случайного шума.

В финансовом прогнозировании эта ловушка особенно опасна. Рынки шумны по своей природе. Когда вы привязываете мощную LLM к историческим ценовым данным и добавляете поиск (retrieval) или fine-tuning, вы не получаете преимущество автоматически. Вы получаете более красноречивый способ рационализации подбрасывания монетки. Если сигнала нет, модель становится очень искусной в том, чтобы лгать вам. Сначала нужно убедиться в наличии сигнала.

Когда большая модель запоминает вместо того, чтобы учиться

Моей первой серьезной ошибкой было предположение, что масштаб решит все проблемы. Я тестировал модель с 14 миллиардами параметров против модели с 7 миллиардами на ровно 777 обучающих примерах. Большая модель показала заметно лучший eval_loss. Ее перплексия снизилась. На бумаге она училась.

Затем я посмотрел на win rate — реальную долю правильных предсказаний модели. Модель на 14B показала себя значительно хуже, чем модель на 7B. Она просто зазубрила шум в обучающей выборке. При наличии менее 3000 примеров у большой модели хватило емкости, чтобы переобучиться на ложных корреляциях и случайных колебаниях данных. По сути, она построила таблицу поиска (lookup table) шума.

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

Не доверяйте кривой потерь

Я научился перестать пялиться на кривые потерь. Модель может улучшать свою кросс-энтропию на уровне токенов, становясь при этом хуже в принятии реальных бизнес-решений, которые вас интересуют. Это происходит потому, что функция потерь языкового моделирования поощряет точное предсказание следующего токена. Во многих областях, особенно в финансах, правильное решение и наиболее вероятный следующий токен — это не одно и то же.

Я видел модели, которые прекрасно воспроизводили тексты из обучающей выборки, но каждый раз выбирали неверное направление ставки. Потери снижались. Банковский счет снижался вместе с ними. Выбирайте метрику оценки, исходя из реальной задачи. Если вы ранжируете документы, измеряйте качество ранжирования. Если вы прогнозируете результаты, измеряйте точность решений. Никогда не позволяйте eval_loss выбирать модель за вас.

Fine-tuning эффективен только для незнакомой лексики

Я провел испытания по fine-tuning эмбеддеров на двух разных типах текстов. Первый использовал стандартные финансовые новости и публичную отчетность. Дообученный эмбеддер и готовая версия (off-the-shelf) работали идентично. Базовая модель уже знала этот язык. Я работал на знакомой территории.

Второй набор данных был полон частного жаргона, внутренних кодовых имен и специфической отраслевой аббревиатуры, которая никогда не встречалась в открытом интернете. Здесь fine-tuning улучшил точность поиска на 79 процентов. Базовая модель просто не знала, что означают эти термины. Fine-tuning научил ее местному словарю.

Это полностью изменило мой взгляд на задачу. Fine-tuning нужен не для того, чтобы сделать модель умнее в каком-то общем смысле. Он нужен, чтобы обучить ее новому словарю, новому формату или корпоративному стилю. Если ваши данные похожи на интернет, пропустите этап fine-tuning. Если ваши данные говорят на языке, который базовая модель никогда не видела, fine-tuning становится необходимым.

RAG дает уверенность, а не истину

Я протестировал восемь различных конфигураций RAG для задач прогнозирования. Везде добавление поиска (retrieval) меняло примерно 30 процентов решений модели. Это звучит весомо. Но это было не так. Эти изменения были чистым шумом. Общая точность не улучшилась. Изменилась лишь уверенность модели. RAG заставлял систему звучать более уверенно, приводить больше источников и выдавать более длинные обоснования. И всё это при том, что она ошибалась так же часто.

Такая самоуверенность — это продуктовый риск. Пользователь видит цитаты и предполагает, что модель «сделала домашнее задание». На самом деле это было лишь изощренное гадание на кофейной гуще.

Самый болезненный урок я извлек из бэктестинга одного варианта RAG. Он показал 11 процентов годовой прибыли. На первый взгляд, это выглядит как выигрышная стратегия. Но его AUC (площадь под ROC-кривой, показатель качества классификации) составил 0,486. Это хуже, чем подбрасывание монетки, результат которого равен 0,500. Прибыль была случайностью, вызванной конкретным рыночным периодом, а не повторяемым преимуществом. Использовать только P&L в качестве метрики опасно. Рынки постоянно подбрасывают полосы везения. Вам нужны статистические метрики мастерства, чтобы отличить случайность от компетентности.

Знайте, что на самом деле делает каждый инструмент

Итак, к чему мы пришли? Используйте fine-tuning, когда модели нужно выучить новые слова, специфические форматы или особый стиль. Используйте RAG, когда модели нужен доступ к фактам, репозиториям кода или институциональной памяти, которая находится вне её весов. Не используйте ни один из этих инструментов, чтобы искать сигнал в данных, где его нет. Если лежащей в основе закономерности не существует, поиск и fine-tuning лишь помогут вам «одеть» шум в более элегантный костюм.

Настоящее узкое место

Настроить инфраструктуру для fine-tuning и RAG еще никогда не было так просто. Вы можете развернуть пайплайн за один день. Технология больше не является узким местом. Узкое место — это оценка (evaluation). Большинство команд пропускают сложную статистическую работу и вместо этого празднуют достижение «метрик тщеславия» (vanity metrics). Они выпускают системы, которые звучат умно, но незаметно терпят крах.

Проводите честные тесты, прежде чем тратить деньги. Ставьте свои метрики под сомнение. Проверяйте на переобучение (overfitting). Убедитесь, что модель действительно стала лучше,