شیدهوش
فصل ۴ · درس ۴ از ۱۳

۴. پیروی از دستور و نقش‌آفرینی

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

زمان مطالعه: ۲۰ دقیقهمرجع در کتاب: فصل ۴، بخش Instruction-Following Capability — صفحهٔ ۳۳۹

مدل حرف شما را گوش می‌دهد؟

سنجیدن پیروی از دستور یعنی پرسیدن اینکه مدل دستورهای شما را چقدر خوب اجرا می‌کند. اگر مدل در این کار بد باشد، دستورهایتان هرقدر هم خوب باشند، خروجی بد است. بیشتر مدل‌های پایه برای همین کار آموزش دیده‌اند — 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 است. دقت کنید چطور هم سبک و هم دانش را معیار کرده:

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 one&#39;s output contains more knowledge and memories related to the
   role; the richer, the better.

خودآزمایی

از مدل خواسته‌اید فقط یکی از سه کلمهٔ «مثبت»، «منفی» یا «خنثی» را بنویسد. مدل می‌نویسد: «به نظرم این توییت لحن مثبتی دارد.» احساس را درست فهمیده. کدام معیار رد شده؟
INFOBench دستورهایی مثل «لحنت محترمانه باشد» را چطور می‌سنجد؟
چرا باید آزمون پیروی از دستور خودتان را بسازید؟

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

تعریف

مدل احساس توییت را درست می‌فهمد ولی به‌جای POSITIVE می‌نویسد HAPPY. کدام توانایی ضعیف است؟

برای دیدن پاسخ کلیک کنید یا Space بزنید

کارت ۱ از ۷

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