فاز 19 · درس 84

ارزیابی امتناع مدل‌های زبانی: سنجش امتناع افراطی و تفریطی

نوع
ساختنی
زمان
حدود 90 دقیقه
زبان‌ها
Python
پیش‌نیاز
درس‌های ایمنی فاز 18، درس‌های 25 تا 29 از مسیر الف در فاز 19
ترازوی فلزی کلاسیک روی یک میز کار مهندسی که تعادل بین یک سپر ایمنی کوچک و یک چراغ مطالعه روشن را نشان می‌دهد
فهرست مطالب
  1. صورت مسئله
  2. مفهوم
  3. پیاده‌سازی
  4. استفاده
  5. تحویل
  6. تمرین‌ها
  7. اصطلاحات کلیدی
  8. مطالعه‌ی بیشتر

تنظیم ایمنی مدل‌های زبانی مثل راه‌رفتن روی لبه‌ی تیغ است؛ مدلی که بیش از حد سخت‌گیر باشد به درخواست‌های عادی و علمی کاربران پاسخ نمی‌دهد و مدلی که بیش از حد پاسخ‌گو باشد، راهکارهای خرابکارانه را فاش می‌کند. سنجش این تعادل نمی‌تواند بر پایه‌ی آزمون‌های دستی یا حدس و گمان باشد، بلکه به معیارهای شفاف و عددی نیاز دارد.

در این درس یک چارچوب ارزیابی قطعی می‌سازید که نرخ امتناع افراطی (Over-refusal)، امتناع تفریطی (Under-refusal) و خطای کالیبراسیون (ECE) را جداگانه اندازه می‌گیرد تا تغییرات پرامپت یا تنظیمات سیستم باعث افت کیفیت محصول نشوند.

تمام کدهای این درس روی رایانه‌ی شخصی و با پایتون استاندارد به‌صورت کاملاً محلی اجرا می‌شوند؛ بنابراین به سخت‌افزار خاص یا فراخوانی سرویس‌های پردازش ابری نیازی ندارید.

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

صورت مسئله

ارزیابی ایمنی یک دستیار ممکن است به دو شکل کاملاً متضاد خراب شود: یا مدل به چیزهایی که باید جواب بدهد پاسخ نمی‌دهد (امتناع افراطی یا over-refusal)، یا به چیزهایی که باید رد کند پاسخ می‌دهد (امتناع تفریطی یا under-refusal). هر دوی این حالت‌ها باگ محسوب می‌شوند. تیم‌هایی که فقط نرخ امتناع در برابر پرامپت‌های مخرب را اندازه می‌گیرند، مدلی منتشر می‌کنند که از حل تکالیف شیمی هم سر باز می‌زند. تیم‌هایی هم که فقط مفید بودن (helpfulness) را می‌سنجند، مدلی به دست کاربر می‌رسانند که شیوه‌های آسیب زدن را آموزش می‌دهد. مجموعه‌معیار درست، با دستیار مثل یک طبقه‌بند باینری برای ایمنی پرامپت‌ها برخورد می‌کند؛ جایی که سیاست امنیتیِ تحت آزمون تعیین می‌کند هر پرامپت در کدام سمت مرز تصمیم‌گیری (decision boundary) می‌نشیند.

چالش اصلی این است که در طول فرایند توسعه، یک مدل زبانی بزرگ واقعی مدام در حال تغییر است. تغییر در پرامپت سیستم، تغییر پارامتر دما (temperature) یا تعویض یک ابزار، هر دو معیار را هم‌زمان جابه‌جا می‌کند. شما به یک ارزیاب مبتنی بر داده‌های ثابت (fixture) نیاز دارید که زیر پوسته‌اش یک مدل ساختگیِ (mock LLM) قطعی کار کند؛ به این ترتیب، با هر تغییر در کد، معیارها به دلیلی کاملاً مشخص جابه‌جا می‌شوند. مدل ساختگی در این درس یک جدول ارسال (dispatch table) جمع‌وجور است: الگو، سیاست، خروجی. در بستر آزمایشی (harness) درس 87، این مدل ساختگی با یک فراخوانی HTTP جایگزین می‌شود تا پای مدل واقعی به میان بیاید؛ اما چارچوب سنجش معیارها تغییری نمی‌کند.

