Skip to content

Problem during finetuning qwen2 models #13

Description

@j-datta

Every time when I've tried to fine-tune qwen2-0.5B model with Squad dataset, the model is generating the following kind of repetitive and nonsensical outputs:

{"text": "No answer available.(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(count we counted methods(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(connconnEvery Two(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(connconnEvery(conn(conn conn(conn(conn(conn(conn conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn,inocogenic(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn"}
{"text": "No answer available.(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(connlowstone(conn(conn(conn(conn(conn(conn(lowstone(conn(conn(conn(conn(lowstone(conn(lowstone(conn(lowstone(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(lowstone(conn(conn(conn(conn(conn(conn(conn(lowstone(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn <-No answer available.(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn(conn"}
{"text": "otal business districts(conn(connosedelredhouses(conn)Dev in Den\u05d1\u05e8mand\\n Roads(conn(conninent(conn Investments(conn(Bakerfield(conn(connosesbay(conn(stringening(conn conect(streConnectPaper Dial(conn(conn IdConn kh\u1eafp(router(conn(conn infant(conn(conn Nothing(conn.isUser(conn(conn(conn(connren(conn(gaphragne(conn(Keyconnector(conn(conn Industrial(conn\u0645\u0646\u062a\u062c(conn(conn(conn \u0434\u0435\u044f\u0442\u0435\u043b\u044c(conn(RBS(conn(hidden(conn(conn(conn(conn psych}')(conn(conn(conn(default(conn(conn(conn(conn(connection(conn(connINTEGER(conn(conn(load(conn(conn(conn(conn^^^^(conn(conn(conn(conn(geast(conn(conn(conn(conn(conn.fetchone(conn(conn(conn(conn(savecoin(conn(conn(conn(conn(connOfClass(conn(conn(conn\u5de5\u592b(conn(conn(connSELECT misleading(conn(conn(conn(conn(conn(conn_LOADING(conn(conn(conn(conn(conn(conn(conndatum(conn(conn(conn(conn(connfwrite(conn(conn(conn(conn(conn(conn brokerage(conn(conn(conn(ffin(conn(conn(conn(conn(conn\ub85c\u304d(conn(conn(conn\u2014fromft(conn(conn(conn)rgoing(conn(conn(conn(conn(connNor0rc(conn(conn(conn(conn(conn.Business(conn(conn(conn(conn(conn(conn(conn(quitter(conn(conn(conn(conn(conn(connBusiness Burreatest(conn(conn(conn(conn(conn(conn(conn(conn(conn(XML(conn(conn(conn(conn(conn(conn(coraller(gray(conn(conn(conn(conn(conn(connoca(conn(conn(conn(conn(conn(conn(conn"}

Why is this happening?

This is my .sh file for fine-tuning qwen2-0.5B model:

#! /bin/bash

MASTER_ADDR=localhost
MASTER_PORT=${2-2012}
NNODES=1
NODE_RANK=0
GPUS_PER_NODE=${3-16}

DISTRIBUTED_ARGS="--nproc_per_node $GPUS_PER_NODE \
                  --nnodes $NNODES \
                  --node_rank $NODE_RANK \
                  --master_addr $MASTER_ADDR \
                  --master_port $MASTER_PORT"

# model
BASE_PATH=${1-"/home/MiniLLM"}
CKPT="Qwen/Qwen2-0.5B"
# data
DATA_DIR="${BASE_PATH}/processed_data_test/squad_v2_prompt/full/qwen/"
# hp
BATCH_SIZE=16
LR=0.00001
GRAD_ACC=1
EVAL_BATCH_SIZE=16
# length
MAX_LENGTH=512
# runtime
SAVE_PATH="${BASE_PATH}/results/qwen2/train/minillm_init/Qwen2-0.5B_lora"
# seed
SEED=20
SEED_ORDER=10


OPTS=""
# model
OPTS+=" --base-path ${BASE_PATH}"
OPTS+=" --model-path ${CKPT}"
#OPTS+=" --ckpt-name ${CKPT_NAME}"
OPTS+=" --n-gpu ${GPUS_PER_NODE}"
OPTS+=" --model-type qwen"
OPTS+=" --gradient-checkpointing"
# data
OPTS+=" --data-dir ${DATA_DIR}"
OPTS+=" --num-workers 0"
# hp
OPTS+=" --lr ${LR}"
OPTS+=" --batch-size ${BATCH_SIZE}"
OPTS+=" --eval-batch-size ${EVAL_BATCH_SIZE}"
OPTS+=" --gradient-accumulation-steps ${GRAD_ACC}"
OPTS+=" --warmup-iters 0"
OPTS+=" --lr-decay-style cosine"
OPTS+=" --weight-decay 0.1"
#OPTS+=" --weight-decay 1e-2"
OPTS+=" --clip-grad 1.0"
OPTS+=" --epochs 10"
# length
OPTS+=" --max-length ${MAX_LENGTH}"
OPTS+=" --max-prompt-length 256"
# runtime
OPTS+=" --do-train"
OPTS+=" --do-valid"
OPTS+=" --eval-gen"
OPTS+=" --save-interval -1"
OPTS+=" --eval-interval -1"
OPTS+=" --log-interval 4"
OPTS+=" --mid-log-num 1"
OPTS+=" --save ${SAVE_PATH}"
# lora
OPTS+=" --peft lora"
# seed
OPTS+=" --seed ${SEED}"
OPTS+=" --seed-order ${SEED_ORDER}"
# deepspeed
OPTS+=" --deepspeed"
OPTS+=" --deepspeed_config ${BASE_PATH}/configs/deepspeed/ds_config_zero2.json"
# type
OPTS+=" --type lm"
# gen
OPTS+=" --do-sample"
OPTS+=" --top-k 0"
OPTS+=" --top-p 1.0"
OPTS+=" --repetition-penalty 1.0"
OPTS+=" --temperature 1.2"


export NCCL_DEBUG=""
export WANDB_DISABLED=True
export TF_CPP_MIN_LOG_LEVEL=3
export PYTHONPATH=${BASE_PATH}
CMD="torchrun ${DISTRIBUTED_ARGS} ${BASE_PATH}/finetune.py ${OPTS} $@"

echo ${CMD}
echo "PYTHONPATH=${PYTHONPATH}"
mkdir -p ${SAVE_PATH}
${CMD}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions