Skip to content

yafo-ai/y-trainer

Repository files navigation


Y-Trainer

Y-Trainer 是一个LLM模型微调训练框架。

📊 核心优势:

  • 📉 精准对抗过拟合: 专门优化,有效解决SFT中的过拟合难题。

  • 🧩 突破遗忘瓶颈: 无需依赖通用语料,即可卓越地保留模型的泛化能力,守住核心能力的同时实现专项提升!

  • 🏆 单卡强化学习:无需依赖参考模型、教师模型,仅需基础模型+奖励函数,即可稳定的进行强化学习训练。

官网介绍: Y-Trainer

该框架包含以下三个核心组件:继续预训练(CPT)指令微调(SFT)强化学习(RL)[将很快发布需要配合Y-agent使用]。

持续预训练(Continued Pre-training)

支持多种模型预训练方法,能够高效利用训练数据,提升模型在特定领域的能力。

监督微调(Supervised Fine-tuning)

与传统 SFT 不同,我们采用了一套自研的训练方法,具备如下优势:

  • 支持对训练预料进行评分。可以在训练之前,排查有问题的语料。
  • 在尽可能保留基座模型能力的前提下,限制语料中错误知识的影响;
  • 无需进行数据集平衡操作,实现快速收敛,同时几乎不会损害模型的原始能力。

强化学习(Reinforcement Learning)

基于 SFT 构建的全新强化学习框架,具有以下显著优势:

  • 低资源需求: 无需依赖参考模型、奖励模型、价值网络等组件,仅需合理设计奖励函数即可完成训练;
  • 训练稳定: 以高熵 token 作为分支节点,自动生成语料树,并通过内置聚类算法进行剪枝,确保充分的探索空间。结合自适应梯度计算策略,无需KL散度约束,整个训练过程更加稳定可靠。

Introduction

注意:本项目可以用于qwen2.5、 qwen3系列模型,主要测试4B、7B、8B等模型,目前不支持Moe模型,如果其他需求请联系我们,同时欢迎开源工作者加入本项目。

您既可以训练完整模型,也可以仅训练 LoRA 适配器。

同时支持在单 GPU多 GPU 环境下进行训练。

Installation

cd y-trainer

pip install -r requirements.txt

Quick Start

通过命令启动训练服务(启动前可以通过configs/sever_config.py修改端口和指定大模型文件夹)

python main.py

浏览器打开:http://localhost:8010

linux无法直接打开浏览器的云服务器,可以通过ssh连接到云服务器,即可在本地浏览器打开。

例如: ssh -p 39114 -L 0.0.0.0:8010:localhost:8010 root@connect.xxx.sss.com

网页便捷使用训练、集成注意力分析、内容压缩、样本生成和聚类筛选功能的专业AI文本处理工具。 训练UI

您也可以通过以下示例脚本轻松训练自己的模型。

单GPU

# Continue pretraining
bash scripts/pretrain_ds.sh

# sft training
bash scripts/sft.sh
# windows sft training
./scripts/sft.bat

参数解释

以SFT为例,其他类似

python -m start_training \
    --model_path_to_load model_or_path \ # 需要训练的模型目录
    --lora_path ./lora \ # 加载lora的文件目录(基于lora检查点继续训练是采用此方式)
    --training_type 'sft' \ # 训练方式
    --epoch 3 \ # 训练轮数
    --checkpoint_epoch '0,1' \ # 保存检查点轮数
    --use_NLIRG 'true'\  #核心算法,默认启用
    --data_path ./data/sft_example.json \ # 加载数据集的位置,修改此参数,可以指定你的数据集文件
    --output_dir outputdir \ # 输出的模型文件目录
    --use_lora 'true' \  #使用lora方式进行训练
    --batch_size 1 \ # 不建议修改,默认1
    --token_batch 10 \ # 不建议修改,默认10
    --enable_gradit_checkpoing 'true' \ # 开启梯度检查点
    --lora_target_modules "q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj" # 指定训练的网络层

更多参数说明.

多GPU

# Continue pretraining
bash scripts/pretrain_ds.sh

# sft training
bash scripts/sft_ds.sh

训练数据格式简介

进行继续预训练时, 请参考 此文件

[
  {
    "ID": 0,
    "output": "your content 1"
  },
  {
    "ID": 1,
    "output": "your content 2"
  }
]

进行指令微调时, 请参考 此文件

[
  {
    "id": 0,
    "instruction": "instruction 0",
    "output": "output 0",
    "input": ""
  },
  {
    "id": 1,
    "instruction": "instruction 1",
    "output": "output 1",
    "input": ""
  }
]

只有output字段的token会被训练。

更多教程请参见 Y-Studio 官方文档

Y-Agent Studio 框架简介

Y-Agent Studio 框架完全开源可商用。下载后即可无限制使用全部功能。

该框架融合了代码的灵活性可视化界面的便捷性,支持以下能力:

  • 流程编排与迭代
  • 自动化测试
  • 语料标注与生产管理

✅ 主要特性

  • 高度可定制的工作流,支持嵌套结构与有环的循环连接
  • 完善的日志系统,提供可视化展示与自动化分析
  • 开放的系统集成能力,可与您现有的 IT 系统无缝对接
  • 支持自动化测试、语料标注、语料生产与管理
  • 解决了垂直领域训练导致基座模型能力下降的问题

架构图(Architecture Diagram)

架构图

About

y-trainerY-Trainer 是一个LLM模型微调训练框架。 📊 核心优势: 📉 精准对抗过拟合: 专门优化,有效解决SFT中的过拟合难题。 🧩 突破遗忘瓶颈: 无需依赖通用语料,即可卓越地保留模型的泛化能力,守住核心竞争力的同时实现专项提升!🏆

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages