你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

文档智能自定义神经网络模型

重要

  • 使用文档智能选公共预览版,可以提前使用目前正处于开发状态的功能。 在正式发布 (GA) 之前,根据用户反馈,功能、方法和流程可能会发生更改。
  • 文档智能客户端库的公共预览版默认使用 REST API 版本 2024-07-31-preview
  • 公共预览版 2024-07-31-preview 目前仅在以下 Azure 区域中可用。 请注意,AI Studio 中的自定义生成式(文档字段提取)模型仅适用于美国中北部区域:
    • 美国东部
    • 美国西部 2
    • “西欧”
    • 美国中北部

此内容适用于:选中标记v4.0(预览版) | 先前版本:蓝色复选标记v3.1 (GA)蓝色复选标记v3.0 (GA)

此内容适用于:选中标记v3.1 (GA) | 最新版本:紫色复原标记v4.0(预览版) | 先前版本:蓝色复选标记v3.0

此内容适用于:选中标记 v3.0 (GA) | 最新版本:紫色复原标记 v4.0(预览版)紫色复原标记 v3.1

自定义神经文档模型(或神经模型)是一种深度学习模型,它结合了布局和语言功能,可以准确地从文档中提取标记的字段。 基础自定义神经网络模型是使用各种文档类型训练的,这让它适合接受从结构化、半结构化和非结构化文档中提取字段的训练。 V3.0 及更高版本的模型中提供了自定义神经模型。下表列出了每个类别的常见文档类型:

文档 示例
结构化 调查表、问卷
半结构化 发票、采购订单

自定义神经模型与自定义模板模型具有相同的标记格式和策略。 目前,自定义神经模型仅支持自定义模板模型所支持的一部分字段类型。

模型功能

重要

从 API 版本 2024-02-29-preview 开始,自定义神经模型添加了对重叠字段和表单元格置信度的支持。

自定义神经网络模型目前仅支持键值对、选择标记和结构化字段(表)。

表单域 选定标记 表格字段 签名 区域标记 重叠字段
支持 受支持 支持 不支持 支持 1 支持 2

1 自定义神经网络模型中的区域标签使用指定区域的布局 API 中的结果。 此功能不同于模板模型,在模板模型中,如果不存在任何值,则会在训练时生成文本。
2 从 REST API 版本 2024-02-29-preview 开始,支持重叠字段。 重叠字段存在一些限制。 有关详细信息,请参阅重叠字段

生成模式

Build 操作支持模板和神经网络自定义模型。 以前版本的 REST API 和客户端库仅支持现在称为“模板”模式的单一生成模式。

神经模型支持具有相同信息但页面结构不同的文档。 这些文档的示例包括美国 W2 表单,这些表单共享相同的信息,但在各个公司在外观上可能有所不同。 有关详细信息,请参阅自定义模型生成模式

重叠字段

随着 API 版本 2024-02-29-preview 及更高版本的发布,自定义神经网络模型将支持重叠字段:

重叠字段

随着 API 版本 2024-07-31-preview 及更高版本的发布,自定义神经网络模型将支持重叠字段:

若要使用重叠字段,数据集需要包含至少一个具有预期重叠的样本。 若要标记重叠,请使用区域标记来指定每个字段的每个内容范围(具有重叠)。 在 Studio 中使用字段选择标记重叠(突出显示某个值)将会失败,因为区域标记是唯一支持的指示字段重叠的标记工具。 重叠支持包括:

  • 完全重叠。 为两个不同的字段标上同一组标记。
  • 部分重叠。 有些标记属于两个字段,但也有标记只属于其中一个字段。

重叠字段存在一些限制:

  • 任何标记或字词都只能标为两个字段。
  • 表中的重叠字段不能跨越表行。
  • 只有当数据集中至少有一个样本包含这些字段的重叠标签时,才能识别重叠字段。

若要使用重叠字段,请将数据集标上重叠,并使用 API 2024-02-29-preview 或更高版本训练模型。

表格字段

随着 API 版本 2022-06-30-preview 及更高版本的发布,自定义神经网络模型支持使用表格字段(表)来分析表、行和单元格数据,并且增加了置信度:

  • 使用 API 版本 2022-06-30-preview 或更高版本训练的模型将会接受表格字段标签。
  • 使用 API 版本 2022-06-30-preview 或更高版本通过自定义神经模型进行分析的文档会生成跨表聚合的表格字段。
  • 可以在 analyzeResult 对象的 documents 数组(在分析操作后返回)中找到结果。

表格字段默认支持跨页表:

  • 要标记跨多个页的表,请在单个表中跨不同页标记表的每一行。
  • 最佳做法是确保数据集包含预期变体的几个示例。 例如,包括整个表位于单个页面上以及表跨两页或更多页的示例。

在提取文档中未被识别为表格的重复信息时,表格字段也很有用。 例如,可以将简历中重复的工作经历部分标记并提取为表格字段。

2024-02-29-preview API 开始,表格字段启动表、行和单元格置信度:

  • 对于以下元素,固定表或动态表新增了置信度支持:

    • 表置信度,衡量在多大程度上准确识别了整个表。
    • 行置信度,衡量对单行的识别情况。
    • 单元格置信度,衡量对单个单元格的识别情况。
  • 推荐的方法是以自上而下的方式查看准确度,首先从表开始,然后是行,再是单元格。 若要详细了解表、行和单元格置信度,请参阅置信度和准确度分数

支持的语言和区域设置

有关受支持语言的完整列表,请参阅我们的语言支持 - 自定义模型

支持的区域

