# 如何使用 Unsloth 在 Windows 上微调 LLM（分步指南）

现在你可以直接在本地 Windows 设备上微调模型，而无需 WSL，方法是使用 [Unsloth](https://github.com/unslothai/unsloth)。本指南提供 3 种主要方法供你使用（[Conda](#method-1-windows-via-conda), [Docker](#method-2-docker) 和 [WSL](#method-3-wsl)）。\
如果你已经在 Windows 上安装了 PyTorch， `pip install unsloth` 应该可以正常工作。否则，请按照下面的指南：

<a href="#method-1-windows-via-conda" class="button secondary">Conda 教程</a><a href="#method-2-docker" class="button secondary">Docker 教程</a><a href="#method-3-wsl" class="button secondary">WSL 教程</a>

### Unsloth Studio

我们推出了一个名为 [Unsloth Studio](https://unsloth.ai/docs/zh/xin-zeng/studio/install) 的新 Web UI，可直接在 Windows 上使用：

```bash
irm https://unsloth.ai/install.ps1 | iex
```

使用相同的命令进行更新，或者使用 `unsloth studio update`.

然后每次启动时：

```bash
unsloth studio -H 0.0.0.0 -p 8888
```

有关 Unsloth Studio 的详细安装说明和要求， [请查看我们的指南](https://unsloth.ai/docs/zh/xin-zeng/studio/install).

下面是原始 **Unsloth 核心**:

### 方法 #1 - 通过 Conda 在 Windows 上安装：

{% stepper %}
{% step %}
**安装 Miniconda（或 Anaconda）**

下载 Anaconda [这里](https://www.anaconda.com/download)。我们的建议是使用 [Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/install#quickstart-install-instructions)。要使用它，先打开 Powershell——在开始菜单中搜索“Windows Powershell”：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FvCgJ3hTR5ChVmCR1ndAh%2Fimage.png?alt=media&#x26;token=bcabe210-793f-40ae-944a-a349dddc8c35" alt="" width="375"><figcaption></figcaption></figure>

然后它会打开 Powershell：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fm7J0b8Qz5W2aGktt3KA9%2Fimage.png?alt=media&#x26;token=f84327e4-408f-492c-a909-982ed458f393" alt="" width="375"><figcaption></figcaption></figure>

然后复制粘贴下面内容：CTRL+C，并将其粘贴到 Powershell 中 CTRL+V：

{% code overflow="wrap" %}

```ps
Invoke-WebRequest -Uri "https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe" -OutFile ".\miniconda.exe"
Start-Process -FilePath ".\miniconda.exe" -ArgumentList "/S" -Wait
del .\miniconda.exe
```

{% endcode %}

接受警告并点击“仍要粘贴”，然后等待。

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FZCFxO1FrYGk7sV7AmCe8%2Fimage.png?alt=media&#x26;token=f753dbdb-efa9-462c-875b-0a18509a10cf" alt="" width="375"><figcaption></figcaption></figure>

它正在下载如下所示的安装程序：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F2TzsqlGZyUI4wBT0hXW9%2Fimage.png?alt=media&#x26;token=a680690a-3179-4525-bf83-0163424b5ddc" alt="" width="375"><figcaption></figcaption></figure>

安装完成后，打开 **Anaconda Powershell Prompt** 通过开始菜单 -> 搜索它来使用 Miniconda：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FWoQSFFfmB26WT6BdzrvJ%2Fimage.png?alt=media&#x26;token=747c6c4e-f676-4927-abad-cb667e757309" alt="" width="375"><figcaption></figcaption></figure>

然后你会看到：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FNTTeflwW9Gw7lxJdCUcy%2Fimage.png?alt=media&#x26;token=77f093b7-9fd5-47f2-856d-18f238f5a95e" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**创建 conda 环境**

```bash
conda create --name unsloth_env python==3.12 -y
conda activate unsloth_env
```

**你会看到：**

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FEFYV6IhOeXIDbzxYHzEJ%2Fimage.png?alt=media&#x26;token=e3452b73-cfd2-4148-a735-cfe400369c17" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**检查 `nvidia-smi` 以确认你有 GPU，并查看 CUDA 版本**

输入 `nvidia-smi` 到 Powershell 后，你应该会看到类似如下内容。如果你没有 `nvidia-smi` 或者下面的内容无法弹出，你需要重新安装 [NVIDIA 驱动程序](https://www.nvidia.com/en-us/drivers/).

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2F1CMAzx7LX8LEc8GHy1I9%2Fimage.png?alt=media&#x26;token=a0ad52e3-be17-4dc4-ae97-ba400a639098" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**安装 PyTorch**

运行 `nvidia-smi` 时，你会在右上角看到：“CUDA Version: 13.0”。在 PowerShell 中安装 PyTorch。将 `130` 更改为你的 CUDA 版本——确保该 [版本存在](https://pytorch.org/) 并且与您的 CUDA 驱动程序版本匹配。

{% code overflow="wrap" %}

```bash
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
```

{% endcode %}

你会看到：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2Fo4aNeIbILGYvfpjYa1X2%2Fimage.png?alt=media&#x26;token=444d6907-04e0-4d5e-8de5-d8cdcaf85364" alt="" width="563"><figcaption></figcaption></figure>

在 Python 中尝试运行此命令： `python` 在安装 PyTorch 后：

{% code overflow="wrap" %}

```python
import torch
print(torch.cuda.is_available())
A = torch.ones((10, 10), device = "cuda")
B = torch.ones((10, 10), device = "cuda")
A @ B
```

{% endcode %}

你应该会看到一个由 10 组成的矩阵。同时检查第一个结果是否为 True。

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FJkf39Nyfgyt4QmTLGhOx%2Fimage.png?alt=media&#x26;token=2d1a16a6-e524-461a-ac75-a24b6bda333f" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**安装 Unsloth（仅当 PyTorch 正常工作时！）**

{% hint style="danger" %}
**确认 PyTorch 能正常工作并运行——如果不能，那就是 PyTorch 出问题了，这意味着你的 Windows 机器可能不幸需要重新安装 CUDA 驱动程序。**
{% endhint %}

在 Powershell 中（通过以下方式退出 Python 后 `exit()` ，执行并等待：

```bash
pip install unsloth
```

{% endstep %}

{% step %}
**验证 Unsloth 是否正常工作**

现在使用 [unsloth-notebooks](https://unsloth.ai/docs/zh/kai-shi-shi-yong/unsloth-notebooks "mention") 中的任意脚本（保存为 .py 文件），或者使用下面的基础脚本：

{% code expandable="true" %}

```python
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 512
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/gemma-3-270m-it",
    max_seq_length = max_seq_length, # 长上下文可任选！
    load_in_4bit = True,  # 4 位量化。False = 16 位 LoRA。
    load_in_8bit = False, # 8 位量化
    load_in_16bit = False, # 16 位 LoRA
    full_finetuning = False, # 用于全量微调。
    trust_remote_code = False, # 启用以支持新模型
    # token = "hf_...", # 如果使用受限模型，请使用一个
)

# 执行模型补丁并添加快速 LoRA 权重
model = FastLanguageModel.get_peft_model(
    model,
    r = 16,
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # 支持任意值，但 = 0 已优化
    bias = "none",    # 支持任意值，但 = "none" 已优化
    # [NEW] “unsloth” 可减少 30% 显存占用，可容纳 2 倍更大的批量大小！
    use_gradient_checkpointing = "unsloth", # 对于超长上下文，可设为 True 或 "unsloth"
    random_state = 3407,
    max_seq_length = max_seq_length,
    use_rslora = False,  # 我们支持秩稳定 LoRA
    loftq_config = None, # 也支持 LoftQ
)

trainer = SFTTrainer(
    model = model,
    train_dataset = dataset,
    tokenizer = tokenizer,
    args = SFTConfig(
        max_seq_length = max_seq_length,
        per_device_train_batch_size = 2,
        gradient_accumulation_steps = 4,
        warmup_steps = 10,
        max_steps = 60,
        logging_steps = 1,
        output_dir = "outputs",
        optim = "adamw_8bit",
        seed = 3407,
        dataset_num_proc = 1,
    ),
)
trainer.train()
```

{% endcode %}

你应该会看到：

```bash
🦥 Unsloth：将为你的计算机打补丁，以实现快 2 倍的免费微调。
🦥 Unsloth Zoo 现在将为所有内容打补丁，让训练更快！
==((====))==  Unsloth 2026.1.4：快速 Gemma3 打补丁。Transformers: 4.57.6.
   \\   /|    NVIDIA GeForce RTX 3060。GPU 数量 = 1。最大显存：12.0 GB。平台：Windows。
O^O/ \_/ \    Torch: 2.10.0+cu130。CUDA: 8.6。CUDA Toolkit: 13.0。Triton: 3.6.0
\        /    Bfloat16 = TRUE。FA [Xformers = 0.0.34. FA2 = False]
 "-____-"     免费许可：http://github.com/unslothai/unsloth
Unsloth：已启用快速下载——请忽略红色的下载进度条！
Unsloth：Gemma3 不支持 SDPA——正在切换到 fast eager。
Unsloth：使 `model.base_model.model.model` 需要梯度
Unsloth：正在对 ["text"] 进行分词（num_proc=1）：   0%|                 | 0/210289 [00:00<?, ? examples/s]�  Unsloth：将为你的计算机打补丁，以实现快 2 倍的免费微调。
🦥 Unsloth：将为你的计算机打补丁，以实现快 2 倍的免费微调。
```

然后训练：

<figure><img src="https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FfJalYwpN7ffC88J2dsOQ%2Fimage.png?alt=media&#x26;token=e2129773-9255-4983-b52e-51de5729a7ab" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### 方法 #2 - Docker：

对于 Windows 用户来说，Docker 可能是开始使用 Unsloth 最简单的方法，因为无需设置，也没有依赖项问题。 [**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) 是 Unsloth 唯一的 Docker 镜像。对于 [Blackwell](https://unsloth.ai/docs/zh/bo-ke/fine-tuning-llms-with-blackwell-rtx-50-series-and-unsloth) 和 50 系列 GPU，请使用同一个镜像——无需单独的镜像。

有关安装说明，请遵循我们的 [Docker 指南](https://unsloth.ai/docs/zh/bo-ke/how-to-fine-tune-llms-with-unsloth-and-docker)，否则这里有一个快速入门指南：

{% stepper %}
{% step %}
**安装 Docker 和 NVIDIA Container Toolkit。**

通过 [Linux](https://docs.docker.com/engine/install/) 或 [Desktop](https://docs.docker.com/desktop/) （其他）安装 Docker。然后安装 [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installation):

```bash
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get update && sudo apt-get install -y \
  nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
  libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
```

{% endstep %}

{% step %}
**运行容器。**

[**`unsloth/unsloth`**](https://hub.docker.com/r/unsloth/unsloth) 是 Unsloth 唯一的 Docker 镜像。

```bash
docker run -d -e JUPYTER_PASSWORD="mypassword" \
  -p 8888:8888 -p 2222:22 \
  -v $(pwd)/work:/workspace/work \
  --gpus all \
  unsloth/unsloth
```

{% endstep %}

{% step %}
**访问 Jupyter Lab**

前往 [http://localhost:8888](http://localhost:8888/) 并打开 Unsloth。访问 `unsloth-notebooks` 选项卡以查看 Unsloth 笔记本。
{% endstep %}

{% step %}
**开始使用 Unsloth 训练**

如果你是新手，请按照我们的分步 [微调指南](https://unsloth.ai/docs/zh/kai-shi-shi-yong/fine-tuning-llms-guide), [RL 指南](https://unsloth.ai/docs/zh/kai-shi-shi-yong/reinforcement-learning-rl-guide) 或者直接保存/复制我们的任意预制 [笔记本](https://unsloth.ai/docs/zh/kai-shi-shi-yong/unsloth-notebooks).
{% endstep %}

{% step %}
**Docker 问题 - 没有识别到 GPU？**

尝试通过 WSL [#method-2-wsl](#method-2-wsl "mention")
{% endstep %}
{% endstepper %}

### 方法 #3 - WSL：

{% stepper %}
{% step %}
**安装 WSL**

打开命令提示符、终端，并安装 Ubuntu。如有提示，请设置密码。

```bash
wsl.exe --install Ubuntu-24.04
wsl.exe -d Ubuntu-24.04
```

{% endstep %}

{% step %} <mark style="color:$primary;background-color:orange;">**如果你没有执行（1），也就是你已经安装了 WSL**</mark>**，通过输入以下命令进入 WSL `wsl` 并在命令提示符中按 ENTER**

```bash
wsl
```

{% endstep %}

{% step %}
**安装 Python**

{% code overflow="wrap" %}

```bash
sudo apt update
sudo apt install python3 python3-full python3-pip python3-venv -y
```

{% endcode %}
{% endstep %}

{% step %}
**安装 PyTorch**

{% code overflow="wrap" %}

```bash
pip install torch torchvision --force-reinstall --index-url https://download.pytorch.org/whl/cu130
```

{% endcode %}

如果遇到权限问题，请使用 `–break-system-packages` 因此 `pip install torch torchvision --force-reinstall --index-url https://download.pytorch.org/whl/cu130 –break-system-packages`
{% endstep %}

{% step %}
**安装 Unsloth 和 Jupyter Notebook**

{% code overflow="wrap" %}

```bash
pip install unsloth jupyter
```

{% endcode %}

如果遇到权限问题，请使用 `–-break-system-packages` 因此 `pip install unsloth jupyter –-break-system-packages`
{% endstep %}

{% step %}
**通过 Jupyter Notebook 启动 Unsloth**

{% code overflow="wrap" %}

```bash
jupyter notebook
```

{% endcode %}

然后在 [unsloth-notebooks](https://unsloth.ai/docs/zh/kai-shi-shi-yong/unsloth-notebooks "mention")中打开我们的笔记本并加载它们！你也可以前往 Colab 笔记本并下载 > 下载 .ipynb，然后加载它们。

![](https://2657992854-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxhOjnexMCB3dmuQFQ2Zq%2Fuploads%2FVbqNWsG2CCHKJJjrnU4s%2Funknown.png?alt=media\&token=854a6d0e-fc84-4e44-bf8e-4bf254801692)
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
如果你正在使用 GRPO 或计划使用 vLLM，目前 vLLM 不直接支持 Windows，但可通过 WSL 或 Linux 使用。
{% endhint %}

### **故障排查 /** 高级

对于 **高级安装说明** ，或如果你在安装过程中看到奇怪的错误：

1. 安装 `torch` 和 `triton`。前往 <https://pytorch.org> 进行安装。例如 `pip install torch torchvision torchaudio triton`
2. 确认 CUDA 是否已正确安装。尝试 `nvcc`。如果失败，你需要安装 `cudatoolkit` 或 CUDA 驱动程序。
3. 如果使用 Intel GPU，你需要遵循我们的 [Intel Windows 指南](https://unsloth.ai/docs/zh/kai-shi-shi-yong/intel#windows-only-runtime-configurations)
4. 安装 `xformers` 手动安装。你可以尝试安装 `vllm` 并查看是否 `vllm` 成功。检查是否 `xformers` 通过以下命令成功： `python -m xformers.info` 前往 <https://github.com/facebookresearch/xformers。另一个选择是为> Ampere GPU 安装 `flash-attn` 。
5. 仔细检查你的 Python、CUDA、CUDNN、 `torch`, `triton`以及 `xformers` 版本彼此兼容。 [PyTorch 兼容性矩阵](https://github.com/pytorch/pytorch/blob/main/RELEASE.md#release-compatibility-matrix) 可能会有帮助。
6. 最后，安装 `bitsandbytes` 并通过以下命令检查它 `python -m bitsandbytes`
7. 如果 Unsloth 没有检测到或使用你的 GPU，并且你在 Windows 上使用我们的 Docker 容器，那么你的 CUDA toolkit 版本 `nvcc --version` 应与主机上 nvidia-smi 显示的 CUDA 版本一致；Windows 上的 Docker 容器 GPU 支持不是自动的。 [你需要遵循 Docker 的指南](https://docs.docker.com/desktop/features/gpu/).

### 卸载 Unsloth Studio

要在 Windows 上卸载 Unsloth Studio，请按照以下 4 个步骤：

#### **1. 删除应用程序**

* Windows（PowerShell）： `Remove-Item -Recurse -Force "$HOME\.unsloth\studio\unsloth", "$HOME\.unsloth\studio\studio"`&#x20;

这会删除应用程序，但会保留你的模型检查点、导出、历史记录、缓存和聊天内容。

#### **2. 删除快捷方式和符号链接**

**WSL / Windows（PowerShell）：**

```bash
Remove-Item -Force "$HOME\Desktop\Unsloth Studio.lnk"
Remove-Item -Force "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Unsloth Studio.lnk"
```

#### **3. 删除 CLI 命令**

**WSL：**

```bash
rm -f ~/.local/bin/unsloth
```

**Windows（PowerShell）：** 安装程序已将 venv 的 `Scripts` 目录添加到你的用户 PATH 中。要将其删除，请打开 设置 → 系统 → 关于 → 高级系统设置 → 环境变量，找到 `Path` （位于用户变量下），并删除指向 `.unsloth\studio\...\Scripts`.

#### **4. 删除所有内容（可选）**

如果你还想删除历史记录、缓存、聊天内容、模型检查点和模型导出，请删除整个 Unsloth 文件夹：

* WSL，Linux： `rm -rf ~/.unsloth`
* Windows（PowerShell）： `Remove-Item -Recurse -Force "$HOME\.unsloth"`&#x20;

请注意，下载的 HF 模型文件会单独存储在 Hugging Face 缓存中——以上步骤都不会删除它们。请参见 **删除模型文件** 如果你想回收那部分磁盘空间，请查看下面内容。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/zh/kai-shi-shi-yong/install/windows-installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
