در بحث یادگیری ماشین فرآیند Embedding -که برای آن ترجمههای تعبیه کردن، جاساز کردن و نشاندن را آوردهاند- به تبدیل اشیاء به بردارهایی چندبعدی گفته میشود. Embedding نوعی طبقهبندی است که با هدف فهماندن مفاهیم نزدیک به هم به ماشین انجام میشود.
توضیح فرآیند
برای فهمیدن مفاهیم نزدیک به یکدیگر، ویژگیهای مختلف مقسم اشیاء و موجودات زنده ذکر میشود. به هر کلمه، مفهوم یا فایل ذیل این ویژگیها عددی اختصاص پیدا میکند که شدت آن ویژگی را میسنجد. در گام بعدی و در صورت نیاز، این ماتریس چندبعدی به فضایی با بعدهای کمتر نگاشت میشود تا تفاوتهای بین مفاهیم بهتر آشکار شود1.
کاربردهای Embedding
یکی از استفادههای اصلی Embedding، موتورهای پیشنهاددهنده2 هستند که بر اساس پسندهای کاربر، محصولات جدید را به او پیشنهاد میکنند. کاربرد دیگری که به تازگی به قابلیتهای Embedding اضافه شده است، دستهبندی اسناد است. در اجرای فرآیند RAG مدلهای Embedding ابتدا فایلهای ورودی را دستهبندی میکنند و سپس بر اساس دستور کاربر، نزدیکترین فایلهای مربوط به درخواست را در کنار اصل درخواست به عنوان ورودی به مدل زبانی میدهند.
رنکینگ مدلهای Embedding از این لینک قابل مشاهده است.
نمونهٔ اجرای Embedding
برای مشاهدهٔ بهتر با این مدلها، یک نمونه از آنها را اجرا میکنیم. مدل مورد استفادهٔ ما word2vec-skipgram-fa-wikipedia
است که توسط تیم HezarAI با دادههای ویکیپدیا آموزش داده شده است. این مدل قابلیتهای مختلفی از جمله تبدیل کلمه به بردار (همان مقادیر عددی)، یافتن کلمات مشابه، کلمات غریبه در بین کلمات مشابه و تعیین نزدیکی میان دو کلمه را دارد.
اول از همه برای استفاده از این مدل، باید پکیج آن را در محیط پایتون نصب کرد:
pip install hezar
و سپس با بارگیری مدل، دستورهای مرتبط را فراخوانی کرد:
دستور اول، مابهازای برداری کلمات را در اختیار ما میگذارد. آرایهٔ زیر که شامل دهها عدد مختلف است، همان برداری است که کلمهٔ «مهندس» را توصیف میکند.
دستور بعدی، کلمهٔ ناهمگن را مشخص میکند. این دستور بین کلمات ورودی همانی را انتخاب میکند که کمترین خوانش را با دیگر کلمات دارد.
دستور سوم، برعکس دستور بالا، نزدیکترین کلمات را به کلمهٔ ورودی پیدا میکند و آن را خروجی میدهد:
و در نهایت دستور آخر میزان قرابت بین دو کلمه را نشان میدهد: