Как создать RAG-чат-бот за 5 минут без GPU

NVIDIA Developer 2,3 млн 4 мин 3 мин 24.01.2024
Главное

Создание корпоративных чат-ботов на основе больших языковых моделей больше не требует владения дорогостоящей инфраструктурой с мощными графическими процессорами. В видеоролике от NVIDIA Developer старший архитектор решений Рохан (Rohan) демонстрирует, как развернуть полноценный конвейер генерации с расширенным поиском (RAG) всего за пять минут. Автор показывает пошаговый процесс интеграции облачных моделей NVIDIA с популярными инструментами разработки, позволяющий получить готовое приложение силами всего одной сотни строк кода.

🏗️ Архитектура RAG без локального GPU 0:04

Современные большие языковые модели (LLM) стремительно завоевывают мир, став доступнее для разработки и развертывания. Рохан, старший архитектор решений NVIDIA по вопросам корпоративного генеративного ИИ, утверждает, что сегодня для создания ИИ-сервисов корпоративного уровня разработчикам даже не нужно иметь собственную GPU-инфраструктуру. Все процессы эмбеддинга и генерации ответов могут происходить на удаленных эндпоинтах NVIDIA AI Foundation, что полностью снимает аппаратные ограничения с локальных машин.

Для тех, кто хочет протестировать вычисления, ускоренные графическими процессорами NVIDIA, компания предоставляет доступ к коллекции открытых моделей через облачный интерфейс NVIDIA Neva (NeMo Vision and Language Assistant). Neva поддерживает мультимодальное понимание текста и изображений как через веб-интерфейс, так и посредством API-вызовов для интеграции в собственные приложения.

🧱 Четыре столпа локального ИИ-приложения 1:10

Для сборки локального RAG-приложения требуется настроить четыре ключевых компонента, которые составят основу будущей системы:

В рассматриваемом примере интеграция реализуется через коннекторы LangChain к эндпоинтам NVIDIA AI Foundation. Автор подчеркивает, что разработчикам, уже использующим популярные открытые фреймворки вроде LangChain или LlamaIndex, не придется переписывать код с нуля, поскольку NVIDIA самостоятельно развивает и поддерживает эти коннекторы в актуальном состоянии.

🛠️ Пошаговое руководство: от API-ключа до интерфейса 1:36

Практическая реализация проекта начинается с получения доступа к вычислительным ресурсам и подготовки программного каркаса.

Получение API-ключа NGC

Первым шагом является создание учетной записи на платформе NGC. После авторизации в личном кабинете необходимо сгенерировать API-ключ (кнопка «Generate API key»), который в дальнейшем будет использоваться в коде для аутентификации запросов.

Разработка интерфейса на Streamlit

Для создания пользовательского интерфейса чат-бота используется Streamlit — популярный инструмент с открытым исходным кодом для быстрой сборки веб-приложений в сфере машинногольного обучения и Data Science. На языке Python пишется базовый код, который формирует директорию для загрузки документов, добавляет форму обзора файлов и выводит баннер об успешном завершении операции.

Индексация и хранение векторов

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

🚀 Сборка конвейера и запуск чат-бота 2:59

Финальный этап объединяет все элементы в единую логическую цепочку. С помощью LangChain настраиваются шаблоны промптов (prompt templates), извлекаются релевантные документы из векторной базы и генерируется итоговый ответ для пользователя. Чтобы история переписки не пропадала при обновлении страницы, сообщения сохраняются в контексте сессии Streamlit.

По заявлению Рохана, весь процесс создания работающего прототипа чат-бота занимает менее 5 минут и укладывается примерно в 100 строк кода на Python. Коннекторы NVIDIA с открытым исходным кодом упрощают тестирование новых моделей на передовых GPU компании. Использовать эндпоинты NVIDIA AI Foundation в своих приложениях можно абсолютно бесплатно в пределах лимита до 10 000 транзакций к API. Исходный код данного руководства и другие примеры генеративного ИИ доступны в официальном репозитории NVIDIA на GitHub.

💬 Цитаты

«Сегодня я покажу вам, как спроектировать конвейер генерации с расширенным поиском корпоративного уровня с использованием моделей NVIDIA AI Foundation.»

«И со всем этим мы получаем наш финальный чат-бот менее чем за 5 минут и примерно в 100 строках кода на Python.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
RAG (Retrieval-Augmented Generation)
Метод оптимизации вывода языковой модели, при котором она обращается к внешним авторитетным базам знаний перед генерацией ответа.
Эмбеддинг (Embedding)
Процесс преобразования текста в векторное представление, отражающее его смысловое значение.
LangChain
Программный фреймворк с открытым исходным кодом, предназначенный для упрощения создания приложений с использованием больших языковых моделей.
Streamlit
Библиотека для Python, позволяющая быстро создавать веб-интерфейсы для приложений машинного обучения и работы с данными.
FAISS
Библиотека для эффективного поиска сходства и кластеризации плотных векторов.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект NVIDIA RAG LangChain Streamlit FAISS