Единица 1 / 11

Что такое РАГ и зачем он нужен?

Прибыль:

  • Объяснение того, что RAG вводит контекст без изменения весов модели и работает с логикой «экзамена с открытой книгой».
  • Сравнение RAG с подходами тонкой настройки и долгосрочного контекста по стоимости, своевременности и сценарию использования.
  • Перечисление шагов типичного конвейера RAG, состоящего из этапов индексации и запроса.

Независимо от того, насколько мощна языковая модель (искусственный интеллект, который понимает и создает текст; с этого момента мы будем называть ее для краткости моделью), она не знает контракт, подписанный вашей компанией вчера, вашу внутреннюю вики-страницу (внутреннюю базу знаний) или примечания к выпуску, опубликованные сегодня утром. Модель ограничена общими знаниями на момент ее обучения; Это называется «датой окончания обучения». RAG (Поисковая дополненная генерация) заполняет именно этот пробел: он находит документы компании, связанные с вопросом, передает их модели в качестве контекста (то есть дополнительный текст, который она будет читать при выработке ответа) и формирует ответ на основе этого контекста.

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

Основная идея RAG: экзамен по открытой книге

Давайте объясним RAG в одном предложении: «Сначала найдите соответствующий документ, затем попросите модель прочитать этот документ и соответствующим образом распечатать ответ».

Наиболее полезная аналогия такова: RAG переводит модель с «закрытого экзамена» на «экзамен с открытой книгой». На экзамене по закрытой книге студент отвечает только по памяти; Велик риск выдумать то, чего не помнишь. На экзамене по открытой книге студент отвечает, глядя на источник, лежащий перед ним. В RAG модель больше отвечает не из собственной памяти, а из текущего и конкретного текста, который вы ей даете.

Критическая точка: RAG не меняет веса модели, то есть миллиарды числовых параметров, которые модель изучила. Вы не переобучаете модель. Для каждого вопроса вы вставляете в подсказку фрагменты текста, относящиеся к этому вопросу (текст инструкции, отправляемый в модель). Таким образом, вам не придется переобучать модель при обновлении документа; вы просто обновляете соответствующую запись в базе данных поиска.

Подсказка: Два вопроса определяют качество ТРЭ: (1) Нашли ли вы нужный документ? (2) Правильно ли прочитала модель? Первое — «качество поиска», второе — «качество генерации». Оба показателя измеряются и улучшаются отдельно.

RAG, тонкая настройка или длинный контекст?

При поиске решения организационной проблемы часто путают три пути. Давайте проясним их различия. Точная настройка — это обновление весов модели с учетом ваших данных и обучение ее новому поведению/стилю. Длинный контекст означает заполнение всех документов непосредственно в командной строке без какого-либо выбора.

Подход

Что значит

Когда это уместно?

Стоимость/риск

ТРЯПКА

Вставляет соответствующий документ в качестве контекста

Часто меняющаяся, обширная, конкретная информация

Низкий; легко обновляется, можно указать источник

Тонкая настройка

Обновляет веса новыми данными

Фиксированное обучение стилю/формату/языку

Высокий; Требуется переобучение при каждом обновлении

Только длинный контекст

Заполняет все документы в подсказку

Небольшой стационарный комплект документов

Стоимость токена и риск «потери средней части» увеличиваются

Как правило: Точная настройка учит модель говорить; RAG сообщает модели, что ей следует знать. В большинстве корпоративных сценариев сначала пробуют RAG, поскольку он дешев, обновляем и может указать источник ответа. Длинный контекст разумен, если набор документов действительно небольшой и фиксированный (например, одно 20-страничное руководство); Но при тысячах страниц это дорого, и модель может пропустить информацию в середине длинного текста.

Типичный трубопровод RAG

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

Пошаговое индексирование (офлайн, без ожидания пользователя):

  1. Сбор: извлечение документов из источников (PDF, вики, система заявок, база данных, электронная почта).
  2. Разбивка на части: разбейте длинный текст на более мелкие, удобные для понимания части.
  3. Внедрение: преобразуйте каждую часть во встраивание (вектор чисел, несущий смысл текста).
  4. Сохранить: записать векторы вместе с текстом и метаданными (источник, дата, информация об авторизации) в базу данных векторов.

Пошаговый запрос (онлайн, пока пользователь ждет):

  1. Преобразуйте вопрос пользователя во встраивание.
  2. Извлеките наиболее похожие детали из базы данных векторов.
  3. Поместите эти части + вопрос в шаблон подсказки.
  4. Получите контекстный ответ и его источники из модели.

# Концептуальная схема этапа запроса (не зависит от языка)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» к своему случаю.