Data Science NLP

RAG – основы и простой пример

RAG – Retrieval Augmented Generation

RAG – это подход в обработке естественного языка, объединяющий поиск информации в базе знаний с генерацией текста нейронной сетью. Цель такого объединения – значительное повышение точности и релевантности ответов.

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

Работа системы при таком подходе состоит из следующих частей

  1. Пользователь формулирует вопрос.
  2. Система переводит вопрос в вектор (эмбеддинг).
    Здесь важно, чтобы для векторизации запроса пользователя использовался тот же алгоритм, который использовался при векторизации базы знаний.
  3. Система производит поиск наиболее близких к запросу векторов в базе знаний.
    Как правило, поиск производится по метрике евклидова расстояния. Выбираются векторы, наиболее близкие по этой метрике к запросу.
  4. Выбранные векторы становятся частью промта (контекстом).
  5. Система собирает промт, состоящий из двух частей: контекста и вопроса пользователя.
    Контекст – это найденные в базе знаний релевантные запросу пользователя тексты.
    Вопрос – это вопрос пользователя в его первоначальной форме.
  6. Большая языковая модель принимает промт и возвращает свой ответ, определяемый контекстом и вопросом пользователя.

В чем польза и удобство RAG систем?

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

Пример работы системы – Google Colab

Tags
Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить