Azure AI 文档智能常见问题解答

此内容适用于:选中标记v3.1 (GA)选中标记v3.0 (GA)选中标记v2.1 (GA)

一般概念

什么是 Azure AI 文档智能?Azure AI 表单识别器发生了什么情况?

Azure AI 文档智能是一项基于云的服务,它使用机器学习模型从文档中提取键值对、文本和表。 返回的结果是结构化的 JSON 输出。 文档智能的用例包括自动数据处理、增强的数据驱动策略和丰富的文档搜索功能。

文档智能是一项 Azure AI 服务。 Azure AI 服务包含之前称为 Azure 认知服务和 Azure 应用 AI 服务的所有内容。

文档智能以前称为 Azure AI 表单识别器。 表单识别器于 2023 年 7 月正式更名为文档智能。

定价不变。 在 Azure 的计费、成本分析、价目表和价格 API 中继续延用“认知服务”和“应用 AI 服务”的名称。

API 或客户端库 (SDK) 没有重大更改。 REST API 和 SDK 版本 2024-02-29-preview、2023-10-31-preview 及更高版本更名为 document intelligence

某些平台仍在等待命名更新。 在 Microsoft 文档中提及的表单识别器和文档智能都指的是同一项 Azure 服务。

文档智能与文档生成式 AI 有何关联?

可以使用文档生成式 AI 解决方案与文档聊天、从这些文档生成引人入胜的内容,并访问数据上的 Azure OpenAI 服务模型。 通过将 Azure AI 文档智能与 Azure OpenAI 配合使用,可以构建企业应用程序,以便使用自然语言与文档进行无缝交互,轻松找到答案并获得有价值的见解,并基于现有文档生成具有吸引力的新内容。 在技术社区博客中查找更多详细信息。

需要特别注意哪些文档智能用例?

认真考虑包含财务数据、受保护健康信息数据、个人身份数据或高度敏感数据的文档处理项目。

确保遵守所有国家/地区和行业特定的要求

文档智能支持哪些语言?

文档智能中基于深度学习的通用模型支持许多语言,可以从图像和文档中提取多语言文本,包括用几种语言的文本行。

语言支持因文档智能服务的功能而异。 有关文档智能支持的手写和打印文本的完整列表,请参阅语言支持

文档智能在我的 Azure 区域中是否可用?

60 多个 Azure 全球基础结构区域,文档智能已在其中很多区域中正式发布。

选择最适合你和你的客户的区域

文档智能是否与其他 Microsoft 服务相集成?

是,文档智能与以下服务相集成:

文档智能与光学字符识别有何关联?

文档智能是一项基于云的服务,融合了 Azure AI 服务的光学字符识别 (OCR)、文本分析和自定义文本分类。

文档智能使用 OCR 从 AI 支持的字体和手写文本文档中检测和提取信息,为文本提取提供更多结构和信息。

我的自定义模型可以使用多长时间?

模型与用于训练它的 API 版本具有相同的生命周期。 使用 API 的正式发布 (GA) 版本训练的自定义模型与该 API 版本具有相同的生命周期。 当 API 版本被弃用后,模型将不再可用于推理。 使用预览版 API 训练的模型也与该预览版 API 具有相同的生命周期。

预览版 API 预计在发布更新的预览版 API 或 GA API 后的三个月内被弃用。

什么是准确度评分,它是如何计算的?

build (v3.0 及更高版本) 或 train (v2.1) 自定义模型操作的输出包括估算的准确度评分。 此评分代表模型准确预测视觉上相似的文档中已标记值的能力。

测得的准确度是 0%(低)到 100%(高)范围内的百分比值。

有关详细信息,请参阅准确度与置信度评分

如何提高准确度评分?

文档视觉结构的差异会影响模型的准确性。 以下是一些提示:

  • 在训练数据集中包含文档的所有变体。 差异包括不同的格式,例如,数字格式与扫描的 PDF 格式。

  • 将视觉上不同的文档类型分隔开,并训练不同的模型。

  • 确保没有多余的标签。

  • 对于签名和区域标记,请不要包含周围的文本。

有关详细信息,请参阅准确度与置信度评分

什么是置信度评分,它是如何计算的?

置信度分数通过衡量正确检测到提取结果的统计确定度来指示概率。

置信度值是 0%(低)到 100%(高)范围内的百分比。 最好将目标定为 80% 或更高的评分。 对于更敏感的案例,例如财务或医疗记录,建议设定接近 100% 的评分。 你可能还需要进行人工审查。

有关详细信息,请参阅准确度与置信度评分

如何提高置信度评分?

