项目介绍:Qwen项目
Qwen项目是一项旨在利用Habana Gaudi处理器(HPU)进行高效模型加载、训练和推理的工具集。它通过与Hugging Face的Transformers和Diffusers库的接口,方便用户在单个或多个HPU环境中执行各种下游任务。其核心价值在于促进Transformer和Diffusers模型在Habana HPUs上的训练与部署。
大家可以通过这里了解如何充分利用Habana HPUs的优势来训练和部署这些模型。
Qwen模型HPU配置
Qwen项目中只包含用于在Habana Gaudi处理器上运行Qwen模型的GaudiConfig
配置文件。需要注意的是,这个配置文件并不包含模型权重,而仅仅是一个指导如何在Gaudi处理器上运行模型的配置。
这个配置文件的作用在于能够指定以下几个参数:
use_fused_adam
:是否使用Habana自定义的AdamW优化算法实现。use_fused_clip_norm
:是否使用Habana的融合梯度范数剪裁操作。use_torch_autocast
:是否使用PyTorch的自动混合精度技术。
使用方法
与Transformers库中的模型实例化方式相同,使用Qwen模型时只需额外考虑一些针对HPU的训练参数。针对具体的语言建模,可以参考这个示例脚本来进行模型的预训练和微调。以下是运行Qwen模型的示例命令:
python3 run_lora_clm.py \
--model_name_or_path Qwen/Qwen2-7B \
--dataset_name tatsu-lab/alpaca \
--bf16 True \
--output_dir ./model_lora_qwen \
--num_train_epochs 3 \
--per_device_train_batch_size 16 \
--evaluation_strategy "no" \
--save_strategy "no" \
--learning_rate 1e-4 \
--warmup_ratio 0.03 \
--lr_scheduler_type "constant" \
--max_grad_norm 0.3 \
--logging_steps 1 \
--do_train \
--do_eval \
--use_habana \
--use_lazy_mode \
--throughput_warmup_steps 3 \
--lora_rank=8 \
--lora_alpha=16 \
--lora_dropout=0.05 \
--lora_target_modules "q_proj" "v_proj" \
--dataset_concatenation \
--max_seq_length 512 \
--low_cpu_mem_usage True \
--validation_split_percentage 4 \
--adam_epsilon 1e-08
执行上述命令之前,需要安装PEFT库,使用命令 pip install peft
。
想要了解更多高级用法和示例,可以查阅相关文档。