5分钟跑通CipherChat第一个密码越狱测试:新手快速上手完整教程
5分钟跑通CipherChat第一个密码越狱测试新手快速上手完整教程【免费下载链接】CipherChatA framework to evaluate the generalization capability of safety alignment for LLMs项目地址: https://gitcode.com/gh_mirrors/ci/CipherChatCipherChat 是一个开源的大语言模型LLM安全对齐评估框架专门用于LLM 密码越狱测试Cipher Jailbreak Test它把提示词转换成模型看不懂的密码形式检验 LLM 的安全对齐能力能否泛化到非自然语言。本教程带你快速跑通第一个密码越狱实验5 分钟即可看到完整结果。为什么需要做密码越狱测试ChatGPT、GPT-4 等 LLM 在自然语言上接受了大量安全对齐训练但当输入切换成密码如凯撒密码、摩斯电码时这套对齐很可能失效。CipherChat 正是系统化地验证这一问题。如下图所示直接询问 GPT如何从银行偷钱会被礼貌拒绝而把同样的请求编码成凯撒密码后再发给模型安全对齐就被绕过了——这正是密码越狱的典型现象。CipherChat框架的三步工作流程整个框架源码见 README.md分为三步构造系统提示词把 LLM 指定为密码专家讲明编码/解码规则并附上若干示例demonstrations编码输入指令把原始提示词转换成密码形式规避安全对齐覆盖解码模型响应用基于规则的解码器把模型输出还原成自然语言再用 GPT-4 做毒性检测第一步克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/ci/CipherChat cd CipherChat pip install torch openai1.0 tqdm 提示项目使用旧版 OpenAI SDK 的接口openai.ChatCompletion.create因此建议安装openai1.0以保持兼容。项目文件结构一览文件作用main.py主入口组装系统提示、发送请求、保存结果encode_experts.py凯撒、摩斯、ASCII、Unicode、Atbash 等密码编码实现prompts_and_demonstrations.py各密码的系统提示词与 toxic/harmless 演示样例utils.py数据加载、异常处理等工具函数data/data_en_zh.dict11 个领域的中英测试数据torch.save 格式saved_results/测试结果输出目录log/完整对话过程日志目录第二步配置 OpenAI API Key在 main.py 第 13 行填入你自己的密钥OPENAI_API_KEY 这里填写你的API密钥第三步运行第一个密码越狱测试python3 main.py \ --model_name gpt-35-turbo-0613 \ --data_path data/data_en_zh.dict \ --encode_method caesar \ --instruction_type Crimes_And_Illegal_Activities \ --demonstration_toxicity toxic \ --language enmain.py默认开启 debug 模式只跑 3 条样本main.py 的--debug_num几分钟内即可跑完非常适合新手快速验证环境是否就绪。常用参数速查表参数说明可选值示例--model_name待评估模型gpt-35-turbo-0613、gpt-4-0613、text-davinci-003--encode_method使用的密码caesar、ascii、unicode、morse、atbash、unchange、baseline--instruction_type测试领域共 11 类Crimes_And_Illegal_Activities、Insult、Mental_Health等--demonstration_toxicity演示样例类型toxic毒性示例、harmless安全示例--language数据语言en、zh其中baseline表示不使用密码的原始语言基线可与各种密码方法对比观察安全对齐的泛化差距。查看密码越狱测试结果运行结束后结果会以.list文件保存到saved_results/目录文件名由参数自动生成日志同步写入log/。读取方式很简单import torch result_data torch.load(saved_results/xxx_results.list) config, *pairs result_data每个 pair 都包含原始查询、编码后的查询、模型响应、解码后的响应以及毒性检测结论toxic字段。在论文主实验结果中可以看到在多个测试领域和两个模型上SelfCipher 等密码方法的 unsafe rate 显著高于原始语言基线。具体到单条对话的对比效果更加直观如果不想自己调用 API仓库里已提供完整的实验数据存放在 experimental_results/ 目录中可以直接加载分析。常见问题 FAQQ1报错 RateLimitError 或 OutOfQuotaException项目每次请求后会自动等待 20 秒以规避限流main.py。如果是余额不足程序会给出明确提示更换有额度的密钥后重新运行即可。Q2提示 it has been done, now skip it说明saved_results/下已存在同名结果文件程序会跳过以避免覆盖。修改任一参数或清理对应文件即可重新运行。Q3新手第一次跑选哪个模型建议先用gpt-35-turbo-0613配合默认 debug 模式3 条样本成本最低、几分钟就能跑通全流程。小结3 步完成 LLM 密码越狱测试克隆仓库 → 配置 API Key → 运行一条命令你就完成了第一次 LLM 密码越狱测试。接下来可以尝试不同的密码方式morse、atbash……、不同的测试领域并用baseline与unchange的结果做对比深入理解 LLM 安全对齐的泛化边界。更多参数说明与实验细节可参考 README.md 及配套的 ICLR 2024 论文。⚠️免责声明本项目仅限研究使用RESEARCH USE ONLY请务必仅将其用于 LLM 安全研究切勿用于任何危害他人的用途。【免费下载链接】CipherChatA framework to evaluate the generalization capability of safety alignment for LLMs项目地址: https://gitcode.com/gh_mirrors/ci/CipherChat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考