在完成分析操作后,查看 JSON 输出。 检查 pageResults 节点下每个键/值结果的 confidence 值。 还应查看 readResults 节点中对应于文本读取操作的置信度评分。 读取结果的置信度不影响键/值提取结果的置信度,因此应检查此两者。 以下是一些提示:

  • 如果 readResults 对象的置信度评分较低,请改善输入文档的质量。

  • 如果 pageResults 对象的置信度评分较低,请确保正在分析的文档属于同一类型。

  • 考虑将人工评审整合到工作流中。

  • 使用每个字段具有不同值的表单。

  • 对于自定义模型,请使用一组较大的训练文档。 标记更多文档可以传授模型以更高准确度识别字段。

有关详细信息,请参阅准确度与置信度评分

什么是边界框?

边界框(v3.0 及更高版本中的 polygon)是围绕文档或表单中的文本元素的抽象矩形。 它用作对象检测的参照点。

边界框使用包含四个数值对的数组中的 x 和 y 坐标平面指定位置。 每对按以下顺序代表框的一个角:左上、右上、右下、左下。

对于图像,坐标以像素为单位。 对于 PDF,坐标以英寸为单位。

文档智能可以帮助我对文档进行分类吗?

文档智能提供自定义分类模型,可以分析单文件或多文件文档,以确定输入文件是否包含任何经过训练的文档类型。 该服务支持以下情况:

  • 包含一种文档类型的单文件,例如贷款申请表。

  • 包含多个文档的单个文件。 例如,贷款申请包中包含了贷款申请表单、工资单和银行对帐单。

  • 包含同一文档的多个实例的单个文件。 例如,一组经过扫描的发票。

有关详细信息,请参阅自定义分类模型的概述

应用开发

文档智能提供哪些开发选项?

文档智能在以下平台中提供最新的开发选项:

在哪里可以找到最新编程语言 SDK 支持的 API 版本?

下表提供了最新 SDK 版本的链接,并显示了支持的文档智能 SDK 和 API 版本之间的关系:

支持的语言 Azure SDK 参考 支持的 API 版本
• C#/.NET: 4.0.0

• Java: 4.0.0

• JavaScript: 4.0.0

• Python 3.2.0
2023-10-31-preview
v3.0
v2.1
v2.0

有关详细信息,请参阅 v4.0 支持的客户端,以及 v3.1 支持的客户端

文档智能 v3.0 和 v2.1 之间有何区别?如何迁移到最新版本?

为了提高可用性,文档智能 v3.0 引入了完全重新设计的客户端库。 为了成功使用最新的文档智能 API 功能,需要安装最新的 SDK,并且必须将应用程序代码更新为使用新客户端。

下表提供了有关迁移到文档智能最新版本的详细说明的链接:

语言/API 迁移指南
REST API v3
C#/.NET 4.0.0
Java 4.0.0
Javascript 4.0.0
Python 3.2.0

文档智能支持哪些文件格式? 输入文档是否有大小限制?

为获得最佳结果,请参阅输入要求

如何指定要在文档中分析的页面范围?

使用 v2.1、v3.0 和更高版本的 REST API 支持的 pages 参数,为多页 PDF 和 TIFF 文档指定页面。 接受的输入包括以下范围:

  • 单个页面。 例如,如果指定 1, 2,将处理第 1 页和第 2 页。
  • 有限范围。 例如,如果指定 2-5,将处理第 2 页至第 5 页。
  • 开放式范围。 例如,如果指定 5-,将处理从第 5 页起的所有页面。 如果指定 -10,将处理第 1 页至第 10 页。

可以将这些参数混合在一起,范围可以重叠。 例如,如果指定 -5, 1, 3, 5-10,将处理第 1 页至第 10 页。

如果服务可以处理至少一页文档,则该服务将接受此请求。 例如,在五页文档中使用 5-100 是处理第 5 页的有效输入。

如果未提供页面范围,则会处理整个文档。

可以使用文档智能工作室和 FOTT 示例标记工具。 应使用哪种方法?

对于大多数情况,建议使用文档智能工作室,因为它可让你更快地配置文档智能资源和存储服务。

对于以下情况,请考虑使用 FOTT(表单 OCR 测试工具):

服务限制和定价

Azure 如何计算文档智能的使用价格?

