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

开源项目启动与配置教程

2025-05-19 13:35:35作者:管翌锬

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

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

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

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
511
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
258
298
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5