در این درس، این چارچوب ارزیابی را می‌سازیم. خروجی آن چهار عدد خواهد بود: نرخ امتناع تفریطی، نرخ امتناع افراطی، کالیبراسیون (آیا اطمینان اعلام‌شده از سوی مدل با دقت واقعی‌اش هم‌خوانی دارد؟) و تفکیک نتایج بر اساس هر دسته با استفاده از دسته‌بندی موضوعی (taxonomy) درس 82.

مفهوم

یک ارزیابی امتناع از چهار شیء تشکیل می‌شود: یک مجموعه پرامپت با برچسب‌های safe/unsafe، یک مدل ساختگی با سیاستی از‌پیش‌تعیین‌شده، یک طبقه‌بندِ امتناع روی خروجی مدل (رجکس روی عبارت‌هایی مثل I cannot، I will not و as a responsible) و یک تجمیع‌کننده‌ی معیارها.

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

سیاست‌های مدل ساختگی عمداً ساده طراحی شده‌اند تا آزمون‌ها شفاف و قابل بازبینی باشند. سیاست پیش‌فرض MockPolicyStrict در برابر هر پرامپتی که با هر یک از الگوهای رجکسِ فهرست ممنوعه هم‌خوانی داشته باشد امتناع می‌کند و به بقیه پاسخ می‌دهد. سیاست MockPolicyOverCautious روی دامنه‌ی بسیار گسترده‌تری از الگوها امتناع نشان می‌دهد تا عمداً دچار امتناع افراطی شود. سیاست MockPolicyLeaky تنها در واضح‌ترین موارد امتناع می‌کند تا عمداً به امتناع تفریطی دچار شود. این سه سیاست در اصل باگ‌های از‌پیش‌نوشته‌شده‌ای هستند که چارچوب سنجش باید آن‌ها را شناسایی کند.

امتناع تفریطی: مدل به پرامپتی که در مجموعه‌ی داده‌ها برچسب unsafe خورده، پاسخ داده است (هیچ عبارت امتناعی در خروجی نیست). امتناع افراطی: مدل در برابر پرامپتی که برچسب safe دارد، امتناع کرده است (عبارت امتناع در پاسخ دیده می‌شود). این بستر آزمایشی فرمول accuracy = (TP + TN) / total را هم محاسبه می‌کند؛ جایی که TP یعنی «پرامپت ناامن که به‌درستی رد شده» و TN یعنی «پرامپت امن که به‌درستی پاسخ داده شده است».

سنجش کالیبراسیون با معیار خطای کالیبراسیون مورد انتظار (Expected Calibration Error یا ECE) روی میزان اطمینانِ اعلام‌شده‌ی مدل انجام می‌شود. مدل ساختگی می‌تواند به شکل اختیاری یک توکن confidence:0.X در خروجی‌اش بگذارد و بستر آزمایشی آن را پارس می‌کند. ECE پرامپت‌ها را بر اساس میزان اطمینان در دسته‌های ده‌تایی تقسیم‌بندی می‌کند، دقت هر بازه را جداگانه به دست می‌آورد و میانگینِ وزنی |conf - accuracy| را بر اساس اندازه‌ی هر بازه حساب می‌کند. مدلی که بگوید confidence:0.9 اما فقط در 60% مواقع درست بگوید، در آن بازه ECE حدود 0.3 خواهد داشت. ECE کاملاً مستقل از امتناع افراطی یا تفریطی است، چون می‌سنجد که آیا مدل می‌داند چه زمانی درست می‌گوید یا نه.

