searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

模型格式转换工具试用说明

2024-09-23 09:43:05
5
0

介绍

模型权重格式转换与切分工具能够实现主流开源模型权重在HuggingfaceMegatron框架间的转换,并支持Megatron框架下模型权重按照不同的DPTPPP并行策略进行切分。

如何使用

推荐基于model-convert镜像使用

docker pull harbor.ctyuncdn.cn/ai-algorithm-dmx/nvidia-model-conver

docker run -itd -u root --ipc=host --net=host --name=model-convert   -v /data:/data   harbor.ctyuncdn.cn/ai-algorithm-dmx/nvidia-model-convert:v0.1.3 \

  /bin/bash

cd /work/convert_tool

python model.py     --load_platform=huggingface     --save_platform=megatron     --common_config_path=config/llama-7b.json     --tensor_model_parallel_size=2     --pipeline_model_parallel_size=4     --data_parallel_size=1     --use_distributed_optimizer     --load_ckpt_path=/workspace/tmp/llama-7b-hf/     --save_ckpt_path=/tmp/llama-7b/tp2-pp4/

 

参数说明:

 

--load_platform :指定模型原格式 ['huggingface','megatron','mcore'];

--save_platform :指定模型目标格式 ['huggingface','megatron','mcore'];

--load_ckpt_pathpath to load checkpoint

--save_ckpt_pathpath to save checkpoint

--common_config_pathpath to common config

--megatron_path Base directory of Megatron repository

--no_load_optimdo not convert optimizer

--no_save_optimdo not save optimizer

--model_type_customcustom model type

--safetensors :是否采用safetensor格式

--torch_dtype :数据类型 ["float16", "float32", "bfloat16"],

--vocab_sizevocab size

--use_distributed_optimizeruse distributed optimizer

--tensor_model_parallel_sizedefault=1,target tensor model parallel size

--pipeline_model_parallel_size default=1,target pipeline model parallel size

--data_parallel_size default=1,target data parallel size

--expert_parallel_sizedefault=None,target expert parallel size

--pad_vocab_size_todefault=NonePad the vocab size to this value

--num_layers_per_virtual_pipeline_stagedefault=None,Number of layers per virtual pipeline stage

--num_expertsdefault=None,Number of Experts in MoE (None means no MoE)

--separate-layernorm-and-collinearseparate layernorm and attention/mlp column parallel linear

--huggingface_base_model_path default=None,path to huggingface base model, used for get token files使用示例:

 

huggingface模型转megatron模型

python model_convert.py \
--load_platform=huggingface \
--save_platform=megatron \
--common_config_path=config/llama2-7b.json \
--tensor_model_parallel_size=2 \
--pipeline_model_parallel_size=4 \
--data_parallel_size=1 \
--use_distributed_optimizer \
--load_ckpt_path=/data/models/LLaMA2-7B-Chat/ \
--save_ckpt_path=/work/models/mg/llama2-7b/tp2-pp4/

#其中,load_ckpt_path应替换成需要转换的模型源目录

megatron模型转huggingface模型

python model_convert.py \
--load_platform=megatron \
--save_platform=huggingface \
--common_config_path=config/llama2-7b.json \
--tensor_model_parallel_size=2 \
--pipeline_model_parallel_size=4 \
--data_parallel_size=1 \
--use_distributed_optimizer \
--load_ckpt_path=/work/models/mg/llama2-7b/tp2-pp4/release/ \
--save_ckpt_path=/work/models/hf/llama2-7b/ \
--huggingface_base_model_path=/data/models/LLaMA2-7B-Chat/ \
--safetensors

#其中,load_ckpt_path应替换成需要转换的模型源目录; huggingface_base_model_path 应替换成huggingface 初始模型目录(从hf下载的,包括权重及token等相关文件)

 

0条评论
作者已关闭评论
c****i
2文章数
0粉丝数
c****i
2 文章 | 0 粉丝
c****i
2文章数
0粉丝数
c****i
2 文章 | 0 粉丝
原创

