Полный RAG: современная архитектура для гиперперсонализации
Персонализация — это ключ к долгосрочному удержанию клиентов для многих пользователь-ориентированных продуктов. Например, Netflix или Disney могут обеспечивать удовлетворенность пользователей с помощью персонализированных рекомендаций фильмов; приложения для доставки еды могут предлагать рестораны и блюда на основе прошлых заказов и т. д. Искусственный интеллект предоставляет различные методы, позволяющие использовать исторические данные клиента и обеспечивать персонализацию в продуктах.
Mike Del Balso, CEO и сооснователь Tecton, недавно выступил с докладом об использовании архитектуры RAG для улучшения персонализации рекомендательных AI-движков на Unstructured Data Meetup, организованном Zilliz.
Mike поделился интересным фактом, который он прочитал в консалтинговом отчете: “Персонализация на базе AI принесет мировой экономике 5 триллионов долларов добавленной стоимости.” Он также представил архитектуру на основе Retrieval Augmented Generation(RAG) для достижения гиперперсонализации.
В этом посте мы кратко изложим его ключевые идеи о персонализации на базе AI и о том, как компании могут усиливать свои продукты с помощью искусственного интеллекта.
Посмотреть запись выступления Mike
Персонализация с помощью генеративных AI-моделей
Mike начинает с примера сценария использования: создание продукта, похожего на Booking.com или MakeMyTrip, но с гиперперсонализированными рекомендациями для путешествий.
Большие языковые модели (LLMs), такие как GPT, обучаются на огромных текстовых корпусах и могут генерировать рекомендации для путешествий. Например, если мы зададим LLM запрос: «Куда мне поехать этим летом ?», мы получим ответы на основе самых популярных летних направлений, таких как Paris или Tokyo. Но нам нужен способ адаптировать эти рекомендации под отдельных клиентов.
Доступны два метода для улучшения вашей рекомендательной модели: тонкая настройка и prompt engineering.
Хотя эти методы могут сделать ответ модели более релевантным на основе доступных обучающих данных, они не предоставляют способ передать входные данные клиента. Full-RAG — это метод, который может решить эту проблему. Прежде чем понять, что такое Full-RAG и как он работает, давайте кратко повторим, как работает традиционный RAG.
Введение в RAG
Retrieval Augmented Generation (RAG) — это метод, который улучшает ответ больших языковых моделей с точки зрения качества и релевантности. RAG Engine обычно состоит из двух ключевых компонентов: Retriever и Generator. Retriever объединяет embedding model и vector database, такую как Milvus или Zilliz Cloud, а Generator — это LLM.
На этапе извлечения мы выполняем поиск по vector database, которая хранит все документы, и выбираем наиболее релевантные из них. Документы или кандидаты Top-K отбираются, а затем передаются в качестве входных данных генеративной AI-модели. Модель генерирует связный ответ, используя запрос и кандидатов Top-K.
Ниже приведенный RAG pipeline объясняет, как работает традиционный RAG.
Все документы преобразуются в векторные embeddings и сохраняются в vector database.
Пользовательский запрос также преобразуется в векторный embedding.
Мы используем этот вектор для извлечения наиболее похожих кандидатов из vector database.
Эти лучшие кандидаты, такие как Paris и Tokyo, отправляются в LLM, которая генерирует ответ.
Однако лучшие кандидаты, извлеченные здесь, не имеют контекста о предпочтениях и антипатиях конкретного пользователя, поэтому они являются «Неконтекстуализированными кандидатами».
Full-RAG: добавление контекста в конвейер извлечения
Поскольку извлеченные кандидаты в базовом конвейере RAG неконтекстуализированы, нам нужно добавить этот контекст для более качественных ответов. Цель — создать движок с высоким уровнем контекста и экспертизы.
Майк подчеркивает, как предоставление контекста может обогатить извлеченную информацию: “_Контекст — это релевантная информация, которую AI-модели используют, чтобы понять ситуацию и принимать решения.”
В предыдущем примере использования по созданию AI Travel Agent мы можем добавить контекст в модель двумя способами:
1: Добавить контекст кандидатов (локаций): Рекомендуя город, модель должна знать детали динамики. Например, текущую погоду, типы активностей, известные местные кухни, примерный бюджет, исторические объекты или объекты наследия для посещения и т. д. Эта информация помогает пользователям планировать отпуск.
- Персонализированный контекст пользователя: Он означает предоставление информации о том, кто такой пользователь и каковы его предпочтения и ограничения. Эта информация обогащает лучших извлеченных кандидатов информацией на уровне пользователя. Например, предоставление контекста по таким вопросам, как:
Интересуется ли пользователь историей?
Какой климат предпочел бы пользователь?
Будет ли пользователю интересно заниматься приключенческими видами спорта?
Какой тип размещения он предпочитает?
Имея контекст о том, что предлагает город и чего хочет пользователь, AI-модель может лучше подобрать подходящее направление. Кроме того, она может предложить активности, события и варианты размещения, адаптированные к его предпочтениям.
Как мы можем создавать великолепные персонализированные контексты с помощью Tecton?
Tecton разработала платформу признаков для интеграции различных источников бизнес-данных. Вы можете легко создавать и управлять персонализированным контекстом, который нам нужно предоставить рекомендательному алгоритму. Платформа признаков берет данные кандидата и релевантные данные пользователя и извлекает контекстуализированных кандидатов из векторной базы данных, такой как Milvus.
Персонализированные контексты можно создавать и управлять ими на четырех широких уровнях.
Уровень 0: базовый
Это базовый слой или отправная точка, без дополнительной информации. Диаграмма ниже показывает, как работает RAG с нулевой контекстной информацией.
Уровень 1: пакетный контекст
Следующий уровень предоставляет исторические данные, такие как история поездок, любимые активности и т. д. Реализация этого уровня сложна, поскольку вам нужно создавать конвейеры для извлечения и объединения данных из разных хранилищ или озер данных. Вам также потребуется создавать исторические наборы данных для оценки, чтобы проводить бенчмаркинг и разработку.
Платформа признаков Tecton упрощает процесс создания пакетного контекста. Вы можете начать с простого определения контекста, например “Какие последние пять мест посетил этот пользователь?”. Платформа также предоставляет Python SDK для кодирования вашего определения и поддерживает чтение и оценку данных в реальном времени.
На этом этапе ваша рекомендательная LLM может извлекать инсайты из исторического контекста и предоставлять предложения. Например, если пользователь в прошлом посетил много исторических мест, она предложит посетить храмы древнего города Киото.
Уровень 2: пакетный + потоковый контекст данных
Добавление потоковой информации о пользователе, такой как фильмы, видео и блоги, которые он смотрит и читает, может помочь нашей модели понять его текущие интересы. Эта потоковая информация может включать поисковые данные пользователя, данные о покупках или взаимодействия в рамках сессии на веб-страницах.
Задача здесь состоит в том, чтобы включить конвейеры потоковых данных и внедрить их в продакшен. При реализации в масштабе стоимость как построения модели, так и инференса в реальном времени может быть выше.
Tecton упрощает построение потокового контекста. Например, он начинается с простого определения контекста: «За последний час о каких темах пользователь смотрел видео?». Это можно закодировать в Python SDK платформы. Мы можем протестировать это, развернуть в продакшен и использовать в реальном времени. Рекомендация на этом этапе значительно лучше предыдущей. Например, если пользователь искал авиабилеты в Японию и любит высокую кухню, LLM подберет гастрономический опыт в Японии.
Уровень 3: Пакетные + потоковые данные + контекст в реальном времени
Следующий этап — привлечение данных в реальном времени для получения высококачественного сигнала. Этот контекст может помочь вашей модели лучше понять намерение пользователя. Эти данные включают поисковые запросы пользователя и получение данных из других приложений в реальном времени. Например, мы должны получать актуальные цены на авиабилеты, чтобы предложить самый дешевый вариант.
Самая большая задача — интегрировать сторонние источники данных в реальном времени и управлять компромиссом между скоростью и затратами. Благодаря персонализированным рекомендациям в реальном времени пользователи сочтут это очень ценным, поскольку это экономит им время по сравнению с самостоятельным исследованием.
Поверх этого также можно добавить контекст уровня обратной связи. Обратная связь пользователя по предоставленной рекомендации может помочь модели двигаться в правильном направлении.
Заключение
Контекст может улучшить персонализацию ИИ во многих случаях, таких как индивидуальный опыт покупок, создание чат-ботов, предоставление советов по личным финансам или рекомендации новых фильмов. Более высокие уровни персонализации улучшают опыт использования продукта, но сложность разработки при этом возрастает.
RAG — важная техника для предоставления LLM дополнительной доменно-специфической информации для получения более качественной и релевантной информации. Это также ключ к долгосрочному удержанию клиентов для многих ориентированных на пользователей GenAI-продуктов.
Стандартный RAG состоит из ретривера на базе векторной базы данных и генератора LLM. Вся дополнительная информация хранится в векторной базе данных, такой как Milvus, а LLM генерирует ответы на основе извлеченной информации, релевантной запросам пользователей.
Хотя стандартная RAG-система эффективна в устранении галлюцинаций, она не справляется в случаях использования, таких как предоставление гиперперсонализированных рекомендаций. Это связано с тем, что извлеченные кандидаты top-k могут не содержать более персонализированного контекста о симпатиях и антипатиях конкретного пользователя.
Tecton предоставляет решение, которое собирает персонализированный контекст для LLM, упрощая этот процесс для компаний. Однако остаются значительные проблемы, такие как контроль версий, управление моделями и отладка для поиска первопричины.
Для получения дополнительной информации по этой теме посмотрите запись видео митапа Mike.
Читать далее

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


