如何通过代码对Google Cloud Document AI发票解析器进行增量训练
Google Cloud Document AI发票解析器增量训练实现及准备信息
一、增量训练前需准备的核心信息
- 已训练处理器的核心标识:项目ID、处理器所在区域、目标处理器ID,以及你要基于的原处理器版本ID(通常可用
stable指代当前稳定版本) - 增量标注数据集:符合Document AI格式的标注数据集合,包含新增的发票文件(PDF/图片等)以及对应的结构化JSON标注,数据类型需与原解析器处理的发票一致,保证训练连贯性
- 权限凭证:拥有
documentai.editor或更高权限的Google Cloud服务账号密钥文件,用于调用Document AI训练API - 训练配置参数:新处理器版本的名称、训练超时时间、是否启用模型增强等(可参考初次训练的配置)
二、Python代码实现增量训练
以下是基于Google Cloud Document AI Python SDK的增量训练实现代码:
from google.cloud import documentai_v1 as documentai from google.api_core.client_options import ClientOptions def incremental_train_invoice_parser(project_id, location, processor_id, dataset_id, base_version="stable"): # 初始化客户端,指定区域API端点 client_options = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com") client = documentai.DocumentProcessorServiceClient(client_options=client_options) # 构建训练请求核心参数 parent = client.processor_path(project_id, location, processor_id) base_version_path = client.processor_version_path(project_id, location, processor_id, base_version) train_request = documentai.TrainProcessorVersionRequest( parent=parent, processor_version=documentai.ProcessorVersion( display_name="incremental-invoice-parser-v2" # 自定义新版本名称 ), input_data_config=documentai.TrainProcessorVersionRequest.InputDataConfig( dataset=dataset_id, base_processor_version=base_version_path # 指定增量训练的基础版本 ) ) # 发送异步训练请求并等待完成 operation = client.train_processor_version(train_request) print("训练任务已启动,等待完成...") # 根据数据集规模调整超时时间,示例设置为1小时 training_result = operation.result(timeout=3600) print(f"增量训练完成,新处理器版本路径: {training_result.name}") return training_result.name # 实际调用示例 if __name__ == "__main__": # 替换为你的实际参数 PROJECT_ID = "your-gcp-project-id" LOCATION = "us" # 如eu、asia-southeast1等 PROCESSOR_ID = "your-existing-invoice-processor-id" INCREMENTAL_DATASET_ID = "projects/your-project-id/locations/us/datasets/your-incremental-dataset-id" incremental_train_invoice_parser(PROJECT_ID, LOCATION, PROCESSOR_ID, INCREMENTAL_DATASET_ID)
关键注意事项
- 新增数据集必须提前在Document AI控制台完成创建和标注,数据集ID可从控制台数据集详情页获取
- 本地运行时需设置环境变量
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json" - 若训练超时,可根据数据量适当延长
timeout参数值;也可通过operation.metadata实时监控训练进度 - 训练完成后,新的处理器版本需手动设置为稳定版本才能正式使用
内容的提问来源于stack exchange,提问作者Vahid Uglic
相关产品推荐
相关产品推荐

