- 人工智能
- 大模型
- 预训练
- 微调
- LoRA
- RLHF
- 强化学习
- 分布式训练
【免费下载链接】PaddleNLP
Easy-to-use and powerful LLM and SLM library with awesome model zoo.
本篇技术指南以 PaddleNLP 仓库中 ERNIE 3.0 轻量级模型部署文档 为核心,系统讲解如何基于 FastDeploy 将训练好的 ERNIE 3.0 模型在 CPU、GPU 及多种推理引擎后端上完成部署,覆盖 Python 直连部署与服务化(Serving)部署两条完整路径。读完本文,你将掌握 ERNIE 3.0 在文本分类(以 CLUE AFQMC 为例)与序列标注(以 MSRA_NER 为例)两类任务上的模型准备、命令启动、参数调优与客户端请求方法,并理解底层推理代码与模型配置的实现细节。
FastDeploy 与 ERNIE 3.0 部署概览
FastDeploy 是一款面向全场景的 AI 推理部署工具,主打易用灵活与极致高效,满足开发者多硬件、多平台的产业部署需求。开发者可以基于 FastDeploy 将训练好的预测模型部署到不同的硬件和不同的推理引擎后端上,目前 FastDeploy 提供 C++、Python、Java 等多种编程语言的 SDK。
在部署 ERNIE 3.0 模型之前,需要先安装 FastDeploy SDK。请参考 FastDeploy 官方 SDK 安装文档(build_and_install/download_prebuilt_libraries.md),确认部署环境满足 FastDeploy 的环境要求,并按照介绍安装对应的 SDK。
本项目对应的部署示例位于 slm/model_zoo/ernie-3.0/deploy,目录下包含三条部署路径:
| 目录 | 说明 |
|---|---|
python/ | FastDeploy + Paddle Inference 的 Python 直连部署,提供seq_cls_infer.py与token_cls_infer.py |
serving/ | 基于 Triton 架构的服务化部署,提供模型仓库、服务配置与 gRPC 客户端 |
simple_serving/ | 基于 PaddleNLP SimpleServing 的轻量 HTTP 服务化部署 |
硬件与推理引擎支持矩阵
目前,ERNIE 3.0 模型支持在如下硬件以及推理引擎上进行部署。符号说明:✅ 表示已经支持;❔ 表示正在进行中;N/A 表示暂不支持。
| 硬件 | 可用的推理引擎 | 是否支持 Paddle 新格式量化模型 | 是否支持 FP16 模式 |
|---|---|---|---|
| CPU | Paddle Inference | ✅ | N/A |
| CPU | ONNX Runtime | ✅ | N/A |
| CPU | OpenVINO | ✅ | N/A |
| GPU | Paddle Inference | ✅ | N/A |
| GPU | ONNX Runtime | ✅ | ❔ |
| GPU | Paddle TensorRT | ✅ | ✅ |
| GPU | TensorRT | ✅ | ✅ |
| 昆仑芯 XPU | Paddle Lite | N/A | ✅ |
| 华为昇腾 | Paddle Lite | ❔ | ✅ |
| Graphcore IPU | Paddle Inference | ❔ | N/A |
从上表可以看出,ERNIE 3.0 的部署覆盖面很广:CPU 侧三条引擎路径全部就绪,GPU 侧四种引擎路径可用且 TensorRT 家族支持 FP16 与量化模型,同时覆盖昆仑芯 XPU、华为昇腾、Graphcore IPU 等国产与异构硬件。若需要在 CPU/GPU 或其他推理引擎上切换运行,主要通过服务端配置文件(config.pbtxt)完成,详见下文"服务化部署"章节。
支持的任务列表与部署方式
ERNIE 3.0 支持文本分类与序列标注两大 NLP 任务的部署,每种任务均提供 Python、C++ 与 Serving 三种部署形态。符号说明与上节一致。
| 任务 Task | 部署方式 | 是否支持 |
|---|---|---|
| 文本分类 | Python | ✅ |
| 文本分类 | C++ | ✅ |
| 文本分类 | Serving | ✅ |
| 序列标注 | Python | ✅ |
| 序列标注 | C++ | ✅ |
| 序列标注 | Serving | ✅ |
本文后续将重点展开 Python 与 Serving 两条路径的实操。
Python 直连部署
Python 部署目录 slm/model_zoo/ernie-3.0/deploy/python 下提供seq_cls_infer.py(文本分类)与token_cls_infer.py(序列标注)两个脚本,可快速完成在 CPU/GPU 上的 Python 预测部署。两个脚本均基于paddle.inference的 Python API 编写,先通过AutoTokenizer完成分词,再通过paddle_infer.Config创建推理引擎执行预测。
文本分类任务快速开始
以下示例展示如何完成 ERNIE 3.0 Medium 模型在 CLUE Benchmark 的 AFQMC 数据集(蚂蚁金融语义相似度任务)上的文本分类 Python 预测部署。示例中的模型是按照 ERNIE 3.0 训练文档 导出得到的部署模型,其模型目录为model_zoo/ernie-3.0/best_models/afqmc/export(用户可按实际情况设置)。
# CPU 推理 python seq_cls_infer.py --model_dir ../../best_models/afqmc/export --device cpu # GPU 推理 python seq_cls_infer.py --model_dir ../../best_models/afqmc/export --device gpu运行完成后返回的结果如下(GPU 推理时日志会展示 Paddle Inference 的 PIR 图优化过程):
I0423 05:00:21.622229 8408 print_statistics.cc:44] --- detected [85, 273] subgraphs! --- Running PIR pass [dead_code_elimination_pass] I0423 05:00:21.622710 8408 print_statistics.cc:50] --- detected [113] subgraphs! --- Running PIR pass [replace_fetch_with_shadow_output_pass] I0423 05:00:21.622859 8408 print_statistics.cc:50] --- detected [1] subgraphs! --- Running PIR pass [remove_shadow_feed_pass] I0423 05:00:21.626749 8408 print_statistics.cc:50] --- detected [2] subgraphs! --- Running PIR pass [inplace_pass] I0423 05:00:21.631474 8408 print_statistics.cc:50] --- detected [2] subgraphs! I0423 05:00:21.631560 8408 analysis_predictor.cc:1186] ======= pir optimization completed ======= I0423 05:00:21.641817 8408 pir_interpreter.cc:1640] pir interpreter is running by trace mode ... Batch 0, example 0 | s1: 花呗收款额度限制 | s2: 收钱码,对花呗支付的金额有限制吗 | label: 1 | score: 0.5175 Batch 1, example 0 | s1: 花呗支持高铁票支付吗 | s2: 为什么友付宝不支持花呗付款 | label: 0 | score: 0.9873输出中label为预测类别,score为 softmax 归一化后的置信度。
文本分类参数说明
seq_cls_infer.py支持通过命令行参数控制模型目录、运行设备、批大小与序列长度。以下为各命令行参数的说明:
| 参数 | 参数说明 |
|---|---|
--model_dir | 指定部署模型的目录(必填) |
--batch_size | 输入的 batch size,默认为 1 |
--max_length | 最大序列长度,默认为 128 |
--device | 运行的设备,可选范围:['cpu', 'gpu'],默认为'cpu' |
--model_prefix | 模型文件前缀,默认'model'(在 token_cls 脚本中同样提供) |
--vocab_path | tokenizer 词表路径,默认为空(自动从模型目录加载) |
--log_interval | 日志打印间隔,默认为 10 |
文本分类脚本源码剖析
从 seq_cls_infer.py 的源码可以看到完整推理链路:
- Predictor 初始化:通过
AutoTokenizer.from_pretrained(args.model_dir)从部署模型目录加载分词器;通过paddle_infer.Config(model_path, params_path)创建推理配置,其中模型文件名与参数文件名由model_prefix分别与PADDLE_INFERENCE_MODEL_SUFFIX、PADDLE_INFERENCE_WEIGHTS_SUFFIX拼接得到。 - 引擎配置:
device == "gpu"时调用config.enable_use_gpu(100, 0)(设置显存 100 MB、使用 0 号 GPU),否则调用config.disable_gpu();同时关闭 feed/fetch ops(switch_use_feed_fetch_ops(False))并开启内存优化(enable_memory_optim())。 - 前处理:
preprocess()调用 tokenizer 对文本对(text, text_pair)执行max_length截断、padding补齐,返回input_ids与token_type_ids两个 int64 张量。 - 推理与后处理:
infer()通过输入输出 handle 完成 CPU/GPU 数据搬运与predictor.run();postprocess()对 logits 做 softmax 归一化,输出label(argmax)与confidence(最大概率)。
序列标注任务快速开始
以下示例展示如何完成 ERNIE 3.0 Medium 模型在 CLUE Benchmark 的 MSRA_NER 数据集上的序列标注 Python 预测部署。示例中的模型按照 ERNIE 3.0 训练文档 导出,模型目录为model_zoo/ernie-3.0/best_models/msra_ner/export(用户可按实际情况设置)。
# CPU 推理 python token_cls_infer.py --model_dir ../../best_models/msra_ner/export/ --device cpu # GPU 推理 python token_cls_infer.py --model_dir ../../best_models/msra_ner/export/ --device gpu运行完成后返回的结果如下:
...... --- Running PIR pass [inplace_pass] I0423 09:51:42.250245 4644 print_statistics.cc:50] --- detected [1] subgraphs! I0423 09:51:42.250334 4644 analysis_predictor.cc:1186] ======= pir optimization completed ======= I0423 09:51:42.261358 4644 pir_interpreter.cc:1640] pir interpreter is running by trace mode ... input data: 北京的涮肉,重庆的火锅,成都的小吃都是极具特色的美食。 The model detects all entities: entity: 北京 label: LOC pos: [0, 1] entity: 重庆 label: LOC pos: [6, 7] entity: 成都 label: LOC pos: [12, 13] ----------------------------- input data: 乔丹、科比、詹姆斯和姚明都是篮球界的标志性人物。 The model detects all entities: entity: 乔丹 label: PER pos: [0, 1] entity: 科比 label: PER pos: [3, 4] entity: 詹姆斯 label: PER pos: [6, 8] entity: 姚明 label: PER pos: [10, 11] -----------------------------序列标注参数说明
token_cls_infer.py支持的命令行参数与文本分类脚本基本一致,额外多出--model_prefix:
| 参数 | 参数说明 |
|---|---|
--model_dir | 指定部署模型的目录(必填) |
--batch_size | 输入的 batch size,默认为 1 |
--max_length | 最大序列长度,默认为 128 |
--device | 运行的设备,可选范围:['cpu', 'gpu'],默认为'cpu' |
--model_prefix | 模型文件前缀,前缀会分别与PADDLE_INFERENCE_MODEL_SUFFIX和PADDLE_INFERENCE_WEIGHTS_SUFFIX拼接得到模型文件名和参数文件名,默认为'model' |
序列标注脚本源码剖析
从 token_cls_infer.py 的源码可以看到,序列标注的关键差异在于后处理:
- 标签体系:脚本内置
["B-PER", "I-PER", "B-ORG", "I-ORG", "B-LOC", "I-LOC", "O"]共 7 类 BIO 标签,与 MSRA 数据集的实体类别(人名 PER、机构名 ORG、地名 LOC)对应。 - 前处理:
preprocess()会根据isinstance(texts[0], list)判断输入是否已按词切分(is_split_into_words),并将input_ids、token_type_ids转为 int64。 - 实体解码:
postprocess()对每个 token 的 logits 取 argmax 得到标签序列,然后扫描 BIO 标签——遇到B-开始记录实体起点,遇到O或新的B-结束当前实体,最终以{"pos": [start, end], "entity": ..., "label": ...}的形式输出实体列表,再由token_cls_print_ret()打印 "The model detects all entities" 格式的结果。
Serving 服务化部署
服务化部署基于 FastDeploy 的 Triton 兼容服务框架,支持将分词、模型推理、后处理拆分组合为 pipeline 服务,通过 gRPC 对外提供预测能力。示例代码位于 slm/model_zoo/ernie-3.0/deploy/serving。
在服务化部署前,需先确认服务化镜像的软硬件环境要求,并按照 FastDeploy 服务化部署文档拉取对应镜像。
准备模型
以下示例展示如何基于 FastDeploy 完成 ERNIE 3.0 模型在 CLUE Benchmark 的 AFQMC 数据集(文本分类)以及 MSRA_NER 数据集(序列标注)上的服务化部署。按照 ERNIE 3.0 训练文档 分别训练并导出文本分类模型与序列标注模型,并将导出的模型移动到models目录下相应位置。
注意:模型与参数文件必须命名为
model.pdmodel和model.pdiparams。
模型移动好之后,文本分类任务的models目录结构如下:
models ├── ernie_seqcls # 分类任务的 pipeline │ ├── 1 │ └── config.pbtxt # 通过这个文件组合前后处理和模型推理 ├── ernie_seqcls_model # 分类任务的模型推理 │ ├── 1 │ │ ├── model.pdiparams │ │ └── model.pdmodel │ └── config.pbtxt ├── ernie_seqcls_postprocess # 分类任务后处理 │ ├── 1 │ │ └── model.py │ └── config.pbtxt └── ernie_seqcls_tokenizer # 预处理分词 ├── 1 │ └── model.py └── config.pbtxt序列标注任务的models目录结构如下:
models ├── ernie_tokencls # 序列标注任务的 pipeline │ ├── 1 │ └── config.pbtxt # 通过这个文件组合前后处理和模型推理 ├── ernie_tokencls_model # 序列标注任务的模型推理 │ ├── 1 │ │ ├── model.pdiparams │ │ └── model.pdmodel │ └── config.pbtxt ├── ernie_tokencls_postprocess # 序列标注任务后处理 │ ├── 1 │ │ └── model.py │ └── config.pbtxt └── ernie_tokencls_tokenizer # 预处理分词 ├── 1 │ └── model.py └── config.pbtxt从目录结构可以看出,每个任务被拆成四个模型单元:_tokenizer(Python 后端执行分词预处理)、_model(FastDeploy 后端执行模型推理)、_postprocess(Python 后端执行后处理)、以及无后缀的 pipeline 名(通过ensemble_scheduling把前三者串成完整推理流程)。
拉取并运行镜像
# x.y.z 为镜像版本号,需参照 serving 文档替换为数字 # GPU 镜像 docker pull registry.baidubce.com/paddlepaddle/fastdeploy:x.y.z-gpu-cuda11.4-trt8.4-21.10 # CPU 镜像 docker pull registry.baidubce.com/paddlepaddle/fastdeploy:x.y.z-cpu-only-21.10 # GPU 运行 nvidia-docker run -it --net=host --name fastdeploy_server --shm-size="1g" -v /path/serving/models:/models registry.baidubce.com/paddlepaddle/fastdeploy:x.y.z-gpu-cuda11.4-trt8.4-21.10 bash # CPU 运行 docker run -it --net=host --name fastdeploy_server --shm-size="1g" -v /path/serving/models:/models registry.baidubce.com/paddlepaddle/fastdeploy:x.y.z-cpu-only-21.10 bash注意:启动服务时,Server 的每个 Python 后端进程默认申请 64M 内存,默认启动的 Docker 容器无法启动多个 Python 后端节点。有两种解决方案:
- 启动容器时设置
shm-size参数(如上面的命令,--shm-size="1g")。 - 启动服务时设置 Python 后端的
shm-default-byte-size参数,将 Python 后端的默认内存降为 10M:
fastdeployserver --model-repository=/models --backend-config=python,shm-default-byte-size=10485760部署模型:启动服务
serving 目录包含启动 pipeline 服务的配置和发送预测请求的代码,包括:
models # 服务化启动需要的模型仓库,包含模型和服务配置文件 seq_cls_grpc_client.py # AFQMC 分类任务发送 pipeline 预测请求的脚本 token_cls_grpc_client.py # 序列标注任务发送 pipeline 预测请求的脚本分类任务
在容器内执行下面命令启动服务:
# 默认启动 models 下所有模型 fastdeployserver --model-repository=/models # 可通过参数只启动分类任务 fastdeployserver --model-repository=/models --model-control-mode=explicit --load-model=ernie_seqcls服务启动成功后的输出打印如下:
I0209 09:15:49.314029 708 model_repository_manager.cc:1183] successfully loaded 'ernie_seqcls_model' version 1 I0209 09:15:49.314917 708 model_repository_manager.cc:1022] loading: ernie_seqcls:1 I0209 09:15:49.417014 708 model_repository_manager.cc:1183] successfully loaded 'ernie_seqcls' version 1 ... I0209 09:15:49.417394 708 server.cc:549] +------------+---------------------------------------------------------------+--------+ | Backend | Path | Config | +------------+---------------------------------------------------------------+--------+ | python | /opt/tritonserver/backends/python/libtriton_python.so | {} | | fastdeploy | /opt/tritonserver/backends/fastdeploy/libtriton_fastdeploy.so | {} | +------------+---------------------------------------------------------------+--------+ I0209 09:15:49.417552 708 server.cc:592] +--------------------------+---------+--------+ | Model | Version | Status | +--------------------------+---------+--------+ | ernie_seqcls | 1 | READY | | ernie_seqcls_model | 1 | READY | | ernie_seqcls_postprocess | 1 | READY | | ernie_seqcls_tokenizer | 1 | READY | +--------------------------+---------+--------+序列标注任务
在容器内执行下面命令启动序列标注服务(同时演示 shm 内存参数的用法):
fastdeployserver --model-repository=/models --model-control-mode=explicit --load-model=ernie_tokencls --backend-config=python,shm-default-byte-size=10485760输出打印如下:
I0209 09:15:49.314029 708 model_repository_manager.cc:1183] successfully loaded 'ernie_tokencls_model' version 1 I0209 09:15:49.314917 708 model_repository_manager.cc:1022] loading: ernie_tokencls:1 I0209 09:15:49.417014 708 model_repository_manager.cc:1183] successfully loaded 'ernie_tokencls' version 1 ... I0209 09:15:49.417394 708 server.cc:549] +------------+---------------------------------------------------------------+--------+ | Backend | Path | Config | +------------+---------------------------------------------------------------+--------+ | python | /opt/tritonserver/backends/python/libtriton_python.so | {} | | fastdeploy | /opt/tritonserver/backends/fastdeploy/libtriton_fastdeploy.so | {} | +------------+---------------------------------------------------------------+--------+ I0209 09:15:49.417552 708 server.cc:592] +----------------------------+---------+--------+ | Model | Version | Status | +----------------------------+---------+--------+ | ernie_tokencls | 1 | READY | | ernie_tokencls_model | 1 | READY | | ernie_tokencls_postprocess | 1 | READY | | ernie_tokencls_tokenizer | 1 | READY | +----------------------------+---------+--------+客户端请求
客户端请求既可以在本地执行脚本发起,也可以在容器内执行。本地执行脚本需要先安装依赖:
pip install grpcio pip install tritonclient[all] # 如果 bash 无法识别括号,可以使用如下指令安装: pip install tritonclient\[all\]分类任务
注意:执行客户端请求时关闭代理,并根据实际情况修改脚本main函数中的 ip 地址(即启动服务所在的机器)。
python seq_cls_grpc_client.py输出打印如下:
{'label': array([0, 0]), 'confidence': array([0.54437345, 0.98503494], dtype=float32)} acc: 0.7224281742354032从 seq_cls_grpc_client.py 的源码可以看到,客户端通过tritonclient.grpc.InferenceServerClient连接服务地址(默认localhost:8001),将文本以BYTES类型封装为InferInput发送请求,并通过test_afqmc_dataset()加载 CLUE AFQMC 的 dev 集(load_dataset("clue", "afqmc", splits="dev"))批量评估准确率,最终打印acc。
序列标注任务
同样注意执行客户端请求时关闭代理,并根据实际情况修改main函数中的 ip 地址。
python token_cls_grpc_client.py输出打印如下:
input data: 北京的涮肉,重庆的火锅,成都的小吃都是极具特色的美食。 The model detects all entities: entity: 北京 label: LOC pos: [0, 1] entity: 重庆 label: LOC pos: [6, 7] entity: 成都 label: LOC pos: [12, 13] input data: 乔丹、科比、詹姆斯和姚明都是篮球界的标志性人物。 The model detects all entities: entity: 乔丹 label: PER pos: [0, 1] entity: 科比 label: PER pos: [3, 4] entity: 詹姆斯 label: PER pos: [6, 8] entity: 姚明 label: PER pos: [10, 11]服务配置与引擎切换
服务端各模型单元的config.pbtxt决定了推理引擎与调度方式。以仓库中 ernie_seqcls_model/config.pbtxt 为例,其关键配置包括:
backend: "fastdeploy":指定模型推理使用 FastDeploy 后端;max_batch_size: 64:最大动态批大小;input/output:声明input_ids(TYPE_INT64)、token_type_ids(TYPE_INT64)两个输入,以及linear_75.tmp_1(TYPE_FP32,dims 为[2])输出——该输出名需按实际导出模型的输出 tensor 名称修改;instance_group:设置实例数量与设备类型(KIND_GPU/KIND_CPU);optimization.execution_accelerators:配置加速器,如 CPU 上使用 paddle 加速并设置cpu_threads。
而 ernie_seqcls/config.pbtxt 通过platform: "ensemble"与ensemble_scheduling将 tokenizer(输出tokenizer_input_ids、tokenizer_token_type_ids)、模型推理(输出OUTPUT_2)、后处理(输出label、confidence)三级串联,完成从原始文本TEXT/TEXT_PAIR到预测结果的完整 pipeline。
仓库内 Python 后端的实现同样值得参考:ernie_seqcls_tokenizer/1/model.py 以TritonPythonModel类在initialize()中加载AutoTokenizer.from_pretrained("ernie-3.0-medium-zh", use_fast=True),在execute()中对请求文本批量执行max_length=128的 padding/truncation 编码。
当前分类任务默认配置在 GPU 上运行(instance_group.kind: KIND_GPU),序列标注任务默认配置也有相应的引擎预设。如果要在 CPU/GPU 或其他推理引擎上运行,需要修改对应config.pbtxt的instance_group、optimization与backend配置,详情可参考 FastDeploy 服务化的模型配置文档。
延伸:基于 PaddleNLP SimpleServing 的轻量部署
除了 FastDeploy 的 Triton 服务化方案,仓库还在 slm/model_zoo/ernie-3.0/deploy/simple_serving 提供了基于 PaddleNLP SimpleServing 的轻量服务化部署方式,适合快速验证。使用具有 SimpleServing 功能的 PaddleNLP 版本即可。
文本分类服务:
# 启动文本分类 Server 服务 paddlenlp server server_seq_cls:app --host 0.0.0.0 --port 8189 # 分类任务发送请求 python client_seq_cls.py --dataset afqmc命名实体识别服务:
# 启动命名实体识别 Server 服务 paddlenlp server server_token_cls:app --host 0.0.0.0 --port 8189 # 命名实体识别 Client 发送请求 python client_token_cls.py问答服务:
# 启动问答 Server 服务 paddlenlp server server_qa:app --host 0.0.0.0 --port 8189 # 问答 Client 发送请求 python client_qa.pySimpleServing 还支持在 client 端动态设置max_seq_len与batch_size参数:
data = { 'data': { 'text': texts, 'text_pair': text_pairs if len(text_pairs) > 0 else None }, 'parameters': { 'max_seq_len': args.max_seq_len, 'batch_size': args.batch_size } }该方案启动命令简洁(一条paddlenlp server即可拉起服务),适合原型验证;而 FastDeploy Serving 方案支持多后端引擎与 Python 前后处理编排,更适合生产级多模型、多实例的服务场景。
相关文档
- ERNIE 3.0 模型详细介绍与训练文档:了解在线蒸馏技术、模型效果与训练/导出流程
- FastDeploy ERNIE 3.0 Python 部署示例:文本分类与序列标注直连部署
- FastDeploy ERNIE 3.0 Serving 部署示例:服务化部署模型仓库与 gRPC 客户端
- SimpleServing 服务化部署:轻量 HTTP 服务化方案
- 人工智能
- 大模型
- 预训练
- 微调
- LoRA
- RLHF
- 强化学习
- 分布式训练
【免费下载链接】PaddleNLP
Easy-to-use and powerful LLM and SLM library with awesome model zoo.
相关推荐
PaddleNLP 中 ERNIE 3.0 基于 FastDeploy Serving 的服务化部署实战(文本分类与序列标注)
PaddleNLP 中 ERNIE 3.0 基于 FastDeploy Serving 的服务化部署实战(文本分类与序列标注) 本指南以 PaddleNLP 仓
人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLPPaddleNLP 中 ERNIE 3.0 模型的 FastDeploy Python 部署实战:文本分类与序列标注推理指南
PaddleNLP 中 ERNIE 3.0 模型的 FastDeploy Python 部署实战:文本分类与序列标注推理指南 本文围绕 slm/model_zo
人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLPPaddleNLP 多分类文本分类实战指南:基于 ERNIE 3.0 轻量级模型微调的全流程方案
PaddleNLP 多分类文本分类实战指南:基于 ERNIE 3.0 轻量级模型微调的全流程方案 文本分类是 NLP 落地最广泛的任务之一,本指南以 Paddl
人工智能大模型预训练微调LoRARLHF强化学习分布式训练模型推理服务推理引擎模型量化模型压缩本地部署NLP
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考