资讯动态

逐行拆解gemma-4-12b-constraintkit的系统提示词:train_sys.txt如何驯服出一个诚实的AI工程师

发布时间:2026/10/20 1:12:16 来源:尧图企业网站定制
【免费下载链接】gemma-4-12b-constraintkit-GGUF项目地址https://ai.gitcode.com/hf_mirrors/jajmangold/gemma-4-12b-constraintkit-GGUF点击查看免费下载gemma-4-12b-constraintkit 是一个把自然语言变成精确 CAD 装配体的 12B 开源模型它最特别的地方不是会建模而是知道什么时候该说我不会。这篇文章逐行拆解仓库里的 train_sys.txt——训练时使用的系统提示词system prompt——看这短短 4 行文字如何给 AI 定下词汇表、连接规则和诚实底线并解释推理时为什么必须原样使用它。一、先看项目全貌它到底是个什么模型在拆提示词之前先花 30 秒建立背景否则很多规则会看不懂。维度说明基座模型Gemma 4 12BLoRA 微调r16见 lora/ 目录下的 adapter_config.json任务自然语言 → constraint-kit DSL 程序零件 参数 连接再由确定性数学内核编译成真实 B-rep 实体并导出 STEP产出文件9.8 GB 的 Q6_K 量化模型 gemma4-12b-constraintkit-grpo-Q6_K.gguf供 llama.cpp 本地运行招牌能力93% 的构建能通过真实几何校验87% 的超纲请求会诚实拒绝而不是拿错误零件糊弄你关键点在于这个模型不画网格mesh它只写一段零件-参数-连接的小程序几何全部由 constraint-kit 的确定性求解器算出。所以输出的每一处尺寸都可以被校验——这也是它能被驯服诚实的前提。二、train_sys.txt 全景4 行文字4 层任务整个系统提示词只有 4 行但信息密度极高。先看结构行号内容作用第 1 行任务定义 零件词汇表 连接MATES规则 诚实规则教模型说什么、怎么输出、什么时候闭嘴第 2 行HONESTY 补充清单把拒绝范围扩展到另一批不能表达的零件第 3 行VITAMINS 库件调用规范开一个受控的后门少量可直接渲染的库件第 4 行N 件套约定处理a set/pack of N 个相同零件的边界情况下面逐行拆解。三、第 1 行拆解任务、词汇表与诚实规则第 1 行是最长的一行train_sys.txt#L1其实可以切成 4 个语义块。3.1 任务定义只输出 JSON不许说人话开头就锁死了输入输出契约Translate a plain-English mechanical-part/assembly description into a constraint-kit DSL program.Output ONLY JSON:{parts:[{id,type,material,params:{...}}],mates:[...]}注意 ONLY 和结尾再次强调的 Output JSON only, no prose——首尾呼应是典型的防跑偏写法模型在推理后必须交出纯 JSON方便下游程序直接解析不用清洗自然语言。3.2 零件词汇表一个封闭的合法零件世界第 1 行用分号串起了 11 种零件类型和参数单位 mm这是全文最核心的设计——词汇表是封闭的零件类型参数一句话理解spacerouter_d, bore_d, height垫圈/衬套轴孔垫圈类零件spur_gearmodule, teeth, width, bore_d直齿圆柱齿轮platewidth, depth, thick, boss_d, boss_h, bolt_d, bolt_circle, bolt_count带凸台和螺栓孔的底板shaftdiameter, length轴washerouter_d, bore_d, thick平垫圈nutaf, height, bore_d六角螺母boltshank_d, length, head_d, head_h螺栓panelwidth, depth, height薄壁面板linklength, width, thickness连杆四杆机构用housingwidth, depth, height, wall, bore_d带壁厚的壳体sheet_bracketthickness, base_length, flange_length, width折弯钣金支架这套词汇表同时出现在 README.md 的 Limitations 一节——它划定了模型的能力边界词汇表之外的东西正确行为就是拒绝。3.3 MATES 连接规则给零件装配语法有了零件还不够零件之间怎么装第 1 行给出了两套表达法意图式{a,b,intent}intent 取seat_on坐落、insert插入、fasten紧固、mesh啮合——口语化适合把垫圈套在轴上这种描述几何式{a,a_joint,b,b_joint,type}type 取coincident / rigid / contact / mesh / revolute——精确指定两个零件的哪两个配合面之间是什么装配关系。同时提示词给出了各零件的锚点anchor命名plate 有mount和bolt0..Nspur_gear 有bore_base / bore_topspacer 有top / bottom并规定第一个零件是固定基准The FIRST part is the fixed base。这一段相当于给装配体定下了谁是地基防止模型把装配关系挂空。3.4 HONESTY RULE全文的灵魂第 1 行末尾是行最后一段if the description needs a part type or feature you have NO match for …do NOT substitute a different part— output exactly{unsupported:what you cannot express}这是整份提示词里最有价值的一句。它做三件事禁止近似替代想要螺旋伞齿轮不许偷换成直齿锥齿轮先凑合交付给出固定拒绝格式{unsupported: ...}让下游程序能机器识别这次没辙拒绝时要说出缺的是哪个变体——README 里的例子是我需要螺旋锥齿轮模型会回答只建模了直齿锥齿轮而不是含糊其辞。这就是标题里诚实的来源拒绝本身被设计成了一种合法的、可校验的输出格式。四、第 2 行拆解把拒绝清单再扩大一圈第 2 行 以HONESTY:开头是对第 1 行诚实规则的补充列出了另一批明确表达不了的零件jaw/flexible coupling爪式/弹性联轴器、living or concealed hinge隐形铰链、spiral bevel螺旋锥齿轮、worm WHEEL蜗轮、tapered/needle/thrust bearing锥/滚针/推力轴承、cam凸轮、spring弹簧、universal joint万向节、keyway键槽、spline花键、timing/GT2 pulley同步带轮。值得对比的一个细节第 1 行说helical/bevel/worm gear 不能建模而第 3 行的 VITAMINS 又提供了bevel_gear和worm库件——闭合物语表 受控例外边界划得非常清楚。五、第 3 行拆解VITAMINS——受控的库件后门第 3 行train_sys.txt#L3定义了 VITAMINS维生素即库件用{type:vitamin,params:{scad:call,name:...,fn:48}}的格式调用预渲染的库零件包括nema_stepper_motor17/23 号 NEMA 步进电机rack齿条worm蜗杆bevel_gear锥齿轮knuckle_hinge铰链支持union()组合出活页铰链这行提示词的设计意图是模型不需要懂这些复杂零件的几何只需会在正确时机引用库件。README 里那台 NEMA 步进电机装配就是靠这种 vitamin 库件放上去的。它把模型的职责进一步收窄到决策选什么几何细节全部外包给库。六、第 4 行拆解N 件套的边界情况最后一行只有一条规则train_sys.txt#L4A set/pack of N identical parts N parts and mates [].即用户说3 个一样的垫圈叠起来时输出 3 个零件、mates 留空或由后续意图式连接补上。这种把高频歧义场景写进提示词的做法省去了训练数据里反复纠偏的成本。七、为什么推理时必须原样使用这份系统提示词README.md 在 Files 一节把话说得很死train_sys.txt 是Requiredbecause the model was not trained on any other prompt模型只在它上面训练过换任何措辞都等于换了一个它没学过的任务。这也解释了推理流程为什么长这样用 llama.cpp 加载模型llama-server -m gemma4-12b-constraintkit-grpo-Q6_K.gguf -c 8192 -ngl 99 --port 8086调用/completion时system 轮以|think|开头、把 train_sys.txt 全文原样塞入、以turn|结束采样参数保持低温temperature 0.2以稳定 JSON 输出模型先输出一段推理thinking trace再输出 JSON 程序或{unsupported: ...}——所以它会展示思考过程你可以看到它为什么选这个零件、为什么拒绝。 对新手来说最容易踩的坑就是提示词自己随便改两句。对这个模型而言系统提示词不是风格偏好而是训练分布的一部分。八、这份提示词驯化出了什么训练结果速览提示词定规则训练把规则练成习惯。根据 README.md 的 Results 表阶段几何校验通过的构建诚实拒绝SFTbf1656/6093%26/3087%SFTQ6_K GGUF55/6092%25/3083%SFT GRPO本模型6/6 保持9/10错误变体偷换构建减半GRPO 阶段的奖励模型没有用 LLM 打分而是直接拿 constraint-kit 的 DSL 校验器当奖励检查通过、能构建、几何签名接近才得分。这正是诚实能被量化的原因——能不能拒绝、拒绝得对不对都可以被几何事实判卷。九、使用边界与注意事项 ⚠️README 的 Limitations 一节值得照单全收它只认识 train_sys.txt 里的词汇表其余请求应该被拒绝拒绝仍是薄弱点约 1/10 的超纲请求仍会被近似构建出来信任几何之前先让输出过一遍 constraint-kit 的校验接口POST /dsl/verify。十、写在最后这份系统提示词值得学什么 回看 train_sys.txt 的 4 行它示范了一套很干净的小模型微调提示词工程闭集词汇表明确列出你会什么而不是模糊地说你是机械专家固定拒绝格式把我不会变成可解析、可评分的输出规则首尾呼应格式约束在开头和结尾各强调一次受控例外VITAMINS例外也写进契约而不是留白提示词即训练分布推理端原样复用一个字都不改。对于想本地跑一个既会干活又不会瞎编的专业领域小模型这份 4 行提示词 校验器做奖励的配方比任何花哨的话术都更值得抄。相关文件索引系统提示词 train_sys.txt · 使用说明 README.md · 量化模型 gemma4-12b-constraintkit-grpo-Q6_K.gguf · LoRA 配置 lora/adapter_config.json赞分享【免费下载链接】gemma-4-12b-constraintkit-GGUF项目地址https://ai.gitcode.com/hf_mirrors/jajmangold/gemma-4-12b-constraintkit-GGUF点击查看免费下载相关推荐不是提示词工程Gemma-4-12B 三阶段微调如何造出人味不是提示词工程Gemma 4 12B 三阶段微调如何造出人味 AI 味已经成了大模型文本最容易被一眼看穿的东西句长均匀得像被排版过、连接词堆砌、首人工智能大模型微调本地部署AI 写作lm-evaluation-harness实战gemma-4-12B-it-w8a8-llmcompressor评测命令参数逐个拆解lm evaluation harness实战gemma 4 12B it w8a8 llmcompressor评测命令参数逐个拆解 如果你想知道 AMD 推如何正确喂给humanizer-12b-OptiQ-4bit输入逐步拆解prompt_format.json提示词契约如何正确喂给humanizer 12b OptiQ 4bit输入逐步拆解prompt_format.json提示词契约 humanizer 12b OptiQ大模型模型量化本地部署NLP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