Skip to content

Latest commit

 

History

History
261 lines (198 loc) · 11 KB

README_zh-CN.md

File metadata and controls

261 lines (198 loc) · 11 KB


license PyPI Generic badge

English | 简体中文

👋 加入我们:推特Discord微信

🎉 更新

  • [2023/10] 支持 ChatGLM3-6B-Base 模型!
  • [2023/10] 支持 MSAgent-Bench 数据集,并且微调所得大语言模型可应用至 Lagent 框架!
  • [2023/10] 优化数据处理逻辑以兼容 system 字段,相关细节请查阅文档
  • [2023/09] 支持 InternLM-20B 系列模型!
  • [2023/09] 支持 Baichuan2 系列模型!
  • [2023/08] XTuner 正式发布!众多微调模型已上传至 HuggingFace

📖 介绍

XTuner 是一个轻量级微调大语言模型的工具库,由 MMRazorMMDeploy 团队联合开发。

  • 轻量级: 支持在消费级显卡上微调大语言模型。对于 7B 参数量,微调所需的最小显存仅为 8GB,这使得用户可以使用几乎任何显卡(甚至免费资源,例如Colab)来微调获得自定义大语言模型助手。
  • 多样性: 支持多种大语言模型InternLMLlama2ChatGLMQwenBaichuan2, ...),数据集MOSS_003_SFT, Alpaca, WizardLM, oasst1, Open-Platypus, Code Alpaca, Colorist, ...)和微调算法QLoRALoRA),支撑用户根据自身具体需求选择合适的解决方案。
  • 兼容性: 兼容 DeepSpeed 🚀 和 HuggingFace 🤗 的训练流程,支撑用户无感式集成与使用。

🌟 示例

  • XTuner APIs所提供的开箱即用的模型与数据集 Open In Colab

  • QLoRA 微调 Open In Colab

  • 基于插件的对话 Open In Colab

    基于插件的对话 🔥🔥🔥

🔥 支持列表

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

🛠️ 快速上手

安装

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

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

    pip install xtuner

    亦可集成 DeepSpeed 安装:

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

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

微调 Open In Colab

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

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

    xtuner list-cfg

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

    xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}
  • 步骤 1,开始微调。

    xtuner train ${CONFIG_NAME_OR_PATH}

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

    # 单卡
    xtuner train internlm_7b_qlora_oasst1_e3
    # 多卡
    NPROC_PER_NODE=${GPU_NUM} xtuner train internlm_7b_qlora_oasst1_e3

    更多示例,请查阅文档

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

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

对话 Open In Colab

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

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

例如:

与 InternLM-7B + Alpaca-enzh adapter 对话:

xtuner chat internlm/internlm-7b --adapter xtuner/internlm-7b-qlora-alpaca-enzh --prompt-template internlm_chat --system-template alpaca

与 Llama2-7b + MOSS-003-SFT adapter 对话:

xtuner chat meta-llama/Llama-2-7b-hf --adapter xtuner/Llama-2-7b-qlora-moss-003-sft --bot-name Llama2 --prompt-template moss_sft --system-template moss_sft --with-plugins calculate solve search --command-stop-word "<eoc>" --answer-stop-word "<eom>" --no-streamer

更多示例,请查阅文档

部署

  • 步骤 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 量化!使用指南请见文档

    🎯 我们正在与 LMDeploy 紧密合作,以实现基于插件对话的部署!

评测

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

🤝 贡献指南

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

🎖️ 致谢

开源许可证

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