Dieses Projekt konzentriert sich auf das Einbetten und Abrufen eines groß angelegten Fashion-Produkts, der von großen Marken wie Aarong, Allen Solly, Bata, Apex und Infinity gesammelt wurde. Der Datensatz besteht aus über 20.000 Produkten, die eine Vielzahl von Kategorien und Stilen abdecken. Das Notizbuch nutzt leistungsstarke Modelle und Tools, um Einbettungen für Text und Bilder zu erstellen, und speichert diese Einbettungen dann mit QDRant in einer Vektordatenbank. Dieses Setup ermöglicht ein effizientes und genaues Abrufen von Modeprodukten auf der Grundlage der semantischen Ähnlichkeit.
Der Datensatz, der auf dem Umarmungsgesicht gehostet wird, enthält über 20.000 Modrodukte aus mehreren Quellen, mit Details wie Produktkategorie, Firma, Name, Beschreibung, Spezifikationen, Bildlinks und vielem mehr. Sie können den Datensatz hier untersuchen.
text-embedding-3-large Modell von OpenAI, um hochdimensionale Einbettungen für die Produktbeschreibungen und Zusammenfassungen zu erstellen.clip-ViT-B-32 ) aus der SentenceTransformer Bibliothek wird zum Erstellen von Bildeinbettungen verwendet. Dieses Modell erfasst visuelle Funktionen, die verwendet werden können, um ähnliche Produkte basierend auf ihrem Erscheinungsbild zu finden.Für jedes Produkt wird eine zusammenfassende Zeichenfolge erstellt, in der wichtige Details wie Kategorie, Unternehmen, Name und Spezifikationen erfasst werden. Diese Zeichenfolge wird dann mit dem Textmodell eingebettet. Gleichzeitig wird das primäre Produktbild heruntergeladen, verarbeitet und codiert, um eine Bildeinbettung zu generieren. Beide Einbettungen werden in der QDrant -Sammlung für eine effiziente Vektorsuche gespeichert.
Die QDRant-Datenbank wird als Vektorspeicher für diese Einbettungen verwendet und unterstützt Echtzeit-Ähnlichkeitssuche sowohl auf Text- als auch auf Bildabfragen. Das Notebook erstellt eine Sammlung, die sowohl zusammenfassende als auch Bildvektoren mithilfe der Kosinusähnlichkeit berücksichtigt.
Das Notebook iteriert über den Datensatz und:
Dieses Setup ermöglicht eine nahtlose Integration in jedes System, das Modeproduktempfehlungen oder Suchfunktionen basierend auf multimodalen Daten erfordert.
Das obige Bild zeigt die Anzahl der Vektorpunkte, die in der QDrant -Sammlung gespeichert sind und die Skala des Datensatzes und die gespeicherten Einbettungen visualisieren.
Das Projekt ist eine hervorragende Ressource für alle, die multimodale Einbettungen, Vektordatenbanken und Modedaten im Maßstab erkunden möchten.
In diesem Projekt wird das LLAVA -Modell (Sprach- und Vision Assistant) verwendet, um Produktbeschreibungen und Spezifikationen aus Bildern zu generieren. Das Modell basiert auf einer Konversations -KI -Architektur, die sowohl mit Text als auch mit visuellen Eingaben interagieren kann.
Stellen Sie vor dem Ausführen des Codes sicher, dass die folgenden Abhängigkeiten installiert sind:
transformers und datasets von Face Facetorch für die Unterstützung von PytorchPIL für die BildverarbeitungInstallieren Sie das LLAVA -Paket:
! pip install git+https://github.com/haotian-liu/LLaVA.git@786aa6a19ea10edc6f574ad2e16276974e9aaa3aInstallieren Sie zusätzliche Abhängigkeiten:
! pip install -qU datasetsInitialisieren Sie den LLAVA -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' )Laden Sie den Datensatz:
from datasets import load_dataset
fashion = load_dataset (
"thegreyhound/demo2" ,
split = "train"
)
product_df = fashion . to_pandas ()Generieren Sie Produktbeschreibungen und Spezifikationen:
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 += 1Das Skript verarbeitet Bilder und generiert hochrangige Produktbeschreibungen und detaillierte Spezifikationen. Die endgültige Ausgabe wird in einer JSON -Datei gespeichert, die eine Reihe von Produktinformationen enthält.
Dieses Projekt ist unter der MIT -Lizenz lizenziert - Einzelheiten finden Sie in der Lizenzdatei.
Weitere Details finden Sie beim Umarmungsgesicht.