RAG или fine-tuning: сначала определите, чего не хватает AI-системе — знаний или поведения

RAG или fine-tuning: сначала определите, чего не хватает AI-системе — знаний или поведения

Почему выбор между RAG и fine-tuning начинается не с технологии, а с диагностики сбоя: knowledge gap, behavior gap и eval baseline.

В AI-проектах слишком часто начинают с названия технологии: «нам нужен RAG», «давайте дообучим модель», «нужна своя база знаний». Но до выбора архитектуры важнее понять, что именно сейчас не работает. Модели может не хватать информации. Она может получать нужные данные, но вести себя нестабильно. Или проблема может быть сразу в обоих слоях. И только после этого имеет смысл обсуждать RAG, fine-tuning или hybrid. В этой статье я разбираю, как разделяю knowledge problem и behavior problem, какие проверки делаю до усложнения системы и какие вопросы стоит задать до того, как платить за очередной AI-компонент.

Бизнес часто начинает не с проблемы, а с названия технологии.

«Нам нужен RAG».«Давайте дообучим модель».«Нужна собственная база знаний».«Fine-tuning сделает ответы стабильными».

Но RAG и fine-tuning меняют разные части AI-системы. Один подход помогает модели получать внешние знания во время работы. Другой меняет поведение самой модели на основе обучающих примеров.

Поэтому вопрос «что лучше — RAG или fine-tuning?» поставлен неправильно.

Сначала нужно понять, какой именно сбой наблюдается:

  • модели не хватает знаний;
  • модель знает достаточно, но ведёт себя нестабильно;
  • системе одновременно не хватает и знаний, и устойчивого поведения.

Пока этот диагноз не поставлен и не подтверждён тестами, покупка сложной архитектуры остаётся ставкой на предположение.

Что на самом деле делает RAG

RAG — Retrieval-Augmented Generation, или генерация с дополненным поиском.

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

Упрощённо процесс выглядит так:

вопрос пользователя → поиск релевантных фрагментов → передача найденного контекста модели → формирование ответа

Знания при этом не обязательно переносятся в веса базовой модели. Они могут оставаться во внешнем корпусе: документах, базе знаний, индексе или другом подключённом источнике.

Это важно, когда информация:

  • регулярно изменяется;
  • принадлежит компании;
  • слишком велика для постоянного включения в prompt;
  • должна обновляться независимо от модели;
  • требует ссылок на использованные источники.

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

Но RAG не означает, что модель автоматически получает свежие и правильные знания.

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

Само наличие векторной базы ничего из этого не гарантирует.

Что на самом деле делает fine-tuning

Supervised fine-tuning обучает существующую модель на примерах желаемых входов и выходов.

Модели показывают, как она должна выполнять конкретную задачу:

  • как классифицировать обращения;
  • как соблюдать нужный формат;
  • какой стиль ответа использовать;
  • как следовать специализированным инструкциям;
  • какое поведение воспроизводить стабильнее.

В отличие от RAG, fine-tuning меняет параметры модели. Он не добавляет этап поиска по внешней базе во время каждого запроса.

Упрощённая логика выглядит так:

подготовленные примеры → обучение модели → изменение её поведения → проверка на отдельном наборе задач

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

Он также не является правильным способом «загрузить документы в модель», чтобы потом точно извлекать из неё факты. Если информация регулярно меняется или должна сопровождаться проверяемыми источниками, проблему нельзя автоматически считать задачей fine-tuning.

Главная диагностика: знания, поведение или оба компонента

Разделение на knowledge problem, behavior problem и combined problem — моя архитектурная эвристика. Это не универсальный отраслевой закон, но для бизнеса она помогает не смешивать разные типы сбоев.

1. Knowledge problem: модели не хватает нужной информации

Knowledge problem возникает, когда модель не получает:

  • актуальные сведения;
  • внутренние документы;
  • специализированные данные;
  • регулярно изменяющуюся информацию;
  • контекст конкретного продукта или процесса.

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

В этом случае рассматривается RAG.

Например, гипотетическая система поддержки должна отвечать по текущей версии регламента. Если регламент изменился, а модель его не видит, дополнительная работа над стилем ответа не решит проблему. Сначала нужно обеспечить доступ к актуальному источнику и проверить, способен ли retrieval находить нужный фрагмент.

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

