تازه
ابزارها

پشتیبانی Sentence Transformers 6.0 از مدل‌های Multi-Vector و ColBERT

نسخه ۶.۰ نوع مدل چهارم یعنی MultiVectorEncoder را اضافه می‌کند؛ ColBERT و PyLate با همان API همیشگی لود می‌شوند.

پشتیبانی Sentence Transformers 6.0 از مدل‌های Multi-Vector و ColBERT
تحریریه هوشنامه۲۴ شهریور ۱۴۰۵۴ دقیقه مطالعه۱ بازدید۱ ساعت پیش
عادی

MultiVectorEncoder در Sentence Transformers 6.0 بازیابی به سبک ColBERT را ممکن می‌کند: MaxSim به‌جای یک بردار، ایندکس فشرده و بازیابی تصویری بدون OCR.

کتابخانه Sentence Transformers در نسخه ۶.۰ چهارمین نوع مدل خود را معرفی کرده است: MultiVectorEncoder برای بازیابی به سبک ColBERT یا Late Interaction. هر چک‌پوینت PyLate و ColBERT استنفورد مستقیم داخل همین API آشنا لود می‌شود و مدل‌های colpali-engine برای بازیابی اسناد تصویری هم پشتیبانی می‌شوند. برای شروع فقط یک pip install -U sentence-transformers لازم است.

تفاوت مدل تک‌برداری و چندبرداری در چیست؟

یک مدل dense کل متن را در یک بردار ثابت خلاصه می‌کند؛ مثلاً ۳۸۴ یا ۷۶۸ عدد. این فشرده‌سازی lossy است: یک شناسه دقیق، یک موجودیت نادر یا یک شرط کلیدی در متن بلند باید با بقیه محتوا سر جا بجنگند. مثال خود مقاله گویاست: برای کوئری «مبل سبز با پایه چوبی و کوسن گرد»، بردار واحد باید هر چهار شرط را در یک نقطه ترکیب کند و مبل سبز با پایه اشتباه به نتیجه درست نزدیک می‌شود.

مدل چندبرداری این فشرده‌سازی را انجام نمی‌دهد. به‌جای یک بردار، برای هر توکن یک بردار کوچک (معمولاً ۱۲۸ بُعدی) نگه می‌دارد و امتیازدهی با عملگر MaxSim در زمان جست‌وجو انجام می‌شود؛ برای هر توکنِ کوئری، بیشترین شباهت را بین توکن‌های سند پیدا می‌کند و این ماکسیمم‌ها را جمع می‌زند. چون embeddingها contextualized هستند، این تطبیق لزوماً واژگانی نیست: توکن «live» در کوئری، بهترین تطابقش را روی «inhabit» با شباهت ۰.۹۴ پیدا می‌کند؛ کاری که BM25 از پس آن برنمی‌آید.

ایندکس چندبرداری چقدر بزرگ‌تر می‌شود؟

روی ۴,۸۷۴ پاسخ Natural Questions، مدل LateOn حدود ۶۰۸ هزار بردار توکن تولید کرد؛ یعنی به‌طور میانگین ۱۲۵ بردار به‌جای یکی برای هر پاسخ — تقریباً ۴۲ برابر حجم ایندکس MiniLM. اما فشرده‌سازی وضع را تغییر می‌دهد: همان بردارها در ایندکس fast-plaid فقط ۹۲ مگابایت جا می‌گیرند، در حالی که یک مدل dense بزرگ مثل Qwen3-Embedding-8B برای همین داده حدود ۸۰ مگابایت لازم دارد. ایندکس فشرده multi-vector در همان محدوده‌ای است که کاربران dense از قبل تحمل می‌کنند.

اگر ایندکس نمی‌خواهید چه؟

الگوی Retrieve and Rerank راه فرار است: یک bi-encoder سریع کورپوس را به چند ده کاندیدا محدود می‌کند و مدل multi-vector فقط همان‌ها را دوباره امتیاز می‌دهد. ایندکس شما dense باقی می‌ماند و بردارهای توکنی موقتی‌اند. طبق مقاله، این نقش همان reranker کلاسیک است، اما ارزان‌تر؛ چون به‌جای یک forward pass برای هر جفت، یک بار batch انکود و بعد یک ضرب ماتریسی کار را تمام می‌کند.

