MODULE 02 / LESSON 13

Semantic Search — بررسی عمیق Embedding Model

مفهوم اصلی وظیفه اصلی یک Embedding Model ساده است: تبدیل متن‌های مشابه به Vectorهایی که در فضای برداری به یکدیگر نزدیک باشند و متن‌های غیرمشابه را به Vectorهایی دورتر از هم تبدیل کند. اما انجام این کار بسیار پیچیده است، زیرا مدل…

نویسنده: محمد ابوطالبی۹۲۹ واژهماژول ۲: Retriever

مفهوم اصلی

وظیفه اصلی یک Embedding Model ساده است:

تبدیل متن‌های مشابه به Vectorهایی که در فضای برداری به یکدیگر نزدیک باشند و متن‌های غیرمشابه را به Vectorهایی دورتر از هم تبدیل کند.

اما انجام این کار بسیار پیچیده است، زیرا مدل باید بتواند مفهوم و معنی متن را درک کند.

سؤال اصلی:

یک کامپیوتر چگونه می‌تواند معنی یک متن را بفهمد و آن را به یک موقعیت در فضای ریاضی تبدیل کند؟

پاسخ در نحوه آموزش Embedding Model قرار دارد.


مفهوم Positive Pair و Negative Pair

آموزش Embedding Model بر اساس مقایسه متن‌های مشابه و متفاوت انجام می‌شود.


Positive Pair (جفت مثبت)

دو متن که معنی مشابهی دارند.

هدف:

Vector آن‌ها باید به یکدیگر نزدیک شود.

مثال:

Good morning
Hello

این دو عبارت از نظر مفهوم مشابه هستند، بنابراین باید در فضای Vector نزدیک قرار بگیرند.


Negative Pair (جفت منفی)

دو متن که معنی متفاوتی دارند.

هدف:

Vector آن‌ها باید از یکدیگر دور شود.

مثال:

Good morning
That's a noisy trombone

این دو متن ارتباط معنایی ندارند، بنابراین باید فاصله بیشتری داشته باشند.


هدف آموزش Embedding Model

مدل باید طوری آموزش ببیند که:

  • Positive Pairها → نزدیک شوند.
  • Negative Pairها → از هم دور شوند.

مرحله اول آموزش: ساخت Dataset

اولین مرحله آموزش:

ایجاد مجموعه بزرگی از:

  • Positive Pair
  • Negative Pair

است.

این مجموعه‌ها معمولاً بسیار بزرگ هستند و ممکن است شامل:

  • میلیون‌ها نمونه

باشند.

هر کلمه یا متن در نمونه‌های زیادی قرار می‌گیرد تا رابطه آن با مفاهیم مختلف یاد گرفته شود.


مرحله دوم: شروع آموزش با Vectorهای تصادفی

در ابتدای آموزش:

Embedding Model هر متن را به یک Vector تصادفی تبدیل می‌کند.

این Vectorها:

  • معنی خاصی ندارند.
  • هیچ ارتباطی با مفهوم متن ندارند.

اگر در این مرحله از مدل برای Retrieval استفاده شود:

نتایج کاملاً بی‌معنی خواهند بود.


Contrastive Training (آموزش تضادی)

پس از ایجاد Vectorهای اولیه، مدل شروع به مقایسه می‌کند.

مدل بررسی می‌کند:

  • آیا Positive Pairها به اندازه کافی نزدیک هستند؟
  • آیا Negative Pairها به اندازه کافی دور هستند؟

به دلیل استفاده از تضاد بین نمونه‌های مثبت و منفی، این روش:

Contrastive Training

نام دارد.


به‌روزرسانی پارامترهای مدل

بر اساس نتیجه ارزیابی:

مدل پارامترهای داخلی خود را تغییر می‌دهد.

هدف:

  • نزدیک‌تر کردن Positive Pairها
  • دورتر کردن Negative Pairها

فرآیند تکراری آموزش

این فرآیند بارها تکرار می‌شود:

  1. متن‌ها با پارامترهای جدید به Vector تبدیل می‌شوند.
  2. عملکرد مدل با Positive و Negative Pairها بررسی می‌شود.
  3. پارامترهای مدل دوباره تغییر می‌کنند.
  4. Vectorها دوباره اصلاح می‌شوند.

این چرخه بارها تکرار می‌شود تا ساختار معنایی مناسبی شکل بگیرد.


مثال آموزشی با یک متن مشخص

فرض کنید عبارت زیر را داریم:

He could smell the roses

این عبارت را:

Anchor Point

می‌نامیم.


Positive Pair

متن مشابه:

A field of fragrant flowers

این باید به Anchor نزدیک شود.


Negative Pair

متن نامرتبط:

A lion roared majestically

این باید از Anchor دور شود.


وضعیت قبل از آموزش