2. Behavior problem: данные есть, но результат нестабилен

Behavior problem возникает, когда модель получает необходимую информацию, но:

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

Однако из этого ещё не следует, что системе нужен fine-tuning.

Сначала я бы проверила более простые способы управления поведением:

  1. точность prompt;
  2. системные instructions;
  3. качественные examples или few-shot;
  4. Structured Outputs;
  5. детерминированные validators;
  6. измеримые evals.

Few-shot examples позволяют показать модели нужный pattern прямо внутри prompt без отдельного обучения.

Structured Outputs в OpenAI могут обеспечить соответствие ответа заданной JSON Schema. Это снижает количество форматных дефектов, но не доказывает, что содержание ответа правильно, факты верны или бизнес-правила соблюдены.

Validator может проверить обязательные поля, допустимые значения или формальные ограничения. Но если требуется оценить смысл, одной проверки структуры также недостаточно.

Fine-tuning рассматривается, когда после настройки этих controls измеряемое поведение всё равно не достигает установленной цели и это подтверждено eval-результатами.

Не потому, что fine-tuning звучит серьёзнее. А потому, что уже доказана недостаточность более простого решения.

3. Knowledge + behavior problem: системе не хватает и данных, и устойчивости

Иногда система должна одновременно:

  • получать актуальную информацию из внешних источников;
  • выполнять специализированную задачу с устойчивым поведением.

Тогда RAG и fine-tuning могут применяться совместно.

Retrieval отвечает за получение текущих знаний. Fine-tuning может оптимизировать поведение модели на конкретной задаче.

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

Сначала нужно отдельно доказать:

  • наличие knowledge gap;
  • наличие behavior gap;
  • недостаточность более простых controls;
  • ценность усложнения по сравнению с дополнительной стоимостью и сопровождением.

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

Когда хорошего prompt может быть достаточно

Prompt часто воспринимают как временную настройку перед «настоящей архитектурой». Это ошибка.

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

Для начала можно проверить:

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

Важно не утверждать, что prompt всегда обязан быть первым решением для любого провайдера и сценария. Правильнее сказать иначе: до инвестиций в fine-tuning нужно проверить более простые controls и измерить, действительно ли они недостаточны.

Именно такую последовательность — eval baseline, prompting и только затем возможный fine-tuning — описывает официальный OpenAI optimization workflow.

Это vendor guidance OpenAI, а не универсальный закон для каждого поставщика и каждой задачи.

Когда RAG может быть оправдан

RAG стоит рассматривать, когда системе нужны внешние, внутренние, большие или изменяющиеся знания.

Сильными признаками являются:

  • информация регулярно обновляется;
  • документы нельзя постоянно помещать в prompt целиком;
  • важна связь ответа с конкретным источником;
  • знания должны оставаться вне весов модели;
  • требуется управляемое обновление corpus;
  • нужно разделять доступ к разным источникам.

Но перед выбором RAG нужно ответить не только на вопрос «где будет векторная база».

Нужно определить:

  • какие источники разрешены;
  • как документы будут обрабатываться;
  • как текст будет делиться на фрагменты;
  • как выполняется индексация;
  • как оценивается релевантность retrieval;
  • нужен ли reranking;
  • как собирается context;
  • как сохраняется provenance;
  • как обновляются и удаляются документы;
  • как ограничиваются права доступа;
  • как проверяется итоговый ответ.

RAG может улучшить grounding, если retrieval действительно находит нужную информацию. Но слабый поиск или неправильная генерация всё равно могут привести к неподтверждённому ответу.

Когда fine-tuning может быть оправдан

Fine-tuning можно рассматривать, когда у проекта есть измеримая поведенческая задача и representative examples желаемого результата.

Например:

  • стабильная специализированная классификация;
  • соблюдение сложного формата;
  • повторяемый стиль;
  • устойчивое выполнение определённой инструкции;
  • task-specific behavior, которое не удаётся получить через более простые controls.

Но до начала обучения нужны:

  • качественные примеры;
  • отдельная evaluation;
  • подтверждённая поддержка метода выбранной моделью;
  • доступность для нужного региона и аккаунта;
  • правила версионирования;
  • план сопровождения;
  • способ обнаружить деградацию;
  • возможность отката.

