Переосмислення RAG: Як зробити ваших агентів розумнішими за допомогою нової функції NAD
За чашкою кави, якраз під час вивчення новаторських технологій, я натрапила на захопливий світ RAG-агентів (Retrieval-Augmented Generation). І ось, з’явилася нова неймовірна функція NAD, яка відкриває двері до нового рівня розуміння та точності.
Уявіть собі миттєве покращення роботи ваших RAG-агентів, без необхідності докладати надмірних зусиль. Заінтриговані? Тоді приєднуйтесь до мене, адже ми разом розглянемо, що таке ре-ранкер, як він покращує якість пошуку інформації, і як його легко налаштувати. Додатково ми торкнемось питання використання метаданих при векторизації документів та їх подальшому пошуку. Готові? Поїхали!
За лаштунками RAG: Розуміння основи
Усвідомлення того, що відбувається за кулісами, є ключем до розуміння ефекту від ре-ранкера. Основний принцип RAG полягає в тому, щоб перетворити текстові документи на векторну базу даних – місце, де інформація живе у формі чисел. Процес виглядає так:
- Розбиття на частини: Спочатку документ розбивається на менші, зручні для управління частини. Це дозволяє системі ефективніше працювати з інформацією.
- Вкладення (Ембеддінг): Далі ці частини передаються моделі вкладень. Ця модель перетворює їх у числове представлення, яке відображає значення кожного фрагмента. Модель, по суті, перекладає текст у мову, яку може зрозуміти комп’ютер.
- Векторна база даних: Ці числові представлення розміщуються у багатовимірному просторі – вашій векторній базі даних. Тут зберігається кожна частина вашого тексту у вигляді вектора.
Коли ви ставите питання RAG-агенту, відбувається щось подібне: ваше питання теж перетворюється на вектор за допомогою тієї ж самої моделі вкладень. Система потім шукає у векторній базі даних найближчі вектори до вашого питання. Ці найближчі вектори відповідають фрагментам тексту, які машина вважає найбільш релевантними.
Наприклад, візьмемо “Правила гри в гольф”. Якщо ви запитаєте: “Що мені робити, якщо мій м’яч вилетів за межі поля?”, ваше питання перетвориться на вектор і система знайде найближчі вектори у базі даних – частини правил гри. Ці частини будуть використані RAG-агентом для відповіді на ваше запитання.
Проблеми з традиційним пошуком
У звичайному сценарії RAG, система повертає лише кілька найближчих векторів. Це працює, але не завжди гарантує найкращий результат. Що, якщо найбільш релевантна інформація знаходиться серед наступних найближчих сусідів, які система просто ігнорує?
Ре-ранкер: Підвищення точності
Тут в гру вступає ре-ранкер. Представте це як розумного сортувальника інформації. Замість того, щоб повертати лише три найближчі вектори, ре-ранкер дозволяє системі взяти, наприклад, 20 або 30 векторів. Далі він аналізує їх та призначає кожному з них оцінку релевантності. В результаті система вибирає лише кілька найрелевантніших фрагментів (наприклад, три), які передаються RAG-агенту для відповіді.
Уявіть , як це покращує відповіді! Замість того, щоб отримувати відповіді з, можливо, не зовсім точних джерел, ви отримуєте відповіді, відфільтровані та відсортовані ре-ранкером.
Налаштування Ре-ранкера в NIDN та Superbase
Налаштувати ре-ранкер неймовірно легко. Найперше, що треба зробити, це переконатися, що ви вже налаштували потік робіт RAG, який підключений до Superbase. Далі вам необхідно:
- Налаштування ліміту: У вашому інструменті Superbase Vector Store, переконайтесь, що встановлено ліміт на кількість повернених векторів. За замовчуванням, цей ліміт рівний чотирьом. Збільште його. У нашому прикладі, він був збільшений до 20.
- Ввімкнення Ре-ранкера: Знайдіть опцію “Ре-ранк результатів” та увімкніть її.
- Вибір мовної моделі: Виберіть модель ре-ранкера. Зараз ви можете використати Coherent. Для налаштування Coherent вам знадобиться створити обліковий запис та отримати ключ API. Додайте ключ API в відповідне поле. Наприклад, для простоти використовувалась модель rerank v3.5.
Перевірка на практиці: Правила гри в гольф
Щоб переконатись, що ре-ранкер працює, уявіть, що у вашій базі Superbase є “Правила гри в гольф”. Запитавши агента: “Як працює порядок гри?”, ви побачите, як агент звертається до Superbase, а потім до ре-ранкера. Агент використовує інформацію для відповіді на ваше запитання.
Щоб побачити, як це працює, можна переглянути логи агента:
- Запит: Агент відправляє запит до Superbase.
- Вкладення: Запит перетворюється в числовий вектор.
- Ре-ранкер: 20 частин тексту відправляються в модель ре-ранкера.
- Результат: Ре-ранкер відбирає 3 найрелевантніші частини.
Цей процес демонструє, як ре-ранкер відбирає найбільш корисні фрагменти, покращуючи якість відповідей агента.
Оцінка результатів
Приклад з Правилами Гольфу, хоча, можливо, не виявився найкращим для демонстрації неймовірної продуктивності ре-ранкера, але він все одно наочно показує його переваги.
Ми отримали відповідь на наше запитання, і ре-ранкер відфільтрував результати й відкинув менш відповідні.
Метадані: Додаємо глибину до ваших даних
Ре-ранкер – це лише один крок до покращення RAG-агентів. Наступний важливий компонент – це метадані. Саме вони роблять ваші пошуки більш точними та ефективними.
Метадані – це інформація про ваші дані, яка допомагає їх організовувати та фільтрувати. Уявіть, що ви маєте велику бібліотеку правил гри в гольф. Замість того, щоб просто зберігати текст, ви додаєте до кожного фрагмента, наприклад, номер правила.
Розглянемо приклад:
- Вихідний текст: “Правило 1: Грайте за правилами”.
- Метадані: “Номер правила: 1”.
Тепер, якщо ви запитаєте: “Все про правило 1”, система зможе швидко знайти саме ту інформацію, яка вам потрібна.
Як додати метадані
Додати метадані легко під час векторизації ваших документів. У вашому потоці робіт знайдіть “Завантажувач даних за замовчуванням”. Там ви знайдете опцію додати метадані та вказати потрібні поля. Наприклад, додайте поле “Номер правила” та присвойте йому відповідне значення для кожного фрагмента.
Пошук за допомогою метаданих
Щоб скористатись метаданими під час пошуку, вам необхідно налаштувати фільтри у вашому інструменті Superbase. Ви вказуєте поле метаданих (наприклад, “Номер правила”) та значення, яке потрібно знайти (наприклад, “27”).
Агент метаданих
У майбутньому добре мати агента, який сам розпізнає метадані. Наприклад, щоб він міг зрозуміти на основі запиту, що потрібно відфільтрувати, і як саме.
Підсумок
Використовуючи ре-ранкери та метадані, ви значно покращуєте точність та ефективність своїх RAG-агентів. Не бійтеся експериментувати, щоб якнайкраще використовувати можливості цих інструментів. Спробуйте самостійно завантажити шаблон та поекспериментувати: подивіться, як працює ре-ранкер, як виконуються запити вашим агентом, та як працює фільтр метаданих. Розуміння цих принципів допоможе вам створити ще розумніших та корисніших RAG-агентів.