当前位置:   article > 正文

H800算力低至5.99元/卡时!抢鲜体验LLaMA3最佳实践就在潞晨云_llama3 云主机

llama3 云主机

由Meta发布的LLaMA3 8B和LLaMA3 70B的,将开源AI大模型推向新的高度。在多个基准测试上的表现均大幅超过已有竞品,成为AI应用的最新优选。

潞晨云现已上架 LLaMA3 8B和LLaMA3 70B从推理到微调和预训练的实践教程

提供免费测试代金券,限时特供H800-80GB-NVLINK低至5.99元/卡时等算力支持。

诚邀感兴趣的用户前来注册体验。

体验地址:https://cloud.luchentech.com/

其中在64卡H100集群上,经过潞晨Colossal-AI优化,相比微软+英伟达方案,可提升LLaMA3 70B的训练性能近20%,推理性能也优于vLLM等方案。

使用潞晨云部署和训练LLaMA3

01创建云主机

新注册用户自动获得代金券额度!

打开算力市场,按照筛选目标算力。

可以看到如图所示的控制台页面,右边是两台可用的服务器,每台上有8块可租用的GPU,我们选择一个,点击“8卡可租”按钮,进入算力市场界面。

在租用配置选择界面,为自己的云主机取一个名字并选择任务所需数量的显卡,LLaMA3 8B推理可以在单卡H800上完成),因此,此处选择1卡H800。

02推理

Colossal-Inference现已适配支持了LLaMA-3推理加速。在潞晨云,您可以选择推理镜像,使用Colossal-Inference进行推理优化提速,体验LLaMA-3的自然语言生成能力。

前期准备

LLaMA-3模型权重已准备好,无需额外安装步骤。

推理生成

运行生成脚本

  1. PRETRAINED_MODEL_PATH="/root/notebook/common_data/Meta-Llama-3-8B" # huggingface or local model path
  2. cd ColossalAI/examples/inference/
  3. colossalai run --nproc_per_node 1 llama_generation.py -m PRETRAINED_MODEL_PATH --max_length 80

进行多卡TP推理,如下例使用两卡生成

colossalai run --nproc_per_node 2 llama_generation.py -m PRETRAINED_MODEL_PATH --max_length 80 --tp_size 2

吞吐脚本

运行吞吐Benchmark测试

  1. PRETRAINED_MODEL_PATH="/root/notebook/common_data/Meta-Llama-3-8B"
  2. git pull # update example benchmark from branch feature/colossal-infer
  3. cd ColossalAI/examples/inference/
  4. python benchmark_llama3.py -m llama3-8b -b 32 -s 128 -o 256 -p PRETRAINED_MODEL_PATH

单卡H100对LLaMA3-8B进行Benchmark结果与vLLM对比(例:输入序列长度128,输出长度256)


 

03微调与继续预训练

我们在原有 LLaMA-2 汉化项目中,支持了 LLaMA-3 的继续预训练与微调。在潞晨云,您可以通过选择训练镜像,快速对 LLaMA-3 进行继续预训练与微调。

前期准备

1. 编译安装 Colossal-AI​

  1. cd /root/ColossalAI
  2. BUILD_EXT=1 pip install .

2. 创建训练需要的文件夹

  1. mkdir /root/training_outputs
  2. mkdir /root/training_outputs/checkpoints
  3. mkdir /root/training_outputs/configs
  4. mkdir /root/training_outputs/tensorboards

3. 修改 hostfile

  1. cd /root/ColossalAI/ColossalAI/applications/Colossal-LLaMA/
  2. cp hostfile.example hostfile

注:可通过 `apt install iproute2 -y` 在镜像中安装 ip addr 指令查看镜像内 ip 地址

​数据准备

当前路径:

/root/ColossalAI/ColossalAI/applications/Colossal-LLaMA/

