مهندسی سامانههای هوش مصنوعی · فصل ۱ — Gateway، Structured Output، Prompt Governance و Qualification · 136
Model Qualification: Task/Locale/Risk Benchmark
میتواند مدل یا ابزار AI را فراخوانی کند اما contract، qualification، routing، cost، trust و failure را کنترل نمیکند. موضوع جاری: «Model Qualification: Task/Locale/Risk Benchmark». میتواند «Model Qualification: Task/Locale/Risk Benchmark» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.
خلاصهٔ درس
میتواند مدل یا ابزار AI را فراخوانی کند اما contract، qualification، routing، cost، trust و failure را کنترل نمیکند. موضوع جاری: «Model Qualification: Task/Locale/Risk Benchmark».
میتواند «Model Qualification: Task/Locale/Risk Benchmark» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.
خروجی این درس
میتواند «Model Qualification: Task/Locale/Risk Benchmark» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.
1. مسئله واقعی: یک امتیاز کلی میتواند failure بحرانی را پنهان کند
مدلی که روی leaderboard یا چند demo انگلیسی عالی است الزاماً برای workflow شما qualified نیست. نیاز واقعی با task، locale، risk tier، schema، refusal behavior و هزینه شکست تغییر میکند. اگر یک میانگین کل اجازه دهد failure یک slice پرریسک فارسی زیر امتیازهای خوب بقیه پنهان شود، benchmark بهجای کنترل ریسک فقط ظاهر عددی تولید کرده است.
2. Qualification یک property جهانیِ نام مدل نیست
QUALIFIED باید به candidate دقیق و scope دقیق متصل باشد: model version، configuration، prompt version، dataset version و task × locale × risk slice. یک مدل میتواند برای summarization کمریسک انگلیسی qualified و برای extraction پرریسک فارسی NOT_QUALIFIED باشد. نام یکسان مدل اجازه انتقال ضمنی این وضعیتها را نمیدهد.
3. Evaluation contract را قبل از دیدن نتیجهها بنویس
پیش از اجرای candidateها، sliceها، metricها، hard gateها، soft metricها، failure budget و handling حالت UNKNOWN را اعلام کن. اگر threshold بعد از دیدن score تغییر کند، تصمیم قابل ممیزی نیست. این قرارداد باید مشخص کند کدام failure بهتنهایی qualification را میبندد و کدام metric فقط برای مقایسه یا تشخیص استفاده میشود.
4. Dataset باید نماینده محصول باشد، نه صرفاً راحت برای benchmark
Evaluation set باید نمونههای نماینده task واقعی، locale واقعی و risk tier واقعی را پوشش دهد. coverage را صریح ثبت کن: چه sliceهایی تست شدهاند، چند نمونه دارند و چه sliceهایی هنوز evidence ندارند. نبود داده برای فارسی پرریسک را با نتیجه انگلیسی کمریسک پر نکن؛ آن state باید UNKNOWN یا خارج از scope بماند.
5. Row-level evidence را کنار aggregate نگه دار
Aggregate برای دیدن trend مفید است، اما root cause و critical failure در rowها دیده میشود. Matrix باید candidate/version/slice، نتیجه hard gate، scoreها، human rating، judge state و uncertainty را نگه دارد. اگر aggregate سبز و یک hard gate قرمز است، hard gate برنده است.
6. Hard gate و soft metric را عمداً از هم جدا کن
Schema validity، ممنوعیت unsafe output، required refusal یا extraction field حیاتی میتوانند hard gate باشند؛ fluency یا style ممکن است soft metric باشند. یک soft average بالا حق ندارد hard failure را جبران کند. برعکس، soft metric پایین بدون rule از پیش اعلامشده نباید خودکار به NOT_QUALIFIED تبدیل شود.
7. مدل داور را ground truth فرض نکن
Judge-model میتواند evaluation را مقیاسپذیر کند، اما خودش یک measurement instrument است. برای slice حساس، آن را با human ratings یا deterministic references calibrate کن و disagreement را ثبت کن. اگر judge و انسان روی subset locale-sensitive اختلاف معنادار دارند، state را CONDITIONAL/OPEN نگه دار؛ اختلاف را با انتخاب score دلخواه حذف نکن.
8. Human review را فقط جایی وارد کن که واقعاً نیاز است
همه چیز به human rating نیاز ندارد. JSON schema، exact field match یا forbidden token را deterministic بسنج. برای nuanceهایی مثل usefulness، cultural fit یا ambiguous refusal میتوان human review داشت. هدف این است که evidence قابل بازتولید باشد و human authority در جای لازم، نه همهجا یا هیچجا، استفاده شود.
9. سه state اصلی: QUALIFIED، NOT_QUALIFIED، CONDITIONAL
QUALIFIED یعنی تمام sliceهای در scope و hard gateهای اعلامشده evidence کافی دارند. NOT_QUALIFIED یعنی حداقل یک hard gate decisive شکست خورده است. CONDITIONAL یعنی hard failure قطعی نداریم اما evidence gap، judge disagreement یا محدودیت scope وجود دارد. هیچکدام نباید به «مدل globally خوب/بد» ترجمه شود.
10. Worked example: بهترین average لزوماً برنده نیست
فرض کن Candidate A میانگین 0.94 دارد اما در Persian/high-risk extraction یک schema/safety hard gate را میشکند. Candidate B میانگین 0.86 دارد ولی همه hard gateهای scope را پاس میکند. برای scope اعلامشده B میتواند QUALIFIED و A باید NOT_QUALIFIED باشد؛ aggregate اجازه override کردن failure بحرانی را ندارد.
11. Unknown را با inference خاموش نبند
اگر candidate جدید برای English evidence دارد ولی Persian/high-risk هنوز اجرا نشده، qualification آن slice UNKNOWN است. شباهت نسخه، نام مدل یا performance خوب روی sliceهای دیگر دلیل کافی برای inheritance نیست. Matrix باید gap را نگه دارد و requalification trigger واضح داشته باشد.
12. Version binding بخشی از evidence است
هر row باید حداقل به model version، configuration version، prompt version و dataset version bind شود. تغییر هر عامل تعیینکننده میتواند فقط بعضی sliceها را invalidate کند. requalification لازم نیست همیشه کل benchmark را از صفر اجرا کند، اما reuse فقط برای evidenceی مجاز است که binding آن واقعاً هنوز معتبر است.
13. Qualification record باید downstream را محدود کند
خروجی این درس یک ranking عمومی نیست؛ یک qualification matrix نسخهدار است که downstream routing میتواند بخواند. record باید scope، status، hard failures، evidence gapها، conditional limits و requalification trigger را صریح کند تا AIE-005 نتواند یک state محدود را به اجازه جهانی تبدیل کند.
14. Lab: هشت fixture deterministic
در Lab هشت case داری: all-pass baseline، aggregate trap، judge-human disagreement، missing high-risk slice، schema hard-gate failure، lower soft mean ولی hard gates سالم، prompt-version mismatch و transfer با refusal change در model v2. evaluator باید coverage، hard failures، UNKNOWN، judge disagreement، aggregate و decision bounded را برگرداند؛ hidden expected labels در learner files وجود ندارند.
15. Exit checklist و transfer
قبل از خروج بررسی کن: scope و versionها مشخصاند؛ slice coverage واقعی است؛ hard gateها پیشاپیش تعریف شدهاند؛ row-level evidence حفظ شده؛ aggregate hard failure را override نمیکند؛ judge calibrated است؛ UNKNOWN دستنخورده میماند؛ status محدود و قابل audit است. در transfer، نسخه جدیدی که English را بهتر کرده ولی refusal behavior را تغییر داده و Persian/high-risk evidence ندارد فقط sliceهای لازم را re-run میکند و qualification قبلی را کورکورانه به ارث نمیبرد.
ارزیابی
پاسخنامهی این درس در بستهی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار میفرستد.
Q1 retrieval
Why can a high aggregate score fail to qualify a model?
Q2 application
A model has English low-risk evidence but no Persian high-risk evidence. What is the Persian high-risk status?
Q3 diagnosis
A judge model scores a Persian subset highly but calibrated human ratings disagree beyond tolerance. What should happen?
Q4 evidence
Which version fields must row-level qualification evidence bind to?
Q5 transfer
Model v2 improves English but changes refusal behavior and lacks Persian high-risk evidence. May v1 qualification be copied globally?
ملاکهای ارزیابی (rubric)
A sufficient submission declares task × locale × risk scope and version bindings before evaluation, distinguishes hard gates from soft metrics, preserves row-level failures and UNKNOWN evidence, treats judge metrics as calibratable instruments rather than ground truth, issues a bounded QUALIFIED / NOT_QUALIFIED / CONDITIONAL state, and rebuilds transfer decisions from changed evidence. It fails if a leaderboard, one aggregate, model name, or stale evidence overrides a critical slice or missing evidence.
منابع و تازگی
مطالعهٔ موارد (case studies)
تصاویر درس
فایلهای آزمایشگاه
Implement evaluate(case) in starter.py. Return exactly these eight auditable fields: total_required_slices, covered_slice_count, hard_gate_fail_count, unknown_slice_count, judge_disagreement_count, aggregate_quality_mean, final_decision, and reason_class.
Evidence is valid for a required slice only when its evidence_state is OBSERVED and its model/configuration/prompt versions match the candidate being qualified. A valid observed row with hard_gate_pass=false is decisive. Missing or stale evidence remains UNKNOWN. Judge disagreement exists when both human and judge ratings are present and their absolute difference exceeds judge_tolerance.
Decision order: decisive hard-gate failure → NOT_QUALIFIED; otherwise evidence/version gaps → CONDITIONAL; otherwise unresolved judge calibration disagreement → CONDITIONAL; otherwise QUALIFIED. Aggregate quality is descriptive and must never override a hard gate. Round the aggregate mean to four decimal places; if no valid quality scores exist, return None.
Run python run_checks.py for learner-visible structural checks. The expected qualification labels are intentionally not included in learner files.
رسانه و اسلایدهای درس
فایلهای آموزشی (دانلود)