文档智能计费是根据模型类型和分析的页数按月计算的。 下面是一些详细信息:

  • 提交文档进行分析时,除非在请求中使用 pages 参数指定页面范围,否则该服务会分析所有页面。 当该服务通过读取、OCR 或布局模型分析 Microsoft Excel 和 PowerPoint 文档时,它会将每个 Excel 工作表和 PowerPoint 幻灯片计为一页。

  • 当该服务分析 PDF 和 TIFF 文件时,它会将 PDF 文件中的每一页或 TIFF 文件中的每个图像计为一页,没有最大字符数限制。

  • 当该服务分析读取和布局模型支持的 Microsoft Word 和 HTML 文件时,它会以每个 3,000 个字符的块对页面进行计数。 例如,如果文档包含 7,000 个字符,则有两页各包含 3,000 个字符,一页包含 1,000 个字符,总计为三页。

  • 使用读取或布局模型分析 Microsoft Word、Excel、PowerPoint 和 HTML 文件时,不支持嵌入图像或链接图像。 因此,该服务不会将它们算作添加的图像。

  • 使用文档智能训练自定义模型始终是免费的。 仅当服务使用模型分析文档时,才会向你收费。

  • 容器定价与云服务定价相同。

  • 文档智能提供免费层 (F0),你可以在其中测试所有文档智能功能。

  • 对于大型工作负载,文档智能提供基于承诺的定价模型。

详细了解 Azure AI 文档智能定价选项

如何查看文档智能使用情况并估算价格?

可以在 Azure 门户的指标仪表板上找到使用情况指标。 仪表板显示 Azure AI 文档智能处理的页面数。 可以使用 Azure 定价计算器检查资源花费的估计成本。

缓解限制的最佳做法是什么?

文档智能使用自动缩放来按需提供所需的计算资源,同时降低客户成本。 为了缓解在自动缩放期间受到的限制,我们建议采用以下方法:

  • 在应用程序中实现重试逻辑

  • 如果你发现 POST 请求数受到限制,请考虑在请求之间添加延迟。

  • 逐步增大工作负载。 避免急剧性的变化。

  • 创建支持请求,以增加每秒事务数 (TPS) 限制。

详细了解文档智能服务配额和限制

分析文档需要多长时间?

分析文档的时间取决于文档的大小(例如,页数)和每一页上的关联内容。

文档智能是一项多租户的服务,其中类似文档的延迟差不多,但并不总是相同。 延迟是 API 服务器处理传入请求并将传出响应传递给客户端所需的时间。 在大规模处理图像和大型文档的任何基于微服务的无状态异步服务中,延迟和性能的偶尔变化都是固有的。

虽然我们在不断扩展硬件和容量以及扩展功能,但你可能仍会在运行时遇到延迟问题。

自定义模式

如何汇编最佳训练数据?

在使用文档智能自定义模型时,需要提供你自己的训练数据。 下面是可帮助你有效训练模型的几点提示:

  • 尽可能使用基于文本而不是基于图像的 PDF。 识别基于图像的 PDF 的方法之一是尝试选择文档中的特定文本。 如果只能选择文本的整个图像,则文档应该基于图像,而不是基于文本。

  • 使用每种格式(JPEG/JPG、PNG、BMP、PDF 或 TIFF)的子文件夹来组织训练文档。

  • 使用已填写所有可用字段的表单。

  • 使用在每个字段中包含不同值的表单。

  • 如果图像质量较低,请使用更大的数据集(五个以上的训练文档)。

详细了解如何生成训练数据集

训练高准确度自定义模型的最佳做法是什么?

模型的准确度取决于训练材料的质量。 以下是一些提示:

  • 确定是需要使用单个模型,还是组合成单个模型的多个模型。

  • 使用单个模型分析不同的格式时,模型准确度可能会降低。 请考虑将数据集拆分为文件夹,其中每个文件夹都是一个唯一的模板。 为每个文件夹训练一个模型,并将生成的模型组合到单个终结点中。

  • 自定义表单依赖于一致的视觉模板。 如果表单的格式和分页有差异,请考虑将数据集分段,以训练多个模型。

  • 考虑到格式、文档类型和结构,确保数据集平衡。

详细了解组合模型

是否可以重新训练自定义模型?

文档智能没有显式的重新训练操作。 每个训练操作会生成一个新模型。

如果你发现自己的模型需要重新训练,请将更多样本添加到训练数据集,并训练一个新模型。

可将多少个自定义模型组合成单个自定义模型?

通过模型组合操作,最多可将 200 个模型分配到单个模型 ID。 当你使用组合模型 ID 发出 Analyze Document 请求时,文档智能会将提交的表单分类,然后选择最佳模型,再返回结果。 模型组合目前仅适用于使用标签训练的自定义模型。

使用组合模型分析文档与使用单个模型分析文档相同。 Analyze Document 结果返回一个 docType 属性,该属性指示选择用于分析文档的组件模型。 使用单个自定义模型或组合自定义模型分析文档的定价没有变化。

