两层真值
一次构建中的每份文件都带两层独立的真值:- 印刷层——纸上写了什么(项目名称、值、单位、参考范围、标记;即 MedRepBench 五字段);
- 语义层——它意味着什么(指标键、LOINC 编码、UCUM 单位、观测日期)。
unit.missing 这类陷阱下,一次忠实的转写合法地
让印刷单位为空,而语义真值仍然说这一行是 mmol/L 的血糖——于是不变性检查必须放在语义层。
具名的难度与最小对照对
每份文件声明它携带的陷阱类。分类学从对 627 份真实文档的研究中蒸馏出 62 类 (unit.glued_to_value 出现在 22% 的真实文档上,unit.in_header_or_reference_only 在 9%)。
对每一类可造的陷阱,生成器把同一个人同一次就诊渲染两遍——干净版与带陷阱版——于是”这种现象
代价多大”成为一个配对的因果估计,而不是观察性相关。
服从生理学的数值
没有任何值是在拟合了患者数据的分布上采样出来的。参考区间注明 WS/T 404(生化)与 WS/T 405(血细胞分析)系列出处;个体内/个体间变异按公开的 EFLM/Westgard 表;派生量 (BMI、LDL、MCH/MCHC、eGFR)按定义恒等式计算。项目在自己的体检单上做的一次跨生成器审计很说明 问题:Synthea 与 PySynthea 的完整血常规多数违反红细胞恒等式 MCH = MCHC × MCV,且不带参考区间。 ESL-Doc 两者都有,这是构造出来的,不是碰巧。构造层面的隐私
一次构建中没有任何内容来自真实的人。文档形态统计以格式记号与聚合计数的形式来自一份私有脱敏 参考集,每条带来源标签,由 allow-list.gitignore、pre-commit 隐私钩子和 n-gram 回放门
把守。威胁模型写在仓库的 docs/PRIVACY.md 里,包括”如果你认为某个文件不是合成的该怎么办”。
用法
--lang-mix、同 --paraphrase)的两次构建字节一致,out/ 可丢弃,
生成器加种子就是交付物。
现状。 Mirobody 通过一个指向构建目录的环境变量接入;截至引擎 1.5.3 版这一接入尚未落地
(feat/1.5.4 尚不读取 mirobody-gen 的构建),目前的消费方是评分 CLI 和以解码器测试套件形状
锚定的厂商推送。将这份语料与 ESL-Bench 组合的工作论文——
基准暂定名 ESL-Doc——在仓库的 docs/zh-CN/paper.md。