Zum 7. März 2024 haben wir das Repo mit einem überarbeiteten V2.0 -Benchmark mit neuen Testfällen aktualisiert. Weitere Informationen finden Sie in unserem aktualisierten Papier.
[Demo] [Website] [Papier]
Dieses Repo enthält den Code für Regeln: Regelverfolgung von Sprachbewertungsszenarien, ein Benchmark für die Bewertung der Regelverfolgung in Sprachmodellen.
SimonSays und Questions , Unterstützung für Google Vertexai -API -Modelle. Bitte bewerten Sie die vorhandenen Ergebnisse mit python -m llm_rules.scripts.reevaluate .llm_rules .--conv_template in --fastchat_template umbenannt. pip install -e .
Um Modelle mit unseren API -Wrappern ( llm_rules/models/* ) zu bewerten, installieren Sie die optionalen Abhängigkeiten:
pip install -e .[models]
.env -Datei: 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/ . Starten Sie eine interaktive Sitzung mit:
python -m llm_rules.scripts.manual_redteam --provider openai --model gpt-3.5-turbo-0613 --scenario Authentication --stream
Visualisieren Sie Testfälle mit:
python -m llm_rules.scripts.show_testcases --test_suite redteam
Unser Hauptbewertungsskript ist llm_rules/scripts/evaluate.py , aber da wir viele Bewertungsoptionen unterstützen, ist der Code möglicherweise schwer zu befolgen. Weitere vereinfachte Versionen des Evaluierungsskripts finden Sie unter llm_rules/scripts/evaluate_simple.py .
Wir wickeln API -Anrufe mit unbegrenzten Wiederholungen zur einfachen Bewertung ein. Möglicherweise möchten Sie die Wiederholungsfunktionen so ändern, dass Sie Ihren Anforderungen entsprechen.
redteam Test Suite python -m llm_rules.scripts.evaluate --provider openai --model gpt-3.5-turbo-0613 --test_suite redteam --output_dir logs/redteam
Bei der Bewertung von Modellen mit VLLM startet evaluate.py einen API-Server-In-Prozess. Die Parallelität sollte für VLLM -Modelle viel höher eingestellt werden. Auswertung mit:::
python -m llm_rules.scripts.evaluate --provider vllm --model /path/to/model --fastchat_template llama-2 --concurrency 100
Detaillierte Ergebnisse einer einzelnen Testsuite mit:
python -m llm_rules.scripts.read_results --output_dir logs/redteam/gpt-3.5-turbo-0613
Nach der Bewertung aller drei Testsuiten (gutartig, grundlegend und redteam) bewertet die Gesamtregeln mit:
python -m llm_rules.scripts.read_scores --model_name gpt-3.5-turbo-0613
Schließlich können Sie die Antworten auf einzelne Testgrenzen anzeigen mit:
python -m llm_rules.scripts.show_responses --output_dir logs/redteam/gpt-3.5-turbo-0613 --failed_only
Führen Sie den GCG -Angriff mit randomisierten Szenario -Parametern in jeder Iteration aus:
cd gcg_attack
python main_gcg.py --model /path/to/model --fastchat_template <template_name> --scenario Authentication --behavior withholdsecret
Ausgabeprotokolle werden in logs/gcg_attack gespeichert.
Bewerten Sie dann Modelle in den Testfällen von direct_request mit den daraus resultierenden GCG -Suffixen:
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
Um unsere Feinabstimmungsexperimente mit LAMA-2 7B-Chat in den Testerfällen im basic_like zu reproduzieren:
cd finetune
./finetune_llama.sh
Wir haben den 4x A100-80G GPUs für die Feinabstimmung LLAMA-2 7B CHAT und MISTRAL 7B-Anweisungen verwendet. Möglicherweise können Sie DeepSpeed-Einstellungen so anpassen, dass sie auf kleineren/weniger GPUs ausgeführt werden.
Bei der Bewertung von Community -Modellen verlassen wir uns hauptsächlich auf Fastchat -Konversationsvorlagen (in model_templates.yaml ) mit Ausnahme einiger passender Vorlagen, die zu llm_rules/templates.py hinzugefügt wurden.
@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}
}