Fine-tuning может улучшить целевую задачу и одновременно ухудшить поведение за её пределами. Среди рисков остаются overfitting, drift и необходимость повторной проверки после изменений данных, модели или требований.

Точный объём training data, продолжительность обучения, стоимость и ожидаемый прирост качества нельзя определить без конкретного provider, model, task и eval baseline.

Важное ограничение: доступность fine-tuning нельзя считать гарантированной

Fine-tuning — не абстрактная возможность, которую можно просто заложить в архитектуру и считать доступной.

Его доступность зависит от конкретного:

  • провайдера;
  • семейства моделей;
  • модели;
  • региона;
  • типа аккаунта или организации;
  • способа доступа к API;
  • текущих продуктовых ограничений.

Условия и список поддерживаемых моделей у провайдеров могут меняться.

Поэтому перед проектированием нельзя исходить из формулы:

«Если понадобится fine-tuning, потом просто включим его».

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

У OpenAI доступность fine-tuning менялась в 2026 году, поэтому перед проектированием нельзя считать этот метод автоматически доступным. Нужно проверять актуальную документацию, поддерживаемые модели и ограничения конкретной организации или аккаунта.

То же относится и к другим провайдерам: возможность fine-tuning может зависеть от модели, региона и типа кастомизации.

Это важный архитектурный принцип:

Provider capability нельзя считать частью архитектуры, пока она не подтверждена для реального проекта.

Почему RAG тоже может не сработать

Основной риск RAG — считать его одним готовым компонентом.

На практике качество зависит от всей retrieval pipeline:

Parsing

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

Chunking

Слишком маленькие фрагменты могут потерять смысл. Слишком большие — добавить лишний контекст и ухудшить поиск.

Index configuration

Выбор способа индексации и представления документов влияет на то, какие фрагменты будут считаться релевантными.

Retrieval relevance

Наличие нужного документа в базе не означает, что система найдёт правильный участок по конкретному вопросу.

Reranking

Первично найденные результаты могут нуждаться в дополнительной сортировке.

Context assembly

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

Privacy and permissions

Система не должна извлекать документ только потому, что он технически присутствует в corpus. Доступ должен учитывать права конкретного пользователя и назначение запроса.

Evaluation

Retrieval layer требует собственной проверки. Недостаточно оценивать только красивый финальный ответ. Нужно понимать, был ли найден правильный источник и на чём построен результат.

Поэтому RAG — это не «подключить векторную базу». Это отдельная система поиска, обновления, контроля доступа и оценки качества.

Почему fine-tuning тоже может не сработать

Fine-tuning не компенсирует слабую постановку задачи.

Если обучающие примеры:

  • противоречат друг другу;
  • не отражают реальные запросы;
  • содержат ошибки;
  • покрывают слишком узкий сценарий;
  • не отделены от evaluation data;
  • не соответствуют текущим бизнес-правилам,

модель может закрепить неправильное поведение.

Даже успешный результат на training examples ещё не доказывает качество на новых входах.

После обучения остаются вопросы:

  • как модель ведёт себя вне обучающего распределения;
  • не ухудшились ли другие задачи;
  • как обнаруживается drift;
  • кто обновляет dataset;
  • когда требуется новое обучение;
  • какая версия модели используется;
  • как выполняется rollback.

Fine-tuning не отменяет необходимость prompt, контроля результата и человеческой проверки в критических процессах.

Экономика: где на самом деле возникают расходы

Нельзя универсально утверждать, что RAG дешевле, а fine-tuning дороже. Эти подходы переносят расходы в разные части жизненного цикла системы.

Расходы RAG

RAG может потребовать:

  • подготовки и очистки источников;
  • ingestion pipeline;
  • parsing;
  • chunking;
  • embedding;
  • index или storage;
  • обновления и повторной индексации;
  • retrieval;
  • reranking;
  • дополнительного context в запросах;
  • контроля доступа;
  • оценки retrieval quality;
  • обслуживания corpus.

К этому добавляется latency: перед генерацией система должна выполнить поиск и собрать контекст.

Расходы fine-tuning

