Прибуток:
- Пояснення того, що RAG додає контекст, не змінюючи вагомості моделі, і працює за логікою «екзамену відкритої книги».
- Порівняння RAG із підходами тонкого налаштування та тривалого контексту відповідно до вартості, своєчасності та сценарію використання
- Перелік кроків типового конвеєра RAG, що складається з фаз індексування та запиту
Незалежно від того, наскільки потужною є мовна модель (штучний інтелект, який розуміє та створює текст; відтепер ми будемо називати це моделлю скорочено), вона не знає контракту, який ваша компанія підписала вчора, вашої внутрішньої сторінки wiki (внутрішня база знань) чи примітки до випуску, опублікованої сьогодні вранці. Модель обмежена загальними знаннями до дати її навчання; Це називається «датою закінчення навчання». RAG (Retrieval-Augmented Generation) заповнює саме цю прогалину: він знаходить документи компанії, пов’язані із запитанням, передає їх моделі як контекст (тобто додатковий текст, який вона читатиме під час отримання відповіді) і формує відповідь на основі цього контексту.
У цьому розділі ми чітко побачимо, що таке RAG, коли йому надають перевагу над якими альтернативами, а також кроки типового конвеєра RAG. Усі наступні юніти будуть поглиблювати частини цієї карти одну за одною.
Основна ідея RAG: Open Book Exam
Пояснимо RAG одним реченням: «Спочатку знайдіть відповідний документ, потім попросіть модель прочитати цей документ і надрукувати відповідну відповідь».
Найкорисніша аналогія полягає в наступному: RAG переміщує модель із «екзамену із закритою книгою» до «екзамену з відкритою книгою». У закритому іспиті студент відповідає лише напам'ять; Високий ризик вигадати те, чого ви не пам’ятаєте. Під час іспиту з відкритої книги студент відповідає, дивлячись на джерело, яке стоїть перед ним. У RAG модель більше не відповідає зі своєї пам’яті, а з поточного й конкретного тексту, який ви їй надаєте.
Критична точка: RAG не змінює вагові коефіцієнти моделі, тобто мільярди числових параметрів, які модель вивчала. Ви не перенавчаєте модель. Для кожного запитання ви додаєте фрагменти тексту, що стосуються цього запитання, у підказку (текст інструкції, який надсилається моделі). Тож вам не потрібно перенавчати модель під час оновлення документа; ви просто оновлюєте відповідний запис у пошуковій базі даних.
Підказка. Два запитання визначають якість RAG: (1) Чи знайшли ви правильний документ? (2) Чи правильно модель прочитала це? Перший — «якість пошуку», другий — «якість генерації». Обидва вимірюються та покращуються окремо.
RAG, тонке налаштування чи довгий контекст?
У пошуках вирішення організаційної проблеми часто плутають три шляхи. Давайте з’ясуємо їх відмінності. Тонка настройка — це оновлення вагових коефіцієнтів моделі за допомогою ваших даних і навчання нової поведінки/стилю. Довгий контекст означає заповнення всіх документів безпосередньо в підказці без будь-якого вибору.
Підхід
Що робить
Коли це доречно?
Вартість / ризик
ганчірка
Вставляє відповідний документ як контекст
Інформація, що часто змінюється, велика, конкретна
Низький; легко оновлювати, джерело можна цитувати
Тонка настройка
Оновлює ваги новими даними
Викладання фіксованого стилю/формату/мови
високий; З кожним оновленням потрібне перенавчання
Лише довгий контекст
Заповнює всі документи в підказку
Невеликий стаціонарний набір документів
Зростає вартість токена і ризик «втратити середню частину».
Як правило: Тонка настройка вчить модель розмовляти; RAG повідомляє моделі, що потрібно знати. У більшості корпоративних сценаріїв спочатку пробують RAG, оскільки він дешевий, оновлюваний і може показати джерело відповіді. Довгий контекст є доцільним, якщо набір документів справді малий і фіксований (наприклад, один 20-сторінковий посібник); Але з тисячами сторінок це дорого, і модель може пропустити інформацію посеред довгого тексту.
Типовий конвеєр RAG
RAG складається з двох основних фаз: індексування (підготовка, виконується одноразово або періодично) та запит (запускається на кожне запитання користувача).
Покрокова індексація (офлайн, без очікування користувача):
- Збирати: отримувати документи з джерел (PDF, wiki, система тикетів, база даних, електронна пошта).
- Розбиття: Розбийте довгий текст на менші частини, які можна керувати.
- Вбудовування: перетворює кожну частину на вбудовування (числовий вектор, який несе значення тексту).
- Зберегти: записати вектори разом із текстом і метаданими (джерело, дата, інформація авторизації) до векторної бази даних.
Покроковий запит (онлайн, поки користувач очікує):
- Перетворіть запитання користувача на вбудовування.
- Отримайте найбільш схожі частини з векторної бази даних.
- Розмістіть ці фрагменти + запитання в шаблон підказки.
- Отримайте контекстну відповідь та її джерела з моделі.
# Концептуальний план фази запиту (не залежить від мови)question = "Скільки днів щорічної відпустки?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # найбільш схожі частиниprompt = f"""Дайте відповідь на ПИТАННЯ, використовуючи наведений нижче КОНТЕКСТ. Якщо відповідь не в контексті, скажіть: "Я не маю інформації про це." Fitting.CONTEXT:{parts}QUESTION: {question}"""answer = model.uret(prompt) # напр. модель: claude-opus-4-8
Цей потік є картою кожного етапу, яку ми будемо розпаковувати один за одним у наступних блоках.
Слабка підказка / Сильна підказка
Навіть з тим самим контекстом RAG якість підказки змінює відповідь.
Слабка підказка (відкрита для підгонки моделі, не вимагає ресурсів):
Скористайтеся цією інформацією та скажіть щорічну відпустку: {parts}. Питання: {питання}
Потужна підказка (заземлення + дозвіл "Я не знаю" + запит на ресурс):
Відповідайте лише на основі КОНТЕКСТУ нижче. Якщо в контексті немає чіткої відповіді, напишіть «Я не зміг знайти інформацію про це в документації»; Не гадай. Додайте тег [Джерело: ім’я_файлу] фрагмента, на який ви покладаєтеся, у кінці вашої відповіді. КОНТЕКСТ: {pieces} ПИТАННЯ: {question}
Три міні-чохли
Кейс 1 — Асистент з персоналу (відділ кадрів). У компанії є 340-сторінковий довідник з персоналу, і співробітники задають в середньому 90 запитань на день. Була спроба точного налаштування, але оскільки посібник оновлювався щомісяця, щоразу вимагалося перенавчання; Вартість сягала тисяч доларів на місяць. Після переходу на RAG оновлення було зведено до кроку «переіндексувати документ» (хвилини), а частота правильних відповідей зросла з 71% до 93% у ручному вимірюванні.
Випадок 2 — Підтримка клієнтів. Команда підтримки має 12 000 вирішених запитів і 800 довідкових статей. Представник займає в середньому 4 хвилини, щоб вручну знайти відповідь. Коли асистент RAG приніс 5 найбільш релевантних записів і підготував чернетку відповіді, час було скорочено до 40 секунд; Але команда усвідомила ризик «виглядати невпевнено, надавши не ту статтю», і зробила посилання на джерело обов’язковим.
Кейс 3 — Закон. Команда підрядників запитала, "у яких контрактах положення про конфіденційність триває 5 років?" — задає він питання. Під час тривалого контекстного випробування 60 контрактів були заповнені в одній підказці; модель пропустила середні два контракти. Коли в RAG були представлені лише відповідні предмети, вартість токена зменшилася на 80%, а відсутній пропуск було скинуто.
Навіщо потрібен RAG?
- Актуальність: ви отримуєте доступ до інформації після кінцевої дати навчання.
- Особлива інформація: Ваші внутрішні документи не входять до навчання жодної моделі; Тільки ти можеш дати.
- Можливість перевірки: ви можете вказати джерело відповіді (цитата) — це важливо для аудиту та довіри.
- Контроль галюцинацій: він покладається на текст, розміщений перед ним, а не на створення моделі.
- Вартість: набагато дешевше і швидше ввести в експлуатацію, ніж тонку настройку.
Застереження: RAG – це не магія. Якщо ви введете неправильний фрагмент, модель прийде до неправильної відповіді, виглядаючи «впевнено». Пам’ятайте про фразу «Якість пошуку = якість RAG».
Поширені помилки
- Помилка RAG для точного налаштування: RAG не змінює ваги; Це просто додає контекст. Плутання цих двох призведе до вибору неправильної архітектури.
- Заборонено «Я не знаю»: якщо підказка залишає модель вільною для заповнення пропуску, вона компенсує.
- Без посилання на джерела: відповідь без джерела не перевіряється; Користувач не може помітити помилку.
- Втиснення всього в одне підказка: довгий контекст виглядає дешево, але коштує дорого та пропускає середню інформацію.
- Застрягання в генерації без вимірювання пошуку: якщо відповідь погана, спочатку запитайте "Чи надійшла правильна частина?" слід запитати.
Підсумовуючи
- RAG — це підхід, який додає документи, що стосуються питання, у модель як контекст; не змінює ваг («екзамен з відкритої книги»).
- Точне налаштування навчає стилю/формату, RAG дає поточну та конкретну інформацію; довгий контекст добре працює для невеликих фіксованих наборів. У більшості випадків спочатку пробується RAG.
- Конвеєр має дві фази: офлайн-індексація (фрагмент + вбудовування + збереження) та онлайн-запит (витяг + підказка + генерація).
- RAG забезпечує своєчасність, конкретну інформацію, можливість перевірки, контроль галюцинацій і низьку вартість.
- Якість системи безпосередньо залежить від якості пошуку: неправильний шматок означає неправильну відповідь.
Аплікаційне завдання
Виберіть справжнє джерело інформації від вашої команди (наприклад, процедурний документ або сторінку поширених запитань). (1) Напишіть 5 фактичних запитань про це джерело. (2) Зверніть увагу, яка частина документа містить правильну відповідь на кожне запитання — це стане вашим списком «золотих відповідей». (3) Використовуючи наведений вище шаблон «сильна підказка», вручну вставте відповідний розділ як контекст і запитайте модель. (4) Порівняйте відповідь, надану моделлю, із золотою відповіддю та позначте як вірно/невірно. Це перша ручна версія оцінювання, яку ви автоматизуватимете в наступних підрозділах.
контрольний список
- [ ] Я можу пояснити одним реченням, що RAG не змінює ваги, а лише додає контекст.
- [ ] Я можу розрізняти RAG, точне налаштування та довгий контекст і коли це доречно.
- [ ] Я можу по порядку порахувати фази індексування (збирати-подрібнювати-вбудовувати-зберегти) та запитувати (вбудовувати-витягувати-підказку-генерувати).
- [ ] Я знаю, чому я додав інструкції «якщо це не в контексті, скажи, що я не знаю» та «цитувати джерело» до підказки.
- [ ] Я можу адаптувати принцип «Якість пошуку = якість RAG» до свого випадку.