/ 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"