چیتشیت
ایمنی هوش مصنوعی و تیم سرخ
AI Safety and Red Teaming
نامگذاری حمله، شناسایی آن، سنجش امتناع مدل، کنترل خروجی و بازرسی همراستایی. درسهای فازهای 18 و 19.
فهرست مطالب
گیت ایمنی با سه چکپوینت
معماریحلقهی حملهی PAIR
گامبهگام- مهاجم Aهدف G و تاریخچهی جفتهای پرامپت و پاسخ را میخواند.
- مهاجم Aپرامپت جدید $p_k$ را مینویسد.
- هدف Tبا پاسخ $r_k$ جواب میدهد.
- داور Jجفت $(p_k, r_k)$ را بر اساس هدف امتیازدهی میکند.
- توقفامتیاز برابر یا بالاتر از آستانه، یک جیلبریک است.
- تکراردر غیر این صورت، افزودن جفت به تاریخچه تا سقف بودجهی K.
ردهبندی جیلبریک
دستورها| Category | مرز اعتماد نقضشده |
|---|---|
role-play | پرسونای دستیار |
instruction-override | مرجعیت پرامپت سیستم |
context-smuggling | شکاف بین محتوای کاربر و محتوای دستورالعمل |
multi-turn-ramp | تاریخچهی مکالمه بهعنوان یک قرارداد |
encoding-trick | فرم ظاهری توکنهای ممنوعه |
prefix-injection | تصمیمگیری دستیار برای توکن بعدی |
وظایف در کد
کار و کد| وظیفه | کد |
|---|---|
| اجرای دمو پروژه نهایی | python3 main.py |
| افزودن قانون شناساگر | {"name": "debug-mode", "category": "instruction-override", "score": 0.80, "substring": "debug mode"} |
| امتیازدهی به یک پرامپت | v = self.detector.analyze(prompt) |
| تلاش برای رمزگشایی rot13 | candidate = codecs.encode(text, "rot_13") |
| تشخیص امتناع مدل | classify_refusal(response) |
| مسیریابی خروجی | action = self.classifier_router.run(output) |
| رفع نقض قوانین | redacted = self.rules_fixer.apply(redacted, violations) |
| اجرای یک درخواست | trace = gate.handle(prompt) |
تجمیع سیگنالها
کدpython
if pre.category != "benign":
if pre.confidence >= self.block_confidence: # 0.85 شدت بالا است
signals.append(("pre", SEVERITY_RANK["high"]))
elif pre.confidence >= self.note_confidence: # 0.5 شدت متوسط است
signals.append(("pre", SEVERITY_RANK["medium"]))
if during.terminated_early: # قطع زودهنگام استریم
signals.append(("during", SEVERITY_RANK["medium"]))
if post is not None: # دستهبند و قوانین
signals.append(("post.classifier", SEVERITY_RANK.get(post.classifier_severity, 0)))
max_rank = max(rank for _, rank in signals)
if max_rank >= SEVERITY_RANK["high"]:
return "block" # بازگرداندن امتناع مدل
if max_rank >= SEVERITY_RANK["medium"]:
return "redact" # سپس اخطار برای سطح پایین، در غیر این صورت مجاز
معیارها
مفهومها- دقت
- $TP / (TP + FP)$، نسبت فعالسازیهای درست.
- بازخوانی
- $TP / (TP + FN)$، نسبت حملات شناساییشده توسط شناساگر.
- F1
- $2 P R / (P + R)$ بهازای هر دستهبندی.
- امتناع تفریطی
- مدل به پرامپت برچسبخورده با ناامن پاسخ داده است.
- امتناع بیش از حد
- مدل از پاسخ به پرامپت برچسبخورده با امن امتناع کرده است.
- Accuracy
- $(TP + TN) / \text{total}$ برای تصمیم امن یا ناامن.
- ECE
- بازههای دهتایی، میانگین $\lvert \text{conf} - \text{accuracy} \rvert$ وزندهیشده با اندازهی بازه.
- ASR
- نرخ موفقیت حمله. گزارش همراه با بودجهی پرسوجو و داور.
حالتهای شکست همراستایی
مفهومها- گودهارت
- یک بهینهساز قوی ورودیهایی مییابد که در آنها پاداش تقریبی و هدف با هم تفاوت دارند.
- بهینهسازی بیش از حد
- پاداش تقریبی بالا میرود، پاداش طلایی به اوج میرسد و با رشد KL افت میکند.
- بلهقربانگویی
- تأیید فرضپایهی مطرحشده توسط کاربر صرفنظر از درستی آن.
- ماندگاری تریگر
- یک در پشتی پس از آموزش با هدف حذف آن نیز باقی میماند.
- تظاهر به همراستایی
- شکاف اجابت بین شرایط تحت نظارت و بدون نظارت.
- هوش مصنوعی قانونمحور
- ارزیابی و بازنگری در SFT، سپس RL از بازخورد هوش مصنوعی.
- کنترل هوش مصنوعی
- مدل معتمد T مدل غیرمعتمد U را ویرایش میکند. انسان H خروجیهای مبهم را بازرسی میکند.
- PGR
- $(\text{fine-tuned} - \text{weak}) / (\text{ceiling} - \text{weak})$. مقدار 1.0 شکاف را کامل میبندد.
مقادیر پیشفرض و اعداد
پیشفرضها| تنظیم | پیشفرض | نکته |
|---|---|---|
block_confidence | 0.85 | امتیاز شناساگر پیش از تولید که بلاک میکند |
note_confidence | 0.5 | امتیاز پیش از تولید که یک سیگنال متوسط میافزاید |
buffer_cap | 2 | تعداد تکههایی که فیلتر حین تولید نگه میدارد |
n_bins | 10 | بازههای ECE |
Leakage threshold | 0.55 | همپوشانی سهگرامی با پرامپت سیستم |
max_words | 800 | قانون طول محدود |
PAIR budget K | 20 | تعداد پرسوجوها بهازای هر هدف |
MSJ shot count | 256 | حملهی مطمئن برای محتوای خشونتآمیز و فریبکارانه |
عیبیابی
عیبیابیRegex عبارات بازنویسیشده را رد میکند
- علت
- یک الگو، بدون اندازهگیری
- راهحل
- خانوادههای regex، مرحلهی نرمالسازی، دقت و بازخوانی
ایجنت از یک ایمیل اطاعت میکند
- علت
- فیلتر فقط ورودی کاربر را بررسی میکند
- راهحل
- برچسبگذاری محتوای غیرمعتمد، تأیید اقدامات آن
دفاع ASR نزدیک به صفر را گزارش میدهد
- علت
- فقط حملات ایستا بررسی شدهاند
- راهحل
- ارزیابی با حملات تطبیقی
مدل از انجام تکلیف شیمی امتناع میکند
- علت
- فقط پرامپتهای مضر سنجیده شدهاند
- راهحل
- سنجش امتناع بیش از حد روی پرامپتهای امن
تزریق پیشوند عبور میکند
- علت
- گیت فقط پس از تولید بررسی میکند
- راهحل
- افزودن فیلتر استریم حین تولید
اعداد ASR قابل مقایسه نیستند
- علت
- بودجههای پرسوجوی متفاوت
- راهحل
- یکسانسازی بودجهها، مشخص کردن داور
حمله در حالت 256 پرامپت نمونه کار میکند
- علت
- پیروی از الگو در بافتهای متنی طولانی
- راهحل
- دستهبند روی کل بافت متنی
حملهی انکودینگ از بررسی ورودی عبور میکند
- علت
- تنها نظارت بر ورودی اعمال شده است
- راهحل
- نظارت بر هر دو بخش ورودی و خروجی
اختصارات
اصطلاحها- PAIR
- پالایش تکرارشونده و خودکار پرامپت. حلقهی LLM مهاجم و LLM داور.
- GCG
- جستجوی گرادیان جعبه سفید برای پسوندهای توکن خصمانه.
- TAP
- درخت حملات. روش PAIR با انشعاب و هرس کردن.
- MSJ
- جیلبریک با شاتهای بالا. صدها جفت اجابت ساختگی در بافت متن.
- ArtPrompt
- پوشاندن واژگان ایمنی با بازنماییهای هنر اسکی (ASCII).
- IPI
- تزریق غیرمستقیم پرامپت. پیلود در محتوایی که کاربر ننوشته است.
- IFC
- کنترل جریان اطلاعات. محتوای غیرمعتمد نیازمند تأیید معتمد است.
- ECE
- خطای کالیبراسیون مورد انتظار. اطمینان اعلامشده در برابر دقت.
سؤالات متداول
پرسش و پاسخ- چرا ردهبندی اولویت دارد؟
- برچسبها جریان حملات را به هیستوگرام و نمودار پوشش تبدیل میکنند.
- چرا خروجیها نیز دستهبندی شوند؟
- خانوادهای از حملات که از بررسی ورودی رد شوند به دست کاربر میرسند.
- کدام اقدام اولویت دارد؟
- بیشترین شدت. بلاک در اولویت است. پاکسازی دادههای حساس و اخطار تبدیل به پاکسازی میشود.
- چرا PAIR کمهزینهتر از GCG است؟
- این روش جعبه سیاه است و از هر رد پاسخ در بافت متن درس میگیرد.
- چرا مسدود کردن MSJ سخت است؟
- این حمله از همان سازوکار یادگیری درون بافت متن استفاده میکند.
نکات کلیدی
نکتهها- همراه با هر یافته، شناسهی ردهبندی را لاگ کنید.
- ابتدا نرمالسازی کنید: حذف کاراکترهای با عرض صفر، رمزگشایی base64، rot13 و hex. پرامپت خام را نگه دارید.
- شیوهنامهی بنیادین را در فرمت YAML و تحت کنترل نسخه همراه با بازنگری مستقل قرار دهید.
- در هر دو سمت مدل، یک دستهبند محافظ قرار دهید.
- پروبهای تک نوبت گفتوگو را هر شب و کمپینهای چند نوبتی را پیش از انتشار اجرا کنید.
- به هر جیلبریک موفق با CVSS 4.0 امتیاز دهید.