You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python训练测试Document AI自定义分类器及数据集问题排查

解决Google Cloud Document AI自定义分类器训练的InvalidDataset错误

一、错误原因确认

你遇到的InvalidArgument: 400 Invalid dataset错误,确实大概率是数据集不符合Document AI自定义分类器的硬性要求:

  • 至少包含2个不同的标签类别
  • 每个标签对应至少10份训练文档
  • 每个标签对应至少2份测试文档

二、正确的数据集存储结构(带标签)

Google Cloud Document AI要求训练/测试数据按标签目录分类存储在GCS桶中,目录名称即为标签名称,系统会自动识别子目录名作为对应文档的标签。

训练数据目录结构(示例路径:gs://documentai-bucket-123/train)

train/
├── invoice/
│   ├── inv_001.pdf
│   ├── inv_002.pdf
│   ├── ... 至少10份文档
└── receipt/
    ├── rec_001.pdf
    ├── rec_002.pdf
    ├── ... 至少10份文档

测试数据目录结构(示例路径:gs://documentai-bucket-123/test)

test/
├── invoice/
│   ├── test_inv_001.pdf
│   ├── test_inv_002.pdf
│   ├── ... 至少2份文档
└── receipt/
    ├── test_rec_001.pdf
    ├── test_rec_002.pdf
    ├── ... 至少2份文档

三、Python代码中正确传入数据集URL

只需将训练和测试数据的根目录GCS路径传入函数即可,系统会自动遍历子目录识别标签与对应文档。修改后的调用示例:

train_processor_version_sample(
    project_id=497857003374,
    location='us',
    processor_id='a530739de44a7ca6',
    processor_version_display_name="Version-1",
    train_data_uri="gs://documentai-bucket-123/train",  # 训练数据根目录
    test_data_uri="gs://documentai-bucket-123/test"     # 测试数据根目录
)

四、额外排查验证步骤

  1. 权限检查:确认Document AI服务账号(格式为service-{PROJECT_NUMBER}@gcp-sa-documentai.iam.gserviceaccount.com)拥有GCS桶的storage.objects.list和storage.objects.get权限
  2. 文档格式验证:仅支持PDF、TIFF、GIF、JPEG、PNG格式,单文件大小不超过20MB
  3. 获取详细错误:通过以下代码提取操作元数据中的具体错误信息,精准定位问题:
from google.cloud import documentai_v1 as documentai

# 在原代码的operation.result()抛出异常前,添加以下代码
metadata = documentai.TrainProcessorVersionMetadata(operation.metadata)
print(f"Training Error Details: {metadata.state_message}")

内容的提问来源于stack exchange,提问作者Nitin Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:50:34