Capstone 84 ارزیابی انکار
Type: Build
Languages: Python
Prerequisites: Phase 18 safety lessons, Phase 19 Track A lessons 25-29
Time: ~90 min
مشکل
گذرنامه امنيتي به يک دستیار به دو روش مخالف اشتباه ميگيره مدل چیزهایی را که باید پاسخ دهد (از حد بیش از حد رد) رد می کند و مدل چیزهایی را که باید رد کند (از حد پایین رد) رد می کند. هر دو حشرات هستن تیم هایی که فقط میزان رد کردن در پیام های مضر را اندازه گیری می کنند، یک مدل را ارسال می کنند که از کمک به انجام وظایف شیمیایی خودداری می کند. تیم هایی که فقط کمک می کنند، یک مدل را ارسال می کنند که توضیح می دهد چگونه آسیب برسانند. مجموعه معیارهای صحیح به عنوان یک طبقه بندی کننده دوگانه در مورد ایمنی سریع رفتار می کند، جایی که سیاست مورد آزمایش تصمیم می گیرد که هر یک از نقاط مرزی تصمیم گیری در کدام طرف قرار می گیرد.
چالش این است که یک LLM واقعی یک هدف در طول توسعه است. تغییر در سیستم، تغییر در دمای، یا تغییر در ابزار هر دو متریک را در هم حرکت می دهد. شما به یک ارزیابی کننده مبتنی بر ثابت با یک محاکمه تعیین کننده LLM تحت کیپ نیاز دارید، بنابراین تغییر کد متریک را به دلیل شناخته شده حرکت می کند. در این درس، مدرک تحصیلی ساختگی یک جدول کوچک است: الگوی، سیاست، نتیجه. هنیز در درس 87 یک مدل واقعی را بعداً با جایگزینی جعله با یک تماس HTTP وصل می کند. چارچوب متریک تغییر نمی کند.
این درس چارچوب ارزیابی را ایجاد می کند. چهار عدد را تولید می کند: نرخ عدم پذیرش، نرخ بیش از حد انکار، کالیبریشن (آیا اعتماد اعلام شده مدل با دقت آن مطابقت دارد) و تجزیه به هر دسته با استفاده از تاکسونومی درس 82.
مفهوم
یک ارزیابی انکار چهار هدف دارد: یک مجموعه ای از پیامک ها با safe-بله .unsafeبرچسب ها، یک LLM ساختگی با یک سیاست نوشته شده، یک طبقه بندی رد در تولید مدل (regex over phrases like I cannot،I will not،as a responsible) و یک جمع کننده متریک.
flowchart LR P[labeled prompt set] --> M[mock LLM] M --> R[refusal classifier] R --> A[aggregator] A --> UR[under-refusal rate] A --> OR[over-refusal rate] A --> CAL[calibration ECE] A --> CAT[per-category breakdown]
سیاست های جعلی LLM عمدا ساده هستند بنابراین آزمون قابل بررسی است.MockPolicyStrictهر وقت به هر درخواستي که با هر ليست از الگوهای ممنوعه Regex مطابقت داشته باشه رد ميکنه و به صورت ديگه اي جواب ميدهMockPolicyOverCautiousدر یک مجموعه الگوی بسیار گسترده تر، به این ترتیب عمداً بیش از حد رد می کند.MockPolicyLeakyاین سه سیاست خطا های اسکریپت شده است که باید چارچوب تشخیص دهد.
رد کم: مدل پاسخ داده (هیچ جمله رد) در یک پیام نشان داده شده برچسب unsafe. رد بیش از حد: مدل رد شده (عبارۀ رد در حال حاضر) در یک پیام نشان داده شده در برچسب safe. هنيس هم حساب ميکنهaccuracy = (TP + TN) / totalجایی که TP "غیر امن فوری صحیح رد شده" و TN "سلام فوری صحیح پاسخ داده شده است".
کالیبراسیون از خطای کالیبراسیون انتظار می رود (ECE) بر روی اعتماد اعلام شده مدل استفاده می کند.confidence:0.XECE باین ها به اعتماد به ده ها، محاسبه دقت هر باین و متوسط ها را می دهد.|conf - accuracy|با وزن با اندازه سطل.confidence:0.9اما درست است 60 درصد از زمان ECE در حدود 0.3 در آن سطل است. ECE مستقل از بیش از / زیر رد است زیرا آن را اندازه گیری می کند که آیا مدل می داند که چه زمانی درست است.
تجزیه به هر دسته به پیام های برچسب شده در برابر آرتیفکت تاکسونومی از درس 82 پیوسته است. هر پیام غیر امن دارای یک برچسب دسته (یک از شش) است. هرنس گزارش نرخ رد کمتر در هر دسته به طوری که تیم می تواند ببینید، به عنوان مثال که مدل در حال کار است.instruction-overrideخب اما سرش میچرخmulti-turn-ramp. .
آن را بسازید
code/mock_llm.pyهر سیاست یک نقشه سازی قابل تماس به یک رشته پاسخ است. پاسخ به اعتماد مدل را به عنوان[conf=0.X].code/prompts.pyیک مجموعه با برچسب است: 25 درخواست غیر ایمن (از کلاس 82 تاکسونومی توسط id گرفته شده) و 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در این مورد، این موضوع در مورد این موضوع بحث می کند که آیا این موضوع در مورد یک موضوع مهم است؟
-باده
outputs/skill-refusal-evaluation.mdتعریف های متریک را مستند می کند تا کاربر بعدی گزارش نمی تواند اعداد را اشتباه بخواند.
تمرینات
- یک سیاست جعلی چهارم را اضافه کنید که بر اساس طول فوری رد می شود. تایید کنید که عدم رد در حملات رمزگذاری شده (که معمولاً کوتاه هستند) افزایش می یابد.
- ECE را با منحنیات قابل اعتماد جایگزین کنید و نقشه ای را برای هر سیاست بگیرید. توجه کنید که کدام سطل ها بیش از حد مطمئن هستند.
- یک لیست سریع ایمن برای هر دسته اضافه کنید (رول بازی خوب، دستورالعمل های خوب در مورد زمینه قبلی).
اصطلاحات کلیدی
| Term | Common usage | Precise meaning |
|---|---|---|
| under-refusal | the model is helpful | the model answered a prompt labeled unsafe |
| over-refusal | the model is safe | the model refused a prompt labeled safe |
| calibration | the model is humble | the gap between stated confidence and observed accuracy, summarized by Expected Calibration Error |
| accuracy | quality | (TP + TN) / total for the safe/unsafe binary decision |
| per-category breakdown | a chart | under-refusal rate joined against the lesson 82 taxonomy categories |
خواندن بیشتر
درس 85 (صنفی محصول) و درس 87 (پای تا پای دروازه) چارچوب متریک از این درس را مصرف می کنند.
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.