详细了解组合模型

如果我要组合的模型数超过组合的模型数上限,可以使用哪种替代方案?

可以使用以下替代方案之一:

  • 在调用自定义模型之前将文档分类。 可以使用读取模型,并使用代码、正则表达式或搜索等源基于从文档中提取的文本和特定短语生成分类。

如何优化模型,使其能力超越初始训练的水平?

每个训练操作会生成一个新模型。

  1. 为新模板创建一个数据集。

  2. 标记并训练新模型。

  3. 验证新模型在处理特定文档类型时是否表现良好。

  4. 将新模型连同现有模型一起组合到单个终结点中。 然后,文档智能可为要分析的每个文档确定最佳模型。

详细了解组合模型

我正在生成一个自定义模型, 签名检测标签会返回什么内容?

签名检测检测是否存在某个签名,而不是文档签名者的标识。

如果模型在执行签名检测时返回“未签名”,则表示模型未在定义的字段中找到签名。

从文档中提取表时应考虑哪些因素,最佳做法是什么?

可以从文档智能布局模型开始,从文档和图像中提取文本、表、选择标记和结构信息。 还可以考虑以下因素:

  • 要提取的数据是否以表的形式呈现,该表的结构是否有意义?

  • 如果数据不采用表格式,数据是否适合放入二维网格?

  • 表是否跨越多个页面? 如果是,请在将 PDF 发送到文档智能之前将其拆分为多个页面,这样就不必标记所有页面。 分析后,将页面后处理为单个表。

  • 如果要创建自定义模型,请参阅标记为表。 对于每个列,动态表包含可变数量的行。 对于每个列,固定表包含恒定数量的行。

如何将已训练的模型从一个环境(例如 Beta)移到另一个环境(例如生产)?

可以使用复制 API 将自定义模型从一个文档智能帐户复制到任何受支持的地理区域中的其他帐户。 有关详细说明,请参阅灾难恢复

为什么我在运行自定义训练时需要为布局付费?

需要布局才能为数据集生成标签。 如果用于自定义训练的数据集没有可用的标签文件,该服务会为你生成它们。

存储帐户

几天前我还可以访问我的存储帐户。 为什么现在我无法重新连接?

创建共享访问签名时,默认持续时间为 48 小时。 48 小时后,需要创建新令牌。

对于要将存储帐户用于文档智能的时间,请考虑设置较长的持续时间。

如果我的存储帐户在虚拟网络或防火墙后面,那么如何向文档智能授予访问数据的权限?

如果你的 Azure 存储帐户受虚拟网络或防火墙保护,则文档智能无法直接访问你的存储帐户。 但是,专用 Azure 存储帐户访问和身份验证支持 Azure 资源托管标识。 使用托管标识时,文档智能服务可使用分配的凭据来访问你的存储帐户。

如果你打算使用 FOTT 分析专用存储帐户数据,则必须将该工具部署在虚拟网络或防火墙后面。

了解如何为文档智能资源创建和使用托管标识

文档智能工作室

我需要具备哪些权限才能访问文档智能工作室?

需要至少带有读取者角色的有效 Azure 帐户和订阅才能访问文档智能工作室。

对于文档分析和预生成模型,适用于用户方案的角色要求如下:

  • 基本

  • 高级

    • 参与者:需要此角色来创建资源组或文档智能资源。 参与者角色无法列出认知服务的密钥。 若要使用文档智能工作室,仍需要认知服务用户角色。

对于自定义模型项目,适用于用户方案的角色要求如下:

  • 基本

    • 认知服务用户:需要此角色来访问文档智能认知服务多服务资源,以训练自定义模型或使用经过训练的模型进行分析。

    • 存储 Blob 数据参与者:需要此角色来访问存储帐户,以创建项目和标记数据。

  • 高级

    • 存储帐户参与者:需要此角色来访问存储帐户,以设置跨域资源共享 (CORS) 设置。 如果重复使用同一存储帐户,这将是一次性的工作。

      参与者角色无法访问 Blob 中的数据。 若要使用文档智能工作室,仍需要存储 Blob 数据参与者角色。

    • 参与者:需要此角色来创建资源组和资源。 “参与者”角色不会向你授予使用创建的资源或存储的权限。 要使用文档智能工作室,仍然需要基本角色。

有关详细信息,请参阅 Microsoft Entra 内置角色以及文档智能工作室快速入门中有关 Azure 角色分配的部分。

我的文档包含多个页。 文档智能工作室中为什么只分析了两个页面?

