Поиск увеличенного поколения (RAG) становится все более популярным как способ улучшить качество текста, генерируемого крупными языковыми моделями. Теперь, когда мультимодальные LLM находятся в Vouge, пришло время расширить тряпку до мультимодальных данных.
Когда мы добавляем возможность поиска и извлечения данных по нескольким модальностям, мы получаем мощный инструмент для взаимодействия с самыми мощными моделями ИИ, доступными сегодня. Тем не менее, мы также добавляем новые слои сложности в процесс.
Некоторые из соображений, которые мы должны принять во внимание, включают:
На более практичном уровне, вот некоторые из основных ручек, которые мы можем повернуть:
Этот проект является испытательным стендом для изучения этих вопросов и многого другого. Он использует три библиотеки с открытым исходным кодом, Fiftyone, Lmamaindex и Milvus, чтобы создать процесс работы с мультимодальными данными, экспериментировать с различными мультимодальными тряпичными методами и поиска того, что лучше всего подходит для вашего использования как можно проще.
Также обратите внимание, что LlamainDex часто обновляет свой API. Вот почему версия LmamainDex и связанные с ним пакеты закреплены?
Во -первых, установить пятьдесят:
pip install fiftyoneДалее, используя синтаксис CLI FiftyOne, загрузите и установите плагин с мультимодальным тряпом FiftyOne:
fiftyone plugins download https://github.com/jacobmarks/fiftyone-multimodal-rag-pluginLmamainDex имеет словесный процесс установки (если вы хотите построить что -то, по крайней мере, что -то мультимодальное). К счастью для вас, об этом (и всех других зависимостях установки) позаботятся со следующей командой:
fiftyone plugins requirements @jacobmarks/multimodal_rag --installЧтобы начать, запустите приложение Fiftyone. Вы можете сделать это из терминала, работая:
fiftyone app launchИли вы можете запустить следующий код Python:
import fiftyone as fo
session = fo . launch_app () Теперь нажмите клавишу Backtick ( ` ) и введите create_dataset_from_llama_documents . Нажмите Enter , чтобы открыть модал оператора. Этот оператор дает вам пользовательский интерфейс для выбора каталога, содержащего ваши мультимодальные данные (изображения, текстовые файлы, PDF -файлы и т. Д.), И создать из него набор данных FiftyOne.
После того, как вы выбрали каталог, выполните оператора. Он создаст новый набор данных в вашем сеансе FiftyOne. Для текстовых файлов вы увидите рендеринг изображения усеченного текста. Для изображений вы увидите само изображение.
Вы можете добавить дополнительные каталоги мультимодальных данных с помощью оператора add_llama_documents_to_dataset .
Теперь, когда у вас есть мультимодальный набор данных, вы можете индексировать его с LlamainDex и Milvus. Используйте оператор create_multimodal_rag_index , чтобы ввести этот процесс. Этот оператор предложит вам назвать индекс и предоставит вам возможность индексировать изображения с помощью зажигания или подписей. Если вы выберете подписи, вам будет предложено выбрать текстовое поле для использования в качестве заголовка.
Если у вас нет подписей в вашем наборе данных, вам может быть заинтересован в плагине подписи PiftyOne.
fiftyone plugins download https://github.com/jacobmarks/fiftyone-image-captioning-plugin После того, как вы создали индекс, вы можете проверить его, запустив оператор get_multimodal_rag_index_info и выбрав индекс, который вы хотите проверить из раскрывающегося списка.
Наконец, вы можете запросить индекс с оператором query_multimodal_rag_index . Этот оператор предложит вам ввести строку запроса и индекс для запроса.
Вы также можете указать мультимодальную модель для использования для получения результатов поиска, а также как количество результатов изображения и текста для извлечения.