|
#!/bin/bash |
|
|
|
SCRIP_DIR=$(echo `cd $(dirname $0); pwd`) |
|
export PATH=/work/cache/env/miniconda3/bin:$PATH |
|
|
|
|
|
|
|
export TRAIN_DATASET=outputs/v1_20240713/emb_samples_qd_v2.jsonl |
|
|
|
export N_EPOCH=1 |
|
export TRAIN_GROUP_SIZE=8 |
|
|
|
export GRADIENT_ACCUMULATION_STEPS=64 |
|
export PER_DEVICE_TRAIN_BATCH_SIZE=1 |
|
export N_NODES=1 |
|
export BATCH_SIZE=`expr ${GRADIENT_ACCUMULATION_STEPS} \* ${PER_DEVICE_TRAIN_BATCH_SIZE} \* ${N_NODES}` |
|
|
|
export VERSION=ft_v4_bge_large_epoch_${N_EPOCH}_bz_${BATCH_SIZE}_trgrp_${TRAIN_GROUP_SIZE}_$(date +"%Y%m%d_%H%M") |
|
|
|
export WANDB_PROJECT=RAG-From-Scratch-Embedding-Finetune |
|
export WANDB_API_KEY=60bb147be9aaaffdbb80e9021bedb55d57c57b02 |
|
export WANDB_NAME=${VERSION} |
|
|
|
export OUTPUT_DIR=experiments/embedding/finetune/${VERSION} |
|
|
|
if [ ! -d "${OUTPUT_DIR}" ]; then |
|
mkdir -p "${OUTPUT_DIR}" |
|
fi |
|
|
|
torchrun --nproc_per_node ${N_NODES} \ |
|
-m FlagEmbedding.baai_general_embedding.finetune.run \ |
|
--output_dir ${OUTPUT_DIR} \ |
|
--model_name_or_path /DataScience/HuggingFace/Models/BAAI/bge-large-zh-v1.5 \ |
|
--train_data ${TRAIN_DATASET} \ |
|
--learning_rate 1e-5 \ |
|
--fp16 \ |
|
--num_train_epochs ${N_EPOCH} \ |
|
--per_device_train_batch_size ${PER_DEVICE_TRAIN_BATCH_SIZE} \ |
|
--gradient_accumulation_steps ${GRADIENT_ACCUMULATION_STEPS} \ |
|
--dataloader_drop_last True \ |
|
--normlized True \ |
|
--temperature 0.02 \ |
|
--query_max_len 64 \ |
|
--passage_max_len 512 \ |
|
--train_group_size ${TRAIN_GROUP_SIZE} \ |
|
--negatives_cross_device \ |
|
--logging_steps 5 \ |
|
--save_steps 50 \ |
|
--save_total_limit 10 \ |
|
--warmup_ratio 0.05 \ |
|
--lr_scheduler_type cosine \ |
|
--query_instruction_for_retrieval "" |
|
|
|
|
|
cp "$SCRIP_DIR/$0" ${OUTPUT_DIR} |
|
|