О чём урок
Генерация с дополненным поиском (RAG) — это фреймворк ИИ, который объединяет возможности LLM и систем информационного поиска. Он полезен для ответов на вопросы или генерации контента с использованием внешних знаний. В RAG есть два основных шага: 1) поиск (retrieval): извлечение релевантной информации из базы знаний с помощью text embeddings, хранящихся в vector store; 2) генерация: вставка релевантной информации в prompt для LLM, чтобы сгенерировать ответ. В этом руководстве мы рассмотрим очень простой пример RAG с четырьмя реализациями: RAG с нуля с Mistral RAG с Mistral и LangChain RAG с Mistral и LlamaIndex RAG с Mistral и Haystack Этот раздел призван провести вас через процесс создания базового RAG с нуля. У нас две цели: во-первых, предоставить пользователям всестороннее понимание внутренней работы RAG и демистифицировать его основные механизмы; во-вторых, дать вам необходимые основы для создания RAG с использованием минимально требуемых зависимостей. Первый шаг — установить необходимые пакеты mistralai и faiss-cpu и импортировать необходимые пакеты: В этом очень простом примере мы получаем данные из эссе, написанного Полом Грэмом: Мы также можем сохранить эссе в локальный файл: В системе RAG крайне важно разбивать документ на более мелкие части (chunks), чтобы впоследствии было эффективнее идентифицировать и извлекать наиболее релевантную информацию в процессе retrieval. В этом примере мы просто разбиваем наш текст по символам, объединяем 2048 символов в каждый chunk и получаем 37 chunks. Размер chunk: В зависимости от вашего конкретного сценария использования, может потребоваться настроить или поэкспериментировать с различными размерами chunk и перекрытием chunks для достижения оптимальной производительности в RAG. Например, меньшие chunks могут быть более полезны в процессах retrieval, так как более крупные текстовые chunks часто содержат избыточный текст, который может скрывать семантическое представление. Таким образом, использование меньших текстовых chunks в процессе retrieval может позволить системе RAG более эффективно и точно идентифицировать и извлекать релевантную информацию.
План урока
- RAG с нуля
- Импорт необходимых пакетов
- Получение данных
- Разделение документа на части (chunks)
- Соображения
- Создание embeddings для каждого текстового chunk
- Загрузка в векторную базу данных
- Создание embeddings для вопроса
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.