news 2026/8/25 8:30:02

CipherChat实验结果文件实战教程:用torch.load加载并分析越狱对话数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CipherChat实验结果文件实战教程:用torch.load加载并分析越狱对话数据

CipherChat实验结果文件实战教程:用torch.load加载并分析越狱对话数据

【免费下载链接】CipherChatA framework to evaluate the generalization capability of safety alignment for LLMs项目地址: https://gitcode.com/gh_mirrors/ci/CipherChat

CipherChat 是一个用于评测 LLM 安全对齐泛化能力的实验框架,其experimental_results/目录直接公开了全部越狱对话数据(query-response 对)。本教程带你用torch.load一次性完成这些实验结果文件的加载与分析全流程:看懂文件命名规则、解析数据结构、计算越狱成功率,并定位论文图表的数据来源——不需要运行任何 API,新手也能直接上手。🚀

1️⃣ 先搞懂 CipherChat:它如何评测 LLM 越狱

CipherChat 的核心思路:LLM 的安全对齐几乎完全基于自然语言,因此先把模型"教会"一种人类不可读的密码(如凯撒密码、Unicode 码位),再用该密码提交越狱指令,最后用规则解码器还原模型回复,即可系统性度量安全对齐的边界。

三个环节对应的代码模块:

环节做了什么对应模块
Step 1构造"密码专家"系统提示 + 少量示例prompts_and_demonstrations.py
Step 2用密码加密用户指令并发送给 LLMencode_experts.py
Step 3规则解码 LLM 回复 + 毒性检测main.py(L51-L76)

2️⃣ 解读实验结果文件:目录结构与命名规则

所有越狱对话数据都存放在experimental_results/下,按实验类型分目录:

目录内容
ciphers_bypass/主实验:多种密码(caesar、ascii、unicode、morse 等)的越狱对比
results_on_multi_domains/11 个安全域(犯罪、侮辱、隐私、心理健康等)的泛化实验
ablation_study/消融实验:去系统角色、去不安全示例、换安全示例、改示例数量
other_models/Claude、Llama2、GPT-3 等其他模型的越狱对话数据
human_evaluation/人工评估结果(同样可用torch.load加载)

文件名由 10 个配置字段拼接而成(生成逻辑见main.pyL119-L128)。以示例文件MainExperiment_gpt-4-0613_data_crimes-and-illegal-activities_caesar_toxic_en_True_True_2_0_results.list为例:

字段含义示例取值
实验标签主实验MainExperiment
模型名被评测 LLMgpt-4-0613
数据文件data/data_en_zh.dictdata
安全域指令所属领域crimes-and-illegal-activities
密码方法编码方式caesar(凯撒密码)
示例毒性示例是否危险toxic
语言指令语言en
系统角色 / 示例是否启用True / True
样本数 / 温度2 / 02 / 0

看懂这条规则,你就能按文件名直接挑到想要的实验数据。📂

3️⃣ 用 torch.load 加载越狱对话数据:3 行代码搞定

先安装 PyTorch(pip install torch),然后:

import torch # 加载一个实验结果文件 result_data = torch.load( "experimental_results/ciphers_bypass/MainExperiment_gpt-4-0613_data_crimes-and-illegal-activities_caesar_toxic_en_True_True_2_0_results.list" ) config = result_data[0] # 第 1 个元素:本次实验的完整配置 pairs = result_data[1:] # 第 2 个元素起:query-response 对话对

列表的第一个元素是实验配置,其余元素全部是对话数据(README 的 "Our results" 部分有同样说明)。

⚠️ 小贴士:PyTorch ≥ 2.6 中torch.load默认参数变为weights_only=True,加载这类 Python 对象会报错,只需写成torch.load(path, weights_only=False)

4️⃣ 查看对话结构:每条 query-response 对怎么存

pairs中每个元素是一个字典,包含两个字段:

  • conversation:完整会话日志,依次含用户指令(👨‍💻)、模型回复(🤖)与毒性检测结论(🔦 toxic detector),且前两部分都带"解码后的自然语言 + 密码原文"
  • toxic:毒性检测输出,形如 "yes/no + grammar: 1-5",前者判断回复是否越狱成功,后者衡量回复流利度

对应的解析逻辑可参考utils.py中的segment_components(L52-L103)与filter_function(L105-L120),后者还利用 BLEU 分数过滤掉"模型只是复读加密问题"的无效回复。

