Heretic-v1.2.0烧蚀GLM4.7,离线环境进行
Heretic烧蚀,离线环境
- 主要是解决操作过程中从互联网拉取数据集问题
- 使用
- 最终结果
- 各AI模型对这个结果的结论:
- 豆包:
- ds:
- chatgpt
- 新模型还需要编译安装transformers
主要是解决操作过程中从互联网拉取数据集问题
项目github地址:https://github.com/p-e-w/heretic
使用
我在做GLM-4.7-Flash的去审查,Unsloth对已量化的GUFF做不了微调,所以得自己做一个然后使用Dynamic 2.0 量化
环境需求 准备一个安装 PyTorch 2.2+ 的 Python 3.10+ 环境
安装heretic
pip install -U heretic-llm进行烧蚀操作
heretic Qwen/Qwen3-4B-Instruct-2507heretic开始前会有检查环境等,然后尝试通过网络连接到 Hugging Face Hub (huggingface.co) 下载默认的数据集 (mlabonne/harmless_alpaca 和mlabonne/harmful_behaviors)
找个互联网环境,进行同样操作,把数据集拿下来
打包带走,直接放到linux的~/.cache/huggingface/下或者从魔塔社区或者hf下载
https://www.modelscope.cn/organization/mlabonne
https://hf-mirror.com/mlabonne
下载后命令行指定数据集(未测试可行性)heretic Qwen/Qwen3-4B-Instruct-2507 --good-prompts.dataset 和 --bad-prompts.dataset:指向数据集文件夹的路径。
离线环境开始进行烧蚀,需要强制离线,不然还会从互联网拉取,不读你拿到的缓存
$env:HF_DATASETS_OFFLINE = "1" #powershell export HF_DATASETS_OFFLINE=1 #linux export HF_DATASETS_OFFLINE=1;heretic /data/GLM/
200 轮(trials)优化
提前终止无效试验
Heretic 有内置的"剪枝"(pruning)机制,如果某轮的 KL 散度超过 --kl-divergence-target(默认 0.01),会提前终止。你当前的 0.0129 接近阈值,后续可能会有试验被提前终止。
AI给的介绍
============================
从你的输出可以看到:当前进度:第 14 轮 / 共 200 轮(已完成 7%)
Elapsed time:已用时间 22分钟35s
预计剩余时间:5 小时
GPU 显存占用:55.89 GB(已分配)+ 73.46 GB(预留)
这 200 轮在做什么?
Heretic 使用 Optuna(贝叶斯优化框架)来自动搜索最佳的"烧蚀参数"组合。每一轮都在尝试不同的参数配置,目标是:最小化拒绝率(让模型少说"对不起,我不能…")
控制 KL 散度(保持模型原有能力,不要改得太离谱)
当前轮次的参数示例:
direction_index = per layer
attn.o_proj.max_weight = 1.43 # 注意力输出层的最大权重
attn.o_proj.min_weight = 0.64 # 注意力输出层的最小权重
mlp.down_proj.max_weight = 0.97 # MLP 下投影层的最大权重
…
当前效果:
KL 散度:0.0129 ✅(很好,远低于目标 0.01,说明模型改动很小)
拒绝率:73/100 ⚠️(还有 73% 的有害提示被拒绝,需要继续优化)
最终结果
200轮跑完不满意,加了50轮,然后出了13/100,14/100,8/100
250轮最后一轮的8/100拒绝率我觉得已经ok了
200轮截图
250轮的
各AI模型对这个结果的结论:
豆包:
ds:
chatgpt
新模型还需要编译安装transformers
GLM4.7-flash和qwen3.6都需要,镜像是vllm 0.19.0的环境
cdtransformers/ pipinstall.-ihttps://artifactory.xxx.cn/api/pypi/csc-pypi-release/simple