پرش به محتوای اصلی
هوش مصنوعی

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

توضیح عمیق embedding؛ از نمایش معنا در فضای برداری و نحوه‌ی آموزش مدل‌ها تا انتخاب بُعد، نرمال‌سازی و کاربرد در جست‌وجو و RAG.

تیم هوش مصنوعی گلدیتا۲۹ اسفند ۱۴۰۳۱۱ دقیقه مطالعه

embedding پل میان داده‌ی خام انسانی و ریاضیات قابل‌پردازش برای ماشین است. یک embedding برداری از اعداد اعشاری است که معنای یک واحد داده مانند کلمه، جمله، سند یا تصویر را در فضایی پیوسته و پربُعد رمزگذاری می‌کند. ایده‌ی محوری این است که نزدیکی هندسی در این فضا، نزدیکی معنایی را بازتاب دهد؛ مفاهیم مشابه نزدیک هم و مفاهیم بی‌ربط دور از هم قرار می‌گیرند.

این مفهوم ساده، شالوده‌ی بخش بزرگی از هوش مصنوعی مدرن است: از موتورهای جست‌وجوی معنایی و سامانه‌های توصیه‌گر تا بازیابی در RAG و خوشه‌بندی اسناد. درک درست embedding پیش‌نیاز ساخت هر سامانه‌ی هوش مصنوعی جدی است.

از کلمات تا بردارهای متنی

نسل اول embeddingها مانند Word2Vec و GloVe برای هر کلمه یک بردار ثابت تولید می‌کردند. این رویکرد توانست روابط معنایی شگفت‌انگیزی را ثبت کند، اما یک ضعف بنیادی داشت: واژه‌ی چندمعنایی مثل «شیر» همیشه یک بردار می‌گرفت، صرف‌نظر از اینکه در جمله به معنای حیوان، نوشیدنی یا قفل آب باشد.

embeddingهای مبتنی بر ترنسفورمر این مشکل را حل کردند. در این مدل‌ها، بردار هر واژه به بافت جمله وابسته است؛ یعنی «شیر» در دو جمله‌ی متفاوت دو بردار متفاوت می‌گیرد. برای جست‌وجو و RAG معمولاً از embedding در سطح جمله یا قطعه استفاده می‌کنیم که نمایش معنایی فشرده‌ای از کل متن ارائه می‌دهد.

چگونه مدل‌های embedding آموزش می‌بینند؟

مدل‌های embedding معنایی معمولاً با یادگیری متضاد (contrastive learning) آموزش می‌بینند. به مدل جفت‌هایی از متون داده می‌شود که برخی مرتبط (مثبت) و برخی نامرتبط (منفی) هستند. تابع هزینه مدل را تشویق می‌کند بردار جفت‌های مثبت را به هم نزدیک و بردار جفت‌های منفی را از هم دور کند. کیفیت نمونه‌های منفی، به‌ویژه نمونه‌های منفی سخت، نقش تعیین‌کننده‌ای در عملکرد نهایی دارد.

همین موضوع نکته‌ی مهمی را روشن می‌کند: یک مدل embedding برای دامنه‌ی خاصی بهینه شده است. مدلی که روی متون عمومی وب آموزش دیده ممکن است در حوزه‌ی پزشکی، حقوقی یا مالی فارسی عملکرد ضعیف‌تری داشته باشد. در این موارد fine-tune مدل روی داده‌ی دامنه می‌تواند کیفیت بازیابی را به‌طور چشمگیری بهبود دهد.

بُعد، نرمال‌سازی و مصالحه‌ها

ابعاد بردار embedding معمولاً از چند صد تا چند هزار متغیر است. ابعاد بیشتر ظرفیت بازنمایی بالاتری دارند اما حافظه و هزینه‌ی جست‌وجوی بیشتری می‌طلبند. برخی مدل‌های جدید از یادگیری چندمقیاسی پشتیبانی می‌کنند که امکان کوتاه‌سازی بردار بدون افت شدید کیفیت را می‌دهد و انعطاف‌پذیری هزینه را افزایش می‌دهد.

  • نرمال‌سازی L2 بردارها هنگام استفاده از شباهت کسینوسی، نتایج پایدارتری می‌دهد.
  • مدل embedding پرس‌وجو و اسناد باید یکسان یا سازگار باشد، وگرنه فضای برداری ناهمگون می‌شود.
  • برخی مدل‌ها به پیشوند دستوری متفاوت برای پرس‌وجو و سند نیاز دارند؛ نادیده گرفتن آن کیفیت را پایین می‌آورد.

embedding فراتر از متن

همان اصول برای تصویر، صوت و حتی داده‌ی ساختاریافته به کار می‌رود. مدل‌های چندوجهی می‌توانند متن و تصویر را در یک فضای برداری مشترک قرار دهند، به‌طوری‌که جست‌وجوی تصویر با متن یا برعکس ممکن شود. این قابلیت در کاربردهای فهرست‌گذاری محتوای رسانه‌ای و تجارت الکترونیک ارزش زیادی دارد.

embedding بد، هیچ سامانه‌ی بازیابی خوبی نمی‌سازد؛ کیفیت RAG شما هرگز از کیفیت embedding بنیادینش فراتر نمی‌رود.

ارزیابی کیفیت embedding

برای انتخاب مدل embedding صرفاً به جدول‌های مقایسه‌ای عمومی تکیه نکنید. بهترین رویکرد، ساخت یک مجموعه‌ی ارزیابی کوچک اما واقعی از پرس‌وجوها و اسناد مرتبط دامنه‌ی خودتان و سنجش معیارهایی مانند recall@k و MRR است. مدلی که در بنچمارک عمومی اول است، لزوماً برای متون فارسی تخصصی شما بهترین نیست.

همچنین به پایداری مدل توجه کنید: اگر سرویس embedding خارجی استفاده می‌کنید، تغییر نسخه‌ی مدل می‌تواند بی‌سروصدا فضای برداری را جابه‌جا کند و نتایج را خراب کند. کنترل نسخه و استقرار اختصاصی مدل embedding برای محیط‌های سازمانی ارزش راهبردی دارد.

گلدیتا مدل‌های embedding بهینه‌شده برای زبان فارسی و دامنه‌های تخصصی را به‌صورت سرویس و نیز استقرار اختصاصی ارائه می‌دهد تا تیم‌ها بتوانند بازیابی معنایی دقیق و سازگار بسازند.

آماده‌اید داده را به طلا تبدیل کنید؟

با کارشناسان گلدیتا درباره‌ی نیاز سازمان خود گفت‌وگو کنید؛ از معماری داده تا استقرار هوش مصنوعی، کنار شما هستیم.