تخطَّ إلى المحتوى

LLM Guard - مجموعة أدوات أمان LLM

LLM Guard - مجموعة أدوات أمان LLM

LLM Guard (من قبل Protect AI) هي مجموعة أدوات أمان مفتوحة المصدر لتطبيقات LLM. توفر مكتبة من ماسحات الإدخال (المطبقة على مطالبة المستخدم قبل وصولها إلى النموذج) وماسحات الإخراج (المطبقة على استجابة النموذج قبل وصولها إلى المستخدم) التي تكتشف وتخفف حقن المطالبات والتحايل والسمية وتسرب البيانات الشخصية والأسرار والموضوعات المحظورة والمزيد. يمكن للماسحات أن تعقّم المحتوى أو تسجل المخاطر أو تحجب الطلبات غير الآمنة، مما يجعلها طبقة حماية عملية لتطبيقات LLM الإنتاجية.

التثبيت

الطريقةالأمر
pippip install llm-guard
مع ONNX (أسرع)pip install "llm-guard[onnxruntime]"
خادم API (Docker)قم بتشغيل صورة llm-guard-api الرسمية
التشغيل الأولتنزيل نماذج الماسح (transformers)
التحققpython -c "import llm_guard; print('ok')"

مرحلتا المسح

المرحلةالمطبقة علىالغرض
ماسحات الإدخالمطالبة المستخدممنع الإدخال الخبيث/غير الآمن من الوصول إلى النموذج
ماسحات الإخراجاستجابة النموذجمنع الإخراج غير الآمن/المتسرب من الوصول إلى المستخدم

مسح الإدخال

from llm_guard import scan_prompt
from llm_guard.input_scanners import PromptInjection, Toxicity, Secrets

scanners = [PromptInjection(), Toxicity(), Secrets()]
sanitized, results, risk = scan_prompt(scanners, user_prompt)

if any(not ok for ok in results.values()):
    raise ValueError("طلب غير آمن محجوب")
العائدالمعنى
sanitizedالمطالبة (ربما معدلة)
resultsنجاح/فشل لكل ماسح
riskدرجات مخاطر لكل ماسح (0–1)

ماسحات الإدخال

الماسحيكتشف
PromptInjectionمحاولات الحقن/التحايل
Toxicityاللغة السامة/المسيئة
Secretsمفاتيح API والرموز في المطالبة
Anonymizeالبيانات الشخصية (تحذف، مع إلغاء الحذف لاحقًا)
BanTopicsالموضوعات المحظورة
BanSubstrings / BanCompetitorsقوائم حظر
Codeوجود الكود / لغات محددة
TokenLimitالمطالبات الكبيرة جدًا
Languageاللغات غير المتوقعة

مسح الإخراج

from llm_guard import scan_output
from llm_guard.output_scanners import NoRefusal, Sensitive, Relevance

scanners = [NoRefusal(), Sensitive(), Relevance()]
sanitized_resp, results, risk = scan_output(scanners, prompt, model_response)

ماسحات الإخراج

الماسحالفحوصات
Sensitiveتسرب البيانات الشخصية/الأسرار في الاستجابة
NoRefusalيكتشف الرفوضات (إشارة الجودة/الحماية)
Relevanceالاستجابة تجيب فعلاً على المطالبة
Toxicityإخراج سام
Biasمحتوى متحيز
MaliciousURLsروابط خطيرة في الإخراج
Deanonymizeاستعيد البيانات الشخصية المحذوفة للعرض الموثوق
FactualConsistencyالاستجابة متسقة مع السياق

تدفق إخفاء الهوية / إزالة إخفاء الهوية للبيانات الشخصية

from llm_guard.input_scanners import Anonymize
from llm_guard.output_scanners import Deanonymize
from llm_guard.vault import Vault

vault = Vault()
safe_prompt, _, _ = scan_prompt([Anonymize(vault)], user_prompt)
# ... استدعِ النموذج مع safe_prompt ...
final, _, _ = scan_output([Deanonymize(vault)], safe_prompt, model_response)

يحتفظ Vault بالتعيين حتى يمكن استعادة الكيانات المحذوفة في الإجابة النهائية.

النشر

الخيارملحوظة
مكتبة في العمليةاستورد واستدعِ scan_prompt/scan_output
خادم APIllm-guard-api لبوابة محايدة اللغة
وقت تشغيل ONNXاستدلال CPU أسرع لنماذج الماسح
Configفشل سريع والحدود ومتغيرات المطابقة لكل ماسح

سير العمل الشائع

# غلاف حماية حول أي استدعاء LLM
def guarded_chat(user_input):
    prompt, r_in, _ = scan_prompt(input_scanners, user_input)
    if not all(r_in.values()):
        return "الطلب محجوب بموجب سياسة الأمان."
    resp = call_llm(prompt)
    out, r_out, _ = scan_output(output_scanners, prompt, resp)
    return out if all(r_out.values()) else "الاستجابة محتجزة بموجب سياسة الأمان."

LLM Guard مقابل الأدوات المرتبطة

الجانبLLM GuardNeMo GuardrailsGarak
الدورماسحات الإدخال/الإخراج (وقت التشغيل)قضبان الحوار البرمجيةماسح ثغرات LLM (الاختبار)
التركيزحقن وPII وسمية وأسرارالتحكم في تدفق الحواراختبار Red-teaming/probing
متىفي مسار الطلبفي مسار الطلباختبار ما قبل النشر
الأفضل لـحماية Drop-inتدفقات قائمة على القواعد المعقدةالعثور على نقاط الضعف

الموارد