Proyek ini berfokus pada penyematan dan pengambilan dataset produk mode skala besar yang dikumpulkan dari merek-merek besar seperti Aarong, Allen Solly, Bata, Apex, dan Infinity. Dataset terdiri dari lebih dari 20.000 produk, yang mencakup berbagai kategori dan gaya. Notebook ini memanfaatkan model dan alat yang kuat untuk membuat embeddings untuk teks dan gambar, dan kemudian menyimpan embeddings ini dalam database vektor menggunakan qdrant. Pengaturan ini memungkinkan pengambilan produk mode yang efisien dan akurat berdasarkan kesamaan semantik.
Dataset, yang di -host di Hugging Face, mencakup lebih dari 20.000 produk mode yang dikikis dari berbagai sumber, dengan detail seperti kategori produk, perusahaan, nama, deskripsi, spesifikasi, tautan gambar, dan banyak lagi. Anda dapat menjelajahi dataset di sini.
text-embedding-3-large untuk membuat embeddings dimensi tinggi untuk deskripsi dan ringkasan produk.clip-ViT-B-32 ) dari pustaka SentenceTransformer digunakan untuk menghasilkan embeddings gambar. Model ini menangkap fitur visual yang dapat digunakan untuk menemukan produk serupa berdasarkan penampilannya.Untuk setiap produk, string ringkasan dihasilkan, menangkap detail kunci seperti kategori, perusahaan, nama, dan spesifikasi. String ini kemudian tertanam menggunakan model teks. Secara bersamaan, gambar produk utama diunduh, diproses, dan dikodekan untuk menghasilkan embedding gambar. Kedua embeddings disimpan dalam koleksi Qdrant untuk pencarian vektor yang efisien.
Database Qdrant digunakan sebagai toko vektor untuk embeddings ini, mendukung pencarian kesamaan waktu-nyata berdasarkan kueri teks dan gambar. Notebook ini membuat koleksi yang mengakomodasi ringkasan dan vektor gambar menggunakan kesamaan cosinus.
Notebook itu mengulangi dataset dan:
Pengaturan ini memungkinkan integrasi tanpa batas ke dalam sistem apa pun yang membutuhkan rekomendasi produk mode atau fungsi pencarian berdasarkan data multi-modal.
Gambar di atas menampilkan jumlah titik vektor yang disimpan dalam koleksi Qdrant, memvisualisasikan skala dataset dan embeddings yang disimpan.
Proyek ini merupakan sumber yang bagus untuk siapa pun yang ingin menjelajahi embeddings multi-modal, database vektor, dan data mode pada skala.
Proyek ini menggunakan model LLAVA (Bahasa dan Visi Asisten) untuk menghasilkan deskripsi produk dan spesifikasi dari gambar. Model ini didasarkan pada arsitektur AI percakapan yang dapat berinteraksi dengan input teks dan visual.
Sebelum menjalankan kode, pastikan Anda memiliki dependensi berikut yang diinstal:
transformers dan datasets Facetorch untuk Dukungan PytorchPIL untuk pemrosesan gambarInstal Paket LLAVA:
! pip install git+https://github.com/haotian-liu/LLaVA.git@786aa6a19ea10edc6f574ad2e16276974e9aaa3aInstal dependensi tambahan:
! pip install -qU datasetsInisialisasi chatbot 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' )Muat dataset:
from datasets import load_dataset
fashion = load_dataset (
"thegreyhound/demo2" ,
split = "train"
)
product_df = fashion . to_pandas ()Hasilkan deskripsi dan spesifikasi produk:
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 += 1Script memproses gambar dan menghasilkan deskripsi produk tingkat tinggi dan spesifikasi terperinci. Output akhir disimpan dalam file JSON yang berisi serangkaian informasi produk.
Proyek ini dilisensikan di bawah lisensi MIT - lihat file lisensi untuk detailnya.
Anda dapat menemukan detail lebih lanjut dan mengakses dataset di memeluk wajah.