首页
/ 开源项目启动与配置教程

开源项目启动与配置教程

2025-05-19 18:08:37作者:管翌锬

1. 项目的目录结构及介绍

开源项目 training-code 的目录结构如下:

  • preparation/:包含数据预处理脚本。
  • training/:存放训练相关的代码和启动脚本。
  • .gitignore:定义了Git应该忽略的文件和目录。
  • LICENSE:项目的许可证文件。
  • README.md:项目的说明文档。
  • requirements.txt:项目运行所需的Python依赖。
  • requirements-recommended.txt:推荐安装的Python依赖,非必需。

每个目录和文件的具体作用如下:

  • preparation/tokenize_data_sft.py:用于对监督微调(Supervised Fine-Tuning, SFT)的数据进行分词。
  • preparation/tokenize_data_uft.py:用于对无监督微调(Unsupervised Fine-Tuning, UFT)的数据进行分词。
  • training/hf_trainer.py:基于HuggingFace的Trainer类的主训练脚本。
  • .gitignore:包括例如环境文件、临时文件等不应该提交到版本控制中的文件。
  • LICENSE:本项目采用AGPL-3.0许可证。
  • README.md:介绍了项目的基本信息和如何使用。
  • requirements.txt:包含了项目必需的依赖包,如transformers等。
  • requirements-recommended.txt:包含了可以提高开发效率或功能的推荐依赖包,如wandb等。

2. 项目的启动文件介绍

项目的启动文件是 training/hf_trainer.py。该文件是训练过程的主要入口点,基于HuggingFace的Trainer类。以下是启动文件的一些基本使用方法:

export OMP_NUM_THREADS=4
export WANDB_PROJECT="project-name"
OUTPUT_DIR="/data/checkpoints/$WANDB_PROJECT"
MODEL_NAME='EleutherAI/pythia-410m-deduped'
TRAIN_DATASET="/data/$WANDB_PROJECT/train.pythia.arrow"
EVAL_DATASET="/data/$WANDB_PROJECT/eval.pythia.arrow"
BSZ=8

accelerate launch ./training/hf_trainer.py \
--model_name_or_path "$MODEL_NAME" \
--train_file "$TRAIN_DATASET" \
--eval_file "$EVAL_DATASET" \
--output_dir "$OUTPUT_DIR" \
--report_to "wandb" \
--do_train --do_eval \
--ddp_find_unused_parameters false \
--optim 'adamw_torch_fused' \
--seed 42 --data_seed 42 \
--logging_first_step true --logging_steps 1 \
--dataloader_num_workers 1 \
--per_device_train_batch_size "$BSZ" \
--per_device_eval_batch_size "$BSZ" \
--fp16 true \
--low_cpu_mem_usage true \
--evaluation_strategy "steps" \
--eval_steps 128 \
--save_strategy "steps" \
--save_steps 128 \
--save_total_limit 2 \
--gradient_accumulation_steps 8 \
--learning_rate 1.0e-5 \
--lr_scheduler_type 'cosine' \
--warmup_steps 64 \
$@

这段脚本设置了环境变量,定义了项目名称、输出目录、模型名称、训练和评估数据集路径、批量大小等参数,然后调用 hf_trainer.py 开始训练。

3. 项目的配置文件介绍

项目的配置文件包括 requirements.txtrequirements-recommended.txt

  • requirements.txt:这个文件列出了项目运行所必需的Python包,可以通过以下命令安装:
pip install -r requirements.txt
  • requirements-recommended.txt:这个文件列出了对项目有帮助的推荐Python包,但不是必需的。可以通过以下命令安装:
pip install -r requirements-recommended.txt

确保在开始项目之前安装了所有必需的依赖项。推荐的依赖项可以根据需要安装,以增强项目的功能或监控。

登录后查看全文
热门项目推荐