Fine-tuning может потребовать:

  • подготовки task-specific dataset;
  • проверки и разметки примеров;
  • обучения;
  • отдельной evaluation;
  • хранения версий;
  • повторного обучения;
  • мониторинга drift;
  • поддержки provider-specific pipeline;
  • сопровождения после изменения требований.

В некоторых provider contexts fine-tuning может уменьшить объём инструкций или примеров, которые приходится передавать при каждом запросе. Но делать универсальный вывод о снижении стоимости или latency без конкретных условий нельзя.

Расходы hybrid

Hybrid-система объединяет два контура:

  • retrieval и обновление знаний;
  • обучение и сопровождение специализированного поведения.

Следовательно, она может объединить и расходы обоих подходов.

Поэтому экономику нужно считать не по названию архитектуры, а по полному lifecycle:

создание → проверка → эксплуатация → обновление → мониторинг → исправление ошибок → откат

Без выбранного provider, модели, объёма traffic, размера corpus и quality target точные расходы остаются UNKNOWN.

Privacy, доступы и проверяемость

Архитектурный выбор нельзя отделять от данных.

До загрузки документов в retrieval-систему нужно определить:

  • кто имеет право использовать данные;
  • где они будут храниться;
  • какие роли могут их извлекать;
  • как удаляются устаревшие материалы;
  • сохраняется ли provenance;
  • выводятся ли citations;
  • можно ли восстановить источник конкретного ответа;
  • как предотвращается доступ к чужим документам.

Traceability не возникает автоматически вместе с RAG. Она появляется только тогда, когда система сохраняет происхождение найденных фрагментов и выводит его в проверяемой форме.

Для fine-tuning отдельно нужно подтвердить право использовать examples для обучения. Наличие технического доступа к переписке, документу или базе не означает наличия разрешения включать эти данные в training dataset.

Для consumer ChatGPT и Plus использование данных зависит от account-level Data Controls. По официальной документации OpenAI пользователь может выключить настройку Improve the model for everyone, после чего новые conversations не используются для обучения моделей.

Но эта настройка не является разрешением загружать клиентские или закрытые данные.

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

Как я бы начинала

Я бы не начинала с покупки vector database, подготовки dataset или выбора модели для fine-tuning.

Первый шаг — зафиксировать один измеряемый failure.

Например:

  • система не находит нужный пункт в документации;
  • система получает правильные данные, но нарушает формат;
  • одинаковые обращения классифицируются нестабильно;
  • ответы не содержат проверяемых источников;
  • текущие instructions не достигают установленного уровня качества.

Затем я бы собрала небольшой набор representative examples и создала baseline eval.

Для knowledge problem нужно проверить:

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

Для behavior problem нужно сравнить:

  • текущий prompt;
  • улучшенные instructions;
  • few-shot examples;
  • structured output;
  • validators;
  • фактическую стабильность на одном eval-наборе.

Только после этого можно принимать решение:

не хватает знаний → проверяем RAG не хватает поведения → проверяем controls → при доказанной недостаточности рассматриваем fine-tuning не хватает обоих компонентов → отдельно доказываем обе потребности → только затем рассматриваем hybrid

Без baseline невозможно понять, улучшила ли новая архитектура результат или просто сделала систему сложнее.

Вопросы, которые нужно задать до выбора архитектуры

Перед тем как оплачивать RAG, fine-tuning или hybrid, предпринимателю или заказчику стоит получить ответы на двенадцать вопросов.

1. Какой конкретный failure наблюдается?

Системе не хватает знаний, поведения или обоих компонентов?

2. Есть ли eval baseline?

Сохранены ли реальные примеры ошибок и измерен ли текущий уровень качества?

3. Как часто изменяются знания?

Кто отвечает за обновление источников, удаление устаревших данных и повторную индексацию?

4. Нужны ли citations и provenance?

Должен ли пользователь видеть, из какого документа взята информация, и можно ли восстановить этот источник?

5. Проверены ли более простые controls?

Достаточны ли instructions, few-shot, structured output и validators?

6. Есть ли representative training data?

Отражают ли примеры реальные задачи и есть ли право использовать их для обучения?

7. Поддерживается ли выбранный метод?

Доступен ли fine-tuning или нужный retrieval stack для конкретной модели, региона и аккаунта?

8. Как измеряется качество?

