你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
文档智能自定义神经网络模型
重要
- 使用文档智能选公共预览版,可以提前使用目前正处于开发状态的功能。
- 在正式发布 (GA) 之前,根据用户反馈,功能、方法和流程可能会发生更改。
- 文档智能客户端库的公共预览版默认使用 REST API 版本 2024-02-29-preview。
- 公共预览版 2024-02-29-preview 目前仅在以下 Azure 区域中可用:
- 美国东部
- 美国西部 2
- “西欧”
自定义神经文档模型(或神经模型)是一种深度学习模型,它结合了布局和语言功能,可以准确地从文档中提取标记的字段。 基础自定义神经模型使用各种文档类型进行了训练,使得它适合于从结构化、半结构化和非结构化文档中提取字段。 V3.0 及更高版本的模型中提供了自定义神经模型。下表列出了每个类别的常见文档类型:
文档 | 示例 |
---|---|
结构化 | 调查表、问卷 |
半结构化 | 发票、采购订单 |
非结构化 | 合同、信件 |
自定义神经模型与自定义模板模型具有相同的标记格式和策略。 目前,自定义神经模型仅支持自定义模板模型所支持的一部分字段类型。
模型功能
重要
从 API 版本 2024-02-29-preview
开始,自定义神经模型添加了对重叠字段和表单元格置信度的支持。
自定义神经网络模型目前仅支持键值对、选择标记和结构化字段(表),将来的版本会包含对签名的支持。
表单域 | 选定标记 | 表格字段 | 签名 | 区域 | 重叠字段 |
---|---|---|---|---|---|
支持 | 受支持 | 支持 | 不支持 | 支持 1 | 支持 2 |
1 自定义神经网络模型中的区域标签使用指定区域的布局 API 中的结果。 此功能不同于模板模型,在模板模型中,如果没有值,则会在训练时生成文本。
2 从 REST API 版本 2024-02-29-preview
开始支持重叠字段。 重叠字段存在一些限制。 有关详细信息,请参阅重叠字段。
生成模式
构建定制模型操作支持模板和神经网络定制模型。 以前版本的 REST API 和客户端库仅支持现在称为“模板”模式的单一生成模式。
神经模型支持具有相同信息但页面结构不同的文档。 这些文档的示例包括美国 W2 表单,这些表单共享相同的信息,但在各个公司在外观上可能有所不同。 有关详细信息,请参阅自定义模型生成模式。
支持的语言和区域设置
有关受支持语言的完整列表,请参阅我们的语言支持 - 自定义模型页。
重叠字段
随着 API 版本 2024-02-29-preview 及更高版本的发布,自定义神经模型将支持重叠字段:
若要使用重叠字段,数据集需要包含至少一个具有预期重叠的样本。 若要标记重叠,请使用区域标记来指定每个字段的每个内容范围(具有重叠)。 标记与字段选择的重叠(突出显示某个值)将在工作室中失败,因为区域标记是唯一受支持的指示字段重叠的标记工具。 重叠支持包括:
- 完全重叠。 为两个不同的字段标上同一组标记。
- 部分重叠。 有些标记属于两个字段,但也有标记只属于其中一个字段。
重叠字段存在一些限制:
- 任何标记或字词都只能标为两个字段。
- 表中的重叠字段不能跨越表行。
- 只有当数据集中至少有一个样本包含这些字段的重叠标签时,才能识别重叠字段。
若要使用重叠字段,请将数据集标上重叠,并使用 API 2024-02-29-preview
或更高版本训练模型。
表格字段会添加表、行和单元格置信度
随着 API 版本 2022-06-30-preview 及更高版本的发布,自定义神经模型将支持表格字段(表):
- 使用 API 版本 2022-08-31 或更高版本训练的模型会接受表格字段标签。
- 使用 API 版本 2022-06-30-preview 或更高版本通过自定义神经模型进行分析的文档会生成跨表聚合的表格字段。
- 可以在
analyzeResult
对象的documents
数组(在分析操作后返回)中找到结果。
表格字段默认支持跨页表:
- 要标记跨多个页的表,请在单个表中跨不同页标记表的每一行。
- 最佳做法是确保数据集包含预期变体的几个示例。 例如,包括整个表位于单个页面上以及表跨两页或更多页的示例。
在提取文档中未被识别为表格的重复信息时,表格字段也很有用。 例如,可以将简历中重复的工作经历部分标记并提取为表格字段。
从 2024-02-29-preview
API 开始,表格字段启动表、行和单元格置信度:
对于以下元素,固定表或动态表新增了置信度支持:
- 表置信度,衡量在多大程度上准确识别了整个表。
- 行置信度,衡量对单行的识别情况。
- 单元格置信度,衡量对单个单元格的识别情况。
推荐的方法是以自上而下的方式查看准确度,首先从表开始,然后是行,再是单元格。
若要详细了解表、行和单元格置信度,请参阅置信度和准确度分数。
支持的区域
自 2022 年 10 月 18 日起,文档智能自定义神经网络模型训练将仅在以下 Azure 区域提供,直至另行通知:
- 澳大利亚东部
- 巴西南部
- 加拿大中部
- 印度中部
- 美国中部
- 东亚
- 美国东部
- 美国东部 2
- 法国中部
- 日本东部
- 美国中南部
- 东南亚
- 英国南部
- 西欧
- 美国西部 2
- US Gov 亚利桑那州
- US Gov 弗吉尼亚州
输入要求
为获得最佳结果,请针对每个文档提供一张清晰的照片或高质量的扫描件。
支持的文件格式:
型号 PDF 图像:
jpeg/jpg、png、bmp、tiff、heifMicrosoft Office:
Word (docx)、Excel (xlsx)、PowerPoint (pptx) 和 HTML阅读 ✔ ✔ ✔ 布局 ✔ ✔ ✔(2024-02-29-preview、2023-10-31-preview 或更高版本) 常规文档 ✔ ✔ 预生成 ✔ ✔ 自定义神经 ✔ ✔ ✱ 其他模型或版本当前不支持 Microsoft Office 文件。
对于 PDF 和 TIFF,最多可处理 2,000 页(对于免费层订阅,仅处理前两页)。
用于分析文档的文件大小对于付费 (S0) 层为 500 MB,对于免费 (F0) 层为 4 MB。
图像尺寸必须介于 50 x 50 像素与 10,000 x 10,000 像素之间。
如果 PDF 是密码锁定的文件,则必须先删除锁,然后才能提交它们。
对于 1024 x 768 像素的图像,要提取的文本的最小高度为 12 像素。 此尺寸对应于 150 点/英寸的大约
8
号字文本。对于自定义模型训练,自定义模板模型的训练数据最大页数为 500,自定义神经模型的训练数据最大页数为 50,000。
对于自定义提取模型训练,模板模型的训练数据总大小为 50 MB,神经模型的训练数据总大小为为 1G-MB。
对于自定义分类模型训练,训练数据的总大小为
1GB
,最大为 10,000 页。
最佳实践
自定义神经模型与自定义模板模型在几个方面有所不同。 自定义模板或模型依赖于使用一致的视觉模板来提取标记的数据。 自定义神经模型支持在结构化、半结构化和非结构化文档中提取字段。 在两种模型类型之间选择时,开始可以先使用神经模型和测试来确定它是否支持你的功能需求。
处理变体
自定义神经模型可以泛化单个文档类型的不同格式。 作为最佳做法,请为某种文档类型的所有变体创建单个模型。 为训练数据集的每个不同变体至少添加五个标记样本。
字段命名
在标记数据时,标记与值相关的字段提高了所提取的键值对的准确度。 例如,对于包含供应商 ID 的字段值,请考虑将字段命名为“supplier_id”。 字段名称应采用文档的语言。
标记连续值
一个字段的值标记/字词必须:
- 是遵循自然读取顺序的连续序列,且不与其他字段交错
- 位于不涵盖任何其他字段的区域中
代表性数据
训练案例中的值应该多样化且有代表性。 例如,如果某个字段被命名为“date”,则此字段的值应是一个日期。 随机字符串之类的合成值可能影响模型性能。
当前限制
- 自定义神经模型无法识别跨页面边界拆分的值。
- 如果使用针对自定义模板模型标记的数据集来训练自定义神经模型,会忽略自定义神经不支持的字段类型。
- 自定义神经模型每月限制为 20 次生成操作。 如果需要提高限制,请提交支持请求。 有关详细信息,请参阅文档智能服务配额和限制。
训练模型
V3.0 及更高版本的模型中提供了自定义神经网络模型。
文档类型 | REST API | SDK | 标记和测试模型 |
---|---|---|---|
自定义文档 | 文档智能 3.1 | 文档智能 SDK | 文档智能工作室 |
用于训练模型的生成操作支持新的 buildMode
属性,若要训练自定义神经模型,请将 buildMode
设置为 neural
。
https://{endpoint}/documentintelligence/documentModels:build?api-version=2024-02-29-preview
{
"modelId": "string",
"description": "string",
"buildMode": "neural",
"azureBlobSource":
{
"containerUrl": "string",
"prefix": "string"
}
}
https://{endpoint}/formrecognizer/documentModels:build?api-version=v3.1:2023-07-31
{
"modelId": "string",
"description": "string",
"buildMode": "neural",
"azureBlobSource":
{
"containerUrl": "string",
"prefix": "string"
}
}
https://{endpoint}/formrecognizer/documentModels/{modelId}:copyTo?api-version=2022-08-31
{
"modelId": "string",
"description": "string",
"buildMode": "neural",
"azureBlobSource":
{
"containerUrl": "string",
"prefix": "string"
}
}
后续步骤
了解如何创建和组合自定义模型:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