Мультимодальный RAG на эмбеддингах CLIP и GPT-4 Vision

Урок 165 из 299 курса «OpenAI Cookbook»: официальный курс OpenAI Academy (ОпенАИ) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Мультимодальный RAG интегрирует дополнительные модальности в традиционный текстовый RAG, улучшая ответы LLM на вопросы за счет предоставления дополнительного контекста и обоснования текстовых данных для лучшего понимания. Применяя подход из руководства по подбору одежды, мы напрямую создаем эмбеддинги изображений для поиска по сходству, минуя процесс текстового описания с потерей информации, для повышения точности извлечения. Использование CLIP-эмбеддингов дополнительно позволяет выполнять fine-tuning со специфическими данными или обновлять с помощью ранее не виденных изображений. Эта техника демонстрируется на примере поиска по корпоративной базе знаний с использованием предоставленных пользователем изображений техники для предоставления соответствующей информации. Сначала установим необходимые пакеты. Затем импортируем все необходимые пакеты. Теперь загрузим модель CLIP. Теперь мы: Создадим базу данных эмбеддингов изображений Настроим запрос к vision-модели Выполним семантический поиск Передадим пользовательский запрос к изображению Далее мы создадим нашу базу знаний эмбеддингов изображений из директории с изображениями. Это будет база знаний о технологиях, которую мы будем просматривать для предоставления информации пользователю по загруженному им изображению. Мы передаем директорию, в которой хранятся наши изображения (в формате JPEG), и проходим по каждому из них для создания эмбеддингов. У нас также есть файл description.json. Он содержит запись для каждого изображения в нашей базе знаний. У него есть два ключа: 'image_path' и 'description'. Он сопоставляет каждое изображение с полезным описанием этого изображения для помощи в ответе на вопрос пользователя. Сначала напишем функцию, чтобы получить все пути к изображениям в заданной директории. Затем мы получим все JPEG-файлы из директории под названием 'image_database' Далее мы напишем функцию для получения эмбеддингов изображений из модели CLIP по заданному набору путей. Сначала мы предварительно обрабатываем изображение, используя функцию `preprocess`, которую мы получили ранее. Это выполняет несколько действий, чтобы убедиться, что входные данные для модели CLIP имеют правильный формат и размерность, включая изменение размера, нормализацию, настройку цветовых каналов и т.д.

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды