【免费下载链接】humanizer-12b-OptiQ-4bit
humanizer-12b-OptiQ-4bit 是一个基于 MLX 框架、专为 Apple Silicon 优化的 12B"去 AI 味"改写模型,它接受一种非常严格的固定输入格式——这就是仓库里的 prompt_format.json 所定义的"提示词契约"。格式差一个字节,输出质量都可能打折扣。本文带你逐字段读懂这份契约,并一步步把输入拼装正确。
先搞懂本质:它是补全模型,不是聊天模型
这是使用 humanizer 系列模型最重要的一条前提:
It is a completion model, not a chat model(见 README.md)
模型不是在"对话",而是在"续写"。它被微调时见过的输入永远是同一个模板:一段固定指令 + 你的草稿 + 一个分隔符。你偏离这个模板(比如加上 system prompt、包上 user/assistant 角色),就等于把模型喂到了它训练分布之外,改写效果会明显变差。
下面逐字段拆解这个契约文件。
prompt_format.json 六个字段逐一拆解
整个 prompt_format.json 很短,但每个字段都有明确分工:
| 字段 | 值 | 作用 |
|---|---|---|
style | legacy | 声明使用 legacy(传统补全)风格的提示词,而非聊天模板 |
instr | 一段英文改写指令 | 告诉模型"像人一样重写,砍掉套话、长短句交错,但所有事实、数字、单位、日期、人名、引语必须原样保留" |
sep | \n\n### Rewritten:\n\n | 分隔符,追加在草稿末尾,向模型发出"从这里开始写改写结果"的信号 |
fingerprint | cc51d66b4c593fbe | 指纹哈希,用来校验你的提示词是否与官方模板逐字节一致 |
chat | false | 明确声明:不要按聊天格式(角色轮次)包装输入 |
note | "推理时需 instr + draft + sep" | 官方备注,直接给出了拼装顺序 |
两点值得注意:
instr的原文要求模型"故意变化句子长度、删掉铺垫句、优先用具体词而非抽象词,允许读起来不那么工整"——这就是"去 AI 味"的效果来源。sep里的### Rewritten:不是随便起的标题,它是模型识别"该我输出了"的锚点,一字不能改。
三步拼装输入:instr + draft + sep
官方给出的拼装公式只有一行(见 README.md 中的用法示例):
prompt = instr + "\n\n" + draft.strip() + sep拆解成三步:
第 1 步:原样取instr从 prompt_format.json 读出instr的完整字符串,不改写、不翻译、不增删标点。
第 2 步:接上你的草稿先加两个换行符(一个空行),再放你的待改写文本,并且去掉文本首尾的空白(即示例中的draft.strip())。中英文草稿都可以——模型支持 en/zh 双语改写。
第 3 步:原样追加sep最后把sep的完整字符串拼到末尾,它自带前后空行。
最终送进模型的提示词长这样(……处是你的草稿):
Rewrite the text below so it reads like a person wrote it, not a language model. ……你的草稿文本…… ### Rewritten:注意结尾是### Rewritten:之后留空——模型会从这里开始"续写"改写结果,你不需要再写任何提示。
采样参数照抄官方:temperature 1.0 与 top_p 0.95
提示词对了,采样参数也要对。仓库自带的 generation_config.json 给出了官方推荐值:
| 参数 | 推荐值 | 说明 |
|---|---|---|
temperature | 1.0 | 原作者推荐;温度太低改写风格会僵化 |
top_p | 0.95 | 原作者推荐 |
top_k | 64 | 配置文件中附带 |
do_sample | true | 需要开启采样,而非贪心解码 |
原模型作者的额外建议:除了 temperature 和 top_p 之外,其他采样开关保持关闭。
用 fingerprint 校验你的提示词拼对没有
prompt_format.json里的fingerprint(cc51d66b4c593fbe)是一个哈希指纹。它的用途非常实用:你可以对自己拼装好的提示词做同样的哈希计算,与fingerprint比对——一致,说明你的instr、空行、sep全部逐字节正确;不一致,说明你某处改了换行、多打了一个空格或动了instr的措辞。
这是新手排错时的第一工具:效果不好时,先查提示词字节,再怀疑模型本身。
常见错误清单:这几件事千万别做
❌加 system prompt——契约里没有这个角色,加了就是画蛇添足。
❌用聊天轮次包装——不要写"用户:请改写……",chat: false已经明说了。
❌修改或翻译instr——哪怕只改一个词,模型看到的就不再是训练时的模板。
❌草稿前后留大量空白——记得draft.strip(),空行数量要与契约一致。
⚠️英文草稿被改写成中文——这是已知的偶发情况,官方建议的处理方式很简单:重新采样一次即可,通常第二次就能回到正确语言。
关键文件速查
| 文件 | 用途 |
|---|---|
| prompt_format.json | 提示词契约:拼装输入的全部素材都在这里 |
| generation_config.json | 官方采样参数(temperature / top_p / top_k) |
| README.md | 完整用法说明,含加载与生成示例 |
| optiq/metadata.json | OptiQ 混合精度量化元数据(157 层 8-bit + 172 层 4-bit) |
| model-00001-of-00002.safetensors | 模型权重分片(整个模型 8.4 GB,可从 24 GB 的 bf16 原版压缩而来,16 GB 内存的 Mac 也能跑) |
小结
给 humanizer-12b-OptiQ-4bit 喂输入的口诀只有三句:指令照抄、草稿居中、分隔符收尾。把instr + "\n\n" + draft + sep这条拼装公式刻进肌肉记忆,再用fingerprint校验一遍字节,配合 temperature 1.0 / top_p 0.95 的采样设置,你就能稳定拿到"像人写的"改写结果。
【免费下载链接】humanizer-12b-OptiQ-4bit
相关推荐
在 SuperGrid 上运行 Flower AgentApp:CLI 提交、联邦选择、日志跟踪与故障恢复完整指南
在 SuperGrid 上运行 Flower AgentApp:CLI 提交、联邦选择、日志跟踪与故障恢复完整指南 本文基于 Flower 仓库中的官方指南 R
一段提示词如何生成一个"电影级"画面:Opus 5.5 案例提示词逐句拆解
一段提示词如何生成一个"电影级"画面:Opus 5.5 案例提示词逐句拆解 Claude Opus 5.5 发布后,中文社区最出圈的讨论几乎都围绕一个词展开:"
BepInEx 上手:5 步跑通 Unity 插件框架的完整流程
BepInEx 上手:5 步跑通 Unity 插件框架的完整流程 游戏里想加个 HUD、改个数值,官方却不给接口?反编译再打补丁,改完还得手动维护,游戏一升级就
游戏开发插件系统
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考