اعتبارًا من 7 مارس 2024 ، قمنا بتحديث الريبو مع معيار V2.0 المنقح مع حالات اختبار جديدة. يرجى الاطلاع على الورق المحدث لمزيد من التفاصيل.
[العرض التوضيحي] [موقع] [ورقة]
يحتوي هذا الريبو على رمز القواعد: سيناريوهات تقييم لغة تتبع القواعد ، وهو معيار لتقييم متابعة القواعد في نماذج اللغة.
SimonSays Questions ، وأضاف دعمًا لنماذج Google Vertexai API. يرجى إعادة تقييم النتائج الحالية مع python -m llm_rules.scripts.reevaluate .llm_rules .--conv_template إلى --fastchat_template . pip install -e .
لتقييم النماذج باستخدام أغلفة API الخاصة بنا ( llm_rules/models/* ) ، قم بتثبيت التبعيات الاختيارية:
pip install -e .[models]
.env : OPENAI_API_KEY=<key>
ANTHROPIC_API_KEY=<key>
GEMINI_API_KEY=<key>
GCP_PROJECT_ID=<project_id>
>>> from huggingface_hub import snapshot_download
>>> snapshot_download(repo_id="meta-llama/Llama-2-7b-chat-hf", local_dir="/my_models/Llama-2-7b-chat-hf", local_dir_use_symlinks=False)
logs/ . إطلاق جلسة تفاعلية مع:
python -m llm_rules.scripts.manual_redteam --provider openai --model gpt-3.5-turbo-0613 --scenario Authentication --stream
تصور حالات الاختبار مع:
python -m llm_rules.scripts.show_testcases --test_suite redteam
البرنامج النصي للتقييم الرئيسي هو llm_rules/scripts/evaluate.py ، ولكن نظرًا لأننا ندعم الكثير من خيارات التقييم ، فقد يصعب اتباع الرمز. يرجى الاطلاع على llm_rules/scripts/evaluate_simple.py للحصول على نسخة مبسطة من البرنامج النصي للتقييم.
نلف مكالمات API مع إعادة محاكاة غير محدودة لسهولة التقييم. قد ترغب في تغيير وظيفة إعادة المحاولة لتناسب احتياجاتك.
redteam python -m llm_rules.scripts.evaluate --provider openai --model gpt-3.5-turbo-0613 --test_suite redteam --output_dir logs/redteam
عند تقييم النماذج باستخدام VLLM ، evaluate.py بتشغيل عملية تشغيل خادم API. يجب ضبط التزامن على نماذج VLLM. تشغيل التقييم مع:
python -m llm_rules.scripts.evaluate --provider vllm --model /path/to/model --fastchat_template llama-2 --concurrency 100
عرض نتائج مفصلة على جناح اختبار واحد مع:
python -m llm_rules.scripts.read_results --output_dir logs/redteam/gpt-3.5-turbo-0613
بعد التقييم على جميع أجنحة الاختبار الثلاثة (حميدة ، أساسية ، و redteam) ، قم بحساب نقاط القواعد الإجمالية مع:
python -m llm_rules.scripts.read_scores --model_name gpt-3.5-turbo-0613
أخيرًا ، يمكنك عرض الاستجابات للاختبار الفردي مع:
python -m llm_rules.scripts.show_responses --output_dir logs/redteam/gpt-3.5-turbo-0613 --failed_only
قم بتشغيل هجوم GCG مع معلمات سيناريو عشوائية في كل تكرار:
cd gcg_attack
python main_gcg.py --model /path/to/model --fastchat_template <template_name> --scenario Authentication --behavior withholdsecret
سيتم تخزين سجلات الإخراج في logs/gcg_attack .
لتقييم النماذج على حالات اختبار direct_request مع لاحقة GCG الناتجة:
python -m llm_rules.scripts.evaluate --provider vllm --model /path/to/model --suffix_dir logs/gcg_attack/<model_name> --test_dir data/direct_request --output_dir logs/direct_request_gcg
لإعادة إنتاج تجاربنا الدقيقة مع الدردشة LLAMA-2 7B على حالات الاختبار basic_like :
cd finetune
./finetune_llama.sh
استخدمنا وحدات معالجة الرسومات 4x A100-80G من أجل صياغة LLAMA-2 7B الدردشة وإرشاد MISTRAL 7B ، قد تكون قادرًا على ضبط إعدادات السرعة العميقة للتشغيل على وحدات معالجة الرسومات الأصغر/أقل.
عند تقييم نماذج المجتمع ، نعتمد في الغالب على قوالب محادثة FastChat (موثقة في model_templates.yaml ) باستثناء بعض القوالب المخصصة التي تمت إضافتها إلى llm_rules/templates.py .
@article{mu2023rules,
title={Can LLMs Follow Simple Rules?},
author={Norman Mu and Sarah Chen and
Zifan Wang and Sizhe Chen and David Karamardian and
Lulwa Aljeraisy and Basel Alomair and
Dan Hendrycks and David Wagner},
journal={arXiv},
year={2023}
}