تفکیک بر اساس هر دسته، پرامپت‌های برچسب‌دار را به دست‌سازه‌ی دسته‌بندی موضوعی درس 82 متصل می‌کند. هر پرامپت ناامن برچسب یکی از آن شش دسته را دارد. بستر آزمایشی، نرخ امتناع تفریطی را برای هر دسته گزارش می‌کند تا تیم ببیند مثلاً مدل در برابر دسته‌ی instruction-override عملکرد خوبی دارد، ولی در مواجهه با multi-turn-ramp می‌لغزد.

ماتریس امتناع مدلدو حالت شکست · نه فقط یکی
REFUSAL QUADRANTThe evaluator treats the assistant as a binary classifier on prompt safety. Safe prompts that get refused land in the over-refusal cell; unsafe prompts that get answered land in the under-refusal cell. Both off-diagonal cells are bugs, measured separately per taxonomy category, with ECE tracking whether the model knows when it is right.پاسخ‌داده‌شدهامتناع‌شدهامنناامندرستامتناع بیش‌ازحدامتناع کمتر‌ازحددرستمجموعه پرامپت‌های برچسب‌داربه‌علاوه ECE: آیا اطمینان بیان‌شده با دقت در هر بازه همخوانی دارد؟
ارزیاب با دستیار مانند یک طبقه‌بند باینریِ ایمنی پرامپت رفتار می‌کند. پرامپت‌های امنی که با امتناع مواجه شوند در خانه‌ی «امتناع بیش‌ازحد» و پرامپت‌های ناامنی که پاسخ داده شوند در خانه‌ی «امتناع کمتر‌ازحد» قرار می‌گیرند. هر دو خانه‌ی خارج از قطر اصلی باگ محسوب شده و برای هر دسته‌ی موضوعی جداگانه سنجیده می‌شوند، درحالی‌که ECE مشخص می‌کند آیا مدل می‌داند چه زمانی درست عمل کرده است یا خیر.

پیاده‌سازی

فایل code/mock_llm.py سه سیاست مختلف را تعریف می‌کند. هر سیاست یک شیء فراخوان‌پذیر (callable) است که پرامپت را به یک رشته‌ی پاسخ نگاشت می‌کند. در این پاسخ، میزان اطمینان مدل در قالب [conf=0.X] گنجانده شده است. فایل code/prompts.py مجموعه‌ای از داده‌های برچسب‌دار است: 25 پرامپت ناامن (برگرفته از دسته‌بندی موضوعی درس 82 بر اساس شناسه) به همراه 30 پرامپت امن (درخواست‌های بی‌خطرِ روزمره، بدون هیچ هم‌پوشانی با مجموعه‌ی بی‌خطر درس 83 تا این دو ارزیابی کاملاً مستقل از هم بمانند).

اسکریپت code/main.py ارزیاب را اجرا می‌کند. طبقه‌بندِ امتناع در واقع یک عبارت منظم از عبارات امتناع مدل است. تجمیع‌کننده یک دیکشنری شامل under_refusal، over_refusal، accuracy، ece و per_category_under_refusal برمی‌گرداند. اجراکننده، هر سه سیاست مدل ساختگی را ارزیابی می‌کند و یک گزارش مقایسه‌ای می‌نویسد.

استفاده

دستور python3 main.py را اجرا کنید. این دمو جدولی برای مقایسه‌ی هر سه سیاست چاپ می‌کند، فایل outputs/refusal_eval_report.json را می‌نویسد و تأیید می‌کند که MockPolicyOverCautious بیشترین امتناع افراطی و MockPolicyLeaky بیشترین امتناع تفریطی را ثبت کرده‌اند. سیاست سخت‌گیرانه (strict) جایی میان این دو می‌نشیند؛ این همان خط مبنای (baseline) رگرسیون ماست.

تحویل

مستند outputs/skill-refusal-evaluation.md تعاریف این معیارها را مستند می‌کند تا کاربری که در مراحل بعدی از گزارش استفاده می‌کند، دچار سوءبرداشت از اعداد نشود.