Какие метрики показывают retrieval relevance или stability поведения?

9. Какие расходы возникают?

Что относится к разовой подготовке, а что — к постоянной эксплуатации и сопровождению?

10. Как система обновляется и откатывается?

Можно ли вернуться к предыдущей версии corpus, prompt, index, dataset или модели?

11. Какие privacy и access boundaries действуют?

Какие данные разрешено использовать, где они находятся и кто может получить к ним доступ?

12. Какое evidence оправдает усложнение?

Какой результат должен показать, что RAG, fine-tuning или hybrid действительно лучше более простого решения?

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

Мой вывод

Я считаю, что главный выбор происходит не между RAG и fine-tuning.

Главный выбор — между диагностикой и догадкой.

RAG решает проблему доступа к внешним знаниям. Fine-tuning может решать проблему специализированного поведения. Prompt, examples, Structured Outputs и validators могут оказаться достаточными для части задач. Hybrid может быть оправдан, когда отдельно доказаны оба типа проблемы.

Но ни один из этих подходов не должен покупаться только потому, что его название появилось в техническом предложении.

Я бы начинала с одного измеряемого сбоя, реальных примеров и baseline eval. Затем проверяла бы самое простое решение, способное устранить этот сбой. И только после этого добавляла бы новый архитектурный слой.

Сильная AI-система — не та, в которой использовано больше технологий.

Сильная система — та, где каждый компонент появился потому, что его необходимость была доказана.

Источники

Provider-specific сведения перепроверены перед публикацией; для изменяемых возможностей нужно ориентироваться на актуальную документацию конкретного поставщика.

  1. OpenAI — Model optimizationhttps://developers.openai.com/api/docs/guides/model-optimizationОфициальная документация по workflow evals → prompting → optional fine-tuning и текущему статусу платформы.
  2. OpenAI — Retrievalhttps://developers.openai.com/api/docs/guides/retrievalОфициальная документация по semantic search, vector stores, chunking, embeddings и indexing.
  3. OpenAI — Supervised fine-tuninghttps://developers.openai.com/api/docs/guides/supervised-fine-tuningОфициальная документация по обучению на примерах, evaluation и текущим ограничениям OpenAI fine-tuning platform.
  4. OpenAI — Prompt engineering: Few-shot learninghttps://developers.openai.com/api/docs/guides/prompt-engineeringОфициальная документация по управлению поведением модели с помощью примеров без fine-tuning.
  5. OpenAI — Structured model outputshttps://developers.openai.com/api/docs/guides/structured-outputsОфициальная документация по соответствию ответа заданной JSON Schema.
  6. OpenAI — Data Controls FAQhttps://help.openai.com/en/articles/7730893-data-controls-faqОфициальная информация об account-level настройке Improve the model for everyone.
  7. Microsoft — Augment LLMs with RAGs or Fine-Tuninghttps://learn.microsoft.com/en-us/azure/developer/ai/augment-llm-rag-fine-tuningОфициальная документация по условиям применения, ограничениям, privacy, overfitting, maintenance и drift.
  8. Microsoft — Build Advanced Retrieval-Augmented Generation Systemshttps://learn.microsoft.com/en-us/azure/developer/ai/advanced-retrieval-augmented-generationОфициальное архитектурное руководство по parsing, chunking, retrieval, post-retrieval processing и evaluation.
  9. AWS — Amazon Bedrock Knowledge Baseshttps://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.htmlОфициальная документация по data sources, ingestion, storage, retrieval, permissions и citations.
  10. AWS — Customize a model with fine-tuning in Amazon Bedrockhttps://docs.aws.amazon.com/bedrock/latest/userguide/custom-model-fine-tuning.htmlОфициальная документация по зависимости fine-tuning support от модели и региона.
  11. Lewis et al. — Retrieval-Augmented Generation for Knowledge-Intensive NLP Taskshttps://arxiv.org/abs/2005.11401Первичная исследовательская работа, описывающая сочетание параметрической и извлекаемой непараметрической памяти.
  12. n8n — Fine-Tuning vs. RAG: When To Use Each for Production LLMshttps://blog.n8n.io/fine-tuning-vs-rag/Материал платформы о различии knowledge и behavior задач, обновлении, стоимости, latency и hybrid-подходе.