模型格式转换工具试用说明

2024-09-23 09:43:05
5
0

介绍

模型权重格式转换与切分工具能够实现主流开源模型权重在HuggingfaceMegatron框架间的转换,并支持Megatron框架下模型权重按照不同的DPTPPP并行策略进行切分。

如何使用

推荐基于model-convert镜像使用

docker pull harbor.ctyuncdn.cn/ai-algorithm-dmx/nvidia-model-conver

docker run -itd -u root --ipc=host --net=host --name=model-convert   -v /data:/data   harbor.ctyuncdn.cn/ai-algorithm-dmx/nvidia-model-convert:v0.1.3 \

  /bin/bash

cd /work/convert_tool

python model.py     --load_platform=huggingface     --save_platform=megatron     --common_config_path=config/llama-7b.json     --tensor_model_parallel_size=2     --pipeline_model_parallel_size=4     --data_parallel_size=1     --use_distributed_optimizer     --load_ckpt_path=/workspace/tmp/llama-7b-hf/     --save_ckpt_path=/tmp/llama-7b/tp2-pp4/

 

参数说明:

 

--load_platform :指定模型原格式 ['huggingface','megatron','mcore'];

--save_platform :指定模型目标格式 ['huggingface','megatron','mcore'];

--load_ckpt_pathpath to load checkpoint

--save_ckpt_pathpath to save checkpoint

--common_config_pathpath to common config

--megatron_path Base directory of Megatron repository

--no_load_optimdo not convert optimizer

--no_save_optimdo not save optimizer

--model_type_customcustom model type

--safetensors :是否采用safetensor格式

--torch_dtype :数据类型 ["float16", "float32", "bfloat16"],

--vocab_sizevocab size

--use_distributed_optimizeruse distributed optimizer

--tensor_model_parallel_sizedefault=1,target tensor model parallel size

--pipeline_model_parallel_size default=1,target pipeline model parallel size

--data_parallel_size default=1,target data parallel size

--expert_parallel_sizedefault=None,target expert parallel size

--pad_vocab_size_todefault=NonePad the vocab size to this value

--num_layers_per_virtual_pipeline_stagedefault=None,Number of layers per virtual pipeline stage

--num_expertsdefault=None,Number of Experts in MoE (None means no MoE)

--separate-layernorm-and-collinearseparate layernorm and attention/mlp column parallel linear

--huggingface_base_model_path default=None,path to huggingface base model, used for get token files使用示例:

 

huggingface模型转megatron模型

python model_convert.py \
--load_platform=huggingface \
--save_platform=megatron \
--common_config_path=config/llama2-7b.json \
--tensor_model_parallel_size=2 \
--pipeline_model_parallel_size=4 \
--data_parallel_size=1 \
--use_distributed_optimizer \
--load_ckpt_path=/data/models/LLaMA2-7B-Chat/ \
--save_ckpt_path=/work/models/mg/llama2-7b/tp2-pp4/

#其中,load_ckpt_path应替换成需要转换的模型源目录

megatron模型转huggingface模型

python model_convert.py \
--load_platform=megatron \
--save_platform=huggingface \
--common_config_path=config/llama2-7b.json \
--tensor_model_parallel_size=2 \
--pipeline_model_parallel_size=4 \
--data_parallel_size=1 \
--use_distributed_optimizer \
--load_ckpt_path=/work/models/mg/llama2-7b/tp2-pp4/release/ \
--save_ckpt_path=/work/models/hf/llama2-7b/ \
--huggingface_base_model_path=/data/models/LLaMA2-7B-Chat/ \
--safetensors

#其中,load_ckpt_path应替换成需要转换的模型源目录; huggingface_base_model_path 应替换成huggingface 初始模型目录(从hf下载的,包括权重及token等相关文件)

 

文章来自个人专栏
LLM推理
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0