对于免费层 (F0) 资源,无论使用的是文档智能工作室、REST API 还是 SDK,都只分析前两页。

在文档智能工作室中,依次选择“设置”(齿轮)按钮和“资源”选项卡,然后勾选要用于分析文档的价格层。 若要分析文档中的所有页面,请更改为付费 (S0) 资源。

如何更改文档智能工作室中的目录或订阅?

若要更改文档智能工作室中的目录,请选择“设置”(齿轮)按钮。 在“目录”下,从列表中选择目录,然后选择“切换目录”。 切换目录后,系统会提示你重新登录。

若要更改订阅或资源,请转到“设置”下的“资源”选项卡。

当我的存储帐户资源配置有防火墙或虚拟网络时,为何会在项目共享、自动标记或 OCR 升级操作时收到存储错误?

请参阅文档智能的托管标识来设置 Azure 资源。

当我的文档智能资源配置有防火墙或虚拟网络时,为何会在自动标记或 OCR 升级操作时收到“由于虚拟网络/防火墙规则而拒绝访问”错误?

需要将专用 IP 地址 20.3.165.95 添加到文档智能资源的防火墙允许列表。

可以重用或自定义文档智能工作室的标签体验,并将其构建到我自己的应用程序中吗?

是的。 文档智能工作室的标签体验在 Toolkit 存储库中是开源的。

为什么在打开自定义项目时收到“找不到表单识别器”错误?

绑定到此自定义项目的文档智能资源已被删除或移动到其他资源组。 可通过两种方法来解决此问题:

  • 使用相同的名称在同一订阅和资源组下重新创建文档智能资源。

  • 使用迁移的文档智能资源重新创建自定义项目,并指定相同的存储帐户。

容器

是否需要建立 Internet 连接才能使用文档智能容器?

是的。 文档智能容器需要建立 Internet 连接才能将账单信息发送到 Azure。 详细了解 Azure 容器安全性

连接的容器会将哪些数据发送到云?

连接文档智能的容器使用 Azure 帐户上的文档智能资源将账单信息发送到 Azure。 连接的容器不会将客户数据(例如,正在分析的图像或文本)发送给 Microsoft。

为什么收到错误“容器未处于有效状态。 订阅验证失败,状态为‘OutOfQuota’的 API 密钥超出配额”?

连接文档智能的容器使用 Azure 帐户上的文档智能资源将账单信息发送到 Azure。 如果容器无法与计费终结点通信,则可能会收到此消息。

是否可以将本地存储用于文档智能示例标记工具 (FOTT) 容器?

FOTT 有一个使用本地存储的版本。 需要在 Windows 计算机上安装此版本。 可从此位置进行安装。

如果标签文件位于子目录中,请在项目页上将“标签文件夹 URI”指定为 /shared/shared/sub-dir。 所有其他文档智能示例标记工具的行为与托管服务相同。

纵向扩展的最佳做法是什么?

对于异步调用,可以使用共享存储运行多个容器。 处理 POST 分析调用的容器会将输出存到存储中。 然后,任何其他容器都可以从存储中提取结果并为 GET 调用提供服务。 因此,请求 ID 不会绑定到容器。

对于同步调用,可以运行多个容器,但只有一个容器为请求提供服务。 由于它是阻止调用,因此池中的任何容器都可以为请求提供服务并发送响应。 在这里,一次只有一个容器绑定到某个请求,无需轮询。

如何使用共享存储设置容器?

容器在启动时使用 Mounts:Shared 属性指定共享存储以存储处理文件。 若要了解此属性的用法,请参阅容器文档

安全性和隐私

要对 Azure AI 服务请求进行身份验证,可使用哪些方法,又有哪些要求?

对 Azure 服务的每个请求必须包含身份验证标头。 可以使用多种方法对请求进行身份验证:

文档智能是否会存储我的数据?

对于所有功能,文档智能都会将数据和结果暂时存储在请求所在区域的 Azure 存储中。 数据将在提交分析请求后的 24 小时内删除。

详细了解文档智能的数据、隐私和安全性

如何在文档智能中存储和使用已训练的自定义模型?

分析和标记后的临时输出存储在存储训练数据的同一 Azure 存储位置中。 已训练的自定义模型存储在同一区域的 Azure 存储中,并在逻辑上与其 Azure 订阅和 API 凭据相隔离。

更多帮助和支持

当我为文档添加标签时,如果该服务无法识别特定文本或识别不正确,我该怎么办?

我们会不断更新和改进文档智能 OCR 模型。 可以向文档智能团队发送电子邮件。 如果可能,请共享一个示例文档并突出显示其中的问题。