# 使用 Unsloth 在 NVIDIA DGX Station 上微调 LLM

现在，您可以在 NVIDIA DGX Station 上使用本地训练 LLM，使用 [Unsloth](https://github.com/unslothai/unsloth)。DGX Station 拥有超过 **\~200GB 显存** 以及超过 **700GB 的统一 GPU/CPU 内存** 并将 Grace CPU 与 Blackwell GPU 结合在一个紧密互连的系统中，专为大规模 AI 工作负载设计。通过 NVLink-C2C 连接，CPU 与 GPU 虽然仍然各自独立，但协同工作比传统的 CPU-GPU 配置高效得多。

在本指南中，我们将使用 Unsloth 笔记本训练 [Qwen3.5](#qwen3.5-35b-a3b-fine-tuning) 和 [gpt-oss-120b](#gpt-oss-120b-fine-tuning) 在 DGX Station 上。感谢 NVIDIA 提供部分早期访问的 DGX Station 硬件以测试 Unsloth！

### 快速开始

您将需要 `python3` 已安装，特别是需要开发头文件。在我们的系统上，我们有 `python 3.12` 因此我们将安装 3.12 的开发头文件。

```bash
sudo apt update
sudo apt install python3.12-dev
```

然后创建一个新的虚拟环境来安装 [Unsloth](https://github.com/unslothai/unsloth)。这样我们可以最小化依赖冲突并保留当前工作环境的状态。&#x20;

{% code overflow="wrap" %}

```bash
python3 -m venv .unsloth
source .unsloth/bin/activate
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
```

{% endcode %}

{% hint style="warning" %}
首先从 `torch` 安装 `cuda 13` 索引，否则我们可能会得到 CPU 版本或体系结构与功能不匹配的版本！
{% endhint %}

<div><figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fw04Su0JZriUaQxD31wf0%2Funknown.png?alt=media&#x26;token=83e61cdb-74c3-42c4-a1ff-18cec3752c9e" alt=""><figcaption></figcaption></figure> <figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F9bs6h6YxI2hqnqOz1bU0%2Funknown.png?alt=media&#x26;token=e3e261b5-be18-4d49-9f38-526012add332" alt=""><figcaption></figcaption></figure></div>

现在我们可以安装 Unsloth：

```bash
pip install unsloth
```

<div><figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FhQZznPQ8O9Wh3At6FclO%2Funknown.png?alt=media&#x26;token=34c8de6e-bef8-414c-8e1b-2913589c4b10" alt=""><figcaption></figcaption></figure> <figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FdLZCFmln5LaUWtO6eC4A%2Funknown.png?alt=media&#x26;token=ce04e025-32c7-4847-ac35-bee1baf6259f" alt=""><figcaption></figcaption></figure></div>

现在让我们安装 `xformers` 并（可选地）从源码构建 `flash-attention` 这两个包都需要时间，因此在构建时请耐心等待。

{% code overflow="wrap" expandable="true" %}

```bash
pip install --no-deps --no-build-isolation xformers==0.0.33.post1
# 可选的 flash-attn
# 克隆并构建（针对 B300 的 sm_100） 
git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention 
# B300 = sm_100，显式设置架构 
TORCH_CUDA_ARCH_LIST="10.0" MAX_JOBS=8 pip install . --no-build-isolation
cd ..
```

{% endcode %}

<div><figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FnyczIn3YvXAPx5oIfZQQ%2Funknown.png?alt=media&#x26;token=1a2c5f7b-13c5-4f5e-b4c4-61df8d5fc653" alt=""><figcaption></figcaption></figure> <figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FoupUFzx2pOG6l5B91Pw4%2Funknown.png?alt=media&#x26;token=009d2c73-5992-4593-8fd0-e7d813eda3ff" alt=""><figcaption></figcaption></figure></div>

{% columns %}
{% column %}
对于 Qwen 3.5 MoE，我们需要下载两个内核包 `flash-linear-attention` 和 `causal-conv1d` 以提高速度。

{% code overflow="wrap" expandable="true" %}

```bash
pip install --no-build-isolation flash-linear-attention causal_conv1d==1.6.0
```

{% endcode %}
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F4xEY8k3jzxfOgMWAgJD7%2Funknown.png?alt=media&#x26;token=2b8bd62e-23cd-4bcf-a0af-6d161d1ec1a1" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

如果您还没有笔记本客户端，请安装一个。对于本指南，我们将使用 Jupyter Notebook：

{% code overflow="wrap" expandable="true" %}

```bash
cd ..
pip install notebook
pip install ipywidgets
```

{% endcode %}

最后我们下载实际用于运行的 Unsloth 笔记本。共有 250 多个用于 LLM 训练的笔记本以及 Python 脚本。

{% code overflow="wrap" expandable="true" %}

```bash
git clone https://github.com/unslothai/notebooks.git
cd notebooks
```

{% endcode %}

### 训练教程

{% columns %}
{% column %}
现在我们可以启动 Jupyter Notebook 并在浏览器中导航到 UI。

{% code overflow="wrap" expandable="true" %}

```bash
jupyter notebook
```

{% endcode %}
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FP2seywdWvLHHQkdP8DGy%2Funknown.png?alt=media&#x26;token=ca1b5390-5eb8-416b-a3e9-d9df9b27fb0b" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
复制并粘贴 `localhost` 站点带有 token 参数并将其粘贴到浏览器中。您应看到类似于：

该 `nb` 文件夹包含所有可运行的笔记本。
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FSxN976oDM4WaG5EtpSc9%2Funknown.png?alt=media&#x26;token=7113ba12-5bcc-4bc6-9777-b9d4c440d0bf" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Qwen3.5-35B-A3B 训练

{% columns %}
{% column %}
打开文件 `nb/Qwen3_5_MoE.ipynb`。跳过安装部分，因为我们之前已经安装了所有需要的内容。导航到 Unsloth 部分并从那里开始执行单元。

{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fif8mAvc1au9Hl83IZzNm%2FDGX%20Station.png?alt=media&#x26;token=1011c8a9-c6ba-48df-a726-d3bc3bc8e947" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
该笔记本涵盖模型设置、数据集准备和训练器配置。每一步可能都需要一些时间，因为我们正在下载非常大的模型、初始化数十亿个权重，并进一步优化以提高运行速度。&#x20;
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F4v0NmHdhiYCHFll8U8OD%2Funknown.png?alt=media&#x26;token=69e3d279-4d59-4439-802f-11bd02fe39d3" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

使用默认设置训练非常快。在 DGX Station 上内存充足，因此您可以调整默认训练超参数以真正挑战内存和计算。一旦训练完成，您可以保存模型以备后用，将模型推送到 Hugging Face Hub 与他人共享，或导出为量化格式。

#### gpt-oss-120b 训练

{% columns %}
{% column %}
打开文件 `nb/gpt-oss-(120B)_A100-Fine-tuning.ipynb`。跳过安装部分，因为我们已经安装了先决条件，并导航到 Unsloth 部分。我们可以从那里开始运行笔记本。该笔记本将使用大约 72 GB 的 GPU 内存，运行大约 10 分钟。
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F8jYYievlemxDJBatevNV%2FDGX%20Station%202.png?alt=media&#x26;token=efef1a26-a170-4690-972f-1a7cde67e9ea" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
每个单元格可能需要一些时间来运行，因为我们需要下载模型、初始化权重，并进一步优化以获得更快的体验。笔记本涵盖数据集预处理和训练器设置。一旦我们到达 `trainer.train()` 单元并执行，训练就会开始。
{% endcolumn %}

{% column %}

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FOxuma3ZZeEbxZrAWIgnq%2FDGX%20Station%203.png?alt=media&#x26;token=17beb84e-eb56-4357-aee2-078c4db3eb84" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

现在完成后，我们可以保存模型以备后用，推送到 Hugging Face Hub 与全世界共享，或将其导出为 GGUF 格式。

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fy1UxtQ01avFK5BIkofwt%2Fimage.png?alt=media&#x26;token=8d137818-a3a6-4d00-a9fd-1e41ed0483a5" alt=""><figcaption></figcaption></figure>

在以下链接阅读有关 NVIDIA DGX Station 的更多信息： <https://www.nvidia.com/en-us/products/workstations/dgx-station/>
