巴西 Dharma-AI 发布 2B 参数的 Field Extractor:文档图片进、结构化 JSON 出,自测得分 0.834 高于 Claude Opus 5 的 0.816

专做小模型的 Dharma-AI 11 月 4 日在 Hugging Face 博客发布 Dharma Field Extractor:一个 20 亿参数的模型,输入发票、收据、表单、证件等文档图片,按「开放」或「指定 schema」两种方式返回结构化 JSON,文档里没有的字段返回 null。它以公司 4 月发布的 OCR 模型 DharmaOCR-LITE 的 2B 新版为基座,用 43,384 条样本训练 LoRA 适配器。在公司自建的 546 份文档、1,638 个用例的评测中,它得分 0.834,测试的四个通用前沿模型配置里最接近的 Claude Opus 5 为 0.816、最低的 GPT-5.6 Luna 为 0.741;按公司算法,单张 L40S 自托管的每次抽取成本比各家 API 低约 6 到 147 倍,但两边计价方式不同。

不要整页文字,只要几个字段

Dharma-AI 是一家专做小语言模型的巴西研究实验室,11 月 4 日在 Hugging Face 博客发布 Dharma Field Extractor。它解决的是 OCR 之后那一步:OCR 能把整页文字原样转出来,但不会告诉你哪串字符是发票号、哪个数字是总额,仍要有人写代码把值对到字段上。Field Extractor 直接输入文档图片,输出结构化 JSON。

它支持两种请求。「开放」模式不给 schema,模型根据版面和上下文自己判断哪些是「标签加值」或带表头的表格,把找到的内容全部返回;「指定 schema」模式由调用方给出字段名和类型(字符串、数字或布尔),输出只含这些键,文档里没有的字段返回 null,而不是编一个值。发票的明细行会作为有序列表返回,每行带数量和金额。官方称同一个检查点覆盖所有文档类型,不需要按类型单独微调。

怎么训的,分数怎么算

基座是 DharmaOCR-LITE v1.1,即公司 4 月发布的 OCR 模型的 2B 新版本,已经过监督微调和 DPO。团队在其上用 43,384 条样本训练 LoRA 适配器,数据包括从公开网络收集的英文多领域文档、内部获取的巴西葡萄牙语真实文档,以及少量其他欧洲和亚洲语言文档。

评测集有 546 份文档,分三种场景:不给 schema 的全量抽取、只含真实字段的部分 schema、故意混入不存在字段的 schema,共 1,638 个用例。得分是字段级 F1 乘以匹配值的编辑距离相似度,再乘以有效 JSON 的比例。Field Extractor 得 0.834;四个通用前沿模型配置中,最接近的 Claude Opus 5 为 0.816,差距最大的 GPT-5.6 Luna 为 0.741。前沿模型的推理强度均设为低档,Claude Opus 5 使用自适应强度。评测集中的 SROIE 与 FUNSD 两个公开数据集没有参与训练。

成本对比要看口径

博客称按每次抽取计算,Field Extractor 比各前沿 API 便宜约 6 倍(对 GPT-5.6 Luna)到 147 倍(对 GPT-5.6 Sol)。但两边算法不同:API 一侧按实测 token 用量乘以公开标价,Field Extractor 一侧按单张 L40S 每小时 2.24 美元的 GPU 时间折算,官方也写明这不是销售价格,实际成本取决于硬件、量级和延迟要求。

所有分数都来自 Dharma-AI 自建的基准,暂无第三方复现;训练数据以英文和巴西葡萄牙语为主,中文等其他语言文档的效果未经验证。博客提供了在线试用入口,未写明是否公开权重。对每天要从大量单据里抽固定字段、又希望数据留在自有机器上的团队,这类专用小模型值得拿自己的样本对比一下。

via: Hugging Face 博客:Dharma Field Extractor: Any Document In, Structured Fields in JSON Out