Собираем RAG своими руками

Урок 50 из 100 курса «Claude в Google Vertex AI»: официальный курс Anthropic Academy (Антропик) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

Кадр из видеоурока

О чём урок

В мире больших языковых моделей (LLM), таких как Claude, способность получать и использовать внешнюю информацию является ключевой для создания по-настоящему мощных и актуальных приложений. Именно здесь на сцену выходит Retrieval-Augmented Generation (RAG) – подход, который позволяет LLM выходить за рамки своих изначально обученных знаний, обращаясь к внешним источникам данных. Концептуально мы уже понимаем, как работает RAG, а теперь давайте углубимся в его практическую реализацию, пройдя все пять этапов этого процесса на конкретном примере. Мы рассмотрим каждый шаг: от разбиения исходного текста на управляемые фрагменты до поиска наиболее релевантных документов в ответ на запрос пользователя. Этот процесс является основой для создания систем, которые могут отвечать на вопросы, обобщать информацию и генерировать контент, опираясь на актуальные и специфические для предметной области данные. Центральным элементом любой RAG-системы является векторная база данных. Это специализированное хранилище, предназначенное для эффективного хранения и поиска числовых представлений текста, известных как embeddings. Для нашей реализации мы будем использовать концепцию, аналогичную классу VectorIndex, который предоставляет базовую функциональность, необходимую для хранения векторов и выполнения поиска. Векторная база данных обрабатывает несколько ключевых задач: Хранение векторов: Она эффективно сохраняет многомерные числовые векторы, которые представляют семантическое значение текстовых фрагментов. Вычисление расстояния: Для определения сходства между векторами используются алгоритмы, такие как cosine similarity (косинусное сходство). Чем ближе векторы в многомерном пространстве, тем более семантически похожи их исходные тексты. Извлечение документов: На основе вычисленного сходства база данных может быстро извлекать наиболее релевантные фрагменты текста, соответствующие заданному запросу. По сути, векторная база данных служит "памятью" нашей системы RAG, позволяя ей быстро находить нужную информацию среди огромного объема данных. Давайте подробно рассмотрим каждый этап процесса RAG, чтобы понять, как он работает на практике. Первый шаг в процессе RAG — это подготовка исходного документа. Большие документы не могут быть целиком переданы в LLM из-за ограничений на размер контекстного окна (количество tokens, которые модель может обработать за один раз).

План урока

  1. Внедрение рабочего процесса RAG: Пошаговое руководство
  2. Подготовка векторной базы данных
  3. Пять шагов реализации RAG
  4. Шаг 1: Разделение текста на фрагменты (Chunking)
  5. Шаг 2: Генерация эмбеддингов для каждого фрагмента
  6. Шаг 3: Хранение эмбеддингов в векторной базе данных
  7. Шаг 4: Генерация эмбеддинга для пользовательского запроса
  8. Шаг 5: Поиск релевантных документов

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Урок входит в темы

Полезные гиды