ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PaddleX 3.0.0 RC 接口升级全解析:模型与产线配置、推理 API 及产线功能变更指南

PaddleX 3.0.0 RC 接口升级全解析:模型与产线配置、推理 API 及产线功能变更指南 人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/paddlepaddle/PaddleX点击查看免费下载导读PaddleX 3.0.0 RC 对模型Module与产线Pipeline两大体系进行了一次系统性接口重构配置文件存储目录整体迁移、模块与产线命名全面统一、create_model()与create_pipeline()推理接口的签名和预测结果格式发生重要变化同时 OCR、印章识别、表格识别、版面解析与 PP-ChatOCRv3-doc 等产线获得多项新能力。本文以仓库中 docs/API_change_log/v3.0.0rc.md 为骨架结合当前仓库的源码实现与真实配置文件逐项展开帮助开发者在升级到 3.0.0 RC 后快速完成接口迁移、正确编写模型与产线配置并第一时间用上文档预处理、文本行方向分类、OpenAI 标准 API 调用等新特性。一、升级总览v3.0.0 RC 的接口演进脉络v3.0.0 RC 的变更可以归纳为三条主线命名与目录规范化模型配置文件从paddlex/configs迁至paddlex/configs/modules产线配置文件从paddlex/pipelines迁至paddlex/configs/pipelines多个模块与产线名称被统一重命名消除同名任务如table_recognition既是模块又是产线造成的歧义。推理接口收敛create_model()新增model_dir、batch_size等参数并支持任务相关超参数create_pipeline()不再支持在调用时直接设置推理超参数全部收敛到产线配置文件中配置文件的组织方式升级为「产线名称 产线参数 子产线/子模块」三段式结构。产线能力扩展文档预处理整图方向分类与矫正、文本行方向分类、模型后处理参数可配置化在多条产线落地PP-ChatOCRv3-doc 支持标准 OpenAI API 调用与运行时更换大语言模型。以下各节按「模型模块 → 产线 → 产线功能」的顺序逐一展开。二、模型模块相关接口变更2.1 模型配置文件存储目录迁移与模块命名统一存储目录变更模型配置文件由paddlex/configs更新为paddlex/configs/modules。在当前仓库中paddlex/configs/modules/下已按模块名组织 40 余个子目录例如image_classification/、object_detection/、ts_forecast/、video_detection/等每个目录内为对应的 YAML 模型配置文件。模块名变更为避免同名歧义并统一命名风格以下模块名称被更新相关配置文件路径同步调整旧模块名新模块名anomaly_detectionimage_anomaly_detectionface_recognitionface_featuregeneral_recognitionimage_featuremultilabel_classificationimage_multilabel_classificationpedestrian_attributepedestrian_attribute_recognitionstructure_analysislayout_detectiontable_recognitiontable_structure_recognitiontext_detection_sealseal_text_detectionvehicle_attributevehicle_attribute_recognition从当前仓库的 paddlex/configs/modules 目录结构可以确认新命名已全部落地例如image_anomaly_detection/、face_feature/、image_feature/、image_multilabel_classification/、pedestrian_attribute_recognition/、layout_detection/、table_structure_recognition/、seal_text_detection/、vehicle_attribute_recognition/均已存在。升级后凡是在旧版本中以旧模块名编写的create_model()调用或自定义配置路径都必须替换为新模块名否则将无法找到对应的官方模型与默认配置。2.2create_model()参数签名与行为变更create_model()是模型推理的统一入口本次变更如下参数修改model_name只接受字符串类型的模型名。与之对应源码 paddlex/model.py#L27-L30 中create_model(model_name, model_dirNone, *args, **kwargs)直接将其透传给_ModelBasedInference并最终由create_predictor解析为具体的推理模型。新增参数model_dir指定本地推理模型文件目录默认None表示自动下载并使用官方模型。这意味着离线部署场景下可以直接指向本地导出或下载好的模型目录无需走在线下载。batch_size指定推理时的批处理大小默认1。支持指定模型任务相关的常见超参数具体参数随模型任务不同而不同详见各模型文档。例如图像分类模型支持topk指定返回前 n 个分类结果。use_hpip与hpi_params用于开启高性能推理HPIP默认不开启。从 CLI 安装逻辑看paddlex/paddlex_cli.py#L233-L261高性能推理插件按设备分为ultra-infer-pythonCPU、ultra-infer-gpu-pythonGPU与ultra-infer-npu-pythonNPU且 GPU 版要求 PaddlePaddle 基于 CUDA 11 编译使用时需按设备类型安装对应插件。功能更新CV 类模型支持使用PDF 文件作为输入样本扩展了文档类场景的直连推理能力。预测结果仍为dict类型但格式从{key1: val}调整为{res: {key: val}}——以字符串res作为键原结果数据作为值。升级后读取结果时需改为访问result[res]。使用save_to_xxx()系列方法保存预测结果时若save_path指向目录文件命名方式变更保存为 JSON 格式时为输入文件前缀名_res.json保存为图像格式时为输入文件前缀名_res_img.输入文件后缀名例如对page.png保存结果为page_res_img.png。2.3 模型推理调用示例升级后升级后的模型推理调用形如import paddlex as pdx # 在线使用官方模型指定 batch_size 与任务相关超参数 topk model pdx.create_model(PP-LCNet_x1_0, batch_size1, topk5) # 或使用本地模型目录 # model pdx.create_model(PP-LCNet_x1_0, model_dir/path/to/model_dir) for res in model.predict(test.jpg): # 结果统一包裹在 res 键下 print(res[res]) model.save_to_json(output, res) # 生成 output_res.json model.save_to_img(output, res) # 生成 output_res_img.jpg注意在模型推理入口处超参数是允许直接传入的如topk这一能力与下述create_pipeline()的「不再支持直接传超参数」并不矛盾二者接口定位不同。三、模型产线相关接口变更3.1 产线配置文件目录迁移与产线命名调整配置文件存储目录变更paddlex/pipelines更新为paddlex/configs/pipelines。当前仓库中 paddlex/configs/pipelines 下已集中存放全部 33 个产线的 YAML 配置文件如OCR.yaml、PP-ChatOCRv3-doc.yaml、layout_parsing.yaml、table_recognition.yaml等。产线名称变更时间序列相关产线统一采用完整命名旧产线名新产线名ts_fcts_forecastts_adts_anomaly_detectionts_clsts_classification这与 paddlex/configs/modules 下的ts_forecast/、ts_anomaly_detection/、ts_classification/模块目录命名保持一致也是本次全局命名规范化的一部分。3.2 产线命令行推理新增支持命令行推理支持传入产线相关推理超参数具体参数随产线不同而不同详见各产线文档例如图像分类产线支持--topk参数用于指定返回前 n 个结果。从源码看paddlex/paddlex_cli.py#L199-L217 会根据PIPELINE_ARGUMENTS中注册的产线参数动态地向 argparse 添加「Pipeline Options」参数组并支持对布尔值字符串的自动解析从而实现按产线扩展命令行参数。删除--serial_number参数——高性能推理不再需要传入序列号。当前 CLI 中保留的推理相关参数为--pipeline、--input、--save_path、--device、--use_hpip与--hpi_config见 paddlex/paddlex_cli.py#L106-L143其中--use_hpip/--hpi_config用于开启并配置高性能推理均不再涉及序列号。升级后的 CLI 推理示例paddlex --pipeline OCR --input test.jpg --save_path output --device gpu:0 paddlex --pipeline image_classification --input test.jpg --topk 53.3create_pipeline()参数与行为变更删除高性能推理hpi_params中的serial_number参数高性能推理不再需要传入序列号。当前create_pipeline()的签名paddlex/inference/pipelines/init.py#L103-L112已收敛为pipeline产线名或配置文件路径、config配置字典、device、pp_option、use_hpip、hpi_config等参数不包含任何序列号字段。不再支持产线推理超参数设置——batch_size、阈值等推理超参数不再作为create_pipeline()的调用参数传入一律通过产线配置文件完成设置。这是本次接口收敛最需要留意的迁移点旧代码中在调用处直接指定阈值的写法需改为编辑产线 YAML 配置后再创建产线。功能更新save_to_xxx()方法保存预测结果时若save_path为目录存储文件命名方式更新与 2.2 节模型侧命名规则一致。CV 类模型预测结果新增page_index字段仅当输入样本为 PDF 文件时存在标志当前预测结果对应的 PDF 页码序号便于多页文档的逐页结果对齐。模型产线预测结果新增产线推理参数字段例如 OCR 产线新增text_det_params字段值为文本检测模型的后处理设置将推理时实际生效的参数随结果一并返回方便结果回放与参数调优。此外create_pipeline()支持两种传参方式直接传产线名称自动加载paddlex/configs/pipelines下的默认配置或传入配置文件路径/配置字典当同时传入pipeline与config且二者产线名称不一致时源码会输出警告并以配置中的pipeline_name为准paddlex/inference/pipelines/init.py#L144-L155。3.4 产线配置文件三段式新格式v3.0.0 RC 将产线配置文件内容统一为三个部分产线名称pipeline_name、产线相关参数设置、子产线与子模块构成SubPipelines/SubModules。原文档给出的示例结构如下pipeline_name: pipeline # 产线名称 threshold: 0.5 # 产线推理相关参数 SubPipelines: # 子产线 DocPreprocessor: pipeline_name: doc_preprocessor use_doc_unwarping: True # 子产线 DocPreprocessor 的相关设置 SubModules: # 子模块 TextDetection: module_name: text_detection model_name: PP-OCRv4_mobile_det model_dir: null limit_side_len: 960 # 子模块 TextDetection 的相关设置 limit_type: max max_side_limit: 4000 thresh: 0.3 box_thresh: 0.6 unclip_ratio: 1.5对照当前仓库 paddlex/configs/pipelines/OCR.yaml 的真实配置可以看到该三段式结构已完全落地且子模块与子产线的参数更为丰富pipeline_name: OCR text_type: general use_doc_preprocessor: True use_textline_orientation: True SubPipelines: DocPreprocessor: pipeline_name: doc_preprocessor use_doc_orientation_classify: True use_doc_unwarping: True SubModules: DocOrientationClassify: module_name: doc_text_orientation model_name: PP-LCNet_x1_0_doc_ori model_dir: null DocUnwarping: module_name: image_unwarping model_name: UVDoc model_dir: null SubModules: TextDetection: module_name: text_detection model_name: PP-OCRv5_server_det model_dir: null limit_side_len: 64 limit_type: min max_side_limit: 4000 thresh: 0.3 box_thresh: 0.6 unclip_ratio: 1.5 TextLineOrientation: module_name: textline_orientation model_name: PP-LCNet_x1_0_textline_ori model_dir: null batch_size: 6 TextRecognition: module_name: text_recognition model_name: PP-OCRv5_server_rec model_dir: null batch_size: 6 score_thresh: 0.0配置要点解析pipeline_name声明产线类型create_pipeline()依据该字段实例化对应产线类产线级参数如threshold、text_type、use_doc_preprocessor、use_textline_orientation直接控制整条产线的行为开关SubPipelines用于嵌入可复用的子产线如文档预处理子产线doc_preprocessor其中又包含自身的SubModules支持嵌套组织SubModules列出产线直接调用的各推理模块每个模块至少包含module_name模块标识、model_name使用的模型、model_dir本地模型目录null表示自动下载官方模型并可按模块追加推理超参数——这正是「推理超参数统一收敛到配置文件」的落地形态OCR 产线文本检测的limit_side_len、limit_type、max_side_limit、thresh、box_thresh、unclip_ratio等后处理参数全部在此设置。四、产线功能变更详解4.1 OCR 产线新增文档预处理——支持整图方向分类与矫正可通过 paddlex/configs/pipelines/OCR.yaml 中相关参数控制。对应配置项为产线级use_doc_preprocessor: True与子产线DocPreprocessor内的use_doc_orientation_classify: True、use_doc_unwarping: True实际由doc_text_orientationPP-LCNet_x1_0_doc_ori与image_unwarpingUVDoc两个子模块完成方向分类与畸变矫正。新增文本行方向分类——可通过配置文件相关参数控制对应产线级use_textline_orientation: True实际调用textline_orientation模块PP-LCNet_x1_0_textline_ori用于识别并纠正单行文本的方向。新增支持修改模型推理超参数——如文本检测模型的后处理参数可通过配置文件SubModules.TextDetection下的thresh、box_thresh、unclip_ratio、limit_side_len等参数控制。4.2 印章识别与公式识别产线新增文档预处理——支持整图方向分类与矫正可通过配置文件相关参数控制。新增是否使用版面检测模型——可通过配置文件相关参数控制允许在印章/公式场景中按需启用版面分析前置步骤。4.3 表格识别产线新增文档预处理——支持整图方向分类与矫正可通过配置文件相关参数控制。新增是否使用 OCR 产线进行文本检测与识别——可通过配置文件相关参数控制决定表格结构解析后文本内容由内置 OCR 产线补充识别从而提升单元格内容还原的完整性。4.4 版面解析产线更新支持更多推理超参数设置——文档预处理、文本识别及模型后处理参数设置均可在产线配置文件中完成使版面解析产线具备按场景调优的完整能力。4.5 PP-ChatOCRv3-doc 产线新增功能支持标准 OpenAI API 接口调用——可通过配置文件相关参数控制使外部系统能够以 OpenAI 兼容协议接入该产线的文档问答能力。支持在 Chat 接口调用时更换大语言模型——可通过接口调用参数传入相关配置无需重启产线即可切换 LLM。更新功能推理模块初始化方式优化推理模块支持首次调用时才进行初始化无需在产线启动时全部初始化可显著缩短冷启动时间。对应源码中paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py#L120-L138检索器retriever与对话机器人chat bot均按需构建create_chat_bot依据配置中的api_type选择对应实现。向量库能力调整支持设置长文本分块大小——源码中以block_size参数控制文本切分块大小paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py#L388同时去除了调用向量库间隔时长控制检索调用不再受固定间隔约束。五、升级迁移要点速查变更类别旧写法新写法模型配置目录paddlex/configs/xxx.yamlpaddlex/configs/modules/xxx/xxx.yaml产线配置目录paddlex/pipelines/xxx.yamlpaddlex/configs/pipelines/xxx.yaml模块名anomaly_detection、face_recognition、general_recognition等image_anomaly_detection、face_feature、image_feature等见 2.1 节表格产线名ts_fc、ts_ad、ts_clsts_forecast、ts_anomaly_detection、ts_classification模型推理create_model(name, topk5)支持model_dir、batch_size结果键为res产线推理超参数在create_pipeline()调用中传入统一写入产线配置文件SubPipelines/SubModules高性能推理传入serial_number删除序列号改用use_hpip/hpi_config结果保存命名自定义/旧命名目录模式下为输入前缀_res.json、输入前缀_res_img.后缀PDF 输入不支持支持且结果含page_index字段结语v3.0.0 RC 的接口重构本质上是 PaddleX 对「命名统一、配置收敛、能力扩展」三项目标的落地模块与产线命名消除歧义、配置目录集中到paddlex/configs之下、推理超参数从「调用传参」迁移到「配置文件声明」、文档类产线获得预处理与方向分类等新能力。升级时建议按「配置文件路径与命名 →create_model/create_pipeline调用 → 产线配置文件三段式重写 → 结果解析与保存命名」的顺序逐步迁移并借助各产线 YAML 注释与源码中的参数解析逻辑核对每一项配置的作用范围。赞分享人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/paddlepaddle/PaddleX点击查看免费下载相关推荐PaddleX v3.0.0 RC 接口变更全解析模型与产线配置、推理 API 与预测结果格式升级指南PaddleX v3.0.0 RC 接口变更全解析模型与产线配置、推理 API 与预测结果格式升级指南 导读 本文依据 PaddleX 官方《Interfac人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG微调语音PaddleX 模型产线详解PaddleX 模型产线详解 PaddleX 的模型产线Pipeline是一种预定义的、针对特定 AI 任务的开发流程它将多个单功能模块如数据预处理、模人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG微调语音PaddleX模型产线开发全流程指南PaddleX模型产线开发全流程指南 前言 PaddleX作为飞桨生态中的重要开发工具提供了丰富的预训练模型和完整的AI开发流程。本文将详细介绍如何使用Pad人工智能大模型低代码计算机视觉深度学习模型推理服务上一篇终极跨平台媒体下载解决方案Cobalt 如何彻底改变你的内容收藏体验下一篇Android设备完整性修复的终极方案PlayIntegrityFix深度解析与实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表