이 프로젝트는 Aarong, Allen Solly, Bata, Apex 및 Infinity와 같은 주요 브랜드에서 수집 한 대규모 패션 제품 데이터 세트의 임베딩 및 검색에 중점을 둡니다. 이 데이터 세트는 20,000 개가 넘는 제품으로 구성되며 다양한 범주와 스타일을 포함합니다. 노트북은 강력한 모델과 도구를 활용하여 텍스트와 이미지 모두에 대한 임베딩을 생성 한 다음 Qdrant를 사용하여 벡터 데이터베이스에 이러한 임베딩을 저장합니다. 이 설정은 의미 론적 유사성을 기반으로 패션 제품을 효율적이고 정확한 검색 할 수 있습니다.
Hugging Face에서 호스팅 된 데이터 세트에는 제품 범주, 회사, 이름, 설명, 사양, 이미지 링크 등과 같은 세부 정보가 포함 된 여러 소스에서 스크랩 된 20,000 개가 넘는 패션 제품이 포함되어 있습니다. 여기에서 데이터 세트를 탐색 할 수 있습니다.
text-embedding-3-large 모델을 사용하여 제품 설명 및 요약에 대한 고차원 임베드를 만듭니다.SentenceTransformer 라이브러리의 Clip ( clip-ViT-B-32 )은 이미지 임베딩을 생성하기 위해 사용됩니다. 이 모델은 외관에 따라 유사한 제품을 찾는 데 사용할 수있는 시각적 기능을 캡처합니다.각 제품에 대해 카테고리, 회사, 이름 및 사양과 같은 주요 세부 사항을 캡처하여 요약 문자열이 생성됩니다. 그런 다음이 문자열은 텍스트 모델을 사용하여 내장됩니다. 동시에, 기본 제품 이미지가 다운로드, 처리 및 인코딩되어 이미지 임베딩을 생성합니다. 두 임베딩은 효율적인 벡터 검색을 위해 QDRANT 컬렉션에 저장됩니다.
QDRANT 데이터베이스는 이러한 임베딩을위한 벡터 저장소로 사용되며 텍스트 및 이미지 쿼리를 기반으로 실시간 유사성 검색을 지원합니다. 노트북은 코사인 유사성을 사용하여 요약 및 이미지 벡터를 모두 수용하는 컬렉션을 만듭니다.
노트북은 데이터 세트를 통해 반복하고 :
이 설정을 통해 패션 제품 권장 사항 또는 다중 모달 데이터를 기반으로 검색 기능이 필요한 시스템에 완벽하게 통합 될 수 있습니다.
위의 이미지는 Qdrant 컬렉션에 저장된 벡터 포인트의 수를 보여 주며, 데이터 세트의 스케일과 저장된 임베딩을 시각화합니다.
이 프로젝트는 멀티 모달 임베딩, 벡터 데이터베이스 및 패션 데이터를 규모로 탐색하려는 모든 사람에게 훌륭한 리소스입니다.
이 프로젝트는 LLAVA (Language and Vision Assistant) 모델을 사용하여 이미지에서 제품 설명 및 사양을 생성합니다. 이 모델은 텍스트 및 시각적 입력과 상호 작용할 수있는 대화식 AI 아키텍처를 기반으로합니다.
코드를 실행하기 전에 다음의 종속성이 설치되어 있는지 확인하십시오.
transformers 및 datasets 라이브러리torchPILLLAVA 패키지 설치 :
! pip install git+https://github.com/haotian-liu/LLaVA.git@786aa6a19ea10edc6f574ad2e16276974e9aaa3a추가 종속성 설치 :
! pip install -qU datasetsllava chatbot 초기화 :
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 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.
더 자세한 내용을 찾고 Hugging Face에서 데이터 세트에 액세스 할 수 있습니다.