2024 년 3 월 7 일 현재, 우리는 새로운 테스트 케이스가 포함 된 개정 된 v2.0 벤치 마크로 리포지기를 업데이트했습니다. 자세한 내용은 업데이트 된 논문을 참조하십시오.
[데모] [웹 사이트] [종이]
이 repo에는 규칙을 따르는 언어 평가 시나리오 : 언어 모델에서 규칙을 따르는 벤치 마크와 같은 규칙 코드가 포함되어 있습니다.
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 Test Suite에서 평가하십시오 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 에 저장됩니다.
그런 다음 결과 GCG 접미사로 direct_request 테스트 사례의 모델을 평가합니다.
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
basic_like 테스트 사례에서 LLAMA-2 7B 채팅으로 미세 조정 실험을 재현하려면 :
cd finetune
./finetune_llama.sh
우리는 미세 조정 LLAMA-2 7B 채팅 및 MISTRAL 7B 지시에 4X A100-80G GPU를 사용했습니다. 더 작은/적은 GPU에서 실행되도록 딥 스피드 설정을 조정할 수 있습니다.
커뮤니티 모델을 평가할 때 llm_rules/templates.py 에 추가 된 몇 가지 사용자 정의 템플릿을 제외하고는 대부분 FastChat 대화 템플릿 ( model_templates.yaml 에 문서화)에 의존합니다.
@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}
}