فصل ۳ · درس ۱۳ از ۴۳

ارزیابی دقیق و شباهت معنایی

بعضی ارزیابی‌ها بی‌ابهام‌اند: کد اجرا شد یا نشد؛ جواب با مرجع یکی است یا نیست. این درس سه راه ارزیابی «دقیق» را باز می‌کند — درستی عملکرد، شباهت واژگانی و شباهت معنایی — و با آن‌ها به مفهومی می‌رسد که بقیهٔ دوره روی آن بنا می‌شود: تعبیه (embedding).

ارزیابی دقیق یعنی نتیجه‌ای بی‌ابهام. اگر جواب یک پرسش چندگزینه‌ای «الف» است و شما «ب» زده‌اید، جوابتان غلط است — بحثی ندارد. در مقابل، نمره دادن به انشا ذهنی است: به مصحح بستگی دارد و همان مصحح در دو زمان ممکن است دو نمره بدهد. این درس دو خانوادهٔ ارزیابی دقیق را برای پاسخ‌های باز بررسی می‌کند: درستی عملکرد، و شباهت با پاسخ مرجع.

درستی عملکرد: کار را انجام داد یا نه؟

درستی عملکرد (functional correctness) یعنی سامانه را با این بسنجید که کاری را که قرار بود انجام داد یا نه. از مدل خواستید وب‌سایت بسازد — وب‌سایت ساخته‌شده خواسته‌هایتان را برآورده می‌کند؟ خواستید رستوران رزرو کند — رزرو انجام شد؟ این سنجهٔ نهایی هر محصولی است. مشکل فقط این است که خودکار کردنش همیشه آسان نیست.

تولید کد، جایی است که خودکار کردنش آسان است. از مدل می‌خواهید تابع gcd(a, b) — بزرگ‌ترین مقسوم‌علیه مشترک — را بنویسد. کد را اجرا می‌کنید: اگر gcd(15, 20) عدد ۵ را برنگرداند، تابع غلط است. همین کاری است که مهندسی نرم‌افزار سال‌هاست با آزمون واحد می‌کند، و سایت‌هایی مثل LeetCode با آن راه‌حل‌ها را می‌سنجند.

بنچمارک‌های مشهور تولید کد — HumanEval از OpenAI و MBPP از گوگل — و بنچمارک‌های تبدیل زبان طبیعی به SQL مثل Spider و BIRD-SQL همه با درستی عملکرد نمره می‌دهند. هر مسئله چند مورد آزمون دارد: ورودی و خروجی مورد انتظار.

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

شباهت با پاسخ مرجع

اگر نمی‌شود کار را اجرا کرد و درستی‌اش را دید، راه رایج مقایسه با پاسخ مرجع است. مثلاً ترجمهٔ مدل را با یک ترجمهٔ درست مقایسه می‌کنید. دادهٔ مرجع به شکل (ورودی، پاسخ‌های مرجع) است — یک ورودی ممکن است چند ترجمهٔ درست داشته باشد. سنجه‌هایی که مرجع لازم دارند مرجع‌محور (reference-based) و آن‌هایی که ندارند بی‌مرجع (reference-free) نام دارند.

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

پاسخی که به مرجع شبیه‌تر است، بهتر حساب می‌شود. سه راه دستی برای سنجیدن این شباهت هست (راه چهارم، داور — انسان یا هوش مصنوعی — موضوع درس بعد است):

روشچه می‌سنجدنمره
تطابق دقیقپاسخ عیناً با یکی از مرجع‌ها یکی است؟صفر یا یک
شباهت واژگانیپاسخ از نظر ظاهر چقدر به مرجع شبیه استپیوسته، مثلاً ۰ تا ۱
شباهت معناییپاسخ از نظر معنا چقدر به مرجع نزدیک استپیوسته، مثلاً ۱- تا ۱

تطابق دقیق

برای پرسش‌هایی با جواب کوتاه و قطعی خوب است: «۲ + ۳ چند می‌شود؟»، «موجودی حسابم چقدر است؟»، «پاریس برای فرانسه مثل ___ برای انگلستان». یک گونهٔ رایجش هر پاسخی را که شامل مرجع باشد می‌پذیرد — «جواب ۵ است» هم برای مرجع «۵» درست حساب می‌شود.

برای هر چیزی پیچیده‌تر، تطابق دقیق کار نمی‌کند. «حالت چطوره؟» را می‌شود به ده شکل درست ترجمه کرد؛ هر ترجمه‌ای که در فهرست مرجع نباشد غلط حساب می‌شود. هرچه متن بلندتر، ترجمه‌های درست بیشتر، و ساختن فهرست کامل ناممکن‌تر.

شباهت واژگانی

ساده‌ترین شکلش شمردن توکن‌های مشترک است. مرجع: «گربهٔ من موش را می‌ترساند». دو پاسخ:

پاسخکلمه‌های مشترک با مرجعنمره
الف: «گربهٔ من موش را می‌خورد»گربهٔ، من، موش، را — ۴ از ۵۸۰٪
ب: «گربه و موش همیشه دعوا می‌کنند»فقط «موش» — ۱ از ۵۲۰٪

دو روش رایج دیگر: فاصلهٔ ویرایش — چند ویرایش لازم است تا یک متن به دیگری تبدیل شود (حذف: «باد ← بد»، افزودن: «بد ← برد»، جایگزینی: «بد ← بت») — و شباهت n-gram: به‌جای تک‌کلمه، دنباله‌های چندکلمه‌ای را مقایسه می‌کند. سنجه‌های مشهور این خانواده BLEU و ROUGE هستند که پیش از مدل‌های پایه، به‌ویژه در ترجمه، همه‌جا بودند.

