ارزیابی دقیق و شباهت معنایی
بعضی ارزیابیها بیابهاماند: کد اجرا شد یا نشد؛ جواب با مرجع یکی است یا نیست. این درس سه راه ارزیابی «دقیق» را باز میکند — درستی عملکرد، شباهت واژگانی و شباهت معنایی — و با آنها به مفهومی میرسد که بقیهٔ دوره روی آن بنا میشود: تعبیه (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 تقریباً یکی است. نتیجهٔ درست کدام است؟
یک تعبیهٔ خوب چه ویژگیای دارد؟
مرور فلشکارتهای این درس
۷ کارت · ۰ مروروارد شوید تا پیشرفتتان ذخیره شود و از همینجا ادامه دهید.