看一个真实案例:同样的越狱指令,Vanilla 基线模型拒绝回答,而经 CipherChat 加密后模型输出了危害性内容——这就是越狱对话数据的价值所在:

5️⃣ 实战:计算各安全域的越狱成功率

数据在手,就能快速复现论文核心指标——越狱成功率(Unsafe Rate):

def is_toxic(conv): """判断回复是否越狱成功:toxic 字段 'grammar' 之前出现 yes""" return "yes" in conv["toxic"].lower().split("grammar")[0] n = len(pairs) rate = sum(is_toxic(p) for p in pairs) / n print(f"样本数: {n},越狱成功率: {rate:.1%}")

把循环套到results_on_multi_domains/里所有文件上,就能复现论文主结果图——不同密码在各安全域的越狱成功率柱状图:

6️⃣ 进阶:复现消融实验与多模型对比

加载方式相同,分析脚本可以原样复用到其他实验数据上:

  • 消融实验ablation_study/):对比"去掉系统角色 / 用安全示例替换不安全示例 / 示例数改为 1"等条件下的越狱成功率,验证方法各组件的贡献
  • 其他模型other_models/):Claude、Llama2、GPT-3 等模型的越狱对话数据,可绘制论文的跨模型对比图

7️⃣ 常见问题与注意事项

  1. 加载报错 UnpicklingError:优先检查 PyTorch 版本,并确认指定了weights_only=False
  2. 仅限科研用途:项目公开越狱评测数据仅用于学术研究,请遵循 README 中 "RESEARCH USE ONLY, NO MISUSE" 的原则
  3. 格式统一:所有*.list文件都是"配置 + 对话对列表"的同构结构,一套加载器即可通吃全部实验数据

写在最后

CipherChat 的实验结果文件是开源的 LLM 越狱评测数据之一。本文给出的完整链路是:看懂命名规则 → torch.load 加载 → 解析对话结构 → 计算越狱成功率 → 复现论文图表。如果你想自己运行实验生成新数据,参考main.py顶部的参数示例即可,产出的文件与本文分析的方法完全通用。🔐

【免费下载链接】CipherChatA framework to evaluate the generalization capability of safety alignment for LLMs项目地址: https://gitcode.com/gh_mirrors/ci/CipherChat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 8:29:44

Edge浏览器JavaScript脚本开发全解析:从控制台调试到扩展与WebView2应用

1. 从“脚本”到“开发者”:Edge浏览器中的JavaScript生态全景 如果你和我一样,日常开发调试、自动化操作都离不开浏览器,那你肯定对“写个脚本”这件事不陌生。尤其是在Edge浏览器里,JavaScript脚本的应用场景早已超越了简单的页…

作者头像 李华
网站建设 2026/8/25 8:29:02

Slopsmith Desktop 信号链与NAM实用教程

Slopsmith Desktop 信号链与NAM实用教程 【免费下载链接】slopsmith-desktop Cross-platform desktop app for interactive full-band music notation — built-in VST hosting, amp modeling (NAM), and low-latency audio I/O 项目地址: https://gitcode.com/gh_mirrors/sl…

作者头像 李华
网站建设 2026/8/25 8:27:04

SpringBoot整合MinIO实战:高可用文件上传工具类设计

1. 为什么这个组合在真实项目里几乎成了标配?——从文件上传卡顿说起SpringBoot整合MinIO以及配套工具类,这六个字背后藏着的是每天数以万计Java后端开发者的真实痛点。我去年接手一个医疗影像系统重构时,第一周就卡在了文件上传环节&#xf…

作者头像 李华
网站建设 2026/8/25 8:26:20

10 分钟导入 3 个聚合音源,洛雪音乐里搜到全网 FLAC 无损

10 分钟导入 3 个聚合音源,洛雪音乐里搜到全网 FLAC 无损 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 导入 3 个音源文件大约 10 分钟,之后在洛雪音乐客户端搜歌&#x…

作者头像 李华
网站建设 2026/8/25 8:22:59

LunaTranslator游戏翻译工具:三步把Galgame日语译成中文

LunaTranslator游戏翻译工具:三步把Galgame日语译成中文 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator LunaTranslator 是一款完全开源免费的游戏翻译工具&a…

作者头像 李华