快速导入并部署第三方模型
更新时间:2024-10-10
目录
为了便于您快速了解自定义模型的导入及发布,您可以按照以下步骤进行相关操作。
前提准备
- 需要您提前开通对象存储BOS服务。
支持范围
- 平台支持HuggingFace>Transformers架构的文生文模型,您可提前在官网 下载,并上传至BOS。
- 支持的Transformers的版本为4.34.0、4.36.2、4.39.3和4.40.2
- 如您导入qwen1.5系列模型,支持:
- Transformers 4.36.2(不支持SFT)
- Transformers 4.39.3(不支持SFT)
- Transformers 4.34.0
- 平台支持内测用户导入ERNIE系列模型,请您务必确认基础模型类型、压缩方式、模型静态图文件格式准确,并向模型提供方确认加解密权限已赋予本平台、确认Paddle架构版本为5.x。
- 平台支持本地全量参数微调后模型导入。
导入模型
登录到本平台,在左侧功能列模型管理中选择我的模型,进入创建模型的主任务界面。
- 点击“创建模型”按钮,进行模型新建,填写以下基本信息:
2.选择已完成的训练任务及运行,创建一个新的模型版本,具体字段包括:
- 模型版本:平台自动生成,版本号从V1起递增。
- 模型版本描述:非必填项,自定义的版本描述,记录模型的业务场景、使用方式等信息。
- 模型来源选择BOS,填写相应的Bucket和模型地址。模型需要提前上传到BOS平台,可以登录BOS控制台或者使用BOS工具上传。
导入ERNIE系列模型
本功能当前仅对内测用户公开,您可以时刻保持对官网动态的关注。
导入模型的支持范围:
基础模型版本 | 采样策略 | 精度 |
---|---|---|
ERNIE-BLM-4K | 束搜索 Beam Search,需自定义num_beams | WINT8 |
ERNIE-BLM-Chat-8K | 多项式采样 Multinomial Sampling | WINT8 |
ERNIE-BLM-Pro-8K | 束搜索 Beam Search,需自定义num_beams | WINT8 |
ERNIE-BLM-Tiny-8K | 束搜索 Beam Search,需自定义num_beams | WINT8 |
ERNIE-Character-8K-0321 | 多项式采样 Multinomial Sampling | WINT8、BF16 |
ERNIE-Code2-16K | 多项式采样 Multinomial Sampling | INT8-PTQ |
ERNIE-Lite-128K-0419 | 多项式采样 Multinomial Sampling | WINT8、INT8-PTQ |
ERNIE-Lite-8K-0308 | 多项式采样 Multinomial Sampling | INT8-PTQ、WINT8、BF16 |
ERNIE-Speed-8K | 多项式采样 Multinomial Sampling | WINT8、BF16 |
ERNIE-Tiny-8K | 多项式采样 Multinomial Sampling | BF16 |
ERNIE-Tiny-128K-0929 | 多项式采样 Multinomial Sampling | WINT8 |
以上名词释义可查看常用概念。
- 支持导入的模型格式包含 原始格式(bf16)、压缩格式(wint8、ptq)。注当前ERNIE-Tiny-8K和ERNIE-Tiny-128K-0929暂不支持压缩格式。
- 在同一模型下导入不同版本的模型,需要保障不同版本的模型格式、基础底座模型保持相同,否则模型部署更新版本的时候将可能导致服务部署失败。
-
speed、lite、tiny模型是从本平台或者其他环境导出以后,目录文件说明如下:
- 目录
1
:为模型文件,该目录下包含rank_0
目录,可以直接将目录1
导入bos。本质是只需要将包含rank_0
目录的上级目录,导入BOS。 - 目录
raw
:为checkpoint文件目录,不需要导入bos。 - 假定导入的bos目录为:/testmc/ernie-import/1,则导入目录选择为/testmc/ernie-import/1/,如下图所示:
- 目录
- 假定code2模型目录名称为code2-model,该目录下包含rank_0目录和config.json等文件。则只需要上传code2-model目录。目录即文件示意:
code2-model/rank_0/
,code2-model/config.json
导入HF系列模型
- 输入输出模式多轮对话chat模型选择【对话模式】,单轮问答模型选择【续写模式】
- 如果您选择对话模式还需配置历史对话和当前问题的prompt:平台将根据此配置自动拼接当前用户问题和历史轮次问答,方便用户在线测试或接入对话类应用。
- 两种模式都支持【高级配置】,默认示例如下:
{
"load_model_class": "AutoModelForCausalLM",
"load_tokenizer_class": "AutoTokenizer",
"enable_auto_batch": true,
"custom_end_str": "",
"token_decode_return_blank": true,
"tokenizer_special_tokens": {}
}
更多关注事项,可查看自定义HF导入模型高级参数详细说明。
注:高级参数说明
- load_model_class:模型加载类,用于加载transformers模型;默认值 AutoModelForCausalLM
- load_tokenizer_class:tokenizer加载类,用于加载模型;默认值 AutoTokenizer
- enable_auto_batch:处理请求时,是否支持auto batch;是否开启auto batch推理,增加服务吞吐;若模型batch推理不兼容,开启后可能导致效果有误;默认值:true;
- custom_end_str:自定义生成结束字符串;防止模型不断生成;默认为空值,表示不设置;
- token_decode_return_blank: 指定英文token解码后是否带有空格,设置为false时,平台会在英文单词间加入空格;默认值为true;
- tokenizer_special_tokens:选填,需要添加到tokenizer的特殊token;例如 {"pad_token": "[PAD]"}
导入示例
多轮对话chat模型导入
示例模型:chatglm2-6b-int4
详细信息可参考示例模型。
在输入输出模式中选择【对话模式】,prompt配置如下
- 当前问题拼接规范: [Round {round}]\n\n问:{question}\n\n答:
- 历史问答拼接规范: [Round {round}]\n\n问:{question}\n\n答:{answer}\n\n
- 外层Prompt模板: {input}
高级配置:
{
"load_model_class": "AutoModel",
"token_decode_return_blank": false
}
单轮问答模型导入
示例模型:sqlcoder
详细信息可参考示例模型。
在输入输出模式中选择【续写模式】。
其中高级配置使用默认配置。
本地全量参数微调后模型导入
示例模型:chatglm2-6b全量参数微调模型
- 在我的模型中选择创建模型,按照下图所示填写基本信息。
- 模型配置项,填写模型上传BOS的Bucket地址,本地全量参数微调以后的chatglm2-6b模型应该提前上传至此文件夹。
- 选择输入输出模式为对话模式,保存对话模式的默认配置。
- 打开高级配置,并输入以下配置内容。
{
"custom_end_str": "",
"enable_auto_batch": true,
"load_model_class": "AutoModelForCausalLM",
"load_tokenizer_class": "AutoTokenizer",
"token_decode_return_blank": true,
"tokenizer_special_tokens": {}
}
以上步骤完成后,点击“确定”即可。
更多操作可查看BOS导入模型。
部署服务
部署完毕后进入【我的模型】点击刚导入的模型进入【模型详情】页,模型【版本状态】变成“就绪”说明模型导入成功; 点击【部署】按钮进入【创建服务】。
按下图流程完善服务部署,将服务部署至私有资源池。
更多服务部署操作内容可参考在线服务使用说明。
在线测试
进入【体验中心】页,左上角【选择服务】选择部署的服务,输入框输入请求数据,获取结果。
更多在线测试操作内容可参考体验中心使用说明。