LLM大模型训练工具,小白也能轻松搞定!

大模型机器学习算法

picture.image

向AI转型的程序员都关注公众号 机器学习AI算法工程

picture.image

Axolotl

picture.image

Axolotl 是一款旨在简化各种人工智能模型微调的工具,支持多种配置和架构。

主要特点:

  • 支持的常见开源大模型,多种训练方式,包括:全参微调、LoRA/QLoRA、xformers等。
  • 可通过 yaml 或 CLI 自定义配置。
  • 支持多种数据集格式以及自定义格式。
  • 集成了 xformer、flash attention、liger kernel、rope 及 multipacking。
  • 使用 Docker 在本地或云端轻松运行。
  • 将结果和可选的检查点记录到 wandb 或 mlflow 中。

示例:


        
# finetune lora  
accelerate launch -m axolotl.cli.train examples/openllama-3b/lora.yml  

    
Llama-Factory

picture.image

使用零代码命令行与 Web UI 轻松训练百余种大模型,并提供高效的训练和评估工具。

主要特点:

  • 多种模型 :LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。
  • 多种训练 :预训练、(多模态)指令监督微调、奖励模型训练、PPO/DPO/KTO/ORPO 训练等等。
  • 多种精度 :16-bit全参微调、冻结微调、LoRA/QLoRA 微调。
  • 先进算法 :GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。
  • 实用技巧 :FlashAttention-2、Unsloth、RoPE scaling、NEFTune 和 rsLoRA。
  • 实验监控 :LlamaBoard、TensorBoard、Wandb、MLflow 等等。
  • 极速推理 :基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

示例:


        
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml  
llamafactory-cli chat examples/inference/llama3_lora_sft.yaml  
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml  

    
Firfly

picture.image

Firefly 支持对主流的大模型进行预训练、指令微调和 DPO。

主要特点:

  • 支持预训练、SFT、DPO,支持全参数训练、LoRA/QLoRA 训练。
  • 支持使用 Unsloth 加速训练,降低显存需求。
  • 支持绝大部分主流的开源大模型,如 Llama3、Gemma、MiniCPM、Llama、InternLM、Baichuan、ChatGLM、Yi、Deepseek、Qwen、Orion、Ziya、Xverse、Mistral、Mixtral-8x7B、Zephyr、Vicuna、Bloom,训练时与各个官方的 chat 模型的 template 对齐。
  • 整理并开源指令微调数据集:firefly-train-1.1M 、moss-003-sft-data、ultrachat、 WizardLM_evol_instruct_V2_143k、school_math_0.25M。
  • 在 Open LLM Leaderboard 上验证了 QLoRA 训练流程的有效性,开源Firefly 系列指令微调模型权重。

示例:


        
deepspeed --num_gpus={num_gpus} train.py --train_args_file train_args/sft/full/bloom-1b1-sft-full.json  
torchrun --nproc_per_node={num_gpus} train.py --train_args_file train_args/pretrain/qlora/yi-6b-pretrain-qlora.json  

    
Xtuner

picture.image

XTuner 由上海人工智能实验室发布,是一个高效、灵活、全能的轻量化大模型微调工具库。

主要特点:

  • 高效
  • 支持大语言模型 LLM、多模态图文模型 VLM 的预训练及轻量级微调。XTuner 支持在 8GB 显存下微调 7B 模型,同时也支持多节点跨设备微调更大尺度模型(70B+)。
  • 自动分发高性能算子(如 FlashAttention、Triton kernels 等)加速训练吞吐。
  • 灵活
  • 支持多种大语言模型,包括但不限于 InternLM、Mixtral-8x7B、Llama 2、ChatGLM、Qwen、Baichuan,及多模态图文模型 LLaVA 的预训练与微调。
  • 兼容任意数据格式,开源数据或自定义数据皆可快速上手。
  • 支持增量预训练、QLoRA、LoRA、指令微调、Agent微调、全量参数微调等多种训练方式。
  • 全能
  • 预定义众多开源对话模版,支持与开源或训练所得模型进行对话。
  • 训练所得模型可无缝接入部署工具库 LMDeploy、大规模评测工具库 OpenCompass 及 VLMEvalKit。

示例:


        
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2 # 单卡  
# 多卡  
(DIST) NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2  
(SLURM) srun ${SRUN_ARGS} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --launcher slurm --deepspeed deepspeed_zero2  

    
Swift

picture.image

ms-swift是魔塔提供的大模型与多模态大模型微调部署框架,支持450+大模型与150+多模态大模型的训练、推理、评测、量化与部署。