自 2022 年 10 月 18 日起,文档智能自定义神经网络模型训练将仅在以下 Azure 区域提供,直至另行通知:

  • 澳大利亚东部
  • 巴西南部
  • 加拿大中部
  • 印度中部
  • 美国中部
  • 东亚
  • 美国东部
  • 美国东部 2
  • 法国中部
  • 日本东部
  • 美国中南部
  • 东南亚
  • 英国南部
  • 西欧
  • 美国西部 2
  • US Gov 亚利桑那州
  • US Gov 弗吉尼亚州

提示

可以将在列出的选定区域之一中训练的模型复制到任何其他区域,然后进行相应的使用。

使用 REST API文档智能工作室将模型复制到另一个区域。

提示

可以将在列出的选定区域之一中训练的模型复制到任何其他区域,然后进行相应的使用。

使用 REST API文档智能工作室将模型复制到另一个区域。

提示

可以将在列出的选定区域之一中训练的模型复制到任何其他区域,然后进行相应的使用。

使用 REST API文档智能工作室将模型复制到另一个区域。

输入要求

  • 为获得最佳结果,请针对每个文档提供一张清晰的照片或高质量的扫描件。

  • 支持的文件格式:

    型号 PDF 图像:
    jpeg/jpgpngbmptiffheif
    Microsoft 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 文档智能工作室

用于训练模型的 Build 操作支持新的 buildMode 属性,要训练自定义神经网络模型,请将 buildMode 设置为 neural

https://{endpoint}/documentintelligence/documentModels:build?api-version=2024-07-31-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"
  }
}

计费

从版本 2024-07-31-preview 开始,可以训练自定义神经网络模型模型,持续时间超过标准的 30 分钟。 以前的版本限制为每个训练实例 30 分钟,并且每月总共有 20 个免费训练实例。 现在,通过使用 2024-07-31-preview,可以获得 10 小时的免费模型训练时间,即可连续训练模型长达 10 小时。

可以选择将全部 10 小时免费时长用于具有大型数据集的单个模型生成,或通过指定 maxTrainingHours 来调整 build 操作的最大持续时间值,以在多个生成中使用免费时长:

POST https://{endpoint}/documentintelligence/documentModels:build?api-version=2024-07-31-preview

{
  "modelId": "string",
  "description": "string",
  "buildMode": "neural",
  ...,
  "maxTrainingHours": 10
}

重要

  • 如果要在超过 10 小时的时间段内训练额外的神经模型或训练模型,则会产生计费费用。 有关计费费用的详细信息,请参阅定价页
  • 可以通过将 maxTrainingHours 设置为所需的小时数上限,选择使用此付费训练服务。 没有预算但 maxTrainingHours 设置为超过 10 小时的 API 调用将失败。
  • 由于每个生成需要不同的时间量,具体取决于训练数据集的类型和大小,因此根据训练神经模型花费的实际时间计算计费,其中每个训练作业至少需要 30 分钟。
  • 通过此付费的训练结构,可以灵活使用训练小时数来在更长的持续时间内训练更大型的数据集。

GET /documentModels/{myCustomModel}
{
  "modelId": "myCustomModel",
  "trainingHours": 0.23,
  "docTypes": { ... },
  ...
}

注意

对于文档智能版本 v3.1 (2023-07-31)v3.0 (2022-08-31),不会启用自定义神经网络模型的付费训练。 对于两个较旧版本,每个模型最多有 30 分钟的持续训练时间。 如果需要训练超过 20 个模型实例,可以创建 Azure 支持工单来调高训练限制。

计费

对于文档智能版本 v3.1 (2023-07-31) and v3.0 (2022-08-31),每个模型最多可获得 30 分钟的持续训练时间,每月最多 20 次免费训练。 如果需要训练超过 20 个模型实例,可以创建 Azure 支持工单来调高训练限制。 对于 Azure 支持工单,请在 summary 字段中输入 Increase Document Intelligence custom neural training (TPS) limit

重要

  • 增加训练限制时,请注意,2 次自定义神经网络模型训练会话将被视为 1 小时训练。 有关增加训练会话数量的定价的更多详细信息,请参阅定价页
  • 用于提高训练限制的 Azure 支持工单只适用于资源级别,而不适用于订阅级别。 可以通过在支持工单中指定资源 ID 和区域来请求增加单个文档智能资源的训练限制。

如果想要训练模型超过 30 分钟的持续时间,我们支持使用最新版本 v4.0 (2024-07-31-preview) 进行付费训练。 使用最新版本,可以延长模型训练时间,以处理更大的文档。 有关付费训练的详细信息,请参阅计费 v4.0

计费

对于文档智能版本 v3.1 (2023-07-31) and v3.0 (2022-08-31),每个模型最多可获得 30 分钟的持续训练时间,每月最多 20 次免费训练。 如果需要训练超过 20 个模型实例,可以创建 Azure 支持工单来调高训练限制。 对于 Azure 支持工单,请在 summary 字段中输入 Increase Document Intelligence custom neural training (TPS) limit

重要

  • 增加训练限制时,请注意,2 次自定义神经网络模型训练会话将被视为 1 小时训练。 有关增加训练会话数量的定价的更多详细信息,请参阅定价页
  • 用于提高训练限制的 Azure 支持工单只适用于资源级别,而不适用于订阅级别。 可以通过在支持工单中指定资源 ID 和区域来请求增加单个文档智能资源的训练限制。

如果想要训练模型超过 30 分钟的持续时间,我们支持使用最新版本 v4.0 (2024-07-31) 进行付费训练。 使用最新版本,可以延长模型训练时间,以处理更大的文档。 有关付费训练的详细信息,请参阅计费 v4.0

后续步骤

了解如何创建和组合自定义模型: