Skip to content

Latest commit

 

History

History
304 lines (236 loc) · 14.5 KB

README_zh-CN.md

File metadata and controls

304 lines (236 loc) · 14.5 KB


GitHub Repo stars license PyPI Downloads issue resolution open issues

👋 加入我们:Static Badge Static Badge Static Badge

🔍 探索我们的模型: Static Badge Static Badge Static Badge Static Badge

English | 简体中文

🚀 Speed Benchmark

  • XTuner 与 LLaMA-Factory 在 Llama2-7B 模型上的训练效率对比
  • XTuner 与 LLaMA-Factory 在 Llama2-70B 模型上的训练效率对比

🎉 更新

  • [2024/07] 支持 MiniCPM 模型!
  • [2024/07] 支持训练 DPOORPO 还有 Reward Model ! 并且能够支持打包数据以及序列并行功能! 请参考 文档 了解更多信息。
  • [2024/07] 支持 InternLM 2.5 模型!
  • [2024/06] 支持 DeepSeek V2 models! 训练速度提升一倍!
  • [2024/04] 多模态大模型 LLaVA-Phi-3-mini 发布!快速开始请查阅此文档
  • [2024/04] 多模态大模型 LLaVA-Llama-3-8BLLaVA-Llama-3-8B-v1.1 发布!快速开始请查阅此文档
  • [2024/04] 支持 Llama 3 模型!
  • [2024/04] 支持序列并行训练策略以实现语言模型超长上下文训练![文档] [速度基准]
  • [2024/02] 支持 Gemma 模型!
  • [2024/02] 支持 Qwen1.5 模型!
  • [2024/01] 支持 InternLM2 模型!同时,最新版的多模态大模型 LLaVA-Internlm2-7B / 20B 发布,其表现出强大的性能!
  • [2024/01] 支持 DeepSeek-MoE 模型!20GB 显存即可实现 QLoRA 微调,4x80GB 即可实现全参数微调。快速开始请查阅相关配置文件
  • [2023/12] 🔥 支持多模态模型 VLM(LLaVA-v1.5)预训练和指令微调!快速开始请查阅此文档
  • [2023/12] 🔥 支持 Mixtral 8x7B 模型!快速开始请查阅此文档
  • [2023/11] 支持 ChatGLM3-6B 模型!
  • [2023/10] 支持 MSAgent-Bench 数据集,并且微调所得大语言模型可应用至 Lagent 框架!
  • [2023/10] 优化数据处理逻辑以兼容 system 字段,相关细节请查阅文档
  • [2023/09] 支持 InternLM-20B 系列模型!
  • [2023/09] 支持 Baichuan2 系列模型!
  • [2023/08] XTuner 正式发布!众多微调模型已上传至 HuggingFace

📖 介绍

XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。

高效

  • 支持大语言模型 LLM、多模态图文模型 VLM 的预训练及轻量级微调。XTuner 支持在 8GB 显存下微调 7B 模型,同时也支持多节点跨设备微调更大尺度模型(70B+)。
  • 自动分发高性能算子(如 FlashAttention、Triton kernels 等)以加速训练吞吐。
  • 兼容 DeepSpeed 🚀,轻松应用各种 ZeRO 训练优化策略。

灵活

  • 支持多种大语言模型,包括但不限于 InternLMMixtral-8x7BLlama 2ChatGLMQwenBaichuan
  • 支持多模态图文模型 LLaVA 的预训练与微调。利用 XTuner 训得模型 LLaVA-InternLM2-20B 表现优异。
  • 精心设计的数据管道,兼容任意数据格式,开源数据或自定义数据皆可快速上手。
  • 支持 QLoRALoRA、全量参数微调等多种微调算法,支撑用户根据具体需求作出最优选择。

全能

  • 支持增量预训练、指令微调与 Agent 微调。
  • 预定义众多开源对话模版,支持与开源或训练所得模型进行对话。
  • 训练所得模型可无缝接入部署工具库 LMDeploy、大规模评测工具库 OpenCompassVLMEvalKit

🔥 支持列表

模型 数据集 数据格式 微调算法

🛠️ 快速上手

安装

  • 推荐使用 conda 先构建一个 Python-3.10 的虚拟环境

    conda create --name xtuner-env python=3.10 -y
    conda activate xtuner-env
  • 通过 pip 安装 XTuner:

    pip install -U xtuner

    亦可集成 DeepSpeed 安装:

    pip install -U 'xtuner[deepspeed]'
  • 从源码安装 XTuner:

    git clone https://github.com/InternLM/xtuner.git
    cd xtuner
    pip install -e '.[all]'

微调

XTuner 支持微调大语言模型。数据集预处理指南请查阅文档

  • 步骤 0,准备配置文件。XTuner 提供多个开箱即用的配置文件,用户可以通过下列命令查看:

    xtuner list-cfg

    或者,如果所提供的配置文件不能满足使用需求,请导出所提供的配置文件并进行相应更改:

    xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}
    vi ${SAVE_PATH}/${CONFIG_NAME}_copy.py
  • 步骤 1,开始微调。

    xtuner train ${CONFIG_NAME_OR_PATH}

    例如,我们可以利用 QLoRA 算法在 oasst1 数据集上微调 InternLM2.5-Chat-7B:

    # 单卡
    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
    • --deepspeed 表示使用 DeepSpeed 🚀 来优化训练过程。XTuner 内置了多种策略,包括 ZeRO-1、ZeRO-2、ZeRO-3 等。如果用户期望关闭此功能,请直接移除此参数。

    • 更多示例,请查阅文档

  • 步骤 2,将保存的 PTH 模型(如果使用的DeepSpeed,则将会是一个文件夹)转换为 HuggingFace 模型:

    xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}

对话

XTuner 提供与大语言模型对话的工具。

xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter {NAME_OR_PATH_TO_ADAPTER} [optional arguments]

例如:

与 InternLM2.5-Chat-7B 对话:

xtuner chat internlm/internlm2-chat-7b --prompt-template internlm2_chat

更多示例,请查阅文档

部署

  • 步骤 0,将 HuggingFace adapter 合并到大语言模型:

    xtuner convert merge \
        ${NAME_OR_PATH_TO_LLM} \
        ${NAME_OR_PATH_TO_ADAPTER} \
        ${SAVE_PATH} \
        --max-shard-size 2GB
  • 步骤 1,使用任意推理框架部署微调后的大语言模型,例如 LMDeploy 🚀:

    pip install lmdeploy
    python -m lmdeploy.pytorch.chat ${NAME_OR_PATH_TO_LLM} \
        --max_new_tokens 256 \
        --temperture 0.8 \
        --top_p 0.95 \
        --seed 0

    🔥 追求速度更快、显存占用更低的推理?欢迎体验 LMDeploy 提供的 4-bit 量化!使用指南请见文档

评测

  • 推荐使用一站式平台 OpenCompass 来评测大语言模型,其目前已涵盖 50+ 数据集的约 30 万条题目。

🤝 贡献指南

我们感谢所有的贡献者为改进和提升 XTuner 所作出的努力。请参考贡献指南来了解参与项目贡献的相关指引。

🎖️ 致谢

🖊️ 引用

@misc{2023xtuner,
    title={XTuner: A Toolkit for Efficiently Fine-tuning LLM},
    author={XTuner Contributors},
    howpublished = {\url{https://github.com/InternLM/xtuner}},
    year={2023}
}

开源许可证

该项目采用 Apache License 2.0 开源许可证。同时,请遵守所使用的模型与数据集的许可证。