34 KiB
CLI接口
openmind-cli list接口
功能描述
查询并回显本地已下载的模型清单,包括查询模型缓存目录和指定下载目录。
此接口支持PyTorch和MindSpore框架。
接口调用示例
- 遍历查询环境变量所定义的缓存目录下存储的模型。
openmind-cli list
- 遍历查询~/.cache2/openmind/hub目录下缓存的模型。
openmind-cli list --cache_dir ~/.cache2/openmind/hub
注意此处--cache_dir
指定的缓存路径优先级高于环境变量所指定的缓存路径优先级。
- 遍历查询./目录下的模型。
openmind-cli list --local_dir ./
- 遍历查询
--local_dir
和--cache_dir
目录下的模型。
openmind-cli list --local_dir ./ --cache_dir ~/.cache2/openmind/hub
参数列表
-
--cache_dir(
str
,可选,默认为None
):模型缓存下载目录。如不指定,则读取环境变量所定义的缓存下载目录。 -
--local_dir(
str
,可选,默认为None
):模型本地下载目录。若同时指定了--local_dir
和--cache_dir
会同时查询两个目录下的模型。
openmind-cli rm接口
功能描述
删除给定的模型,可以指定模型缓存目录以及本地目录。
此接口支持PyTorch和MindSpore框架。
接口调用示例
- 删除默认缓存路径下的bluelm_7b_chat模型。
openmind-cli rm --repo_id PyTorch-NPU/bluelm_7b_chat
遍历查询默认缓存路径下的bluelm_7b_chat模型,若成功找到,则将其删除,并回显执行结果以及删除模型的原存储路径;如果没有找到,报错反馈给用户。
以下是成功删除的回显示例:
Deleted file path: /root/.cache/openmind/hub/models--PyTorch-NPU-bluelm_7b_chat
File deleted successfully.
- 删除指定缓存路径下的bluelm_7b_chat模型。
openmind-cli rm --repo_id PyTorch-NPU/bluelm_7b_chat --cache_dir ~/.cache2/openmind/hub
遍历查询~/.cache2/openmind/hub目录下的bluelm_7b_chat模型,如找到,则将其删除,注意此处--cache_dir
指定的缓存路径优先级高于环境变量所指定的缓存路径优先级。
- 删除指定本地路径下的bluelm_7b_chat模型。
openmind-cli rm --repo_id PyTorch-NPU/bluelm_7b_chat --local_dir /your/local/path/
遍历查询/your/local/path/目录下的bluelm_7b_chat模型,如找到,则将其删除;如果没有找到,报错反馈给用户。
- 删除指定缓存路径和指定本地路径下的bluelm_7b_chat模型。
openmind-cli rm --repo_id PyTorch-NPU/bluelm_7b_chat --local_dir /your/local/path/ --cache_dir ~/.cache2/openmind/hub
遍历查询--local_dir
和--cache_dir
目录下的bluelm_7b_chat模型,如找到,则将其删除;如果没有找到,报错反馈给用户。
以下是两个路径均存在对应模型的回显示例:
Deleted file path: /your/local/path/models--PyTorch-NPU-bluelm_7b_chat
Deleted file path: /root/.cache2/openmind/hub/models--PyTorch-NPU-bluelm_7b_chat
Files deleted successfully.
参数列表
-
--repo_id (
str
,必选):期望删除的模型名称。 -
--cache_dir(
str
,可选,默认为None
):模型缓存下载目录。如不指定,则读取环境变量所定义的缓存下载目录。 -
--local_dir(
str
,可选,默认为None
):模型本地下载目录。
openmind-cli pull接口
功能描述
下载指定模型/数据集/体验空间至缓存下载目录或本地下载目录。
此接口支持PyTorch和MindSpore框架。
接口调用示例
- 下载PyTorch-NPU/bert_base_cased至默认缓存下载路径。
openmind-cli pull --repo_id PyTorch-NPU/bert_base_cased
以下是成功下载的回显示例:
Pull PyTorch-NPU/bert_base_cased finished
参数列表
-
--repo_id(
str
,必选):待下载的模型/数据集/体验空间ID。 -
--repo_type(
str
,可选,默认为model
):下载的类型,可从model/dataset/space中选择。 -
--revision(
str
,可选,默认为None
):分支名称。 -
--cache_dir(
str
,可选,默认为None
):模型缓存下载目录。如不指定,则读取环境变量所定义的缓存下载目录。 -
--local_dir(
str
,可选,默认为None
):模型本地下载目录。会在local_dir
和环境变量所定义的缓存下载目录中都保存模型,默认由文件大小决定是否创建从local_dir
指向环境变量所定义的缓存下载目录的软链接.symlink文件。 -
--local_dir_use_symlinks(
str
或bool
,可选,默认为auto
):与local_dir
参数一起使用。如果为auto
,则会由文件大小决定是否创建软链接.symlink文件。如果为True
,则会为所有文件创建软链接.symlink文件。如果为False
,则不会为任何文件创建软链接.symlink文件。 -
--resume_download(
bool
,可选,默认为True
):恢复之前中断的下载。 -
--force_download(
bool
,可选,默认为False
):是否强制下载文件,无论缓存是否存在。 -
--token(
str
,可选,默认为None
):若为公开仓库,则可省略;若为私有仓库,则为对目标仓库具有可读权限的访问令牌。 -
--local_files_only(
bool
,可选,默认为False
):设置为True
时,若本地缓存已存在,则直接返回本地路径,而不再重复下载。 -
--allow_patterns(
List[str]
或str
,可选,默认为None
):只允许某类文件下载,如--allow_patterns "['*.bin','*.py']"
表示只下载以.bin和.py结尾的文件,--allow_patterns '*.json'
表示只下载以.json结尾的文件。 -
--ignore_patterns(
List[str]
或str
,可选,默认为None
):忽略某类文件的下载。 -
--max_workers(
int
,可选,默认为8
):并发下载的线程数。
openmind-cli push接口
功能描述
上传指定目录下的内容至指定仓库。
此接口支持PyTorch和MindSpore框架。
接口调用示例
- 将当前目录下的文件上传至your_organization/your_repo仓库。
openmind-cli push --repo_id your_organization/your_repo --token xxx
以下是成功上传的回显示例:
Push to your_organization/your_repo finished
参数列表
-
--repo_id(
str
,必选):待上传的仓库ID。 -
--folder_path(
str
,可选,默认为./
):上传目录路径,上传的内容不包含该目录本身。 -
--path_in_repo(
str
,可选,默认为None
):上传到仓库中的路径,末尾不带“\”,默认为空字符串,代表仓库根目录。 -
--commit_message(
str
,可选,默认为Upload folder using openMind hub
):本次上传的提交信息。 -
--commit_description(
str
,可选,默认为None
):对本次提交的描述。 -
--token(
str
,可选,默认为None
):对目标仓库具有可写权限的访问令牌。若在yaml文件中进行配置,则CLI指令中可省略。 -
--revision(
str
,可选,默认为main
):上传到仓库的指定分支。 -
--allow_patterns(
List[str]
或str
,可选,默认为None
):只允许某类文件上传,如--allow_patterns "['*.bin','*.py']"
表示只上传以.bin和.py结尾的文件,--allow_patterns '*.json'
表示只上传以.json结尾的文件。 -
--ignore_patterns(
List[str]
或str
,可选,默认为None
):忽略某类文件的上传。 -
--num_threads(
int
,可选,默认为5
):上传所使用的线程数目。
openmind-cli run接口
功能描述
进行单次推理。
此接口支持PyTorch和MindSpore框架。实现方式为pipeline,兼容所有pipeline支持的模型。若推理不兼容的模型,pipeline会给出对应模型的报错。
接口调用示例
-
指定魔乐社区中bert_base_cased模型进行单次推理。
openmind-cli run --model PyTorch-NPU/bert_base_cased --input "An apple a day, keeps [MASK] away"
-
指定任务类型进行单次推理。
openmind-cli run --task text-generation --input "What is AI?"
-
指定任务类型 zero-shot-image-classification 进行单次推理。
openmind-cli run --task zero-shot-image-classification --input '{"image":"xxx.jpg","candidate_labels":["2 cats", "a plane", "a remote"]}' --device "npu:0"
参数列表
-
--model(
str
,可选,默认为None
):模型仓库名称或模型本地路径。当model
为None
时task
必须设置,task
会根据对应任务类型自动寻找对应模型。 -
--input(
str
,必选):待输入推理模型的内容或者文件路径。 -
--task(
str
,可选,默认为None
):单次推理的任务类型。当前支持的task类型可参考pipeline当前支持的推理任务及其默认模型。 -
--framework(
str
,可选,默认为None
):单次推理运行依赖的AI框架,支持pt(PyTorch)和ms(MindSpore)。 -
--backend(
transformers
,diffusers
或mindformers
,mindnlp
,mindone
, 可选):后端对接套件名,当framework为pt
时,支持backend配置为transformers
和diffusers
,当framework为ms
时,支持backend配置为mindformers
或mindnlp
,mindone
。 -
--cache_dir(
str
,可选,默认为None
):模型缓存下载目录。如不指定,则读取环境变量所定义的缓存下载目录。 -
--kwargs(
dict
,可选,默认为None
):推理需要的其它参数,具体参数可参考Pipeline API接口中关于kwargs的描述。
需要注意的是,在使用repo_or_task
指定任务类型进行推理时,不可以同时使用--task
参数指定任务类型,即不允许类似openmind-cli run text-generation --task fill-mask
的调用方式。
FAQ:
1.由于原生接口限制,当前openmind-cli run接口执行summarization
任务时,暂不支持--input
参数传入dict
,仅支持--input “your documents”
的形式。
openmind-cli chat接口
功能描述
开启多轮对话,输入exit
退出会话,输入clear
清除上下文对话记忆。
支持模型清单
组织名称 | 模型名称 | 模板名称 | 模型框架 | 依赖后端 |
---|---|---|---|---|
Baichuan | Baichuan2_7b_chat_pt | baichuan2 | PyTorch | transformers == 4.39.2, peft==0.12.0 |
PyTorch-NPU | chatglm3_6b | chatglm3 | PyTorch | transformers == 4.39.2, peft==0.12.0 |
AI-Research | glm-4-9b-chat | glm4 | PyTorch | transformers == 4.43.0 |
AI-Research | Qwen2.5-7B-Instruct | qwen | PyTorch | transformers == 4.45.2 |
AI-Research | qwen1_5_7b_chat_ms | - | MindSpore | mindformers == 1.3.2 |
接口调用示例
-
通过yaml文件解析开启多轮对话。
openmind-cli chat example.yaml
example.yaml
文件示例内容如下:model_name_or_path: Baichuan/Baichuan2_7b_chat_pt # 多轮对话使用的模型 template: baichuan2 device: 0 # 多轮对话模型的运行设备 backend: "transformers" # 多轮对话模型运行依赖的后端
-
通过键值对开启多轮对话。
openmind-cli chat --model_id Qwen2.5-7B-Chat --device 0
-
基于MindSpore框架,使用MindFormers开启多轮对话。
openmind-cli chat --model_name_or_path AI-Research/qwen1_5_7b_chat_ms --backend mindformers --device 0
参数列表
-
--model_id(
str
,可选):openMind Library内置模型ID。 -
--model_name_or_path(
str
,可选):多轮对话模型仓库名称/模型文件本地路径。 -
--backend (
str
,可选,默认为transformers
):推理后端,可以选择transformers
或者mindformers
。 -
--device(
str
/int
,可选,默认为0):运行多轮对话模型所使用的NPU卡号,当前仅支持单卡,backend为transformers
时可选择"cpu"或者0/1/2../7,backend为mindformers
时可选择0/1/2../7。 -
--fp16(
bool
,可选,默认为False
):是否使用fp16格式,仅在backend为transformers
时生效。 -
--bf16(
bool
,可选,默认为False
):是否使用bf16格式,仅在backend为transformers
时生效。 -
--cache_dir(
str
,可选,默认为None
):多轮对话使用模型在本地的缓存路径。 -
--trust_remote_code(
bool
,可选,默认为False
):是否信任从远程下载的模型权重文件。 -
--template(
str
,可选,默认为None
):多轮对话模型使用的模板名称,仅在backend为transformers
时生效,和参数model_name_or_path
配套使用。 -
--tool_format(
str
,可选,默认为None
):构建函数调用的工具类型名称,当前支持default
或glm4
。 -
--default_system(
str
,可选,pt默认为None
,ms默认为"You are a helpful assistant."
):system角色的默认内容。 -
--framework(
str
,可选,默认为pt
):多轮对话运行依赖的AI框架,支持pt(PyTorch)和ms(MindSpore)。 -
--model_revision(
str
,可选,默认为"main"
):模型版本名称,仅在backend为transformers
时生效。 -
--adapter_name_or_path(
str
,可选,默认为None
):多轮对话模型涉及的adapter模型仓库名称/模型文件本地路径,如涉及多个adapter使用逗号分隔,仅在backend为transformers
时生效。 -
--use_fast_tokenizer(
bool
,可选,默认为True
):是否使用快速分词器,仅在backend为transformers
时生效。 -
--resize_vocab(
bool
,可选,默认为False
):是否重新调整分词器词表及嵌入层大小,仅在backend为transformers
时生效。 -
--split_special_tokens(
bool
,可选,默认为False
):是否在分词过程中分离特殊词元,仅在backend为transformers
时生效。 -
--new_special_tokens(
str
,可选,默认为None
):加入分词器的特殊词元,多个词元使用逗号分隔,仅在backend为transformers
时生效。 -
--low_cpu_mem_usage(
bool
,可选,默认为True
):是否使用内存高效的模型加载方式,仅在backend为transformers
时生效。 -
--offload_folder(
str
,可选,默认为None
):离线加载多轮对话模型的本地路径,仅在backend为transformers
时生效。 -
--use_cache(
bool
,可选,默认为True
):是否在生成过程中使用KV缓存,仅在backend为transformers
时生效。 -
--print_param_status(
bool
,可选,默认为False
):为便于调试,打印多轮对话模型的参数信息/状态,仅在backend为transformers
时生效。 -
--do_sample(
bool
,可选,默认为True
):是否进行采样,否则使用greedy decoding
策略,仅在backend为transformers
时生效。 -
--temperature(
float
,可选,默认为0.95
):用于调整下一个预测词元的概率,仅在backend为transformers
时生效。 -
--top_p(
float
,可选,默认为0.7
):保留概率总和达到top_p
或更高的概率最高的一组词元,仅在backend为transformers
时生效。 -
--top_k(
int
,可选,默认为50
):通过top-k算法过滤后保留的最高概率词元的数量,仅在backend为transformers
时生效。 -
--num_beams(
int
,可选,默认为1
):beam search算法的beam数量,设置为1
表示不使用beam search算法,仅在backend为transformers
时生效。 -
--max_length(
int
,可选,pt默认为None
,ms默认为1024
):生成词元的最大长度,在backend为transformers
时,可以被参数--max_new_tokens
覆盖。 -
--max_new_tokens(
int
,可选,默认为1024
):生成词元的最大长度(不包含prompt词元的长度),仅在backend为transformers
时生效。 -
--repetition_penalty(
float
,可选,默认为1.0
):重复生成的惩罚系数,设置为1.0
表示不设置惩罚。 -
--length_penalty(
float
,可选,默认为1.0
):针对生成长度的惩罚系数,与beam search算法协同使用,仅在backend为transformers
时生效。
openmind-cli eval接口
功能描述
使用多种后端框架,对原始模型和训练后的模型给出标准化的评测指标。当前支持的框架为:
- lm-eval
lm-eval
在backend参数选择lmeval
时,使用EleutherAI lm-evaluatin-harness评估LLM,仅支持transformers的AutoModelForCausalLM
和AutoModelForSeq2SeqLM
类模型评估。且该特性目前支持的模型范围有限制,请开发者使用时自行判定推理评估效果。
此接口仅支持PyTorch框架。
当前支持任务列表如下。
- arithmetic
- gsm8k
- mmlu
- mgsm_cot_native
- mgsm_direct
- truthfulqa
- hellaswag
- ai2_arc
接口调用示例
-
使用
ai2_arc
数据集评估Baichuan/Baichuan2_7b_chat_pt
精度。openmind-cli eval --model_name_or_path Baichuan/Baichuan2_7b_chat_pt --device 0 --tasks arithmetic --batch_size 64
-
使用
ai2_arc
数据集,单机多卡评估Baichuan/Baichuan2_7b_chat_pt
精度。export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 openmind-cli eval --model_name_or_path Baichuan/Baichuan2_7b_chat_pt --tasks ai2_arc --batch_size 64
-
打印当前支持的任务(评估集)。
openmind-cli eval --tasks list
以下是执行结果:
Available tasks: - arithmetic - gsm8k - mmlu - mgsm_cot_native - mgsm_direct - truthfulqa - hellaswag - ai2_arc
参数列表
- --model_name_or_path(
str
,必选,默认为None
):本地预训练模型路径或托管在openMind Hub上的模型库中的预训练模型的模型ID。 - --tasks (
str
,必选,默认为None
):指定待评估的任务,使用方式--tasks task1,task2
。 - --backend (
str
,可选,默认为lmeval
):指定评估使用的后端。 - --device(
str
/int
, 可选,默认为0):单卡评估时使用的加速卡,可选值为"cpu"或者0/1/2../7。在单机多卡评估场景下,不需要指定此参数,通过环境变量ASCEND_RT_VISIBLE_DEVICES
控制使用的npu卡数。ASCEND_RT_VISIBLE_DEVICES
用法请参考环境变量说明。 - --limit(
int
,可选,默认为None
):指定每个任务使用的样本数,此参数只用于限定样本数减少评估时间,用于验证功能是否正常,不支持评估模型能力。 - --trust_remote_code(
str
,可选,默认为True
):指定是否允许执行openMind Hub上定义的模型等代码。 - --batch_size(
str
,可选,默认为1
):指定评估模型时的batch_size
。 - --fp16(
bool
,可选,默认为False
):模型加载是否使用fp16格式。 - --bf16(
bool
,可选,默认为False
):模型加载是否使用bf16格式。
需要注意的是,--fp16
和--bf16
均为False
时,dtype
默认为auto
。
openmind-cli deploy接口
功能描述
在单机环境下部署openai接口服务。
支持模型清单
组织名称 | 模型名称 | 模型框架 | 推理引擎 | 支持服务器型号 |
---|---|---|---|---|
AI-Research | internlm2-7b | PyTorch | lmdeploy | Atlas 200T A2 Box16, Atlas 900 A2 PODc |
AI-Research | internlm2_5-7b | PyTorch | lmdeploy | Atlas 200T A2 Box16, Atlas 900 A2 PODc |
AI-Research | Qwen2-7B | PyTorch | lmdeploy | Atlas 200T A2 Box16, Atlas 900 A2 PODc |
MindIE | llama2_7b | PyTorch | mindie | Atlas 200T A2 Box16, Atlas 900 A2 PODc |
MindIE | llama3.1_8b | PyTorch | mindie | Atlas 200T A2 Box16, Atlas 900 A2 PODc |
vLLM推理引擎支持模型清单请参考vllm-ascend支持模型清单。
接口调用示例
LMDeploy
-
从魔乐社区上获取模型
AI-Research/Qwen2-7B
在默认端口1025上进行部署。openmind-cli deploy --model_name_or_path AI-Research/Qwen2-7B --backend lmdeploy
-
使用本地
Qwen2-7B
模型在指定端口1025上进行部署。openmind-cli deploy --model_name_or_path /path/to/your/Qwen2-7B --backend lmdeploy --port 1025
MindIE
-
从魔乐社区上获取模型
MindIE/llama2_7b
在默认端口1025上进行部署。openmind-cli deploy --model_name_or_path MindIE/llama2_7b --backend mindie
-
使用本地
llama2_7b
模型在指定端口1025上进行部署,指定0,1号卡。openmind-cli deploy --model_name_or_path /path/to/your/llama2_7b --backend mindie --port 1025 --world_size 2 --npu_device_ids '0,1'
-
停止MindIE服务
openmind-cli deploy stop
vLLM
-
从魔乐社区上获取模型
AI-Research/Qwen2.5-7B
在默认端口1025上进行部署。openmind-cli deploy --model_name_or_path AI-Research/Qwen2.5-7B --backend vllm
-
使用本地
Qwen2.5-7B
模型在指定端口1025上进行多卡部署,指定0,1,2,3号卡,指定模型权重和激活的数据类型为bf16。ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 openmind-cli deploy \ --model_name_or_path /path/to/your/Qwen2.5-7B \ --backend vllm \ --port 1025 \ --backend_config "tensor-parallel-size=4,dtype=bfloat16"
参数列表
openmind-cli deploy model_name_or_path [--backend {mindie, lmdeploy, vllm}] [--port server_port] [--world_size world_size] [--device device] [--trust_remote_code {True, False}] [--backend_config vllm_args]
或者
openmind-cli deploy stop
- --model_id(
str
,可选,默认为None
): openMind Library内置模型ID,支持backend为lmdeploy
或者vllm
。 - --model_name_or_path(
str
,可选,默认为None
):部署模型路径,支持魔乐社区模型ID或模型权重本地路径。当backend为mindie时,本地的模型来源必须为下载清单中的模型的本地路径。 - --backend (
str
,可选,默认为mindie
):推理引擎,可以选择mindie
、lmdeploy
或者vllm
。 - --port(
int
,可选,默认为1025
):部署端口。 - --world_size(
int
,可选,默认为1
):部署使用的npu卡的world_size,在backend为mindie
时生效。world_size需要与npu_device_ids中指定的卡数目一致。 - --device(
str
,可选,默认为0
):部署使用的npu卡号,在backend为mindie
时生效。world_size需要与device中指定的卡数目一致。如果是需要部署多卡,传入格式如"0,1,2,3"。 - --trust_remote_code(
bool
,可选,默认为False
):是否信任从远程下载的模型权重文件。 - --backend_config(
str
,可选,默认为None
):在backend为vllm
时生效,支持传入复数后端自定义参数(不同参数之间使用,
隔开),格式参考"tensor-parallel-size=4,dtype=bfloat16"
,支持输入json格式参数(注意使用单引号防止读取错误),格式参考'rope-scaling={"rope_type":"dynamic","factor":2.0}'
,如:- tensor-parallel-size(
int
,可选,默认为1
):张量并行数,注意确保有足够的可用卡数,建议与ASCEND_RT_VISIBLE_DEVICES
环境变量配套使用在指定卡上多卡部署。 - dtype(
str
,可选,默认为auto
):模型权重和激活的数据类型,可选auto
,half
,float16
,bfloat16
,float
,float32
。 - 更多支持参数见vllm引擎参数.
- tensor-parallel-size(
- 使用
stop
命令可以停止MindIE的部署服务。
FAQ
1.使用MindIE推理部署功能时,需要保证宿主机上ID是1001的用户(默认是HwHiAiUser
)可以使用设备,即可以执行npu-smi info命令,正确识别设备。如果ID为1001的用户无法使用npu-smi info,需要重装驱动并添加--install-for-all
参数。
2.使用MindIE推理部署功能时,需要保证权重的路径是可用的,并且权限符合要求。可以执行以下命令修改权限:
chown -R HwHiAiUser:HwHiAiUser path/to/model_weights
chmod -R 750 path/to/model_weights
3.使用MindIE推理部署功能时,在同一台宿主机上仅支持部署一个MindIE服务。
4.使用LMDeploy和vLLM部署功能时,用户可通过配置ASCEND_RT_VISIBLE_DEVICES
环境变量控制使用的npu卡,其中LMDeploy仅支持单卡部署。ASCEND_RT_VISIBLE_DEVICES
用法请参考环境变量说明。
openmind-cli env接口
功能描述
openmind-cli env
用于列出当前的运行环境(安装的依赖库)。
接口调用示例
-
列出当前运行环境安装的依赖库。
openmind-cli env
以下是显示结果示例:
- `openmind` version: 0.9.1 - `openmind_hub` version: 0.9.0 - Platform: Linux-4.19.90-vhulk2111.1.0.h963.eulerosv2r10.aarch64-aarch64-with-glibc2.34 - Python version: 3.10.13 - PyTorch version (NPU?): 2.1.0 (2.1.0.post8) - MindSpore version: not installed - MindFormers version: not installed - Transformers version: 4.43.3 - Accelerate version: 0.30.1 - Datasets version: 2.20.0 - Evaluate version: 0.4.2 - DeepSpeed version: not installed - Lm-evaluation-harness version: 0.4.3
openmind-cli train接口
功能描述
实现模型微调训练。
参数列表
参数名 | 描述 | 类型 | 默认值 | 是否可选 |
---|---|---|---|---|
stage | 训练阶段。可选: pt, sft, rm, dpo。 | str | sft | 可选 |
finetuning_type | 微调方式。可选: full, lora。 | str | full | 可选 |
lora_target_modules | 采取LoRA方法的目标模块。 | str | None | 可选 |
lora_alpha | LoRA微调的缩放因子。 | int | None | 可选 |
lora_dropout | LoRA微调的丢弃率,取值范围为[0, 1)。 | float | 0.0 | 可选 |
lora_rank | LoRA微调的秩。 | int | 8 | 可选 |
load_in_4bit | 支持QLoRA微调时使用4bit精度。 | bool | False | 可选 |
use_dora | 是否使用DoRA。 | bool | False | 可选 |
init_lora_weights | LoRA微调的权重初始化方法。只支持pissa_niter_[num of iters]。 | str | True | 可选 |
sequence_parallel_size | 处理一个训练数据序列的计算设备的数量。 | int | 1 | 可选 |
model_id | 模型ID。 | str | - | 可选 |
model_name_or_path | 模型本地路径或者hub的repo_id。 | str | - | 可选 |
trust_remote_code | 是否信任从远程下载的配置文件。 | bool | False | 可选 |
cache_dir | 模型下载的缓存路径。 | str | None | 可选 |
token | 私仓权重token。 | str | None | 可选 |
model_revision | 指定模型版本。 | str | main | 可选 |
use_fast_tokenizer | 是否使用fast tokenizer。 | bool | False | 可选 |
split_special_tokens | 是否拆分特殊token。 | bool | False | 可选 |
new_special_tokens | 要添加到tokenzier中的特殊token。 | str | None | 可选 |
resize_vocab | 是否调整tokenizer词汇表的大小。 | bool | False | 可选 |
use_gradient_checkpointing | 是否使用gradient checkpointing。 | bool | True | 可选 |
dataset | 数据集名称,支持传入多个不同的数据集,以","进行分割。 | str | None | 必选 |
custom_dataset_info | 传入的外置数据集配置文件的绝对路径。 | str | None | 可选 |
split | 数据集基于split筛选子数据集 | str | Train | 可选 |
subset_name | 数据集的子数据集名称。 | str | None | 可选 |
preprocessing_num_workers | 用于数据处理的进程数。 | int | None | 可选 |
preprocessing_batch_size | 数据处理的批大小。 | int | 1000 | 可选 |
cutoff_len | 数据集经过encode编码后的截止长度。 | int | 1024 | 可选 |
max_length | 数据集经过encode编码后padding最大长度。 | int | None | 可选 |
reserved_label_len | 要将检查点保存到的输出目录。 | int | 1 | 可选 |
ignore_pad_token_for_loss | 检查点保存的迭代间隔。 | bool | True | 可选 |
同时openmind-cli train
继承了transformers库的Seq2SeqTrainingArguments
类。用户可参考官方文档,了解更多训练参数配置。
更多使用细节可参考训练参数。
openmind-cli export接口
功能描述
实现LoRA权重合并。
参数列表
参数名 | 描述 | 类型 | 默认值 | 是否可选 |
---|---|---|---|---|
model_id | 模型ID。如果用户训练时使用了该参数,合并时请使用此参数,保证基础模型的一致。 | str | - | 可选 |
model_name_or_path | 模型本地路径或者hub的repo_id。如果用户训练时使用了该参数,合并时请使用此参数,保证基础模型的一致。 | str | - | 可选 |
adapter_name_or_path | 训练后的适配器权重路径,可设置单个路径,也可以设置, 分隔的多个适配器权重路径。 |
str | - | 必选 |
output_dir | 合并后权重保存路径。 | str | - | 必选 |
trust_remote_code | 是否信任transformers未集成的基础模型文件。 | bool | False | 可选 |
cache_dir | 基础模型下载的缓存路径。 | str | None | 可选 |
model_revision | 指定基础模型版本。 | str | main | 可选 |
per_shard_size | 合并过程中单个分片的大小,1代表单个模型文件最大为1GB,如果不设置默认为5GB。 | int | None | 可选 |
token | 私仓权重token。 | str | None | 可选 |
device | 设置加载模型的device。可选择"cpu"或者0/1/2..../7。 | str或int | 0 | 可选 |
fp16 | 模型加载是否使用fp16格式。 | bool | False | 可选 |
bf16 | 模型加载是否使用bf16格式。 | bool | False | 可选 |
需要注意的是,--fp16
和--bf16
均为False
时,默认采用模型config.json
文件中的dtype
。
更多使用细节可参考模型量化与合并。