利用生成式 AI 实现自定义提取器

借助生成式 AI 训练和提取功能,您可以:

  • 使用零样本和少样本技术,在几乎没有训练数据的情况下,利用基础模型获得高性能模型。
  • 随着您提供越来越多的训练数据,您可以使用微调功能进一步提高准确率。

生成式 AI 训练方法

您选择的训练方法取决于您拥有的文档数量以及您愿意投入到模型训练中的精力。训练生成式 AI 模型有三种方法:

训练方法 零样本 少样本 微调
准确率 中 中等偏高 高
精力 低 低 中
建议的训练文档数量 0 5 到 10 10 到 50+

自定义提取器模型版本

以下模型可用于自定义提取器。如需更改模型版本,请参阅管理处理器版本。

1.4、1.5 和 1.5 Pro 版支持置信度分数。

模型版本 说明 发布渠道 在美国/欧盟境内进行机器学习处理 在美国/欧盟境内进行微调 发布日期
pretrained-foundation-model-v1.5-2025-05-05 由 Gemini 2.5 Flash 大语言模型提供支持的可用于生产环境用途的候选版本。建议想要尝试新模型的用户使用。 稳定 是 美国、欧盟 2025 年 5 月 5 日
pretrained-foundation-model-v1.5-pro-2025-06-20 由 Gemini 2.5 Pro 大语言模型提供支持的可用于生产环境用途的模型。在线处理请求的配额最高可达每分钟 30 页。与 v1.5 相比,此模型的质量有所提升,但延迟时间可能更长。 稳定 是 否 2025 年 6 月 20 日
pretrained-foundation-model-v1.5.1-2025-08-07 由 Gemini 2.5 Flash LLM 提供支持的公开预览版模型。此模型具有与 v1.5 相同的功能,并改进了自适应少量样本学习。 候选版本 是 否 2025 年 8 月 8 日
pretrained-foundation-model-v1.6-pro-2025-12-01 由 Gemini 3 Pro LLM 提供支持的预览版模型。 候选版本 是 否 2025 年 12 月 1 日
pretrained-foundation-model-v1.6-2026-01-13 由 Gemini 3 Flash LLM 提供支持的预览版模型。 候选版本 是 否 2026 年 1 月 13 日
pretrained-foundation-model-v3.1-lite-2026-07-15 由 Gemini 3.1 Lite LLM 提供支持的预览版模型。支持美国和欧盟的多区域端点 (mREP)。 候选版本 是 是 2026 年 9 月 21 日
pretrained-foundation-model-v3.5-2026-05-26 由 Gemini 3.5 Flash LLM 提供支持的预览版模型。 候选版本 是 否 2026 年 5 月 26 日

如需更改项目中的处理器版本,请参阅管理处理器版本。

如需针对默认处理器配额提出配额增加申请 (QIR),请按照申请配额调整中的步骤操作。

初始设置

如果尚未启用结算功能和 Document AI API,请先启用。

构建和评估生成式 AI 模型

  1. 创建处理器并按照最佳实践定义要提取的字段,这非常重要,因为它会影响提取质量。

    • 依次前往工作台 > 自定义提取器 > 创建处理器 > 指定名称。

    processor-version-genai-1

    • 依次前往开始 > 创建新字段。

    processor-version-genai-2

  2. 导入文档

    • 使用自动添加标签功能导入文档,并将文档分配给训练集和测试集。
    • 对于零样本,只需提供架构。如需评估模型的准确率,只需使用测试集。
    • 对于少样本,我们建议使用 5 个训练文档。
    • 所需的测试文档数量取决于应用场景。一般来说,测试文档越多越好。
    • 确认或修改文档中的标签。
  3. 训练模型:

    • 依次选择构建和创建新版本。
    • 输入名称,然后选择创建。

    processor-version-genai-12

  1. 评估:

    • 前往评估和测试,选择您刚刚训练的版本,然后选择查看完整评估。

    processor-version-genai-13

    • 现在,您可以看到整个文档和每个字段的 f1、精确率和召回率等指标。
    • 确定性能是否符合您的生产目标。如果不符合,请重新评估训练集和测试集。
  2. 将新版本设为默认版本:

    • 前往管理版本。
    • 选择以展开选项,然后选择设为默认。

    processor-version-genai-14

    您的模型现已部署。发送到此处理器的文档会使用您的自定义版本。 您可以评估模型的性能,以检查是否需要进一步训练。

评估参考

评估引擎可以执行完全匹配或模糊匹配。对于完全匹配,提取的值必须与标准答案完全匹配,否则会被视为漏检。

如果提取的内容存在细微差异(例如大小写差异),但属于模糊匹配,则仍会被视为匹配。您可以在评估界面中更改此设置。