برای مقیاس‌های بزرگ‌تر هم اکوسیستم آماده است: Qdrant از نسخه ۱.۱۰، Weaviate از ۱.۲۹، Vespa، LanceDB و Milvus در ۲.۶.۴ پشتیبانی بومی دارند و VectorChord حتی عملگر MaxSim را به Postgres اضافه کرده است. اگر سرور نمی‌خواهید، fast-plaid از LightOn با یک pip install در دسترس است.

چطور بدون OCR سند تصویری جست‌وجو کنیم؟

جایی که Late Interaction واقعاً state of the art است، بازیابی اسناد تصویری با خانواده ColPali است: کوئری متنی مستقیم با تصویر صفحه مقایسه می‌شود و نمودار، جدول و layout دست‌نخورده می‌مانند؛ بدون هیچ مرحله OCR. منطقی هم هست، چون صفحه‌ای پر از جدول و نمودار دقیقاً همان چیزی است که یک بردار واحد نمی‌تواند خلاصه‌اش کند.

هزینه‌اش حافظه است. یک صفحه حدود ۷۵۵ بردار توکن تولید می‌کند در برابر ۲۵ بردار برای کوئری؛ به همین دلیل Token Pooling اینجا زودتر از متن به کار می‌آید. جالب‌تر اینکه مدل colqwen-omni روی Qwen2.5-Omni هر چهار مودality متن، تصویر، صدا و ویدیو را می‌گیرد و بازیابی صوتی‌اش zero-shot است؛ یعنی حتی یک نمونه آموزشی صوتی نداشته و بدون ترنسکریپشن کار می‌کند.

یک نکته عملی برای کسانی که مهاجرت می‌کنند: نسخه ۶.۰ به transformers نسخه ۵، torch ۲.۲ به بالا و huggingface-hub نسخه ۱ نیاز دارد. اگر وابستگی‌هایتان پایین‌تر را pin کرده‌اید، اول ارتقا را برنامه‌ریزی کنید.

این پست آموزشی بر اساس مطلب رسمی تیم Hugging Face درباره مدل‌های چندبرداری در Sentence Transformers نوشته شده است: Hugging Face Blog

سؤالات رایج

آیا برای استفاده از ColBERT باید Sentence Transformers را ارتقا دهم؟ بله؛ پشتیبانی از MultiVectorEncoder از نسخه ۶.۰ اضافه شده و با pip install -U sentence-transformers نصب می‌شود. توجه کنید که این نسخه به transformers ۵، torch ۲.۲ به بالا و huggingface-hub نسخه ۱ نیاز دارد.

آیا می‌توانم multi-vector را بدون تغییر ایندکس فعلی امتحان کنم؟ بله، با الگوی Retrieve and Rerank: bi-encoder سریع چند ده کاندیدا پیدا می‌کند و مدل multi-vector فقط همان‌ها را دوباره امتیاز می‌دهد. ایندکس dense شما دست‌نخورده می‌ماند.

آیا بازیابی اسناد تصویری با ColPali به OCR نیاز دارد؟ خیر؛ کوئری متنی مستقیم با تصویر صفحه مقایسه می‌شود و جدول، نمودار و layout دست‌نخورده باقی می‌مانند. در عوض هر صفحه حدود ۷۵۵ بردار توکن تولید می‌کند، پس Token Pooling برای مدیریت حافظه توصیه می‌شود.

بیشتر بخوانید

ادامه دهید — دنیای هوش مصنوعی بی‌پایان است

برای خواندن تحلیل‌های بیشتر، صفحهٔ اصلی یا دستهٔ مرتبط را دنبال کنید. می‌توانید با میانبرهای صفحه‌کلید هم بین مقاله‌ها جابه‌جا شوید.

این مطلب را به اشتراک بگذارید

منبع اصلی خبر

Hugging Face Blog

https://huggingface.co/blog/multi-vector-encoder

تحریریه هوشنامه این خبر را بر اساس گزارش منبع اصلی بازنویسی و ویرایش کرده است. برای جزئیات بیشتر به منبع مراجعه کنید.

اخبار مرتبط