为何含JSONL的CSV无训练AutoML所需标签?
问题描述
- 操作流程:按照Google Cloud官方示例从PDF文件生成JSONL文件,使用
input_helper_v2.py工具生成包含JSONL文件GCS链接的CSV文件 - 核心问题:生成的CSV缺失标签列,上传至Google Cloud AutoML进行模型训练时触发错误;手动添加标签列后仍无法解决报错
- 附件:错误截图、无标签CSV示例
排查方向与解决方案
验证
input_helper_v2.py的参数配置- 确认运行脚本时是否传入了正确的标签映射参数。部分版本的
input_helper_v2.py需要指定--label_map参数关联PDF内容与对应标签,未传入该参数会导致生成的CSV缺失标签列。 - 检查脚本执行命令,确保格式符合要求:
python input_helper_v2.py --gcs_source gs://your-bucket/pdfs/ --output gs://your-bucket/output.csv --label_map label_mapping.json label_mapping.json需按官方要求格式编写,示例:{ "gs://your-bucket/pdfs/doc1.pdf": "label1", "gs://your-bucket/pdfs/doc2.pdf": "label2" }
- 确认运行脚本时是否传入了正确的标签映射参数。部分版本的
检查JSONL文件的格式正确性
- 确保每个JSONL条目包含
document字段(指向PDF的GCS链接)和annotation字段(对应标签信息),示例:{"document": {"input_config": {"gcs_source": {"input_uris": ["gs://your-bucket/pdfs/doc1.pdf"]}}}, "annotation": {"display_name": "label1"}} - 若JSONL本身缺失标签信息,即使CSV添加标签列,AutoML训练时仍无法识别有效标注数据。
- 确保每个JSONL条目包含
规范手动修复CSV的格式
- Google Cloud AutoML要求CSV必须包含两列:第一列是
GCS_FILE_PATH(JSONL文件的GCS链接),第二列是LABEL(对应标签),表头需严格匹配。 - 手动添加标签时,确保CSV无额外空格、换行符,示例正确格式:
GCS_FILE_PATH,LABEL gs://your-bucket/output.jsonl,label1 gs://your-bucket/output2.jsonl,label2 - 检查编码问题,建议使用UTF-8无BOM编码保存CSV。
- Google Cloud AutoML要求CSV必须包含两列:第一列是
确认AutoML数据集类型匹配
- 若训练文档分类模型,需确保数据集创建时选择“文档分类”类型,且CSV中的标签与数据集预定义标签完全一致(大小写、拼写均需匹配)。
错误排查辅助步骤
- 查看Google Cloud Console错误详情:在AutoML训练任务的错误日志中,定位具体错误代码(如
INVALID_CSV_FORMAT、MISSING_LABEL),根据官方文档的错误说明针对性修复。 - 测试最小化数据集:用1-2个PDF生成JSONL和CSV,验证流程是否正常,逐步排查是否是批量数据中的个别文件导致问题。
内容的提问来源于stack exchange,提问作者Enrique Espinosa
相关产品推荐
相关产品推荐

