基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
简历
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
开源项目2026-11-03 16:14

Heretic:免训练调整本地模型行为

GitHub Trending#本地模型#模型定制#开源
Editor brief · 编辑速览

Heretic 利用对照提示词、评分器和数学方法修改模型行为,无需昂贵训练。项目提供减少拒答、迎合及冗余表达等配置,可用于本机硬件能够运行的受支持模型。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

想让本地模型少写套话、少迎合用户,除了改提示词和微调,还能直接修改模型权重。Heretic 提供的就是这条路线:不用昂贵的训练,通过对照提示、行为评分和参数搜索,调整模型的回答倾向。

它最值得关注的地方,是把模型修改做成了一套可配置、可复现的工具。但「游戏电脑也能改模型」有硬件和模型规模的前提,「拒绝更少」也不能直接等同于「能力更强」。

不做训练,怎么改变模型的回答习惯

Heretic 的核心主张是:个人开发者也能修改语言模型,而不只是加载别人发布的权重。

它根据具有对照关系的示例提示和评分器,寻找能改变模型行为的数学变换。可以把它理解为:准备能够区分目标行为的输入,用指标判断修改是否有效,再搜索合适的修改参数。

免训练省掉了常规训练过程,但没有省掉计算、评估和取舍。

默认配置用于压低拒绝回答的比例。其他预设包括:用 config.noslop.toml 减少低质量套话,用 config.nohumor.toml 减少幽默,用 config.nosyco.toml 减少迎合,以及用 config.emotions.toml 调整情绪倾向。这里的「减少」是优化目标,不能直接当成对所有问题都成立的效果保证。

具体执行由修改器(modifier)完成,接口定义在 modifier.py。原文提供两种实现:

  • 默认的 Arbitrary-Rank Ablation,简称 ARA,专为 Heretic 开发,实现在 ara.py。原文称其技术说明预印本将发布,但没有给出完整推导。
  • Directional ablation,也叫 abliteration,是经典的拒绝行为抑制方法。Heretic 在 abliteration.py 中实现了跨层可变的消融权重,并支持 projected abliteration 和范数保持方法 MPOA。

修改器上面还有一层搜索机制:由 Optuna 驱动、基于 TPE 的超参数优化器,寻找能让目标分数变好的参数组合。因此,它并不是给所有模型套同一个固定变换。

配置项叫 modifiers,但一次处理目前只能使用一个修改器。名称是复数,不代表可以同时叠加多种实现。

评分器决定了模型到底在追求什么

Heretic 真正开放给开发者的控制入口,是评分器(scorer)。

默认评分包含拒绝率和 KL divergence,分别实现在 keyword_rate.py 与 kl_divergence.py。前者衡量拒绝行为,后者衡量输出概率分布的变化程度。两者配合,是为了在改变行为时,也观察模型偏离原来输出的程度。

但分布变化小,不等于所有能力都保住了。拒绝率低,也不能证明回答正确。这些指标只能描述它们测量的那一部分行为。

通过 scorers 配置,可以同时启用任意数量的评分器,指定各项分数最小化还是最大化,也可以让同一种评分器使用多套设置。原文说这些分数会被共同优化,但没有在这份介绍里展开目标发生冲突时的具体处理方式。

自定义评分器需要继承 scorer.py 中的 Scorer 抽象基类,唯一必须实现的方法是 get_score。插件既可以写成 fully.qualified.module.MyScorerClass,也可以写成 path/to/plugin.py:MyScorerClass,不必修改 Heretic 包代码。

对程序员来说,这比预设文件更有价值:你可以定义什么叫「改好了」。

不过,定义指标往往比写接口更难。例如只惩罚某些套话关键词,模型可能换一套表达继续输出空话。原文没有证明某一种自定义评分就能解决这类问题,实际使用仍需要独立样例检查结果。

游戏电脑能跑,但要分清启动、处理和复现

运行环境要求是 Python 3.10+,以及适合硬件的 PyTorch 2.6+。下面这组命令完成安装,并开始处理指定模型:

pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507

要留意第二行:不提供其他配置时,执行的是默认的拒绝抑制任务。其他目标需要选择相应配置,全部配置选项参考 config.default.toml。Heretic 1.x 的配置与 Heretic 2.x 不兼容,旧配置必须按迁移指南调整。