تمرین‌ها

  1. سیاست ساختگی چهارمی اضافه کنید که مبنای امتناع آن طول پرامپت باشد. بررسی کنید که آیا نرخ امتناع تفریطی در حملات کدگذاری‌شده (که معمولاً طول کوتاه‌تری دارند) افزایش می‌یابد یا خیر.
  2. به‌جای ECE از منحنی‌های قابلیت اطمینان (reliability curves) استفاده کنید و برای هر سیاست یک نمودار رسم کنید. دقت کنید کدام بازه‌ها دچار اطمینان کاذب (over-confident) هستند.
  3. یک فهرست از پرامپت‌های امنِ تفکیک‌شده بر اساس دسته اضافه کنید (مثل نقش‌آفرینی‌های بی‌خطر یا دستورات عادی درباره‌ی محتوای پیشین). نرخ امتناع افراطی را به تفکیک دسته‌ها حساب کنید و ببینید آیا سناریوهای نقش‌آفرینی بیشترین امتناع کاذب را به خود اختصاص می‌دهند یا نه.

اصطلاحات کلیدی

اصطلاح کاربرد عامیانه معنای دقیق
امتناع تفریطی (under-refusal) مدل مفید است مدل به پرامپتی پاسخ داده که برچسب ناامن دارد
امتناع افراطی (over-refusal) مدل ایمن است مدل در برابر پرامپتی امتناع کرده که برچسب امن دارد
کالیبراسیون (calibration) مدل متواضع است فاصله‌ی بین اطمینانِ اعلام‌شده و دقت مشاهده‌شده، که با خطای کالیبراسیون مورد انتظار خلاصه می‌شود
دقت (accuracy) کیفیت حاصل (TP + TN) / total برای تصمیم‌گیری باینری امن/ناامن
تفکیک بر اساس هر دسته (per-category breakdown) یک نمودار نرخ امتناع تفریطی پیوندخورده با دسته‌های موضوعی درس 82

مطالعه‌ی بیشتر

درس 85 (طبقه‌بند خروجی) و درس 87 (دروازه‌ی ارزیابی سرتاسری) از چارچوب معیارهایی که در این درس ساختیم استفاده می‌کنند.

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسمعیار «امتناع کمتر‌ازحد» (under-refusal) چه چیزی را می‌سنجد؟
  2. پیش از درسچرا در این درس به‌جای یک مدل واقعی از یک LLM ساختگی (mock) استفاده می‌شود؟
  3. حین درسبا فرض 30 پرامپت امن و 5 مورد امتناع از پرامپت‌های امن، نرخ امتناع بیش‌ازحد (over-refusal) چقدر است؟
  4. حین درسخطای کالیبراسیون مورد انتظار (ECE) در اینجا چه چیزی را اندازه می‌گیرد؟
  5. حین درسچرا این فریم‌ورک پرامپت‌های ناامن را با رده‌بندی موضوعی درس 82 تطبیق (join) می‌دهد؟
  6. پس از درسچرا این فریم‌ورک به‌جای یک امتیاز ایمنی واحد، هر دو معیار امتناع کمتر‌ازحد و بیش‌ازحد را برمی‌گرداند؟

سؤالات متداول

چرا نمی‌توان ایمنی مدل را فقط با نرخ امتناع پرامپت‌های ناامن سنجید؟

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

تفاوت امتناع افراطی و تفریطی در ارزیابی مدل زبانی چیست؟

امتناع تفریطی (Under-refusal) یعنی مدل به پرامپت ناامن پاسخ داده است (شکست ایمنی). امتناع افراطی (Over-refusal) یعنی مدل در برابر پرامپت امن و بی‌خطر پاسخ امتناع ثبت کرده است (کاهش مفید بودن).

معیار ECE در ارزیابی امتناع چه نقشی دارد؟

معیار خطای کالیبراسیون مورد انتظار (ECE) نشان می‌دهد آیا میزان اطمینان اعلام‌شده از طرف مدل، با دقت واقعی پاسخ‌هایش در رد یا قبول درخواست‌ها هم‌خوانی دارد یا خیر.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.