1. 继续预训练

  1. {"source": "", "target": "Lionel Andrés Messi(Spanish pronunciation: [ljoˈnel anˈdɾes ˈmesi] (i); born 24 June 1987), also known as Leo Messi, is an Argentine professional footballer who plays as a forward for and captains both Major League Soccer club Inter Miami and the Argentina national team.", "category": "sports"}
  2. {"source": "猜谜语:一身卷卷细毛,吃的青青野草,过了数九寒冬,无私献出白毛。(打一动物)", "target": "白羊", "category": "riddle"
  1. python prepare_pretrain_dataset.py \
  2. --data_input_dirs "Directory that contains one or more JSONL file(s)>" \
  3. --tokenizer_dir "Tokenizer directory" \
  4. --data_output_dirs "Spliced tokenized output" \
  5. --max_length 8192 \
  6. --num_spliced_dataset_bins 10

2. 微调

  1. {"messages": [{"from": "human", "content": "What are the three primary colors?"}, {"from": "assistant", "content": "The three primary colors are red, blue, and yellow."}]}
  2. {"messages": [{"from": "human", "content": "解释个人电脑和服务器之间的区别。"}, {"from": "assistant", "content": "个人电脑和服务器是两种不同类型的计算机系统,它们的主要区别在于用途、硬件配置和性能。个人电脑,顾名思义,是为个人使用而设计的计算机。它们通常用于日常的工作、娱乐和学习,可以运行各种各样的应用程序和游戏。个人电脑的硬件配置一般是按照标准配置来设计的,不过也可以根据个人需求进行定制。而服务器是为了满足大量用户的需求而设计的计算机系统,它们通常用于为用户提供各种网络服务,如网站、电子邮件和文件传输等。服务器通常需要高性能的硬件配置,并且可以承受高负载和长时间的运行。由于服务器需要支持大量用户的访问,它们通常配备多核处理器、大容量内存和大容量硬盘驱动器,以提高系统的运行速度和稳定性。总之,个人电脑和服务器之间的主要区别在于它们的用途、硬件配置和性能。个人电脑用于个人使用,而服务器用于支持大量用户的访问。服务器的硬件配置通常比个人电脑更高,以保证系统的性能和稳定性。"}]}
  1. python prepare_sft_dataset.py.py \
  2. --data_input_dirs "Directory that contains one or more JSONL file(s)>" \
  3. --tokenizer_dir "Tokenizer directory" \
  4. --data_output_dirs "Spliced tokenized output" \
  5. --max_length 8192 \
  6. --num_spliced_dataset_bins 10 \
  7. --llama_version 3

运行成功后,data_output_dirs 文件夹内会自动生成 3 个子文件夹,其中,arrow 文件夹中的数据可用来直接训练。

我们提供简单数据集以供测试,处理好数据集可见:

/root/notebook/common_data/tokenized-cpt-data

训练脚本

当前路径:

/root/ColossalAI/ColossalAI/applications/Colossal-LLaMA/

1. 修改 config 文件

  1. cp train.example.sh train.sh
  2. #更新训练脚本

2. 参考训练脚本

  1. PROJECT_NAME="LLaMA-3-8B-cpt"
  2. PARENT_SAVE_DIR="/root/training_outputs/checkpoints/" # Path to a folder to save checkpoints
  3. PARENT_TENSORBOARD_DIR="/root/training_outputs/tensorboards/" # Path to a folder to save logs
  4. PARENT_CONFIG_FILE="/root/training_outputs/configs/" # Path to a folder to save training config logs
  5. PRETRAINED_MODEL_PATH="/root/notebook/common_data/Meta-Llama-3-8B" # huggingface or local model path
  6. # 以预置已处理数据集为例
  7. declare -a dataset=(
  8. /root/notebook/common_data/tokenized-cpt-data/arrow/part-00000
  9. /root/notebook/common_data/tokenized-cpt-data/arrow/part-00001
  10. /root/notebook/common_data/tokenized-cpt-data/arrow/part-00002
  11. )
  12. TIMESTAMP=$(date +%Y-%m-%d-%H-%M-%S)
  13. FULL_PROJECT_NAME="${PROJECT_NAME}-${TIMESTAMP}"
  14. SAVE_DIR="${PARENT_SAVE_DIR}${FULL_PROJECT_NAME}"
  15. CONFIG_FILE="${PARENT_CONFIG_FILE}${FULL_PROJECT_NAME}.json"
  16. colossalai run --nproc_per_node 8 --hostfile hostfile --master_port 31312 train.py \
  17. --pretrained $PRETRAINED_MODEL_PATH \
  18. --dataset ${dataset[@]} \
  19. --plugin "zero2" \
  20. --save_interval 400 \
  21. --save_dir $SAVE_DIR \
  22. --tensorboard_dir $TENSORBOARD_DIR \
  23. --config_file $CONFIG_FILE \
  24. --num_epochs 1 \
  25. --micro_batch_size 2 \
  26. --lr 1e-4 \
  27. --mixed_precision "bf16" \
  28. --grad_clip 1.0 \
  29. --weight_decay 0.01 \
  30. --warmup_steps 100 \
  31. --use_grad_checkpoint \
  32. --use_flash_attn \


 

其他训练详情可参考:https://github.com/hpcaitech/ColossalAI/tree/main/applications/Colossal-LLaMA

04大规模训练

对于大规模预训练等场景,结合LLaMA3 序列变长、embedding增大等特性,我们针对3D混合并行场景进行了优化,通过自定义流水线切分、gradient checkpoint策略,我们可以进一步精细化控制每个GPU的内存占用和速度,从而达到整体训练效率的提升。

我们使用整数线性规划搜索出在64x H100上最适合LLaMA3-70B的切分、gradient checkpoint策略,最终训练可以达到每卡410+ TFLOPS的卓越性能。

详情可参考:

​https://github.com/hpcaitech/ColossalAI/tree/main/examples/language/llama

​此例子附上了我们测试时使用的配置。使用方法如下

  1. git clone https://github.com/hpcaitech/ColossalAI
  2. cd ColossalAI/examples/language/llama
  3. BUILD_EXT=1 pip install -U git+https://github.com/hpcaitech/ColossalAI
  4. pip install -r requirements.txt
  5. export PYTHONPATH=$(realpath ..)
  6. colossalai run --nproc_per_node 8 --hostfile HOSTFILE benchmark.py -c Meta-Llama-3-70B -x -g -p 3d --tp 4 --pp 4 --zero 1 -l 8192 --mbs 2 -b 128 --custom-ckpt

欢迎访问潞晨云官方网站:http://cloud.luchentech.com/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/886844
推荐阅读
相关标签
  

闽ICP备14008679号