Этот проект фокусируется на внедрении и извлечении крупномасштабного набора данных модного продукта, собранного у крупных брендов, таких как Aarong, Allen Solly, Bata, Apex и Infinity. Набор данных состоит из более чем 20 000 продуктов, охватывающих широкий спектр категорий и стилей. Записная книжка использует мощные модели и инструменты для создания встраиваний как для текста, так и для изображений, а затем хранит эти встраивания в векторной базе данных с использованием Qdrant. Эта настройка позволяет эффективно и точно извлекать модные продукты на основе семантического сходства.
Набор данных, размещенный на обнимательном лице, включает в себя более 20 000 модных продуктов, скрещенных из нескольких источников, с деталями, такими как категория продуктов, компания, название, описание, спецификации, ссылки на изображения и многое другое. Вы можете исследовать набор данных здесь.
text-embedding-3-large для создания высокоразмерных встраиваний для описаний и резюме продукта.clip-ViT-B-32 ) из библиотеки SentenceTransformer используется для генерации встроенных изображений. Эта модель отражает визуальные особенности, которые можно использовать для поиска аналогичных продуктов на основе их внешнего вида.Для каждого продукта генерируется сводная строка, снимая данные ключевых данных, такие как категория, компания, имя и спецификации. Эта строка затем встраивается с использованием текстовой модели. Одновременно, основное изображение продукта загружается, обрабатывается и кодируется для создания встраивания изображения. Оба встроения хранятся в коллекции Qdrant для эффективного поиска вектора.
База данных Qdrant используется в качестве векторного хранилища для этих встроений, поддерживая поиск сходства в реальном времени, основанные как на запросах текста и изображения. Записная книжка создает коллекцию, в которой разместятся как резюме, так и векторы изображений с использованием сходства косинуса.
Записная книжка итерация над набором данных и:
Эта настройка обеспечивает бесшовную интеграцию в любую систему, требующую рекомендации модного продукта или функциональности поиска на основе мультимодальных данных.
На изображении выше демонстрируется количество векторных точек, хранящихся в коллекции Qdrant, визуализируя масштаб набора данных и хранимых встроенных встроений.
Проект является отличным ресурсом для тех, кто хочет изучить мультимодальные встроения, векторные базы данных и модные данные в масштабе.
В этом проекте используется модель Llava (ассистент языка и видения) для создания описаний продуктов и спецификаций из изображений. Модель основана на разговорной архитектуре ИИ, которая может взаимодействовать как с текстовыми, так и с визуальными входами.
Перед запуском кода убедитесь, что у вас установлены следующие зависимости:
transformers и datasets обнимающего лицаtorch для поддержки пирогаPIL для обработки изображенийУстановите пакет Llava:
! pip install git+https://github.com/haotian-liu/LLaVA.git@786aa6a19ea10edc6f574ad2e16276974e9aaa3aУстановите дополнительные зависимости:
! pip install -qU datasetsИнициализируйте чат -бот Llava:
from transformers import AutoTokenizer , BitsAndBytesConfig
from llava . model import LlavaLlamaForCausalLM
from llava . utils import disable_torch_init
from llava . constants import IMAGE_TOKEN_INDEX , DEFAULT_IMAGE_TOKEN , DEFAULT_IM_START_TOKEN , DEFAULT_IM_END_TOKEN
from llava . mm_utils import tokenizer_image_token , KeywordsStoppingCriteria
from llava . conversation import conv_templates , SeparatorStyle
import torch
from PIL import Image
import requests
from io import BytesIO
chatbot = LLaVAChatBot ( load_in_8bit = True ,
bnb_8bit_compute_dtype = torch . float16 ,
bnb_8bit_use_double_quant = True ,
bnb_8bit_quant_type = 'nf8' )Загрузите набор данных:
from datasets import load_dataset
fashion = load_dataset (
"thegreyhound/demo2" ,
split = "train"
)
product_df = fashion . to_pandas ()Генерировать описания и спецификации продукта:
cnt = 1
for index , row in product_df . iterrows ():
str1 = "Given Image detail was: " + row [ 'Description' ] + " Now generate a brief high level description for the product shown in the image"
str2 = "Given Image detail was: " + row [ 'Description' ] + " Now generate a detailed specifications for the product shown in the image including the fabric, color, design, style etc"
ans1 = chatbot . start_new_chat ( img_path = row [ 'Image_link' ],
prompt = str1 )
ans2 = chatbot . start_new_chat ( img_path = row [ 'Image_link' ],
prompt = str2 )
product_df . loc [ index , 'Description' ] = ans1
product_df . loc [ index , 'Specifications' ] = ans2
print ( cnt )
cnt += 1Сценарий обрабатывает изображения и генерирует описания продуктов высокого уровня и подробные спецификации. Окончательный вывод сохраняется в файле JSON, содержащем множество информации о продукте.
Этот проект лицензирован по лицензии MIT - для получения подробной информации см. Файл лицензии.
Вы можете найти более подробную информацию и получить доступ к набору данных при обнимании.