领域小模型把预测与解释分离输出,解释不参与决策

一、聊天窗口给专用模型加的是什么,又藏了什么

Carbon-X 是 Hugging Face 联合北京中关村学院、意大利一家遗传与医学研究机构推出的开源模型,走的路线是在 Qwen3-14B 这个通用底座上继续训练,实际参数约 148 亿。它面向的交互很直白:研究者把一段 DNA 序列贴进聊天窗口,问这个突变可不可能致病、哪些区域会干扰基因活动,模型给出预测并附带解释。

从交付视角看,”聊天窗口”这四个字同时做了两件相反的事。它做成了一件好事——原本藏在权重里、只会吐一个分数的模型,第一次变成了可以被追问的对象;它也埋下了一件坏事——流畅的自然语言解释很容易被下游当成医学或生物学结论。在洹拓科技评审这类方案时,第一条要拆开的就是这两件事。

要写实一点:模型给出的解释,很多时候是事后编造的合理化(rationalization)。它和预测本身可能来自完全不同的证据——预测来自某个分类神经元的激活,解释来自语言模型把上下文圆回来的那套生成机制。两者对不上时用户察觉不到,因为语言照样通顺。所以硬性要求是:预测值与解释文本在接口层就分离输出。预测走带版本号的结构化字段(模型版本、位点坐标、判定值、置信度各自独立),解释单独标注”辅助阅读、不参与决策”,绝不让一句话同时承担两件事。

二、换权重之前必跑的三个验收动作

把”通用底座 + 领域续训”这套东西交出去,我们只认三个能落地的验收动作,缺一个不进交付。

  1. 锚点集回归。 人工确认一组已知位点或序列,标注真值,做成固定的回归集。每次换权重、换提示模板、换分词器都必须重跑。关键不是报绝对分,而是报相对上一次的变化——哪些锚点从对变错、哪些从错变对。绝对分容易掩盖”整体略涨但某一类系统性倒退”的问题,而倒退的往往正是最难的那一小撮样本。
  2. 弃权测试。 故意喂超出能力的输入:截断的序列、跨物种的序列、字段为空或乱填的请求。看模型会不会承认”不确定 / 超出适用范围”。一个不肯弃权的领域模型,不能进任何有人依赖它的流程——因为它的错误模式不是”说不知道”,而是”一本正经地编”,后者在真有人照着做决定时会造成实际损失。弃权率要作为验收项写进报告,而不是等出事再补。
  3. 坐标系与单位一致性。 基因组这套东西的坑非常具体:参考基因组版本(不同版本坐标对不上)、正负链、坐标是 0 起始还是 1 起始——搞错一位,整条结论全错,但自然语言照样通顺。所以验收报告里必须有一句明确的坐标系声明:模型在哪个参考版本、哪个链向、哪种起始约定下训练和评测。这句话没写,前面两个动作都可能在错误的坐标上自证。

三、14B 这个量级真正的约束不在参数量

很多人看到 14B、148 亿,第一反应是”够不够聪明”。真正决定能不能用的第一道判据不是这个,而是上下文窗口对整段序列是硬约束。一条有分析价值的基因组片段,长度往往远超模型能一次性容纳的范围,窗口装不下就只剩两条路:截断,或者切窗。截断丢信息,切窗会切断跨区域的相互作用信息——而基因调控这件事本质上是远距离作用,一段调控元件和它影响的基因位点之间可能隔着很长的距离。切窗等于在问题最关心的结构上动刀。

我们的处理原则很明确:不要把原始碱基对直接塞进语言模型。先做特征化或嵌入化的压缩,把序列转成信息密度合适的表示,再交给这层语言模型去做交互和解释。语言模型在这里擅长的是把结论讲成人话、接受追问,不擅长的是从极长的 token 串里做模式匹配,后者应该交给专门的编码器和特征提取。分工错了,再大的窗口也补不回来。

落到验收上,切窗和截断到底丢了什么,不能靠感觉判断。把第二节那套锚点集分别在整段输入和切窗输入两种设置下各跑一遍,看判定发生变化的样本落在哪些区域——变化大的那一类,正是被切断的关键信息所在,该给它更高的压缩表示、或者重新设计任务拆分方式,而不是把原始序列硬塞进窗口。这一步做了,”14B 够不够用”才从一句空话变成一个能回答的问题。

四、这套验收换个行业照样用

“底座开源 + 领域续训 + 自然语言包装”这条路线的风险是通用的:解释看起来很懂,数字其实没依据。工业缺陷检测、病历解读、合同条款审查,撞的是同一堵墙。下面这张表是我们在交付评审里反复套用的模板。

验收项 生物场景怎么写 工业质检场景怎么写 合同场景怎么写
预测与解释分离 致病判定走结构化字段,解释单独标注不参与决策 缺陷类别与置信度入字段,”疑似划痕”的描述另存 风险条款命中入字段,说理文字标注仅供参考
锚点集回归 人工标注的已知位点集,报变化不报绝对分 已知缺陷样本金标集,每版重跑比对 已判定过的条款样本集,追踪判定漂移
弃权测试 截断或跨物种序列,看是否承认不确定 超出训练材质范围的样品,看是否拒答 缺关键字段的合同,看是否强给结论
坐标系一致性 声明参考基因组版本、链向、起始约定 声明所依据的缺陷分级标准版本 声明适用的条款库与法律口径版本

四行看下来会发现,真正难的从来不是模型本身,而是每一行右侧那句”声明 / 标注”愿不愿意写、能不能落地。愿意把不确定性写进接口的团队,和只会把模型输出直接铺到页面上的团队,交出来的是两种东西。 以合同场景为例,最危险的情形不是模型漏判,而是它把一段本不该命中风险库的条款解释得头头是道,审阅的人顺着解释往下读,反而比直接看原文更容易被带偏——解释越流畅,那句”仅供参考”就越要挡在中间。

五、定位错了就不该签

这类系统在洹拓科技这里的正确定位是一句话:缩小人工排查范围的第一道筛子。它负责把”值得人细看的那一小撮”从”几乎不用看的绝大部分”里挑出来,决定权留在人手里。把它放成”给结论的角色”——让模型说了算、人只签字——是我们不会签的交付。原因回到第二节那三个动作:只要弃权测试还没过关、坐标系声明还空着,它对每一个输入都会自信地给出一个答案,而这个答案对不对,下游根本没有第二个信号能校验。

所以我们签的边界很硬:模型可以在筛查环节做主,不能在结论环节做主;解释可以帮人读,不能替人定。反过来,如果连人工确认的锚点集都建不起来——这个领域没有可信的真值来源,没人说得清哪个位点到底致病不致病——那前面三个验收动作本身就无从谈起,方案也不该交付。手里没有尺子的时候,把模型接进流程只是把不确定性重新包装成了一遍自信的答复。这条线画不画,是这类方案能不能进生产的分水岭,也是验收一个领域续训模型时最该盯住的地方——底座是谁的并不重要,谁为”这个输出会被拿去做决定”负责,才重要。