Pada 7 Maret 2024, kami telah memperbarui repo dengan tolok ukur v2.0 yang direvisi dengan kasus uji baru. Silakan lihat makalah kami yang diperbarui untuk lebih jelasnya.
[demo] [situs web] [kertas]
Repo ini berisi kode untuk aturan: skenario evaluasi bahasa mengikuti aturan, tolok ukur untuk mengevaluasi aturan mengikuti model bahasa.
SimonSays dan Questions , menambahkan dukungan untuk model API Google Vertexai. Harap evaluasi ulang hasil yang ada dengan python -m llm_rules.scripts.reevaluate .llm_rules .--conv_template menjadi --fastchat_template . pip install -e .
Untuk mengevaluasi model dengan pembungkus API kami ( llm_rules/models/* ), instal dependensi opsional:
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/ . Luncurkan sesi interaktif dengan:
python -m llm_rules.scripts.manual_redteam --provider openai --model gpt-3.5-turbo-0613 --scenario Authentication --stream
Visualisasikan kasus uji dengan:
python -m llm_rules.scripts.show_testcases --test_suite redteam
Skrip evaluasi utama kami adalah llm_rules/scripts/evaluate.py , tetapi karena kami mendukung banyak opsi evaluasi kode mungkin sulit diikuti. Silakan lihat llm_rules/scripts/evaluate_simple.py untuk versi yang disederhanakan dari skrip evaluasi.
Kami membungkus panggilan API dengan penitipan ulang tanpa batas untuk kemudahan evaluasi. Anda mungkin ingin mengubah fungsi ulang yang sesuai dengan kebutuhan Anda.
redteam Test Suite python -m llm_rules.scripts.evaluate --provider openai --model gpt-3.5-turbo-0613 --test_suite redteam --output_dir logs/redteam
Saat mengevaluasi model menggunakan VLLM, evaluate.py meluncurkan server API dalam proses. Konkurensi harus ditetapkan jauh lebih tinggi untuk model VLLM. Jalankan evaluasi dengan:
python -m llm_rules.scripts.evaluate --provider vllm --model /path/to/model --fastchat_template llama-2 --concurrency 100
Lihat hasil terperinci pada satu suite uji dengan:
python -m llm_rules.scripts.read_results --output_dir logs/redteam/gpt-3.5-turbo-0613
Setelah mengevaluasi ketiga suite tes (jinak, dasar, dan redteam), menghitung skor aturan agregat dengan:
python -m llm_rules.scripts.read_scores --model_name gpt-3.5-turbo-0613
Akhirnya, Anda dapat melihat tanggapan terhadap casing uji individu dengan:
python -m llm_rules.scripts.show_responses --output_dir logs/redteam/gpt-3.5-turbo-0613 --failed_only
Jalankan serangan GCG dengan parameter skenario acak di setiap iterasi:
cd gcg_attack
python main_gcg.py --model /path/to/model --fastchat_template <template_name> --scenario Authentication --behavior withholdsecret
Log output akan disimpan dalam logs/gcg_attack .
Untuk kemudian mengevaluasi model pada kasus uji direct_request dengan sufiks GCG yang dihasilkan:
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
Untuk mereproduksi eksperimen fine-tuning kami dengan obrolan LLAMA-2 7B pada kasus uji basic_like
cd finetune
./finetune_llama.sh
Kami menggunakan 4x A100-80G GPU untuk menyempurnakan LLAMA-2 7B Obrolan dan Instruksi 7B Mistral, Anda mungkin dapat menyesuaikan pengaturan kecepatan dalam untuk berjalan pada GPU yang lebih kecil/lebih sedikit.
Saat mengevaluasi model komunitas, kami sebagian besar mengandalkan templat percakapan fastchat (didokumentasikan dalam model_templates.yaml ) dengan pengecualian beberapa templat khusus yang ditambahkan ke 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}
}