سه ایراد جدی دارند:

  • مرجع ناقص: پاسخ درستی که شبیه هیچ مرجعی نیست، نمرهٔ پایین می‌گیرد. شرکت Adept دید مدلش در بعضی آزمون‌ها بد نمره گرفته نه چون غلط گفته، بلکه چون جواب درستش در فهرست مرجع نبوده.
  • مرجع غلط: برگزارکنندگان یک رقابت معتبر سنجه‌های ترجمه (WMT 2023) گزارش دادند ترجمه‌های مرجع بد زیادی در داده‌شان پیدا کرده‌اند.
  • شباهت ظاهری ≠ کیفیت: OpenAI در HumanEval دید نمرهٔ BLEU راه‌حل‌های درست و غلط تقریباً یکی است. کدی که شبیه جواب درست است ولی اجرا نمی‌شود، کد بدی است.

شباهت معنایی

شباهت واژگانی می‌گوید دو متن شبیه به نظر می‌رسند یا نه، نه اینکه یک معنا دارند. «چه خبر؟» و «حالت چطوره؟» تقریباً هیچ کلمهٔ مشترکی ندارند ولی معنایشان نزدیک است. و برعکس، یک ویرگول می‌تواند معنا را زیرورو کند:

شباهت معنایی اول متن را به یک بردار عددی به نام تعبیه (embedding) تبدیل می‌کند، بعد فاصلهٔ بردارها را می‌سنجد — معمولاً با شباهت کسینوسی: دو بردار عیناً یکسان نمرهٔ ۱ و دو بردار کاملاً مخالف نمرهٔ ۱- می‌گیرند. سنجه‌هایی مثل BERTScore همین کار را با تعبیه‌های BERT می‌کنند.

تعبیه: قلب بقیهٔ دوره

کامپیوتر با عدد کار می‌کند؛ پس هر مدلی باید ورودی‌اش را به عدد تبدیل کند. تعبیه یک بردار عددی است که می‌خواهد معنای دادهٔ اصلی را نگه دارد. «گربه روی حصیر نشسته» ممکن است بشود چیزی مثل [0.11, 0.02, 0.54] — البته در واقعیت نه سه عدد، که معمولاً بین ۱۰۰ تا ۱۰٬۰۰۰ عدد.

مدل تعبیهاندازهٔ بردار
BERT (پایه / بزرگ)۷۶۸ / ۱۰۲۴
CLIP (تصویر و متن)۵۱۲
OpenAI text-embedding-3-small / large۱۵۳۶ / ۳۰۷۲
گربه روی حصیر نشستهسگ روی چمن بازی می‌کندپژوهش هوش مصنوعی جذاب استزاویهٔ کوچک ← شباهت زیاد
نمایش ساده‌شده در دو بُعد. جمله‌های هم‌معنا بردارهای هم‌جهت‌تری دارند؛ شباهت کسینوسی همین زاویه را می‌سنجد، نه طول بردار را.

تعبیه‌ای که شبیه متن اصلی نیست، از کجا بفهمیم خوب است؟ از اینکه متن‌های شبیه‌تر، بردارهای نزدیک‌تری بگیرند. تعبیهٔ «گربه روی حصیر نشسته» باید به «سگ روی چمن بازی می‌کند» نزدیک‌تر باشد تا به «پژوهش هوش مصنوعی جذاب است». راه دیگر، سنجیدن در کار واقعی است — دسته‌بندی، پیشنهاد، جست‌وجو. بنچمارک MTEB کیفیت تعبیه را در ده‌ها کار از این دست می‌سنجد.

برای فارسی: مدل تعبیه را خودتان بسنجید

همهٔ آنچه در فصل ۲ دربارهٔ زبان گفتیم برای مدل‌های تعبیه هم صادق است. مدل تعبیه‌ای که بیشتر روی انگلیسی آموزش دیده، ممکن است دو جملهٔ هم‌معنای فارسی را نزدیک نبیند. پیش از اینکه جست‌وجو یا ارزیابی محصول فارسی را روی یک مدل تعبیه بنا کنید، چند جفت جملهٔ هم‌معنا و نامربوط فارسی بسازید و ببینید مدل آن‌ها را درست از هم جدا می‌کند یا نه.

خودآزمایی

آزمونک ۱

از ۲۰ مسئلهٔ برنامه‌نویسی، مدل با k=5 برای ۱۲ مسئله دست‌کم یک راه‌حل درست ساخته. pass@5 چقدر است؟

آزمونک ۲

«بخشش لازم نیست، اعدامش کنید» و «بخشش، لازم نیست اعدامش کنید» را با کدام سنجه نمی‌شود از هم تشخیص داد؟

آزمونک ۳

OpenAI دید نمرهٔ BLEU راه‌حل‌های درست و غلط در HumanEval تقریباً یکی است. نتیجهٔ درست کدام است؟

آزمونک ۴

یک تعبیهٔ خوب چه ویژگی‌ای دارد؟

مرور فلش‌کارت‌های این درس

۷ کارت · ۰ مرور

وارد شوید تا پیشرفتتان ذخیره شود و از همین‌جا ادامه دهید.

آکادمی هوش مصنوعی شیدهوش — بخشی از shidhoosh.com