Итоги вебинара: улучшите свою LLM с помощью частных данных, используя LlamaIndex
Популярность ChatGPT продемонстрировала возможности больших языковых моделей (LLMs) в генерации знаний и рассуждении. Однако ChatGPT предварительно обучен на общедоступных данных, которые могут не предоставлять конкретных ответов и результатов, релевантных вашему бизнесу. Так как же лучше всего дополнить наши LLMs частными данными? LlamaIndex — одно из самых популярных решений. Это простой, гибкий, централизованный интерфейс, соединяющий ваши внешние данные и LLMs.
В нашем недавнем вебинаре Jerry Liu, соучредитель и CEO LlamaIndex, объяснил, как LlamaIndex может усилить ваши LLMs с помощью частных данных. Кроме того, Frank Liu, архитектор машинного обучения и директор по операционной деятельности в Zilliz, также поделился своими взглядами на LLMs. Присоединяйтесь ко мне, чтобы изучить ключевые выводы из этого вебинара и ответить на некоторые оставшиеся без ответа вопросы аудитории.
Тонкая настройка и обучение в контексте
«Как улучшить LLMs с помощью частных данных» — это вопрос, который задают многие разработчики LLM. На вебинаре Jerry обсудил два метода: тонкую настройку и обучение в контексте. Тонкая настройка требует повторного обучения сети на частных данных, но это может быть дорогостоящим и недостаточно прозрачным. Кроме того, она может быть эффективна только в некоторых случаях. С другой стороны, обучение в контексте предполагает объединение предварительно обученной модели с внешними знаниями и моделью поиска, чтобы добавить контекст к входному промпту. Однако возникают сложности при объединении поиска и генерации, извлечении подходящего контекста и управлении обширными исходными данными. LlamaIndex — это инструментарий, разработанный для решения задач обучения в контексте.
Что такое LlamaIndex?
LlamaIndex — это инструмент с открытым исходным кодом, который предоставляет центральный интерфейс управления данными и запросов для ваших LLM-приложений. Его инструментарий содержит три основных компонента:
- Коннекторы данных для получения данных из различных источников.
- Индексы данных для структурирования данных под разные сценарии использования.
- Интерфейс запросов для ввода промптов и получения выходных данных, дополненных знаниями.
Три основных компонента LlamaIndex
LlamaIndex также является ценным инструментом для разработки LLM-приложений. Он работает как черный ящик, принимая подробные описания запросов и предоставляя насыщенные ответы, включающие ссылки и действия. LlamaIndex также управляет взаимодействиями между языковой моделью и частными данными, чтобы предоставлять точные и желаемые результаты.
LlamaIndex в контексте
Как работает индекс векторного хранилища LlamaIndex
У LlamaIndex есть различные индексы, включая списочный индекс, индекс векторного хранилища, древовидный индекс и индекс ключевых слов. Jerry использовал индекс векторного хранилища на вебинаре, чтобы показать, как работают индексы LlamaIndex.
Индекс векторного хранилища — это популярный режим поиска и синтеза, который объединяет векторное хранилище с языковой моделью. Набор исходных документов загружается, разбивается на текстовые узлы и сохраняется в векторном хранилище с эмбеддингом, прикрепленным к каждому узлу. Когда вы выполняете запрос, эмбеддинг запроса ищет в векторном хранилище top-k наиболее похожих узлов, затем эти узлы используются в модуле синтеза ответа для генерации ответа.
Загрузка данных в LlamaIndex
Выполнение запросов через индекс векторного хранилища
Использование индекса векторного хранилища — лучший подход для внедрения сходства в ваше LLM-приложение. Этот тип индекса идеально подходит для рабочих процессов, которые сравнивают тексты на предмет семантического сходства. Например, индекс векторного хранилища подойдет для задания вопросов о конкретном программном обеспечении с открытым исходным кодом.
Интеграция Milvus и LlamaIndex
LlamaIndex предоставляет многочисленные интеграции, которые одновременно мощные и легковесные. На вебинаре Jerry отметил интеграцию Milvus и LlamaIndex.
Milvus — это векторная база данных с открытым исходным кодом, способная обрабатывать огромные наборы данных, содержащие миллионы, миллиарды или даже триллионы векторов. Благодаря интеграции Milvus выступает в качестве серверного векторного хранилища для эмбеддингов и текста. Настроить интеграцию просто: ввести несколько параметров, обернуть их в некоторый контекст хранения, а затем поместить их в индекс векторного хранилища. Запрос к индексу выполняется через механизм запросов, и вы получите нужные ответы.
Zilliz Cloud — это полностью управляемый cloud-native сервис для Milvus, и интеграция LlamaIndex и Zilliz Cloud также доступна.
Варианты использования LlamaIndex
На вебинаре Jerry также поделился многими популярными вариантами использования LlamaIndex, включая:
- Семантический поиск
- Суммаризацию
- Text to SQL (структурированные данные)
- Синтез по гетерогенным данным
- Запросы на сравнение/противопоставление
- Многошаговые запросы
- Использование временных отношений
- Фильтрация по актуальности / устаревшие узлы
Для подробных описаний и информации посмотрите полную запись вебинара.
Вопросы и ответы
Во время вебинара мы получили много вопросов от нашей аудитории и оценили их вовлеченность. Jerry ответил на некоторые вопросы во время сессии вопросов и ответов, но из-за ограничений по времени часть осталась без ответа. Ниже мы составили список наиболее часто задаваемых вопросов и вопросов, оставшихся без ответа, вместе с ответами Jerry.
В: Что вы думаете о плагинах OpenAI, и как LlamaIndex будет работать с ними?
Это хороший вопрос. Мы видим себя по обе стороны ландшафта плагинов. С одной стороны, мы видим себя как действительно хороший плагин, который может вызываться любой внешней агентной абстракцией (будь то ChatGPT, LangChain или другие). Клиентский агент передавал бы нам входной запрос, а мы выясняли бы, как лучше всего выполнить этот запрос под капотом. Например, мы являемся плагином в репозитории chatgpt-retrieval-plugin. На стороне клиента мы поддерживаем интеграцию с любыми сервисами, которые реализуют chatgpt-retrieval-plugin — абстракцию «векторного хранилища».
В: Вы упомянули компромиссы в производительности и задержке. С какими узкими местами и проблемами в этой области вы сталкиваетесь?
Большие объемы контекста + больший размер фрагмента = более высокая задержка. Существуют споры о том, всегда ли большие размеры фрагментов приводят к лучшим результатам (эмпирически GPT-4 лучше справляется с более длительными объемами контекста, чем GPT-3). Тем не менее в целом здесь наблюдается положительная корреляция. Еще один компромисс заключается в том, что любая «продвинутая» LLM-система, например с участием агентов, требует цепочек вызовов LLM. Цепочки вызовов LLM по своей природе выполняются дольше.
В: Я понимаю, что мы используем внешнюю модель для выполнения запросов. Насколько защищены передаваемые приватные данные?
Это зависит от API-сервиса. Например, OpenAI не использует данные API для обучения/улучшения своих моделей, но у предприятий всё равно будут опасения по поводу отправки конфиденциальных данных третьей стороне. Недавно мы добавили несколько модулей PII, чтобы помочь смягчить эту проблему. Ещё одна альтернатива — использовать локальные модели.
В: Каковы плюсы и минусы двух подходов: (a) использование векторной базы данных, такой как Milvus, для расширенного поиска по сходству и графовых оптимизаций ДО загрузки в LlamaIndex, индексирования в нём и взаимодействия с LLM; (b) использование нативных интеграций LlamaIndex с векторными хранилищами?
Вы можете использовать любой из них. Мы планируем немного больше объединить эти два подхода, так что следите за обновлениями. На очень высоком уровне использование Milvus сначала в качестве загрузчика данных позволяет использовать существующие данные с LlamaIndex. Напротив, если вы используете наш векторный индекс на базе Milvus, мы определим дополнительные структуры поверх этих данных. Плюс первого подхода в том, что вы можете использовать существующие данные, а плюс второго — в том, что у нас больше контроля при определении метаданных.
В: Мне нужно локально проанализировать примерно 6 000 PDF-файлов и PowerPoint-презентаций. Что бы вы порекомендовали, чтобы получить наилучшие результаты без использования OpenAI, LlamaIndex, с llama65b?
Вы можете попробовать использовать Llama, если вас устраивает лицензия. Посмотрите модели с открытым исходным кодом на GitHub.
Посмотрите полную запись вебинара!
Посмотрите запись вебинара, чтобы узнать больше о LlamaIndex и обсуждениях между Jerry Liu и Frank Liu.
Читать далее

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.