در شروع:

هر سه عبارت در نقاط تصادفی قرار دارند.

Vectorها هیچ معنی خاصی ندارند.


هدف مدل

از دید Anchor:

  • عبارت مربوط به گل‌ها باید به سمت آن کشیده شود.
  • عبارت مربوط به شیر باید از آن دور شود.

پس از آموزش‌های متعدد:

  • متن‌های مشابه نزدیک می‌شوند.
  • متن‌های متفاوت فاصله می‌گیرند.

پیچیدگی در مقیاس واقعی

در مثال ساده فقط چند نقطه وجود داشت.

اما در عمل:

  • میلیون‌ها Anchor
  • میلیون‌ها Positive Pair
  • میلیون‌ها Negative Pair

وجود دارند.

در نتیجه:

هر Vector همزمان از جهات مختلف:

  • کشیده می‌شود.
  • رانده می‌شود.

چرا Embeddingها ابعاد زیادی دارند؟

به همین دلیل Vectorهای Embedding معمولاً:

  • صدها
  • یا هزاران

بعد دارند.

فضای چندبعدی بالا به مدل اجازه می‌دهد:

  • روابط پیچیده‌تر را نمایش دهد.
  • مفاهیم نزدیک را در مناطق مناسب قرار دهد.

معنی Vectorهای Semantic

یک نکته مهم:

Vectorهای Semantic ذاتاً معنی مشخصی ندارند.


قبل از آموزش

مکان یک نقطه در فضای Vector:

  • تصادفی است.
  • هیچ مفهوم خاصی ندارد.

بعد از آموزش

مکان‌ها دارای معنی می‌شوند، اما نه به صورت مستقیم.

معنی از طریق Clusterها ایجاد می‌شود.

مثال:

ممکن است یک بخش از فضای Vector شامل:

  • کلمات مرتبط با شیرها

باشد.

و بخش دیگری شامل:

  • مفاهیم مرتبط با ترومپت

باشد.


چرا اجرای دوباره آموزش ممکن است مکان‌های متفاوت ایجاد کند؟

اگر آموزش دو بار انجام شود:

اما با:

  • Vectorهای اولیه متفاوت
  • مقادیر تصادفی اولیه متفاوت

ممکن است:

  • Clusterهای مشابه شکل بگیرند.
  • اما در نقاط متفاوت فضای Vector قرار بگیرند.

یعنی:

ساختار معنایی حفظ می‌شود، اما مختصات دقیق تغییر می‌کند.


مقایسه Vectorهای Embedding

یک قانون مهم:

فقط Vectorهایی را مقایسه کنید که توسط یک Embedding Model یکسان ساخته شده‌اند.


چرا؟

چون مدل‌های مختلف:

  • داده آموزشی متفاوت دارند.
  • تعداد ابعاد متفاوت دارند.
  • مقداردهی اولیه متفاوت دارند.

بنابراین مقایسه Vectorهای دو مدل مختلف نتیجه معنی‌داری ندارد.


استفاده عملی در RAG

در عمل معمولاً:

  • Embedding Model آماده استفاده می‌شود.
  • نیازی به آموزش مدل جدید نیست.

مدل‌های آماده معمولاً عملکرد خوبی دارند و می‌توانند:

  • کلمات مشابه
  • جملات مشابه
  • اسناد مشابه

را در فضای Vector نزدیک قرار دهند.


نکات مهم برای استفاده از Embedding در RAG

  • معمولاً لازم نیست فاصله Vectorها را خودتان پیاده‌سازی کنید.
  • کتابخانه‌ها و ابزارهای آماده این محاسبات را انجام می‌دهند.
  • اما درک نحوه کار Embedding Model کمک می‌کند بهتر تصمیم بگیرید:
    • چه داده‌ای ذخیره کنید.
    • چگونه Retriever را طراحی کنید.
    • نتایج Semantic Search را تحلیل کنید.

جمع‌بندی

  • وظیفه Embedding Model تبدیل متن‌های مشابه به Vectorهای نزدیک و متن‌های متفاوت به Vectorهای دور است.
  • آموزش Embedding بر اساس Positive Pair و Negative Pair انجام می‌شود.
  • Positive Pairها به هم نزدیک و Negative Pairها از هم دور می‌شوند.
  • این فرآیند با روش Contrastive Training انجام می‌شود.
  • Vectorهای اولیه تصادفی هستند و بعد از آموزش ساختار معنایی پیدا می‌کنند.
  • فضای چندبعدی بزرگ به مدل اجازه نمایش روابط پیچیده را می‌دهد.
  • مختصات Vectorها در مدل‌های مختلف قابل مقایسه نیستند.
  • در سیستم‌های RAG معمولاً از Embedding Modelهای آماده استفاده می‌شود.