قياس المتانة
تقييم مقاومة الهجمات.
قياس المتانة درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
المتانة بوصفها كمية قابلة للقياس
المتانة هي مقاومة النظام للإدخال العدائي، معبَّرًا عنها بأرقام يمكنكم تتبعها ومقارنتها وربط الإصدارات بها. إن عبارة «يبدو آمنًا» ليست قياسًا؛ أما معدل نجاح الهجوم مع فاصل ثقة فهو قياس.
يحوّل هذا الدرس نتائج الاختبار الأحمر إلى مقاييس صارمة.
معدل نجاح الهجوم
المقياس الأساسي هو معدل نجاح الهجوم (ASR): نسبة حالات الهجوم التي تتغلب على دفاعاتكم. الأقل أفضل. أبلغوا عنه إجمالًا، وقسّموه حسب الفئة والتقنية حتى تعرفوا موضع الضعف.
def asr(results):
breaks = sum(1 for r in results if not r['safe'])
return breaks / len(results)
# also compute per-category ASR for diagnosisالترجيح حسب الخطورة
يعامل معدل نجاح الهجوم الخام تسريبًا بسيطًا وتفريغًا لمعلومات التعريف الشخصية على قدم المساواة. احسبوا درجة مُرجَّحة حسب الخطورة حتى تهيمن الإخفاقات الحرجة على المقياس، ولا تُخفى بعض حالات الكسر عالية الأثر وسط حالات نجاح كثيرة منخفضة الأثر.
W = {'low':1,'medium':3,'high':7,'critical':15}
def weighted_risk(results):
return sum(W[r['severity']] for r in results if not r['safe'])فواصل الثقة لا التقديرات النقطية
إن معدل نجاح الهجوم تقدير مستمد من عينة محدودة، لذا أبلغوا عن عدم اليقين. تكون الفترة واسعة في المجموعات الصغيرة؛ وقد يكون الانخفاض من 8% إلى 6% مجرد ضوضاء. استخدموا فاصل ثقة ثنائي الحدين، ولا تتخذوا إجراءً إلا بشأن التغييرات التي تتجاوز هذا الفاصل.
from statsmodels.stats.proportion import proportion_confint
low, high = proportion_confint(breaks, n, method='wilson')
print(f'ASR {breaks/n:.3f} CI [{low:.3f}, {high:.3f}]')النظير الخاص بالإيجابيات الكاذبة
لا قيمة للمتانة من دون قابلية الاستخدام. اجمعوا معدل نجاح الهجوم مع معدل الرفض المفرط: نسبة الطلبات السليمة التي حُظرت خطأً، ويُقاس ذلك على مجموعة نظيفة منفصلة. فالتشديد الذي يرفع الرفض المفرط كثيرًا يستبدل إخفاقًا بآخر.
over_refusal = sum(1 for r in benign_results if r['blocked']) / len(benign_results)
# track ASR and over_refusal together; optimize the frontierكفاءة الهجوم
لا تقيسوا ما إذا كان الهجوم ينجح فحسب، بل مدى صعوبة نجاحه أيضًا. تتبعوا عدد الاستعلامات أو الأدوار اللازمة للكسر: فالكسر من المحاولة الأولى أسوأ بكثير من كسر يتطلب 20 دورًا مُصاغًا بعناية. ويشير ارتفاع الجهد اللازم للكسر عبر الإصدارات إلى تحسن المتانة حتى إن ظل معدل نجاح الهجوم ثابتًا.
def avg_turns_to_break(results):
succ = [r['turns_used'] for r in results if not r['safe']]
return sum(succ)/len(succ) if succ else float('inf')معايرة المُحكّم
إذا قيّم مُحكّم قائم على LLM النجاح، فلن تكون مقاييسكم أفضل من المُحكّم. قارنوا دوريًا أحكام المُحكّم بالتصنيفات البشرية، وأبلغوا عن دقة المُحكّم واسترجاعه. يقلل المُحكّم المتساهل أكثر من اللازم من معدل نجاح الهجوم، ويخلق ثقة زائفة.
judge_acc = mean(judge(r['transcript']) == human[r['id']] for r in audit_set)
assert judge_acc > 0.9, 'recalibrate judge before trusting ASR'إعداد تقارير مُقسَّمة إلى طبقات
يخفي التجميع الواحد المخاطر. قسّموا المقاييس حسب الفئة والتقنية، وحسب الهجمات ذات الدور الواحد ومتعددة الأدوار، والمباشرة وغير المباشرة. قد يخفي معدل نجاح إجمالي قدره 3% معدل نجاح يبلغ 40% في إساءة استخدام الأدوات غير المباشرة، وهو الرقم الذي ينبغي أن يوجّه خارطة طريقكم.
تتبع الاتجاهات عبر الإصدارات
المتانة نسبية ومرتبطة بالزمن. خزّنوا كل تشغيل لمجموعة الاختبارات مع ربطه بإصدار النموذج والإعداد، وارسموا معدل نجاح الهجوم والمخاطر المرجّحة عبر الإصدارات. الهدف هو التحسن المستمر وعدم حدوث أي تراجعات، مع مراقبتهما مثل أي هدف لمستوى خدمة الموثوقية.
history.append({'version': cfg.model_version, 'asr': asr(results),
'weighted': weighted_risk(results), 'over_refusal': over_refusal})تحديد بوابات الإصدار
حوّلوا المقاييس إلى سياسة. مثال على بوابة إصدار: يجب أن يكون معدل نجاح الهجمات الحرجة 0، ومعدل النجاح الإجمالي دون حد معين، وألا يحدث تراجع يتجاوز فاصل الثقة، وأن يبقى الرفض المفرط تحت سقفه. تجعل البوابة المتانة شرطًا إلزاميًا للإصدار، لا ميزة إضافية.
def passes_gate(m, prev):
return (m['critical_asr'] == 0
and m['asr'] < 0.05
and m['asr'] <= prev['asr'] + ci_margin
and m['over_refusal'] < 0.02)احذروا الإفراط في التكيّف مع مجموعة الاختبارات
إذا ضبطتم الدفاعات مباشرةً استنادًا إلى مجموعة الاختبارات المرئية، فقد تنجحون في الاختبارات مع بقاء النظام عرضة لهجمات غير مرئية. احتفظوا بمجموعة هجمات خاصة خارج التدريب، وبدّلوا الحالات، وأبقوا نموذج المهاجم مستكشفًا. إن الحصول على درجة كاملة في مجموعة اختبارات ثابتة علامة تحذير، لا انتصار.
تحقق سريع
معدل نجاح الهجوم الإجمالي لديكم منخفض ويبلغ 3%، لكن أصحاب المصلحة فوجئوا بحادثة حقيقية لإساءة استخدام الأدوات. أي ممارسة قياس كانت سترجّح اكتشاف الخطر في وقت أبكر؟
مراجعة
قياس المتانة:
- معدل نجاح الهجوم هو المقياس الأساسي؛ فزِنوه حسب الخطورة.
- أبلغوا عن فواصل الثقة، واجمعوا معدل نجاح الهجوم مع الرفض المفرط.
- تتبعوا كفاءة الهجوم، أي عدد الأدوار أو الاستعلامات اللازمة للكسر، وعايروا المُحكّم.
- أعدّوا تقارير مُقسَّمة إلى طبقات، وتتبعوا الاتجاهات عبر الإصدارات، وطبّقوا بوابات الإصدار.
- احتفظوا بهجمات خاصة خارج مجموعة الاختبارات لتجنب الإفراط في التكيّف معها.
لقد أتممتم الاختبار الأحمر والتقييم العدائي، كما أتممتم المسار المتقدم في PromptLab.
تعلم AI Prompt Engineering مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 53
- الدروس
- 199
الأسئلة الشائعة
هل درس «قياس المتانة» مجاني؟
نعم — نص درس «قياس المتانة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.
ماذا ستتعلم في «قياس المتانة»؟
تقييم مقاومة الهجمات. تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟
لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «قياس المتانة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟
نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.