赞
踩
第一章 Qwen微调
作者在微调Qwen时遇到的一些坑以及一点经验 作者在微调Qwen时遇到的一些坑以及一点经验
官方链接: Github-Qwen
夸克网盘链接: Qwen,提取码:SYXe
示例:
[
{
"id": "identity_0",
"conversations": [
{
"from": "user",
"value": "你好"
},
{
"from": "assistant",
"value": "我是一个语言模型,我叫通义千问。"
}
]
},
{
"id": "identity_1",
"conversations": [
{
"from": "user",
"value": "你是谁?"
},
{
"from": "assistant",
"value": "我是一个语言模型,我叫通义千问。"
}
]
}
]
脚本路径:
Qwen-main/finetune/finetune_lora_single_gpu.sh
部分参数说明:
MODEL:模型路径
DATA:自定义数据集路径
output_dir:输出模型路径
num_train_epochs: 设置训练的轮数
model_max_length:模型处理序列长度,根据自身数据定义
per_device_train_batch_size: 训练批处理大小设置
save_steps: 模型每n步保存一次
执行命令:
bash finetune/finetune_lora_single_gpu.sh
脚本路径:
Qwen-main/finetune/finetune_lora_ds.sh
部分参数说明:
MODEL:模型路径
DATA:自定义数据集路径
GPUS_PER_NODE:置每个节点上GPU的数量。在分布式训练环境中,这用于定义每个节点上可用的GPU数目。
output_dir:输出模型路径
num_train_epochs: 设置训练的轮数
model_max_length:模型处理序列长度,根据自身数据定义
per_device_train_batch_size: 训练批处理大小设置
save_steps: 模型每n步保存一次
多卡限定设置(如果你GPU不支持NCCL请加上以下设置,例如:RTX3090):
export CUDA_DEVICE_MAX_CONNECTIONS=1
设置CUDA设备最大连接数为1。这可能用于限制一个CUDA设备上的并行处理任务数量。
export NCCL_IB_DISABLE=1
禁用NCCL(NVIDIA Collective Communications Library)的InfiniBand支持。
export NCCL_P2P_DISABLE=1
禁用NCCL的点对点(Peer-to-Peer)通信。
执行命令:
bash finetune/finetune_lora_ds.sh
脚本路径(官方未直接提供脚本文件,需通过链接下载获取):
Qwen-main/merger_model.py
参数说明:
path_to_adapter:模型输出路径或其中某个checkpoint路径
new_model_directory:合并结果路径
文件迁移:
合并后会有一些文件未在合并后的目录中,去源模型文件中将文件复制到合并后的目录
以Qwen-7B为例:
cache_autogptq_cuda_256.cpp
cache_autogptq_cuda_kernel_256.cu
qwen.tiktoken
tokenization_qwen.py
tokenizer_config.json
脚本路径:
Qwen-main/web_demo.py
工作随笔,希望可以帮助到大家!
如有不足之处,请多多指教!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。