في هذا العمل، نقدم نموذجين متطورين للتضمين لمنتجات التجارة الإلكترونية: Marqo-Ecommerce-B وMarqo-Ecommerce-L.
تظهر نتائج قياس الأداء أن نماذج Marqo-Ecommerce تتفوق باستمرار على جميع النماذج الأخرى عبر مقاييس مختلفة. على وجه التحديد، حققت marqo-ecommerce-L
تحسنًا متوسطًا بنسبة 17.6% في MRR و 20.5% في nDCG@10 عند مقارنتها بأفضل نموذج مفتوح المصدر حاليًا، ViT-SO400M-14-SigLIP
عبر جميع المهام الثلاث في marqo-ecommerce-hard
مجموعة البيانات marqo-ecommerce-hard
. عند المقارنة مع أفضل نموذج خاص، Amazon-Titan-Multimodal
، شهدنا تحسنًا متوسطًا بنسبة 38.9% في MRR و 45.1% في nDCG@10 عبر جميع المهام الثلاث، و 35.9% في الاستدعاء عبر مهام تحويل النص إلى صورة في مجموعة marqo-ecommerce-hard
.
يمكن العثور على المزيد من نتائج القياس أدناه.
المحتوى الصادر :
نموذج التضمين | #بارامس (م) | البعد | HuggingFace | تحميل .pt | استنتاج نص دفعة واحدة (A10g) | استنتاج صورة دفعة واحدة (A10g) |
---|---|---|---|---|---|---|
ماركو-التجارة الإلكترونية-B | 203 | 768 | ماركو/ماركو-التجارة الإلكترونية-التضمينات-B | وصلة | 5.1 مللي ثانية | 5.7 مللي ثانية |
ماركو-التجارة الإلكترونية-L | 652 | 1024 | ماركو/ماركو-التجارة الإلكترونية-التضمينات-L | وصلة | 10.3 مللي ثانية | 11.0 مللي ثانية |
لتحميل النماذج في OpenCLIP، انظر أدناه. تتم استضافة النماذج على Hugging Face وتحميلها باستخدام OpenCLIP. يمكنك أيضًا العثور على هذا الرمز داخل run_models.py
.
pip install open_clip_torch
from PIL import Image
import open_clip
import requests
import torch
# Specify model from Hugging Face Hub
model_name = 'hf-hub:Marqo/marqo-ecommerce-embeddings-L'
model , preprocess_train , preprocess_val = open_clip . create_model_and_transforms ( model_name )
tokenizer = open_clip . get_tokenizer ( model_name )
# Preprocess the image and tokenize text inputs
# Load an example image from a URL
img = Image . open ( requests . get ( 'https://raw.githubusercontent.com/marqo-ai/marqo-ecommerce-embeddings/refs/heads/main/images/dining-chairs.png' , stream = True ). raw )
image = preprocess_val ( img ). unsqueeze ( 0 )
text = tokenizer ([ "dining chairs" , "a laptop" , "toothbrushes" ])
# Perform inference
with torch . no_grad (), torch . cuda . amp . autocast ():
image_features = model . encode_image ( image , normalize = True )
text_features = model . encode_text ( text , normalize = True )
# Calculate similarity probabilities
text_probs = ( 100.0 * image_features @ text_features . T ). softmax ( dim = - 1 )
# Display the label probabilities
print ( "Label probs:" , text_probs )
# [1.0000e+00, 8.3131e-12, 5.2173e-12]
لتحميل النماذج في Transformers، انظر أدناه. تتم استضافة النماذج على Hugging Face وتحميلها باستخدام Transformers.
from transformers import AutoModel , AutoProcessor
import torch
from PIL import Image
import requests
model_name = 'Marqo/marqo-ecommerce-embeddings-L'
# model_name = 'Marqo/marqo-ecommerce-embeddings-B'
model = AutoModel . from_pretrained ( model_name , trust_remote_code = True )
processor = AutoProcessor . from_pretrained ( model_name , trust_remote_code = True )
img = Image . open ( requests . get ( 'https://raw.githubusercontent.com/marqo-ai/marqo-ecommerce-embeddings/refs/heads/main/images/dining-chairs.png' , stream = True ). raw ). convert ( "RGB" )
image = [ img ]
text = [ "dining chairs" , "a laptop" , "toothbrushes" ]
processed = processor ( text = text , images = image , padding = 'max_length' , return_tensors = "pt" )
processor . image_processor . do_rescale = False
with torch . no_grad ():
image_features = model . get_image_features ( processed [ 'pixel_values' ], normalize = True )
text_features = model . get_text_features ( processed [ 'input_ids' ], normalize = True )
text_probs = ( 100 * image_features @ text_features . T ). softmax ( dim = - 1 )
print ( text_probs )
# [1.0000e+00, 8.3131e-12, 5.2173e-12]
يتم استخدام التعلم التقابلي المعمم (GCL) للتقييم. يمكن أيضًا العثور على التعليمات البرمجية التالية في scripts
.
git clone https://github.com/marqo-ai/GCL
قم بتثبيت الحزم التي تتطلبها GCL.
1. GoogleShopping-Text2Image استرجاع.
cd ./GCL
MODEL=hf-hub:Marqo/marqo-ecommerce-B
outdir=MarqoModels/GE/marqo-ecommerce-B/gs-title2image
mkdir -p $outdir
hfdataset=Marqo/google-shopping-general-eval
python evals/eval_hf_datasets_v1.py
--model_name $MODEL
--hf-dataset $hfdataset
--output-dir $outdir
--batch-size 1024
--num_workers 8
--left-key "['title']"
--right-key "['image']"
--img-or-txt "[['txt'], ['img']]"
--left-weight "[1]"
--right-weight "[1]"
--run-queries-cpu
--top-q 4000
--doc-id-key item_ID
--context-length "[[64], [0]]"
2. GoogleShopping-Category2Image استرجاع.
cd ./GCL
MODEL=hf-hub:Marqo/marqo-ecommerce-B
outdir=MarqoModels/GE/marqo-ecommerce-B/gs-cat2image
mkdir -p $outdir
hfdataset=Marqo/google-shopping-general-eval
python evals/eval_hf_datasets_v1.py
--model_name $MODEL
--hf-dataset $hfdataset
--output-dir $outdir
--batch-size 1024
--num_workers 8
--left-key "['query']"
--right-key "['image']"
--img-or-txt "[['txt'], ['img']]"
--left-weight "[1]"
--right-weight "[1]"
--run-queries-cpu
--top-q 4000
--doc-id-key item_ID
--context-length "[[64], [0]]"
3. AmazonProducts-Category2Image استرجاع.
cd ./GCL
MODEL=hf-hub:Marqo/marqo-ecommerce-B
outdir=MarqoModels/GE/marqo-ecommerce-B/ap-title2image
mkdir -p $outdir
hfdataset=Marqo/amazon-products-eval
python evals/eval_hf_datasets_v1.py
--model_name $MODEL
--hf-dataset $hfdataset
--output-dir $outdir
--batch-size 1024
--num_workers 8
--left-key "['title']"
--right-key "['image']"
--img-or-txt "[['txt'], ['img']]"
--left-weight "[1]"
--right-weight "[1]"
--run-queries-cpu
--top-q 4000
--doc-id-key item_ID
--context-length "[[64], [0]]"
تم تقسيم عملية القياس لدينا إلى نظامين متميزين، يستخدم كل منهما مجموعات بيانات مختلفة لقوائم منتجات التجارة الإلكترونية: marqo-ecommerce-hard وmarqo-ecommerce-easy. تحتوي كلتا مجموعتي البيانات على صور ونصوص للمنتج وتختلفان فقط في الحجم. مجموعة البيانات "السهلة" أصغر بنحو 10 إلى 30 مرة (200 ألف منتج مقابل 4 مليون منتج)، وهي مصممة لاستيعاب النماذج ذات المعدل المحدود، وتحديدًا Cohere-Embeddings-v3 وGCP-Vertex (بحدود 0.66 دورة في الثانية و2 دورة في الثانية على التوالي). تمثل مجموعة البيانات "الصعبة" التحدي الحقيقي، لأنها تحتوي على أربعة ملايين قائمة منتجات التجارة الإلكترونية وهي أكثر تمثيلاً لسيناريوهات البحث في التجارة الإلكترونية في العالم الحقيقي.
ضمن هذين السيناريوهين، تم قياس النماذج مقابل ثلاث مهام مختلفة:
تبحث Marqo-Ecommerce-Hard في التقييم الشامل الذي تم إجراؤه باستخدام مجموعة البيانات الكاملة البالغ عددها 4 ملايين، مما يسلط الضوء على الأداء القوي لنماذجنا في سياق العالم الحقيقي.
GoogleShopping-Text2Image استرجاع.
نموذج التضمين | رسم خريطة | ص @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.682 | 0.878 | 0.683 | 0.726 |
ماركو-التجارة الإلكترونية-B | 0.623 | 0.832 | 0.624 | 0.668 |
فيت-SO400M-14-سيجليب | 0.573 | 0.763 | 0.574 | 0.613 |
فيت-L-16-سيجليب | 0.540 | 0.722 | 0.540 | 0.577 |
فيت-ب-16-سيجليب | 0.476 | 0.660 | 0.477 | 0.513 |
أمازون تيتان متعدد الوسائط | 0.475 | 0.648 | 0.475 | 0.509 |
جينا-V1-CLIP | 0.285 | 0.402 | 0.285 | 0.306 |
GoogleShopping-Category2 استرجاع الصور.
نموذج التضمين | رسم خريطة | ف @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.463 | 0.652 | 0.822 | 0.666 |
ماركو-التجارة الإلكترونية-B | 0.423 | 0.629 | 0.810 | 0.644 |
فيت-SO400M-14-سيجليب | 0.352 | 0.516 | 0.707 | 0.529 |
فيت-L-16-سيجليب | 0.324 | 0.497 | 0.687 | 0.509 |
فيت-ب-16-سيجليب | 0.277 | 0.458 | 0.660 | 0.473 |
أمازون تيتان متعدد الوسائط | 0.246 | 0.429 | 0.642 | 0.446 |
جينا-V1-CLIP | 0.123 | 0.275 | 0.504 | 0.294 |
AmazonProducts-Text2Image استرجاع.
نموذج التضمين | رسم خريطة | ص @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.658 | 0.854 | 0.663 | 0.703 |
ماركو-التجارة الإلكترونية-B | 0.592 | 0.795 | 0.597 | 0.637 |
فيت-SO400M-14-سيجليب | 0.560 | 0.742 | 0.564 | 0.599 |
فيت-L-16-سيجليب | 0.544 | 0.715 | 0.548 | 0.580 |
فيت-ب-16-سيجليب | 0.480 | 0.650 | 0.484 | 0.515 |
أمازون تيتان متعدد الوسائط | 0.456 | 0.627 | 0.457 | 0.491 |
جينا-V1-CLIP | 0.265 | 0.378 | 0.266 | 0.285 |
كما ذكرنا سابقًا، تم تقسيم عملية قياس الأداء لدينا إلى سيناريوهين متميزين: التجارة الإلكترونية الصعبة والتجارة الإلكترونية السهلة. يغطي هذا القسم الأخير الذي يحتوي على مجموعة أصغر بمقدار 10 إلى 30 مرة وتم تصميمه لاستيعاب النماذج ذات الأسعار المحدودة. سننظر في التقييم الشامل الذي تم إجراؤه باستخدام 200 ألف منتج كامل عبر مجموعتي البيانات. بالإضافة إلى النماذج التي تم قياسها بالفعل أعلاه، تتضمن هذه المعايير أيضًا Cohere-embedding-v3 وGCP-Vertex.
GoogleShopping-Text2Image استرجاع.
نموذج التضمين | رسم خريطة | ص @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.879 | 0.971 | 0.879 | 0.901 |
ماركو-التجارة الإلكترونية-B | 0.842 | 0.961 | 0.842 | 0.871 |
فيت-SO400M-14-سيجليب | 0.792 | 0.935 | 0.792 | 0.825 |
برنامج التعاون العالمي-فيرتكس | 0.740 | 0.910 | 0.740 | 0.779 |
فيت-L-16-سيجليب | 0.754 | 0.907 | 0.754 | 0.789 |
فيت-ب-16-سيجليب | 0.701 | 0.870 | 0.701 | 0.739 |
أمازون تيتان متعدد الوسائط | 0.694 | 0.868 | 0.693 | 0.733 |
جينا-V1-CLIP | 0.480 | 0.638 | 0.480 | 0.511 |
تماسك التضمين-v3 | 0.358 | 0.515 | 0.358 | 0.389 |
GoogleShopping-Category2 استرجاع الصور.
نموذج التضمين | رسم خريطة | ف @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.515 | 0.358 | 0.764 | 0.590 |
ماركو-التجارة الإلكترونية-B | 0.479 | 0.336 | 0.744 | 0.558 |
فيت-SO400M-14-سيجليب | 0.423 | 0.302 | 0.644 | 0.487 |
برنامج التعاون العالمي-فيرتكس | 0.417 | 0.298 | 0.636 | 0.481 |
فيت-L-16-سيجليب | 0.392 | 0.281 | 0.627 | 0.458 |
فيت-ب-16-سيجليب | 0.347 | 0.252 | 0.594 | 0.414 |
أمازون تيتان متعدد الوسائط | 0.308 | 0.231 | 0.558 | 0.377 |
جينا-V1-CLIP | 0.175 | 0.122 | 0.369 | 0.229 |
تماسك التضمين-v3 | 0.136 | 0.110 | 0.315 | 0.178 |
AmazonProducts-Text2Image استرجاع.
نموذج التضمين | رسم خريطة | ص @ 10 | MRR | ندكج@10 |
---|---|---|---|---|
ماركو-التجارة الإلكترونية-L | 0.92 | 0.978 | 0.928 | 0.940 |
ماركو-التجارة الإلكترونية-B | 0.897 | 0.967 | 0.897 | 0.914 |
فيت-SO400M-14-سيجليب | 0.860 | 0.954 | 0.860 | 0.882 |
فيت-L-16-سيجليب | 0.842 | 0.940 | 0.842 | 0.865 |
برنامج التعاون العالمي-فيرتكس | 0.808 | 0.933 | 0.808 | 0.837 |
فيت-ب-16-سيجليب | 0.797 | 0.917 | 0.797 | 0.825 |
أمازون تيتان متعدد الوسائط | 0.762 | 0.889 | 0.763 | 0.791 |
جينا-V1-CLIP | 0.530 | 0.699 | 0.530 | 0.565 |
تماسك التضمين-v3 | 0.433 | 0.597 | 0.433 | 0.465 |
@software{zhu2024marqoecommembed_2024,
author = {Tianyu Zhu and and Jesse Clark},
month = oct,
title = {{Marqo Ecommerce Embeddings - Foundation Model for Product Embeddings}},
url = {https://github.com/marqo-ai/marqo-ecommerce-embeddings/},
version = {1.0.0},
year = {2024}
}