/ repo3-fine-tuning-template / run_training.sh
run_training.sh
1 #!/bin/bash 2 3 # DPO训练启动脚本 4 5 # 设置环境变量抑制TensorFlow AVX警告 6 export TF_CPP_MIN_LOG_LEVEL=2 7 export TF_ENABLE_ONEDNN_OPTS=0 8 9 echo "==========================================" 10 echo "Qwen3 DPO Fine-tuning 项目" 11 echo "==========================================" 12 13 # 检查Python环境 14 if ! command -v python3 &> /dev/null; then 15 echo "错误: 未找到Python3,请先安装Python3" 16 exit 1 17 fi 18 19 # 检查CUDA 20 if command -v nvidia-smi &> /dev/null; then 21 echo "检测到NVIDIA GPU:" 22 nvidia-smi --query-gpu=name,memory.total --format=csv,noheader,nounits 23 else 24 echo "警告: 未检测到NVIDIA GPU,将使用CPU训练(速度会很慢)" 25 fi 26 27 # 创建必要的目录 28 echo "创建项目目录..." 29 mkdir -p data 30 mkdir -p outputs 31 mkdir -p logs 32 33 # 安装依赖 34 echo "安装项目依赖..." 35 pip install -r requirements.txt 36 37 # 检查依赖安装 38 echo "检查依赖安装..." 39 python3 -c " 40 import torch 41 import transformers 42 import trl 43 import datasets 44 import peft 45 print(f'PyTorch版本: {torch.__version__}') 46 print(f'Transformers版本: {transformers.__version__}') 47 print(f'TRL版本: {trl.__version__}') 48 print(f'Datasets版本: {datasets.__version__}') 49 print(f'PEFT版本: {peft.__version__}') 50 print(f'CUDA可用: {torch.cuda.is_available()}') 51 if torch.cuda.is_available(): 52 print(f'GPU数量: {torch.cuda.device_count()}') 53 print(f'当前GPU: {torch.cuda.get_device_name()}') 54 " 55 56 # 创建示例数据 57 echo "准备训练数据..." 58 python3 data_utils.py 59 60 # 开始训练 61 echo "开始DPO训练..." 62 echo "注意: 训练过程可能需要较长时间,请耐心等待..." 63 echo "训练日志将保存到 dpo_training.log" 64 echo "模型将保存到 outputs/dpo_qwen3_4b/" 65 66 python3 dpo_train.py 67 68 echo "==========================================" 69 echo "训练完成!" 70 echo "==========================================" 71 echo "训练后的模型保存在: outputs/dpo_qwen3_4b/" 72 echo "训练日志保存在: dpo_training.log" 73 echo "" 74 echo "要测试模型,请运行: python3 test_model.py"