训练、微调与数据3210 字

XTuner模型训练框架快速入门

·全库 292 / 611

《XTuner模型训练框架快速入门》共 0.3 万字,通篇围绕 微调、数据集、LoRA、QLoRA 展开,归在「训练、微调与数据」这一层。

覆盖微调数据集LoRAQLoRAprompt预训练

适合要自己训模型、或者判断这一版该不该训的人

目录骨架(8 节)
  1. 最佳实践
  2. 准备模型权重
  3. 准备微调数据集
  4. 准备配置文件
  5. 修改配置文件
  6. 启动微调
  7. 模型转换 + LoRA 合并
  8. 与模型对话
目录 · 7 节

示例代码

📎 附件:xtuner-demo.zip(zip, 5KB)

原文链接:https://www.yuque.com/attachments/yuque/0/2025/zip/2424104/1748309455322-225a169b-a5bf-4203-b404-cb4060b80dda.zip

XTuner简介

XTuner是一款由上海人工智能实验室开发的开源工具,专门用于大语言模型的高效微调。它支持几乎所有GPU上对LLM(Large Language Model)进行预训练或微调,甚至可以在8GB GPU上微调7B大小的模型。XTuner的设计理念是“开箱即用”,为用户提供了丰富的预设配置和直观的命令行接口,大大降低了使用门槛。

项目地址:https://github.com/InternLM/xtuner.git

核心特点

  1. 高效性:XTuner通过支持在有限显存上进行大模型微调,显著降低了对硬件资源的需求。它自动分配高性能操作符,如FlashAttention和Triton内核,以提高训练吞吐量。此外,XTuner还支持多节点上的跨设备微调,进一步提升了训练效率。
  2. 灵活性:XTuner兼容多种大语言模型和多模态图文模型的预训练与微调。它支持各种数据格式,如JSON、CSV等,以及多种微调算法,如QLoRA(Quantized Low-Rank Adaptation)、LoRA和全参数微调。这使得用户可以根据不同的需求和场景选择合适的解决方案。
  3. 全能性:除了支持常规的连续预训练和微调功能外,XTuner还提供了指令微调与Agent微调等高级功能。此外,它还支持与部署和评测工具库的无缝集成,如LMDeploy和OpenCompass,为用户提供了一站式的模型开发体验。

​

安装

本节中,我们将演示如何安装 XTuner。

最佳实践

我们推荐用户参照我们的最佳实践安装 XTuner。 推荐使用 Python-3.10 的 conda 虚拟环境安装 XTuner。

步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境

$ conda create --name xtuner python=3.10 -y
$ conda activate xtuner

步骤 1. 安装 XTuner

方案a: 通过 pip 直接安装

$ pip install -U 'xtuner[deepspeed]'
pip install xtuner[all]==0.1.19

方案b: 从源码安装

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

备注

“-e” 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效

验证

为了验证 XTuner 是否安装正确,我们将使用命令打印配置文件。

打印配置文件: 在命令行中使用 xtuner list-cfg 验证是否能打印配置文件列表。

$ xtuner list-cfg

​

快速上手

本节中,我们将演示如何使用 XTuner 微调模型,帮助您快速上手 XTuner。

在成功安装 XTuner 后,便可以开始进行模型的微调。在本节中,我们将演示如何使用 XTuner,应用 QLoRA 算法在 Colorist 数据集上微调 InternLM2-Chat-7B。

Colorist 数据集(HuggingFace 链接;ModelScope 链接)是一个根据颜色描述提供颜色选择与建议的数据集,经过该数据集微调的模型可以做到根据用户对于颜色的描述,从而给出16进制下的颜色编码,如用户输入“宁静而又相当明亮的浅天蓝色,介于天蓝色和婴儿蓝之间,因其亮度而带有一丝轻微的荧光感。”,模型输出

,该颜色很符合用户的描述。以下是该数据集的几条样例数据:

英文描述中文描述颜色
Light Sky Blue: A calming, fairly bright color that falls between sky blue and baby blue, with a hint of slight fluorescence due to its brightness.浅天蓝色 :一种介于天蓝和婴儿 蓝之间的平和、相当明 亮的颜色,由于明亮而 带有一丝轻微的荧光。#66ccff:
Bright red: This is a very vibrant, saturated and vivid shade of red, resembling the color of ripe apples or fresh blood. It is as red as you can get on a standard RGB color palette, with no elements of either blue or green.鲜红色: 这是一种非常鲜 艳、饱和、生动的红色 ,类似成熟苹果或新鲜 血液的颜色。它是标准 RGB 调色板上的红色,不含 任何蓝色或绿色元素。#ee0000:
Bright Turquoise: This color mixes the freshness of bright green with the tranquility of light blue, leading to a vibrant shade of turquoise. It is reminiscent of tropical waters.明亮的绿松石 色:这种颜色融合了鲜 绿色的清新和淡蓝色的 宁静,呈现出一种充满 活力的绿松石色调。它 让人联想到热带水域。#00ffcc:

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求