processor-version-genai-15

微调

通过微调,您可以使用数百或数千个文档进行训练。

  1. 按照最佳实践创建处理器并定义要提取的字段,这一点非常重要,因为它会影响提取质量。

  2. 使用自动添加标签功能导入文档,并将文档分配给训练集和测试集。

  3. 确认或修改文档中的标签。

  4. 训练模型。

    • 选择构建标签页,然后在微调框中选择创建新版本。

    processor-version-genai-24

    • 试用默认训练参数或提供的值。 如果结果不理想,请尝试以下高级选项:

    • 训练步数(介于 1 到 400 之间):也称为周期,训练步数控制在调优期间对一批数据优化权重的频率。

      • 如果该值过低,则存在训练在收敛之前结束的风险(欠拟合)。
      • 如果该值过高,则意味着模型可能会在训练期间多次看到同一批数据,这可能会导致过拟合。
      • 步骤越少,训练时间越短。对于模板变化较小的文档,较高的计数会有所帮助(对于变化较大的文档,较低的计数会有所帮助)。
    • 学习速率乘数(介于 0.1 和 10 之间):控制模型参数在训练数据上的优化速度。它大致对应于每个训练步骤的大小。

      • 低学习率意味着在每个训练步骤中,模型权重的变化较小。 如果学习率过低,模型可能无法收敛到稳定的解。
      • 较高的速率表示较大的变化,而过高的速率可能意味着模型会跳过最佳解决方案,而收敛到次优解决方案。
      • 训练时间不受学习速率选择的影响。
    • 输入名称,选择所需的基础处理器版本,然后选择创建。

    processor-version-genai-21

  5. 评估:前往评估和测试,然后选择您刚刚训练的版本,并选择查看完整评估。

    processor-version-genai-13

    • 现在,您可以看到整个文档和每个字段的 f1、精确率和召回率等指标。
    • 确定性能是否符合您的生产目标。如果不符合,则可能需要更多训练文档。
  6. 将新版本设为默认版本:

    • 前往管理版本。
    • 选择以展开选项,然后选择设为默认。

    processor-version-genai-14

    您的模型现已部署,发送到此处理器的文档现在使用您的自定义版本。 您希望评估模型的性能,以检查是否需要进一步训练。

使用基础模型自动添加标签

基础模型可以准确提取各种文档类型的字段,不过您也可以提供额外的训练数据,提高模型针对特定文档结构的准确率。

Document AI 使用您定义的标签名称和之前的注解,通过自动添加标签功能可以更加轻松快捷地为文档大规模添加标签。

  1. 创建自定义处理器后,前往开始标签页。
  2. 选择创建新字段。
  3. 为标签提供一个具有描述性且独一无二的名称。选择提取表示值直接来自文档,选择推导表示值由系统推理得出。这可以提高基础模型的准确率和性能。

    processor-version-genai-17

  4. 为了提高提取准确性和性能,请为应提取的实体类型添加说明(例如每个实体的额外背景信息、数据洞见和先验知识)。

    processor-version-genai-23

  5. 前往构建标签页,然后选择导入文档。

    processor-version-genai-18

  6. 选择文档的路径以及应将文档导入到哪个集合。 勾选自动添加标签选项,然后选择基础模型。

  7. 在构建标签页中,选择管理数据集。

  8. 看到导入的文档后,选择其中一个。

    processor-version-genai-19

模型的预测结果现在以紫色突出显示。

  1. 检查模型预测的每个标签,并验证其是否正确。
  2. 如果缺少字段,也请一并添加。

    processor-version-genai-20

  3. 审核完文档后,选择标记为已加标签。现在,文档已可供模型使用。

  4. 请确保该文档位于测试集或训练集中。

三级嵌套

自定义提取器现在提供三个嵌套级别。此功能可更好地提取复杂表格。

您可以使用以下 API 调用来确定模型类型:

这些请求的响应是 ProcessorVersion,其中包含 v1beta3 预览版中的 modelType 字段。

过程和示例

我们使用的是以下示例:

processor-version-genai-3

  1. 选择开始,然后创建一个字段:

    • 创建顶级。
    • 在此示例中,使用了 officer_appointments。
    • 选择这是父级标签。
    • 选择发生:Optional multiple。

    processor-version-genai-4 processor-version-genai-5 processor-version-genai-6

  2. 选择添加子字段。现在可以创建第二级标签:

    • 为此级别标签创建 officer。
    • 选择这是父级标签。
    • 选择发生:Optional multiple。

    processor-version-genai-7 processor-version-genai-8

  3. 从第二级 officer 中选择添加子字段。为第三层嵌套创建子标签。 processor-version-genai-9

  4. 设置架构后,您可以使用自动加标签功能从具有三级嵌套的文档中获取预测结果。

    processor-version-genai-10 processor-version-genai-11