主要特点:

  • 🍎 模型类型 :支持450+纯文本大模型、 150+多模态大模型 ,All-to-All全模态模型的 训练到部署全流程
  • 数据集类型 :内置150+预训练、微调、人类对齐、多模态等各种类型的数据集,并支持自定义数据集。
  • 多种训练:
  • 轻量训练 :支持LoRA/QLoRA/DoRA/LoRA+/RS-LoRA、ReFT、LLaMAPro、Adapter、GaLore/Q-Galore、LISA、UnSloth、Liger-Kernel等轻量微调方式。支持对BNB、AWQ、GPTQ、AQLM、HQQ、EETQ量化模型进行训练。
  • RLHF训练 :支持文本和多模态大模型的DPO、CPO、SimPO、ORPO、KTO、RM、PPO等RLHF训练。
  • 多模态训练 :支持对图像、视频和语音模态模型进行训练,支持VQA、Caption、OCR、Grounding任务的训练。
  • 界面训练 :以界面的方式提供训练、推理、评测、量化的能力,完成大模型的全链路。
  • 插件化与拓展 :支持对loss、metric、trainer、loss-scale、callback、optimizer等组件进行自定义。
  • 模型评测 :以EvalScope作为评测后端,支持100+评测数据集对纯文本和多模态模型进行评测。

示例:


        
CUDA_VISIBLE_DEVICES=0 swift sft --model Qwen/Qwen2.5-7B-Instruct \  
    --train_type lora \  
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \  
    --lora_rank 8 --lora_alpha 32 \  
    --target_modules all-linear \  
    --warmup_ratio 0.05  

    
Unsloth

picture.image

Unsloth是一个开源的大模型训练加速项目,使用OpenAI的Triton对模型的计算过程进行重写, 大幅提升模型的训练速度,降低训练中的显存占用 。Unsloth能够保证重写后的模型计算的一致性,实现中不存在近似计算, 模型训练的精度损失为零

主要特点:

  • 所有内核均使用OpenAI的Triton语言编写。采用手动反向传播引擎。
  • 精度无损失——不采用近似方法——全部精确。
  • 无需更改硬件。支持2018年及以后版本的NVIDIA GPU。最低CUDA Capability为7.0(V100、T4、Titan V、RTX 20/30/40、A100、H100、L40等)。GTX 1070、1080也可以使用,但速度较慢。
  • 支持4bit和16bit GLorA/LoRA微调。
  • 开源版本训练速度提高5倍,使用Unsloth Pro可获得高达30倍的训练加速!

示例:


        
from unsloth import FastLanguageModel  
# ... 导入其他包  
max_seq_length = 2048 # Supports RoPE Scaling interally, so choose any!  
model, tokenizer = FastLanguageModel.from_pretrained(  
    model_name = "unsloth/llama-3-8b-bnb-4bit",  
    max_seq_length = max_seq_length,  
    dtype = None,  
    load_in_4bit = True,  
)  
# 后续流程和使用 transformers.Trainer 类似  

    
transformers.Trainer

picture.image

最后不得不提下大名鼎鼎的transformers库的Trainer,上述的很多工具其实也是在其基础上构建的。

Trainer本身是一个高度封装的类,但相比刚刚提到的工具,居然还有点偏底层了😅。

主要特点:

  • 通用性: Trainer是一个通用的训练接口,适用于各种NLP任务,如分类、回归、语言建模等。它提供了标准化的训练流程,使得用户无需从头开始编写训练代码。
  • 灵活性 :用户可以通过自定义训练循环、损失函数、优化器、学习率调度器等方式来调整训练过程。
  • 高级功能: 混合精度训练、分布式训练、断点续训等。
  • 自定义回调函数 :允许用户添加自定义回调函数,以便在训练过程的特定阶段执行自定义操作。

示例:


        
from transformers import Trainer  
# 加载模型、数据  
trainer = Trainer(  
    model,  
    training_args,  
    train_dataset=tokenized_datasets["train"],  
    eval_dataset=tokenized_datasets["validation"],  
    data_collator=data_collator,  
    tokenizer=tokenizer,  
)  
trainer.train()  

    
总结

picture.image

图片版的总结:

picture.image

机器学习算法AI大数据技术

搜索公众号添加: datanlp

picture.image

长按图片,识别二维码

阅读过本文的人还看了以下文章:

实时语义分割ENet算法,提取书本/票据边缘

整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主

《大语言模型》PDF下载

动手学深度学习-(李沐)PyTorch版本

YOLOv9电动车头盔佩戴检测,详细讲解模型训练

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

搜索公众号添加: datayx

picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论