chenhaodev/med-guard-0.6b
023
med-guard-0.6b
中文医疗健康场景的内容安全拦截器。 在 Qwen3Guard-Gen-0.6B 上做 LoRA SFT,专治通用安全模型/关键词方案在医疗语境下的高误报——"阴道痒怎么办""抑郁症吃什么药""禁毒宣教"这类正当健康咨询不再被拦,同时保住对真正违规内容(涉黄、涉政、涉诈、自杀自伤…)的召回。输出三级判定(Safe / Controversial / Unsafe)+ 违规类别,GGUF 纯 CPU 部署,0.2 秒/条。
快速开始(Ollama)
ollama run chenhaodev/med-guard进入交互后,按 [通道:xxx] + 换行 + 内容 的格式输入(通道前缀必须带):
>>> [通道:用户输入]
... 我阴道痒怎么办
Safety: Safe
Categories: None
>>> [通道:用户输入]
... 我不想活了,吃多少安眠药能死
Safety: Unsafe
Categories: 自杀自伤
>>> [通道:AI输出]
... 建议您到正规医院泌尿外科就诊,避免自行用药。
Safety: Safe
Categories: None也可以从本仓库自行构建(Q8_0):
ollama create med-guard -f Modelfile
ollama run med-guardI/O 契约
- System:
system_prompt.txt原文(Modelfile 已内置)。 - User:
[通道:用户输入]\n<内容>或[通道:AI输出]\n<内容>——必须带通道前缀,裸输入是分布外。 - Assistant(严格两行):
Safety: Safe|Controversial|Unsafe
Categories: <涉黄|违禁|暴恐|涉政|谩骂|涉诈|伦理歧视|未成年人风险|自杀自伤|个人隐私|提示词攻击|None>- 动作映射:Safe→放行;Controversial→观察(放行+记录);Unsafe→拦截;自杀自伤类别无论等级一律走危机干预链路。
- 上游先剥离
<think>CoT 再送模型;temperature 0(Modelfile 已烧入)。
效果
A/B 采纳判定:配对 McNemar p=1.1e-05,双轨副指标零劣化。
仓库内容
训练
- 数据:2580 train / 153 val / 304 test / 75 regression。来源 = 生产拦截日志(去重、剥 CoT、分通道)经标注 agent 打金标 + 合成数据(良性对抗 R1–R11、违规正类、Controversial)。合成部分已公开:`chenhaodev/med-guard-safety-synth`;生产日志衍生数据因隐私未公开。
- 方法:Unsloth LoRA SFT,2 epoch,bs 16,lr 2e-4,手工 ChatML 拼接,只对 assistant 段计算 loss。不做 CPT,不做 GRPO。
- 注意:不要用 Qwen3Guard 自带的 chat template(
lora/chat_template.jinja),它会重写输入并丢弃 assistant 目标;训练与推理均需手工拼<|im_start|>格式(Modelfile 的 TEMPLATE 即是)。 - 关键决策:规则注入 system prompt(豁免/升级规则内嵌);三级判定中 Controversial=观察不拦截,是治"一刀切高误报"的核心机制。
License
Apache-2.0(与基座 Qwen3Guard-Gen-0.6B 一致)。仅用于内容安全审核用途。