为跨页嵌套实体添加标签

pretrained-foundation-model-v1.5-2025-05-05 处理器支持跨页面的三级嵌套。

  1. 在整个页面中正常标记实体。 注意:带标签的实体只会显示在添加了标签的页面上,导航栏会因页面而异。通过固定父实体,此导航栏会保持显示。

    processor-version-genai-25

  2. 固定包含您要跨页面添加标签的子实体的父实体。

    processor-version-genai-26

  3. 前往包含要添加标签的子实体的页面。

processor-version-genai-27

数据集配置

必须使用文档数据集才能训练、追加训练或评估处理器版本。Document AI 处理器和人类一样,通过示例进行学习。数据集可提升处理器在性能方面的稳定性。

训练数据集

如需改进模型及其准确率,请根据您的文档训练数据集。该模型由包含标准答案的文档组成。
  • 如需进行微调,您至少需要 50 个训练文档和 50 个测试文档,才能使用 pretrained-foundation-model-v1.5-2025-05-05 版本训练新模型。
  • 对于少样本,建议使用 5 个文档。
  • 对于零样本,只需要一个架构。

测试数据集

测试数据集是模型用来生成 F1 得分(准确率)的数据集。它由具有标准答案的文档组成。为了了解模型的正确率,系统会使用标准答案将模型的预测结果(从模型中提取的字段)与正确答案进行比较。测试数据集应至少包含 50 个 pretrained-foundation-model-v1.5-2025-05-05 文档。

具有属性说明的自定义提取器

借助属性说明,您可以通过描述带标签字段的特征来训练模型。您可以为每个实体提供更多背景信息和数据洞见。这样,模型就可以通过匹配符合您提供的说明的字段来进行训练,并提高提取准确率。可以为父实体和子实体指定属性说明。

属性说明的良好示例包括位置信息和属性值的文本模式,这有助于消除文档中潜在的混淆来源。清晰准确的属性说明可为模型提供规则指导,从而促进更可靠、更一致的提取,无论具体的文档结构或内容变化如何。

更新处理器的文档架构

如需了解如何设置属性说明,请参阅更新文档架构。

发送包含房源说明的处理请求

如果文档架构已设置说明,您可以按照发送处理请求中的说明发送处理请求。

使用属性说明对处理器进行微调

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:处理器的位置,例如:
    • us - 美国
    • eu - 欧盟
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • PROCESSOR_ID:自定义处理器的 ID。
  • DISPLAY_NAME:处理器的显示名称。
  • PRETRAINED_PROCESSOR_VERSION:处理器版本标识符。如需了解详情,请参阅选择处理器版本。例如:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • TRAIN_STEPS:模型微调的训练步数。
  • LEARN_RATE_MULTIPLIER:模型微调的学习速率调节系数。
  • DOCUMENT_SCHEMA:处理器的架构。请参阅 DocumentSchema 表示法。

HTTP 方法和网址:

POST https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process

请求 JSON 正文:

{
  "rawDocument": {
      "parent": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID",
         "processor_version": {
             "name": "projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/DISPLAY_NAME",
             "display_name": "DISPLAY_NAME",
             "model_type": "MODEL_TYPE_GENERATIVE",
         },
         "base_processor_version": "projects/PROJECT_ID/locations/us/processors/PROCESSOR_ID/processorVersions/PRETRAINED_PROCESSOR_VERSION",
         "foundation_model_tuning_options": {
             "train_steps": TRAIN_STEPS,
             "learning_rate_multiplier": LEARN_RATE_MULTIPLIER,
         }
         "document_schema": DOCUMENT_SCHEMA
      }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-documentai.googleapis.com/v1beta3/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content

具有签名检测功能的自定义提取器

(公开预览版)自定义提取器支持签名检测。此功能可让您检测文档中是否存在签名。签名检测只能通过使用 derived 方法类型来实现。您可以为此类实体指定实体类型为 signature 的架构。签名实体是使用文档中的视觉提示派生的。

如需查看示例和配置说明,请点击具有派生字段和签名检测功能的自定义提取器。

具有派生字段的自定义提取器

自定义提取器支持派生字段。它允许您配置一个字段,通过基于文档上下文的智能推理或生成来填充,而不是直接提取文本。您可以将其用于各种应用场景,例如从地址推断国家/地区、总结文档、统计表格中的项目数量,或检测 ID 是否真实,而无需在文本中明确显示该值。

如需查看示例和配置说明,请点击具有派生字段和签名检测功能的自定义提取器。

后续步骤

了解具有派生字段和签名检测功能的自定义提取器。