程序启动时会先做系统基准测试,确定适合当前硬件的 batch size。作者给出的具体耗时是:RTX 3090 使用默认配置处理 Qwen3-4B-Instruct-2507,大约需要 30–40 分钟。

所以原文所谓「几秒钟上手」,应理解为快速发起任务,而不是几秒完成修改。

模型支持也有边界。作者称它支持大多数稠密模型、许多多模态模型、若干 MoE 架构和现代混合模型,并不等于所有架构都兼容。显存紧张时,可以把 quantization 设为 bnb_4bit,通过 bitsandbytes 做即时 4-bit 量化。按原文描述,处理所需显存可降到运行典型量化版本的水平,代价是轻微的精度损失。

处理完成后,可以保存模型、上传 Hugging Face、对话测试或运行标准基准,几种操作也能组合使用。

另一个实用功能是复现。上传时可选择附带 reproduce 文件夹,其中包含说明和机器可读的 reproduce.json。有了清单,可以执行:

heretic --reproduce path/to/reproduce.json

这里要注意 --reproduce:它复现已有修改结果,不必重新执行生成原模型时耗费数小时的计算,原文称通常几分钟即可完成。导出后,Heretic 会核对权重文件哈希。

不过,逐字节一致要求硬件、驱动、操作系统和全部软件包版本完全一致。工具会检查环境差异,不能保证在不同机器上得到相同哈希。

单份复现清单约 9 KB,社区将其组成 Heretic Grimoire。运行 heretic --collect-reproducibles path/to/target/folder/ 可以收集 Hugging Face 上公开的清单;再次运行会追加更新,即使对应模型已被删除,也不会删除已有文件。这备份的是复现清单,不是完整模型权重。

我的判断

我认可它把「修改方式」和「效果判断」拆成插件的设计。比起只发布一个修改后的模型,这种结构让开发者有机会检查目标、调整指标,并追溯结果怎么产生。复现清单也让模型实验更容易交接。

但效果证据需要分层看。作者称社区已发布数千个模型,并引用使用 MMLU、GSM8K 的独立基准,表示结果与其他 abliteration 工具相比表现不错。当前提供的原文没有展示具体分数、完整配置和对照表,因此不能据此判断领先多少,更不能推导出对代码任务同样有效。

模型更愿意回答,与模型答得更可靠,是两个需要分别验证的目标。

如果只是调整输出口吻,先改提示词、补示例,通常更容易验证和撤销。Heretic 的吸引力在于直接修改模型,但原文没有给出它与提示词方案、常规微调之间的系统对照,不能替作者认定哪条路线更优。

作者还强调自己的提交全部手写、逐行审查合并代码,并举出一个持续超过 7 个月、接近 350 条人工评论的 PR,以及另一个超过 200 条评论的 PR。这能说明维护投入,却不能单独证明效果或代码质量。项目于 2025 年 11 月首次发布,采用 AGPL v3 或后续版本;准备修改、集成或提供服务前,也应把许可证纳入评估。

能拿来做什么

  • 如果你已经运行本地模型,可以先从减少套话或迎合的预设入手,用同一批真实问题比较修改前后的答案,同时记录正确性、冗余程度和遗漏情况。
  • 对日常 AI 编程任务,保留固定的代码题、项目问答和错误定位样例。MMLU、GSM8K 可以作为补充,业务样例仍要单独验收。
  • 如果准备写评分器,先说明它到底能测到什么,再实现 Scorer.get_score。不要仅凭几个关键词消失,就认定模型行为已经改善。
  • 团队需要共享实验结果时,保存原模型信息、配置、评估样例和 reproduce.json,并记录硬件与软件版本,方便同事复查环境差异。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 GitHub Trending,原文版权归原作者所有。

阅读原文
上一篇
RAG 去重评测失真:证据预算才是变量
下一篇
nanochat:低成本跑通大模型训练全流程

资讯速览

GitHub Trending · 2026-11-03 16:14

AI 评分 8.0 / 10

相关标签

#本地模型#模型定制#开源

继续阅读

  • vLLM 如何用分页减少显存浪费
  • RAG 去重评测失真:证据预算才是变量
  • nanochat:低成本跑通大模型训练全流程
  • Scrapling:整合抓取、解析与智能体接入
  • Vercel 开源跨平台智能体桌面操作工具