数字与型号准确性是什么
数字、版本号、单位与型号是最容易出错、也最容易被用户一眼抓住的答案内容。要设两道防线:检索侧保证片段包含完整上下文,数值与单位、条件不被切分切断;生成侧要求每个数字都能对回引用片段,关键场景再加规则校验兜底——把答案里的数字抽出来,与上下文中的数字集合比对,落在集合外的标记为疑似编造或换算错误。这类错误往往不影响系统运行,却直接摧毁用户对答案的信任。
基本信息
| 高风险内容 | 数值、单位、版本号、型号、阈值 |
|---|---|
| 检索侧要求 | 切分不切断数值与单位、条件 |
| 生成侧要求 | 数字必须来自引用片段 |
| 校验手段 | 正则抽取数字做集合比对 |
| 主要难点 | 单位换算,如毫秒与秒、GB 与 GiB |
| 兜底方式 | 高风险答案人工复核 |
典型使用场景
- 参数类问答:超时时间、并发上限必须给出准确数值
- 版本兼容说明涉及具体版本号,写错会误导升级决策
- 容量与成本估算涉及单位换算,换算错误放大结论偏差
- 医疗、金融、运维变更等高风险场景加规则校验与人工复核
- 上线后按周统计数字错误占比,作为质量信号
数字校验示例
数字校验示例
import re
nums_in_answer = set(re.findall(r"\d+(?:\.\d+)?", answer))
nums_in_context = set(re.findall(r"\d+(?:\.\d+)?", " ".join(c.text for c in chunks)))
unsupported = nums_in_answer - nums_in_context
if unsupported:
flag_for_review(answer, unsupported) # 疑似编造或换算错误,转人工
# 校验只能拦住「凭空多出来的数字」,换算错误仍需领域规则处理易错类型与防线
| 类型 | 出错方式 | 防线 |
|---|---|---|
| 数值 | 单位被切断,500 毫秒被写成 500 秒 | 切分保留单位,规则比对数字 |
| 版本号 | 新旧版本混用 | 片段带版本元数据,生成时要求标注版本 |
| 型号 | 相似型号混淆 | 型号原样保留,不翻译不改写 |
| 单位换算 | 模型自行换算算错 | 换算交给规则或领域对照表 |
单位换算需要人工规则或领域表:让模型自行换算是数字错误最常见的来源,尤其是毫秒与秒、GB 与 GiB 这类进制不同的单位。
中文数字与阿拉伯数字混写会让正则校验漏检:在输出规范里要求统一用阿拉伯数字,校验规则才靠得住。