このプロジェクトは、Aarong、Allen Solly、Bata、Apex、Infinityなどの主要なブランドから収集された大規模なファッション製品データセットの埋め込みと取得に焦点を当てています。データセットは20,000を超える製品で構成されており、さまざまなカテゴリとスタイルをカバーしています。ノートブックは、テキストと画像の両方に埋め込みを作成するための強力なモデルとツールを活用し、QDRANTを使用してベクターデータベースにこれらの埋め込みを保存します。このセットアップにより、セマンティックの類似性に基づいて、ファッション製品の効率的かつ正確な検索が可能になります。
抱きしめる顔にホストされているデータセットには、複数のソースから削り取られた20,000を超えるファッション製品が含まれており、製品カテゴリ、会社、名前、説明、仕様、画像リンクなどの詳細があります。こちらでデータセットを探索できます。
text-embedding-3-largeモデルを使用して、製品の説明と要約に高次元の埋め込みを作成します。SentenceTransformerライブラリのClip( clip-ViT-B-32 )が採用され、画像の埋め込みが生成されます。このモデルは、外観に基づいて同様の製品を見つけるために使用できる視覚的な機能をキャプチャします。各製品について、概要文字列が生成され、カテゴリ、会社、名前、仕様などの重要な詳細がキャプチャされます。この文字列は、テキストモデルを使用して埋め込まれます。同時に、主要な製品画像がダウンロード、処理、およびエンコードされて、画像の埋め込みを生成します。両方の埋め込みは、効率的なベクトル検索のためにQDRANTコレクションに保存されます。
QDRANTデータベースは、これらの埋め込みのベクトルストアとして採用されており、テキストクエリと画像クエリの両方に基づいてリアルタイムの類似性検索をサポートしています。ノートブックは、コサインの類似性を使用して、要約ベクトルと画像ベクトルの両方に対応するコレクションを作成します。
ノートブックはデータセットを繰り返します。
このセットアップにより、ファッション製品の推奨事項またはマルチモーダルデータに基づいて検索機能を必要とするシステムにシームレスな統合が可能になります。
上の画像は、QDRANTコレクションに保存されているベクトルポイントの数を示し、データセットのスケールと保存された埋め込みを視覚化します。
このプロジェクトは、大規模なマルチモーダル埋め込み、ベクトルデータベース、ファッションデータを大規模に探索したい人にとって優れたリソースです。
このプロジェクトは、LLAVA(言語およびビジョンアシスタント)モデルを利用して、画像から製品の説明と仕様を生成します。このモデルは、テキストと視覚入力の両方と相互作用できる会話型AIアーキテクチャに基づいています。
コードを実行する前に、次の依存関係をインストールしていることを確認してください。
transformersとdatasetsライブラリを抱きしめますtorchPILllavaパッケージをインストールします:
! pip install git+https://github.com/haotian-liu/LLaVA.git@786aa6a19ea10edc6f574ad2e16276974e9aaa3a追加の依存関係をインストールします:
! pip install -qU datasetsllavaチャットボットを初期化します:
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ライセンスに基づいてライセンスされています。詳細については、ライセンスファイルを参照してください。
詳細を見つけて、抱きしめてデータセットにアクセスできます。