使用 seeklhy/codes-7b 模型进行sql generate 微调,8*A800 *80G 显存溢出问题
Opened this issue · 2 comments
执行脚本:
#!/bin/bash
#SBATCH --job-name=sft_sql_codes # name
#SBATCH --nodes=1 # nodes
#SBATCH -w wuhan-gpu-[17]
#SBATCH --ntasks-per-node=1 # crucial - only 1 task per dist per node!
#SBATCH --cpus-per-task=8 # number of cores per tasks
#SBATCH --gres=gpu:8 # number of gpus
#SBATCH --gpus-per-task=8 # number of gpus
export GPUS_PER_NODE=8
export MASTER_ADDR=$(scontrol show hostnames $SLURM_JOB_NODELIST | head -n 1)
export MASTER_PORT=9901
srun --jobid $SLURM_JOBID bash -c '
accelerate launch train_causal_lm.py \
--per_device_train_batch_size 4 \
--block_size 4096 \
--seed 42 \
--pretrained_model_name_or_path seeklhy/codes-7b \
--epochs 4 \
--lr 5e-6 \
--warmup_ratio 0.05 \
--checkpointing_steps 100000 \
--mode sft \
--output_ckpt_dir ./ckpts/codes-7b-bird-with-evidence \
--text2sql_data_dir ./sft_bird_with_evidence_train_text2sql.json \
--table_num 6 \
--column_num 10
'
运行日志结果部分日志:
The following values were not passed to accelerate launch
and had defaults used instead:
--num_processes
was set to a value of 8
More than one GPU was found, enabling multi-GPU training.
If this was unintended please pass in --num_processes=1
.
--num_machines
was set to a value of 1
--mixed_precision
was set to a value of 'no'
--dynamo_backend
was set to a value of 'no'
To avoid this warning pass in values for each of the problematic parameters or run accelerate config
.
accelerator.is_main_process: True
accelerator.device: cuda:0
Namespace(per_device_train_batch_size=4, block_size=4096, seed=42, pretrained_model_name_or_path='seeklhy/codes-7b', epochs=4, lr=5e-06, warmup_ratio=0.05, checkpointing_steps=100000, tensorboard_log_dir='./train_logs', mode='sft', output_ckpt_dir='./ckpts/codes-7b-bird-with-evidence', save_all_states=False, pt_data_dir='./data/corpus.bin', resume_from_checkpoint=None, resume_tag=None, text2sql_data_dir='./sft_bird_with_evidence_train_text2sql.json', table_num=6, column_num=10)
tokens per batch: 131072
sequences per batch: 32
using LLM from: seeklhy/codes-7b
accelerator.is_main_process: False
accelerator.device: cuda:1
accelerator.is_main_process: False
accelerator.device: cuda:5
accelerator.is_main_process: False
accelerator.device: cuda:2
accelerator.is_main_process: False
accelerator.device: cuda:3
accelerator.is_main_process: False
accelerator.device: cuda:6
accelerator.is_main_process: False
accelerator.device: cuda:7
accelerator.is_main_process: False
accelerator.device: cuda:4
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 8.00 GiB. GPU 0 has a total capacty of 79.33 GiB of which 5.53 GiB is free. Including non-PyTorch memory, this process has 73.78 GiB memory in use. Of the allocated memory 66.49 GiB is allocated by PyTorch, and 6.31 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
有按照README安装flash attention吗?
I installed flash attention, but I'm still getting an OutOfMemoryError with codes-7b model.