۴. پیروی از دستور و نقشآفرینی
مدلی که همهچیز را میداند ولی قالب خواستهشده را رعایت نمیکند، برنامهتان را میشکند. این درس میگوید پیروی از دستور چطور سنجیده میشود و نقشآفرینی را چطور ارزیابی کنیم.
مدل حرف شما را گوش میدهد؟
سنجیدن پیروی از دستور یعنی پرسیدن اینکه مدل دستورهای شما را چقدر خوب اجرا میکند. اگر مدل در این کار بد باشد، دستورهایتان هرقدر هم خوب باشند، خروجی بد است. بیشتر مدلهای پایه برای همین کار آموزش دیدهاند — InstructGPT، نیای ChatGPT، اسمش را از همین گرفت. و معمولاً مدل قویتر، بهتر دستور میپذیرد: GPT-4 از GPT-3.5 و Claude-v2 از Claude-v1.
این توانایی برای خروجی ساختاریافته حیاتی است — JSONJavaScript Object Notationنشانهگذاری شیء جاوااسکریپت یا متنی که با یک الگوی مشخص بخواند (همان که در فصل ۲ ساختیم). اگر بخواهید ورودی را در یکی از سه دستهٔ A، B یا C بگذارد و مدل بنویسد «درست است»، برنامهای که فقط A یا B یا C انتظار دارد میشکند.
ولی پیروی از دستور فقط ساختار نیست. اگر بخواهید «فقط از کلمههای حداکثر چهارحرفی استفاده کن»، خروجی ساختاریافته نیست ولی باید از دستور پیروی کند. استارتاپ Ello که به بچهها کمک میکند بهتر بخوانند، میخواهد برای هر بچه داستانی بسازد که فقط از کلمههایی که او میفهمد استفاده کند — مدلش باید بتواند با یک فهرست محدود از کلمهها کار کند.
دو آزمون: IFEval و INFOBench
آزمون IFEvalInstruction-Following Evaluationارزیابی پیروی از دستور — آزمون گوگل با ۲۵ نوع دستور که با کد قابلبررسیاند. (Instruction-Following Evaluation — ارزیابی پیروی از دستور) از گوگل (Zhou و همکاران، ۲۰۲۳) روی دستورهایی تمرکز میکند که با کد قابلبررسیاند. ۲۵ نوع دستور دارد، از جمله وجود کلیدواژه، محدودیت طول، تعداد بولتها و قالب JSON. اگر از مدل بخواهید جملهای با کلمهٔ «ephemeral» بنویسد، یک برنامهٔ کوچک میتواند بررسی کند که این کلمه در خروجی هست یا نه. نمره = کسر دستورهایی که درست اجرا شدهاند. چند نمونه:
| گروه | دستور | نمونه |
|---|---|---|
| کلیدواژه | شامل کلیدواژه | در پاسخت کلمههای {کلمه۱} و {کلمه۲} بیاید. |
| کلیدواژه | کلمهٔ ممنوع | کلمههای {کلمههای ممنوع} در پاسخ نیاید. |
| کلیدواژه | بسامد کلمه | کلمهٔ {کلمه} باید {N} بار در پاسخت بیاید. |
| کلیدواژه | بسامد حرف | حرف {حرف} باید {N} بار در پاسخت بیاید. |
| زبان | زبان پاسخ | کل پاسخت به زبان {زبان} باشد؛ زبان دیگری مجاز نیست. |
| طول | تعداد کلمه | حداقل / حدود / حداکثر {N} کلمه جواب بده. |
| طول | تعداد پاراگراف | پاسخت {N} پاراگراف داشته باشد که با *** جدا شدهاند. |
| محتوا | پینوشت | آخر پاسخت یک پینوشت بگذار که با {نشانه} شروع شود. |
| قالب | تعداد بولت | پاسخت دقیقاً {N} بولت مارکداون داشته باشد. |
| قالب | انتخاب از میان | فقط با یکی از این گزینهها جواب بده: {گزینهها}. |
| قالب | قالب JSON | کل خروجی داخل JSON باشد. |
| طول | تعداد جمله | حداقل / حدود / حداکثر {N} جمله جواب بده. |
| محتوا | جاینگهدار | پاسخت دستکم {N} جاینگهدار در کروشه داشته باشد، مثل [address]. |
| قالب | عنوان | پاسخت عنوانی داخل دو علامت زاویه داشته باشد، مثل <<poem of joy>>. |
| قالب | بخشهای پررنگ | دستکم {N} بخش را با مارکداون برجسته کن. |
آزمون INFOBench (Qin و همکاران، ۲۰۲۴) نگاه وسیعتری دارد. غیر از قالب، پیروی از محدودیت محتوایی («فقط دربارهٔ تغییر اقلیم حرف بزن»)، راهنمای زبانی («به انگلیسی دورهٔ ویکتوریا بنویس») و قاعدهٔ سبک («لحنت محترمانه باشد») را هم میسنجد. ولی اینها را نمیشود با کد وارسی کرد: از کجا بفهمیم خروجی «برای مخاطب نوجوان مناسب» است؟
راهحل INFOBench: برای هر دستور، فهرستی از معیارهای بله/خیر. مثلاً خروجیِ دستور «یک پرسشنامه بساز که به مهمانهای هتل کمک کند نظرشان را بنویسند» با سه پرسش سنجیده میشود: (۱) متن تولیدشده پرسشنامه است؟ (۲) برای مهمانهای هتل طراحی شده؟ (۳) به نوشتن نظر کمک میکند؟ هر پرسش را یک آدم یا یک هوش مصنوعی جواب میدهد؛ اگر خروجی دو تا از سه معیار را داشته باشد، نمرهاش ۲/۳ است. سازندگان INFOBench دیدند GPT-4 داور نسبتاً قابلاعتماد و بهصرفهای است: نه به دقت متخصصها، ولی دقیقتر از برچسبزنهای جمعسپاریشده.
نقشآفرینی
یکی از رایجترین دستورها، نقشآفرینی است: از مدل بخواهید نقش یک شخصیت را بازی کند. دو کاربرد دارد: سرگرمی (بازی، داستان تعاملی، همدم هوش مصنوعی) و ترفند مهندسی پرامپت برای بهتر شدن خروجی (فصل ۵). تحلیل LMSYSLarge Model Systems Organizationسازمان سامانههای مدل بزرگ روی یک میلیون گفتوگو نشان داد نقشآفرینی هشتمین کاربرد رایج است — بهخصوص برای شخصیتهای غیرقابلبازی (NPCNon-Playable Characterشخصیت غیرقابلبازی — شخصیتهای بازی که بازیکن کنترلشان نمیکند. (Non-Playable Character — شخصیت غیرقابلبازی)) در بازیها.
سنجیدنش سخت است. آزمونهایی مثل RoleLLM و CharacterEval وجود دارند؛ CharacterEval از برچسبزن انسانی و یک مدل پاداش برای نمره دادن به هر جنبهٔ نقش در مقیاس پنجتایی استفاده کرد. بسته به نقش، شاید بشود قاعدهٔ ساده هم ساخت: اگر شخصیت کمحرف است، میانگین طول خروجیها یک سنجهٔ خوب است. ولی بیشتر وقتها سادهترین راه، هوش مصنوعی داور است — که باید هم سبک و هم دانش شخصیت را بسنجد: اگر مدل نقش جکی چان را بازی میکند، باید شبیه او حرف بزند و فقط چیزهایی را بداند که او میداند.
نمونهٔ کتاب برای داور نقشآفرینی، آغاز پرامپت RoleLLM است. دقت کنید چطور هم سبک و هم دانش را معیار کرده:
You are a role-playing performance comparison assistant. You should rank
the models based on the role characteristics and text quality of their
responses.
1. Which one has more pronounced role speaking style, and speaks more in
line with the role description?
2. Which one39;s output contains more knowledge and memories related to the
role; the richer, the better.خودآزمایی
مرور فلشکارتهای این درس
مدل احساس توییت را درست میفهمد ولی بهجای POSITIVE مینویسد HAPPY. کدام توانایی ضعیف است؟
برای دیدن پاسخ کلیک کنید یا Space بزنید
کارت ۱ از ۷