ณ วันที่ 7 มีนาคม 2024 เราได้อัปเดต repo ด้วยเกณฑ์มาตรฐาน V2.0 ที่ได้รับการแก้ไขพร้อมกรณีทดสอบใหม่ โปรดดูเอกสารที่อัปเดตของเราสำหรับรายละเอียดเพิ่มเติม
[สาธิต] [เว็บไซต์] [กระดาษ]
repo นี้มีรหัสสำหรับกฎ: สถานการณ์การประเมินภาษาตามกฎซึ่งเป็นเกณฑ์มาตรฐานสำหรับการประเมินกฎตามกฎในแบบจำลองภาษา
SimonSays และ Questions เพิ่มการสนับสนุนสำหรับรุ่น Google Vertexai API โปรดประเมินผลลัพธ์ที่มีอยู่อีกครั้งด้วย python -m llm_rules.scripts.reevaluatellm_rules--conv_template เป็น --fastchat_template pip install -e .
ในการประเมินโมเดลด้วย wrappers 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
เราใช้ GPU 4x A100-80G สำหรับการปรับแต่งการแชท LLAMA-2 7B และคำสั่ง Mistral 7B คุณอาจสามารถปรับการตั้งค่า Deepspeed เพื่อทำงานบน GPU ที่เล็กลง/น้อยลง
เมื่อประเมินโมเดลชุมชนเราส่วนใหญ่พึ่งพาเทมเพลตการสนทนา 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}
}