Если вы когда-либо пытались создать работающую агентскую RAG-систему, вы знаете, как это непросто. Вы загружаете в неё документы, скрещиваете пальцы и надеетесь, что она не начнёт фантазировать, когда кто-нибудь задаст простой вопрос. В большинстве случаев вы получаете обратно нерелевантные фрагменты текста, которые едва отвечают на заданный вопрос.
Elysia пытается исправить эту ситуацию, и, честно говоря, их подход довольно креативен. Разработанная командой Weaviate, эта система на основе Python не просто добавляет больше искусственного интеллекта к решению проблемы — она полностью переосмысливает то, как агенты ИИ должны работать с вашими данными.
Примечание: требуется Python 3.12.
Что не так с большинством RAG-систем?
Проблема в том, что традиционные RAG-системы по сути слепы. Они берут ваш вопрос, преобразуют его в векторы, находят какой-то «похожий» текст и надеются на лучшее. Это как просить кого-то найти вам хороший ресторан, пока он вслепую — им может повезти, но, скорее всего, нет.
Большинство систем также загружают в ИИ все возможные инструменты одновременно, что равносильно тому, чтобы дать малышу доступ ко всему вашему набору инструментов и ожидать, что он соберёт книжную полку.
Три столпа Elysia:
1. Деревья решений.
Вместо того чтобы давать агентам ИИ все инструменты одновременно, Elysia ведёт их через структурированные узлы для принятия решений. Это похоже на блок-схему, которая на самом деле имеет смысл. На каждом шаге есть контекст о том, что произошло раньше, и какие варианты есть дальше.
Самое крутое? Система показывает вам, какой путь выбрал агент и почему, так что, когда что-то идёт не так, вы можете отладить это, а не просто пожимать плечами и пробовать снова.
Когда ИИ понимает, что не может что-то сделать (например, искать цены на автомобили в базе данных косметики), он не продолжает попытки вечно. Он устанавливает «флаг невозможности» и переходит к следующему этапу, что звучит очевидно, но, видимо, это нужно было изобрести.
2. Интеллектуальное отображение источника данных.
Помните, когда каждый ИИ просто выдавал абзацы текста? Elysia на самом деле смотрит на ваши данные и выясняет, как их правильно отобразить. Есть товары электронной коммерции? Вы получите карточки товаров. Проблемы на GitHub? Вы получите макеты билетов. Данные в электронной таблице? Вы получите настоящие таблицы.
Система сначала изучает структуру ваших данных — поля, типы, отношения, — затем выбирает один из семи форматов, который имеет смысл.
3. Экспертиза в области данных.
Это, возможно, самое большое отличие. Прежде чем Elysia что-то ищет, она анализирует вашу базу данных, чтобы понять, что в ней на самом деле есть. Она может суммировать, генерировать метаданные и выбирать типы отображения. Она смотрит на:
* какие у вас есть поля;
* как выглядят диапазоны данных;
* как разные части соотносятся друг с другом;
* что имеет смысл искать;
* как это работает?
Учиться на обратной связи
Elysia запоминает, когда пользователи говорят: «Да, это было полезно», и использует эти примеры для улучшения будущих ответов. Но делает это умно — ваша обратная связь не портит результаты других людей, и это помогает системе лучше отвечать на ваши конкретные типы вопросов.
Это означает, что вы можете использовать более мелкие и дешёвые модели, которые всё равно дают хорошие результаты, потому что они учатся на реальных примерах успеха.
Чункинг, который имеет смысл
Большинство RAG-систем предварительно разбивают все ваши документы, что занимает много памяти и часто создаёт странные разрывы. Elysia разбивает документы только при необходимости. Сначала она ищет полные документы, а затем, если документ выглядит релевантным, но слишком длинным, разбивает его на лету.
Это экономит место для хранения и на самом деле работает лучше, потому что решения о разбиении принимаются на основе того, что ищет пользователь.
Маршрутизация моделей
Для разных задач нужны разные модели. Простые вопросы не требуют GPT-4, а для сложного анализа не подходят крошечные модели. Elysia автоматически направляет задачи на нужную модель в зависимости от сложности, что экономит деньги и повышает скорость.
Начало работы
Настройка довольно проста:
“`
pip install elysia-ai
elysia start
“`
Вот и всё. Вы получаете как веб-интерфейс, так и фреймворк Python.
Для разработчиков, которые хотят что-то настроить:
“`
from elysia import tool, Tree
tree = Tree()
@tool(tree=tree)
async def add(x: int, y: int) -> int:
return x + y
tree(“What is the sum of 9009 and 6006?”)
“`
Если у вас есть данные Weaviate, всё ещё проще:
“`
import elysia
tree = elysia.Tree()
response, objects = tree(
“What are the 10 most expensive items in the Ecommerce collection?”,
collection_names = [“Ecommerce”]
)
“`
Пример из реальной жизни: чат-бот Glowe
Платформа чат-ботов для ухода за кожей Glowe использует Elysia для обработки сложных рекомендаций по продуктам. Пользователи могут задавать такие вопросы, как «Какие продукты хорошо сочетаются с ретинолом, но не раздражают чувствительную кожу?», и получать интеллектуальные ответы, учитывающие взаимодействие ингредиентов, предпочтения пользователей и наличие продуктов.
Это не просто сопоставление ключевых слов — это понимание контекста и отношений между ингредиентами, историей пользователей и характеристиками продуктов таким образом, который было бы сложно закодировать вручную.
Резюме
Elysia представляет собой попытку Weaviate выйти за рамки традиционных моделей RAG «задать-получить-сгенерировать», сочетая агентов с деревьями решений, адаптивное представление данных и обучение на основе обратной связи пользователей. Вместо того чтобы просто генерировать текстовые ответы, она анализирует структуру данных заранее и выбирает соответствующие форматы отображения, сохраняя при этом прозрачность в процессе принятия решений.
Как планируемая замена Weaviate для их системы Verba RAG, она предлагает основу для создания более сложных приложений ИИ, которые понимают как то, что спрашивают пользователи, так и то, как эффективно представить ответы, хотя пока неизвестно, приведёт ли это к значимому улучшению производительности в реальных условиях, поскольку система всё ещё находится в стадии бета-тестирования.
Ознакомьтесь с ТЕХНИЧЕСКИМИ ДЕТАЛЯМИ и СТРАНИЦЕЙ НА GITHUB. Не стесняйтесь заглянуть на нашу СТРАНИЦУ НА GITHUB, чтобы найти учебные пособия, коды и блокноты. Также подписывайтесь на нас в Twitter и присоединяйтесь к нашему сообществу в ML SubReddit (более 100 тысяч участников) и подписывайтесь на нашу рассылку.
1. Какие проблемы существуют у традиционных RAG-систем и как Elysia пытается их решить?
В традиционных RAG-системах проблема заключается в том, что они «по сути слепы» и не всегда могут корректно обработать запрос пользователя. Они преобразуют вопрос в векторы и находят похожий текст, но это не всегда приводит к релевантным ответам. Elysia пытается решить эту проблему, используя деревья решений для структурирования процесса принятия решений и интеллектуального отображения источника данных для более точного представления информации.
2. Какие три основных принципа лежат в основе работы Elysia?
Три основных принципа работы Elysia:
* использование деревьев решений для структурирования процесса принятия решений;
* интеллектуальное отображение источника данных для более точного представления информации;
* экспертиза в области данных для анализа базы данных и понимания, что в ней есть.
3. Как Elysia обрабатывает данные для получения более точных ответов?
Elysia сначала анализирует структуру данных, включая поля, типы, отношения, а затем выбирает один из семи форматов, который имеет смысл для представления данных. Это позволяет системе более точно отображать информацию и предоставлять более релевантные ответы на запросы пользователей.
4. Как Elysia использует обратную связь от пользователей для улучшения своих ответов?
Elysia запоминает, когда пользователи говорят: «Да, это было полезно», и использует эти примеры для улучшения будущих ответов. Это позволяет системе лучше отвечать на конкретные типы вопросов и предоставлять более полезные ответы.
5. Как Elysia выбирает модель для обработки запроса?
Elysia автоматически направляет задачи на нужную модель в зависимости от сложности. Для простых вопросов не требуется GPT-4, а для сложного анализа не подходят крошечные модели. Это позволяет экономить деньги и повышать скорость обработки запросов.