Прибыль:
- Объяснение того, что RAG вводит контекст без изменения весов модели и работает с логикой «экзамена с открытой книгой».
- Сравнение RAG с подходами тонкой настройки и долгосрочного контекста по стоимости, своевременности и сценарию использования.
- Перечисление шагов типичного конвейера RAG, состоящего из этапов индексации и запроса.
Независимо от того, насколько мощна языковая модель (искусственный интеллект, который понимает и создает текст; с этого момента мы будем называть ее для краткости моделью), она не знает контракт, подписанный вашей компанией вчера, вашу внутреннюю вики-страницу (внутреннюю базу знаний) или примечания к выпуску, опубликованные сегодня утром. Модель ограничена общими знаниями на момент ее обучения; Это называется «датой окончания обучения». RAG (Поисковая дополненная генерация) заполняет именно этот пробел: он находит документы компании, связанные с вопросом, передает их модели в качестве контекста (то есть дополнительный текст, который она будет читать при выработке ответа) и формирует ответ на основе этого контекста.
В этом модуле мы ясно увидим, что такое RAG, когда каким альтернативам он предпочтительнее, а также этапы типичного конвейера RAG. Все последующие юниты будут углублять части этой карты одну за другой.
Основная идея RAG: экзамен по открытой книге
Давайте объясним RAG в одном предложении: «Сначала найдите соответствующий документ, затем попросите модель прочитать этот документ и соответствующим образом распечатать ответ».
Наиболее полезная аналогия такова: RAG переводит модель с «закрытого экзамена» на «экзамен с открытой книгой». На экзамене по закрытой книге студент отвечает только по памяти; Велик риск выдумать то, чего не помнишь. На экзамене по открытой книге студент отвечает, глядя на источник, лежащий перед ним. В RAG модель больше отвечает не из собственной памяти, а из текущего и конкретного текста, который вы ей даете.
Критическая точка: RAG не меняет веса модели, то есть миллиарды числовых параметров, которые модель изучила. Вы не переобучаете модель. Для каждого вопроса вы вставляете в подсказку фрагменты текста, относящиеся к этому вопросу (текст инструкции, отправляемый в модель). Таким образом, вам не придется переобучать модель при обновлении документа; вы просто обновляете соответствующую запись в базе данных поиска.
Подсказка: Два вопроса определяют качество ТРЭ: (1) Нашли ли вы нужный документ? (2) Правильно ли прочитала модель? Первое — «качество поиска», второе — «качество генерации». Оба показателя измеряются и улучшаются отдельно.
RAG, тонкая настройка или длинный контекст?
При поиске решения организационной проблемы часто путают три пути. Давайте проясним их различия. Точная настройка — это обновление весов модели с учетом ваших данных и обучение ее новому поведению/стилю. Длинный контекст означает заполнение всех документов непосредственно в командной строке без какого-либо выбора.
Подход
Что значит
Когда это уместно?
Стоимость/риск
ТРЯПКА
Вставляет соответствующий документ в качестве контекста
Часто меняющаяся, обширная, конкретная информация
Низкий; легко обновляется, можно указать источник
Тонкая настройка
Обновляет веса новыми данными
Фиксированное обучение стилю/формату/языку
Высокий; Требуется переобучение при каждом обновлении
Только длинный контекст
Заполняет все документы в подсказку
Небольшой стационарный комплект документов
Стоимость токена и риск «потери средней части» увеличиваются
Как правило: Точная настройка учит модель говорить; RAG сообщает модели, что ей следует знать. В большинстве корпоративных сценариев сначала пробуют RAG, поскольку он дешев, обновляем и может указать источник ответа. Длинный контекст разумен, если набор документов действительно небольшой и фиксированный (например, одно 20-страничное руководство); Но при тысячах страниц это дорого, и модель может пропустить информацию в середине длинного текста.
Типичный трубопровод RAG
RAG состоит из двух основных этапов: индексирование (подготовка, выполняемая один раз или периодически) и запрос (выполняется по каждому вопросу пользователя).
Пошаговое индексирование (офлайн, без ожидания пользователя):
- Сбор: извлечение документов из источников (PDF, вики, система заявок, база данных, электронная почта).
- Разбивка на части: разбейте длинный текст на более мелкие, удобные для понимания части.
- Внедрение: преобразуйте каждую часть во встраивание (вектор чисел, несущий смысл текста).
- Сохранить: записать векторы вместе с текстом и метаданными (источник, дата, информация об авторизации) в базу данных векторов.
Пошаговый запрос (онлайн, пока пользователь ждет):
- Преобразуйте вопрос пользователя во встраивание.
- Извлеките наиболее похожие детали из базы данных векторов.
- Поместите эти части + вопрос в шаблон подсказки.
- Получите контекстный ответ и его источники из модели.
# Концептуальная схема этапа запроса (не зависит от языка)question = "Сколько дней ежегодного отпуска?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # наиболее похожие деталиprompt = f"""Ответьте на ВОПРОС, используя КОНТЕКСТ ниже. Если ответ не соответствует контексту, скажите: "У меня нет информации об этом". Fitting.CONTEXT:{parts}QESTION: {question}"""ответ = model.uret(prompt) # например. модель: Клод-опус-4-8
Этот поток представляет собой карту каждого этапа, которую мы будем распаковывать один за другим в последующих частях.
Слабая подсказка/Сильная подсказка
Даже при том же контексте RAG качество подсказки меняет ответ.
Слабая подсказка (открыта для подбора модели, не требует ресурсов):
Используйте эту информацию и назовите ежегодный отпуск: {parts}. Вопрос: {вопрос}
Мощная подсказка (заземление + разрешение «Я не знаю» + запрос ресурса):
Отвечайте только на основе КОНТЕКСТА, приведенного ниже. Если в контексте нет четкого ответа, напишите «Мне не удалось найти информацию об этом в документации»; Не угадывайте. Добавьте тег [Источник: имя_файла] фрагмента, на который вы полагаетесь, в конце своего ответа. КОНТЕКСТ: {части} ВОПРОС: {вопрос}
Три мини-кейса
Кейс 1 — Помощник по персоналу (отдел кадров). У компании есть 340-страничное руководство по управлению персоналом, и сотрудники задают в среднем 90 вопросов в день. Была попытка тонкой настройки, но так как руководство обновлялось ежемесячно, каждый раз требовалось переобучение; Стоимость достигала тысяч долларов в месяц. После перехода на RAG обновление сократилось до шага «переиндексации документа» (минуты) и процент правильных ответов увеличился с 71% до 93% при ручном измерении.
Случай 2 — Поддержка клиентов. Служба поддержки имеет 12 000 решенных заявок и 800 справочных статей. Чтобы найти ответ вручную, представителю требуется в среднем 4 минуты. Когда ассистент КГР принес 5 наиболее релевантных записей и подготовил проект ответа, время сократилось до 40 секунд; Но команда осознала риск «выглядеть неуверенно, если принесет не ту статью» и сделала ссылку на источник обязательной.
Случай 3 — Закон. Группа подрядчиков спросила: «В каких контрактах положение о конфиденциальности действует в течение 5 лет?» он задает вопрос. В ходе длительного контекстного исследования 60 контрактов были заполнены в одном запросе; модель пропустила два средних контракта. Когда с помощью RAG вводились только соответствующие предметы, стоимость жетона уменьшалась на 80% и недостающие пропуски обнулялись.
Зачем нужна РАГ?
- Актуальность: вы получаете доступ к информации после даты окончания обучения.
- Особая информация: Ваши внутренние документы не включены в обучение ни одной модели; Только ты можешь дать.
- Проверяемость: вы можете указать источник ответа (цитата) — это важно для аудита и доверия.
- Контроль галлюцинаций: он опирается на текст, расположенный перед ним, а не на создание модели.
- Стоимость: Гораздо дешевле и быстрее ввести в эксплуатацию, чем дорабатывать.
Внимание: RAG — это не волшебство. Если вы принесете не тот фрагмент, модель придет к неправильному ответу и будет выглядеть «уверенно». Имейте в виду фразу «Качество извлечения = качество RAG».
Распространенные ошибки
- Ошибочно принять RAG за точную настройку: RAG не меняет веса; Это просто добавляет контекст. Путаница этих двух приведет к выбору неправильной архитектуры.
- Не разрешать «Я не знаю»: если подсказка оставляет модели возможность заполнить пробелы, она восполнится.
- Не цитирование источников: ответ без источника не может быть проверен; Пользователь не может заметить ошибку.
- Собираем все в одну подсказку: длинный контекст выглядит дешево, но он дорог и пропускает среднюю информацию.
- Застревание в генерации без измерения извлечения: если ответ плохой, сначала спросите: «Пришла ли нужная часть?» следует спросить.
В заключение
- RAG — это подход, при котором документы, относящиеся к вопросу, встраиваются в модель в качестве контекста; не меняет веса («экзамен с открытой книгой»).
- Точная настройка учит стилю/формату, RAG дает текущую и конкретную информацию; длинный контекст хорошо работает для небольших фиксированных наборов. В большинстве сценариев сначала пробуется RAG.
- Конвейер состоит из двух этапов: автономное индексирование (фрагмент + внедрение + сохранение) и онлайн-запрос (извлечение + подсказка + создание).
- RAG обеспечивает своевременность, конкретную информацию, возможность проверки, контроль галлюцинаций и низкую стоимость.
- Качество системы напрямую зависит от качества поиска: не тот кусок — неправильный ответ.
Задача приложения
Выберите подлинный источник информации от своей команды (например, документ о процедуре или страницу часто задаваемых вопросов). (1) Напишите 5 фактических вопросов об этом источнике. (2) Обратите внимание, какая часть документа содержит правильный ответ на каждый вопрос — это станет вашим списком «золотых ответов». (3) Используя приведенный выше шаблон «сильной подсказки», вручную вставьте соответствующий раздел в качестве контекста и задайте вопрос модели. (4) Сравните ответ, данный моделью, с золотым ответом и отметьте его как верно/неверно. Это первая ручная версия оценки, которую вы будете автоматизировать в будущих модулях.
контрольный список
- [ ] Я могу объяснить в одном предложении, что RAG не меняет веса, а просто добавляет контекст.
- [ ] Я могу различать RAG, точную настройку и длинный контекст, а также то, когда это уместно.
- [ ] Я могу по порядку посчитать этапы индексации (собрать-уничтожить-встроить-сохранить) и запроса (внедрить-извлечь-подсказка-генерировать).
- [ ] Я знаю, почему я добавил в подсказку инструкции «если это не по контексту, скажите, что я не знаю» и «цитировать источник».
- [ ] Я могу адаптировать принцип «Качество поиска = качество RAG» к своему случаю.