From 1609a0fa25ae773fda2ee337964d8e01b0843ed9 Mon Sep 17 00:00:00 2001 From: l00562083 Date: Sat, 14 Oct 2023 04:11:12 +0800 Subject: [PATCH] add llama-2-7b model --- OWNERS | 1 + README.md | 8 +- examples/llama2/README.md | 184 ++++++++++++++++++ examples/llama2/pretrain_llama2_7b_zero_8p.sh | 107 ++++++++++ ...b_shape_fp16_layer32_loss_with_weights.png | Bin 0 -> 17129 bytes ..._loss_with_weights_comparison_absolute.png | Bin 0 -> 20096 bytes ..._loss_with_weights_comparison_relative.png | Bin 0 -> 24763 bytes 7 files changed, 296 insertions(+), 4 deletions(-) create mode 100755 examples/llama2/README.md create mode 100755 examples/llama2/pretrain_llama2_7b_zero_8p.sh create mode 100755 sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights.png create mode 100755 sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_absolute.png create mode 100755 sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_relative.png diff --git a/OWNERS b/OWNERS index a150718b2..dc8f1f095 100644 --- a/OWNERS +++ b/OWNERS @@ -1,6 +1,7 @@ approvers: - dilililiwhy - wujianping996 +- fengliangjun66 reviewers: - xqiangx1991 - sanjaychan diff --git a/README.md b/README.md index 67da4017e..b051ec081 100644 --- a/README.md +++ b/README.md @@ -159,10 +159,10 @@ The plan for more tasks, like RLHF and RM, is under way ... 7B 1x8 FP16 - -- - -- - -- - -- + 2460 tokens/p/s + 2348 tokens/p/s + Loss + Train diff --git a/examples/llama2/README.md b/examples/llama2/README.md new file mode 100755 index 000000000..a74dd9227 --- /dev/null +++ b/examples/llama2/README.md @@ -0,0 +1,184 @@ + + +# Contents + +- [LLaMA2-7B](#contents) + - [Training](#pre-training) + - [Script](#script) + - [Performance](#performance) + - [Machine performance](#machine-performance) + - [Accuracy of the loss](#accuracy-of-the-loss) + + + +# LLaMA2-7B + +## Training + +Here's a hardware summary of pre-training LLaMA2-7B: + +| Hardware | Value | +| :------: | :---------------------------------------------: | +| NPU | 8 x Ascend NPUs | + +Here's a software summary of pre-training LLaMA2-7B: + + +| Software | Version |link | +| :-----------------------: | :-------------------------------------: | :---:| +| Python | 3.7.16 |-| +| driver | 23.0.RC3.B050 |[link](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743/software/261159045?idAbsPath=fixnode01%7C23710424%7C251366513%7C22892968%7C252764743)| +| firmware | 7.0.t8.0.b214 |[link](https://support.huawei.com/enterprise/zh/ascend-computing/ascend-hdk-pid-252764743/software/261159045?idAbsPath=fixnode01%7C23710424%7C251366513%7C22892968%7C252764743)| +| CANN |Ascend-cann-toolkit-7.0.T8-linux |[link](https://support.huawei.com/enterprise/zh/ascend-computing/cann-pid-251168373/software/261204647?idAbsPath=fixnode01%7C23710424%7C251366513%7C22892968%7C251168373)| +| binary arithmetic package | Ascend-cann-kernels-XXX_7.0.T8_linux |[link](https://support.huawei.com/enterprise/zh/ascend-computing/cann-pid-251168373/software/261204647?idAbsPath=fixnode01%7C23710424%7C251366513%7C22892968%7C251168373)| +| torch | 1.11.0 |[link](https://gitee.com/ascend/pytorch/releases/tag/v5.0.rc2.2-pytorch1.11.0)| +| torch_npu | 1.11.0.post4-20230915 |[link](https://pytorch-package.obs.cn-north-4.myhuaweicloud.com/pta/Daily/v1.11.0/20230915.2/pytorch_v1.11.0_py37.tar.gz)| + + +### Script + +1. Clone the repository to your local server: + ```shell + git clone https://gitee.com/ascend/AscendSpeed.git + cd AscendSpeed + mkdir logs + mkdir ckpt + ``` + +2. Build environment + + ```bash + # python3.7 + conda create -n test python=3.7 + conda activate test + + # install torch and torch_npu + pip install torch-1.11.0-cp37-cp37m-manylinux2014_aarch64.whl + pip install torch_npu-1.11.0*-cp37-cp37m-linux_aarch64.whl + pip install apex-0.1_ascend*-cp37-cp37m-linux_aarch64.whl + + # install megatron-core + pip3 install -e git+https://github.com/NVIDIA/Megatron-LM.git@23.05#egg=megatron-core + + # install deepspeed and deepspeed_npu + pip install deepspeed==0.9.2 + git clone https://gitee.com/ascend/DeepSpeed.git -b v0.9.2 deepspeed_npu + cd deepspeed_npu + pip3 install -e ./ + cd .. + + # install other packages + pip install -r requirements.txt + ``` + *Note that if you want to train with the weight from huggingface, please run fix a deepspeed loading checkpointing bug by modified `if zero_sd_list is None` as `if zero_sd_list is None or len(zero_sd_list) == 0` in the `_load_zero_checkpoint` function of `/runtime/engine.py`* + + ```text + # original deepspeed/runtime/engine.py, about #Lines2746-2748 + zero_sd_list = self._get_all_zero_checkpoints(load_dir, tag) + if zero_sd_list is None: + return False + + # modified + zero_sd_list = self._get_all_zero_checkpoints(load_dir, tag) + if zero_sd_list is None or len(zero_sd_list) == 0: + return False + ``` +3. Prepare pretrained weights and tokenizer + Download the LLaMA2-7B checkpoint from [here](https://huggingface.co/daryl149/llama-2-7b-hf/tree/main) + + ```shell + #!/bin/bash + mkdir -p llama-2-7b-hf + cd llama-2-7b-hf + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/config.json + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/generation_config.json + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/pytorch_model-00001-of-00002.bin + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/pytorch_model-00002-of-00002.bin + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/pytorch_model.bin.index.json + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/special_tokens_map.json + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/tokenizer.json + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/tokenizer.model + wget https://huggingface.co/daryl149/llama-2-7b-hf/resolve/main/tokenizer_config.json + cd .. + ``` + + *Note that if you want to use the weight from huggingface, please run the weight conversion script first. The following uses llama-2-7b model weight conversion in deepspeed as an example.* + ```bash + # modify the script according to your own ascend-toolkit path + source /usr/local/Ascend/ascend-toolkit/set_env.sh + + # convert to deepspeed weights + python tools/ckpt_convert/llama/convert_weights_from_huggingface.py --input-model-dir llama-2-7b-hf \ + --output-model-dir ckpt \ + --tensor-model-parallel-size 1 \ + --pipeline-model-parallel-size 1 \ + --type 7B \ + --deepspeed + ``` + +4. Prepare dataset + + Download the LLaMA2-7B datasets from [here](https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet) + + ```shell + # download datasets + mkdir dataset_llama2 + cd ./dataset_llama2 + wget https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet + cd .. + + # process datasets + python ./tools/preprocess_data.py \ + --input ./dataset_llama2/train-00000-of-00001-a09b74b3ef9c3b56.parquet \ + --tokenizer-name-or-path ./llama-2-7b-hf \ + --output-prefix ./dataset_llama2/alpaca \ + --workers 4 \ + --log-interval 1000 \ + --tokenizer-type PretrainedFromHF + ``` + +5. Config LLaMA2-7B pre-training script: examples/llama2/pretrain_llama2_7b_zero_8p.sh + + ```shell + # modify the script according to your own ascend-toolkit path + source /usr/local/Ascend/ascend-toolkit/set_env.sh + + # modify script orign dataset path according to your own dataset path + TOKENIZER_PATH=./llama-2-7b-hf/ #tokenizer path + DATA_PATH=./dataset_llama2/alpaca_text_document #processed dataset + ``` + +6. Launch LLaMA2-7B pre-training script: examples/llama2/pretrain_llama2_7b_zero_8p.sh + + ```shell + bash examples/llama2/pretrain_llama2_7b_zero_8p.sh + ``` + +### Performance + +#### Machine performance + +The performance of LLaMA2-7B in **Ascend NPU** and **Reference**: + +| Device | Model | total Iterations | throughput rate (samples/s/p) | throughput rate (tokens/s/p) | single-step time (s/step) | floating point operation (TFLOPs/s) | +| :------: | :-----------: | :----------------: | :-----------------------------: | :----------------------------: | :-------------------------: | :-----------------------------------: | +| NPUs | LLaMA2-7B | 1024 | 4.804 | 2459.648 | 6.66 | 147.42 | +| Reference | LLaMA2-7B | 1024 | 4.585 | 2347.63 | 6.99 | 143.01 | + + +#### Accuracy of the loss + +NPU vs Reference loss. + +The NPU runs smoothly, the resource usage is stable, no errors are reported in the middle of the process, the Loss is on a decreasing trend, and the convergence speed is as expected. +The precision meets the requirements. + +![NPU-LOSS](../../sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights.png) + +The relative error of the average loss is 0.0046, less than 2%, the maximum relative error is 0.0852. + +![NPU-LOSS and NPU-Relative-Error](../../sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_relative.png) + +The absolute error of the average loss is 0.0009, less than 2%, the maximum absolute error is 0.0246. + +![NPU-LOSS and NPU-Absolute-Error](../../sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_absolute.png) diff --git a/examples/llama2/pretrain_llama2_7b_zero_8p.sh b/examples/llama2/pretrain_llama2_7b_zero_8p.sh new file mode 100755 index 000000000..f8c599604 --- /dev/null +++ b/examples/llama2/pretrain_llama2_7b_zero_8p.sh @@ -0,0 +1,107 @@ +# This is an example: training llama2 using zero/ + +# The number of parameters is not aligned +export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib:/root/miniconda3/lib:$LD_LIBRARY_PATH +export HCCL_CONNECT_TIMEOUT=1200 +source /usr/local/Ascend/ascend-toolkit/set_env.sh +export COMBINED_ENABLE=1 + +# Change for multinode config +MASTER_ADDR=localhost +MASTER_PORT=6001 +NNODES=1 +NODE_RANK=0 +NPUS_PER_NODE=8 +WORLD_SIZE=$(($NPUS_PER_NODE*$NNODES)) + +DATA_PATH=./dataset/llama_text_document +CHECKPOINT_PATH=./ckpt + +DS_CONFIG=deepspeed_config_7B.json +ZERO_STAGE=2 +GLOBAL_BATCH=32 +MICRO_BATCH=4 + +cat < $DS_CONFIG +{ + "fp16": { + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 1000, + "initial_scale_power": 8, + "hysteresis": 2, + "min_loss_scale": 1 + }, + + "optimizer": { + "type": "Adam" + }, + + "zero_optimization": { + "stage": $ZERO_STAGE, + "allgather_partitions": true, + "allgather_bucket_size": 1e8, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1e8, + "contiguous_gradients": true + }, + + "gradient_accumulation_steps": 1, + "train_batch_size": $GLOBAL_BATCH, + "train_micro_batch_size_per_gpu":$MICRO_BATCH, + "zero_allow_untested_optimizer": true +} +EOT + +ds_args="" +ds_args=" --deepspeed ${ds_args}" +ds_args=" --no-pipeline-parallel ${ds_args}" +ds_args=" --deepspeed_config=$DS_CONFIG ${ds_args}" +ds_args=" --zero-stage=$ZERO_STAGE ${ds_args}" +ds_args=" --deepspeed-activation-checkpointing ${ds_args}" + +# Main script +deepspeed pretrain_llama.py \ + --checkpoint-activations \ + --use-fused-rotary-pos-emb \ + --triangle-attn \ + --DDP-impl local \ + --tensor-model-parallel-size 1 \ + --pipeline-model-parallel-size 1 \ + --num-layers 32 \ + --hidden-size 4096 \ + --ffn-hidden-size 11008 \ + --num-attention-heads 32 \ + --micro-batch-size $MICRO_BATCH \ + --global-batch-size $GLOBAL_BATCH \ + --seq-length 4096 \ + --max-position-embeddings 4096 \ + --train-iters 500000 \ + --lr-decay-iters 320000 \ + --save $CHECKPOINT_PATH \ + --load $CHECKPOINT_PATH \ + --data-path $DATA_PATH \ + --tokenizer-name-or-path ./dataset/llama/ \ + --tokenizer-not-use-fast \ + --data-impl mmap \ + --split 949,50,1 \ + --distributed-backend nccl \ + --lr 0.0003 \ + --lr-decay-style cosine \ + --min-lr 3.0e-5 \ + --weight-decay 1.0e-1 \ + --clip-grad 1.0 \ + --lr-warmup-iters 5000 \ + --log-interval 1 \ + --save-interval 10000 \ + --eval-interval 1000 \ + --eval-iters 10 \ + --adam-beta1 0.9 \ + --adam-beta2 0.95 \ + --adam-eps 1.0e-5 \ + --initial-loss-scale 4096.0 \ + --use-cpu-initialization \ + $ds_args \ + --fp16 | tee logs/NPU_llama2_7b_shape_fp16_layer32_8p_pretrain.out + diff --git a/sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights.png b/sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights.png new file mode 100755 index 0000000000000000000000000000000000000000..4493cdee03b2bed1388f23949bb5eb238cbb64aa GIT binary patch literal 17129 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 literal 0 HcmV?d00001 diff --git a/sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_relative.png b/sources/images/llama2/llama2_7b_shape_fp16_layer32_loss_with_weights_comparison_relative.png new file mode 100755 index 0000000000000000000000000000000000000000..4ff4e13387cc0f68e7e3c43e3bc7d680661d7836 GIT binary patch literal 24763 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