安装GCC和G++:
运行以下命令来安装GCC和G++编译器。
sudo apt-get install build-essential
gcc --version
g++ --version
或者收解压安装 https://gcc.gnu.org/
以下是基于 CUDA 12.6 和 Python 3.10 的完整 Conda 环境安装清单,专为使用 Unsloth 和 PyTorch 训练模型优化,确保版本兼容性和稳定性:
1. 创建并激活 Conda 环境
bash
conda create -n unsloth_env python=3.10 -y
conda activate unsloth_env
2. 安装 PyTorch 与 CUDA 工具包
bash
# 安装 PyTorch 2.3.0 + CUDA 12.1(兼容 NVIDIA 驱动 561.17 和 CUDA 12.6)
conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=12.1 -c pytorch -c nvidia
3. 安装 Unsloth 及其核心依赖
bash
# 安装 Unsloth(从源码编译,适配 CUDA 12.x)
pip install "unsloth[cu121] @ git+https://github.com/unslothai/unsloth.git"
# 安装 Hugging Face 库
pip install transformers==4.41.2 datasets==2.19.0 accelerate==0.30.1 \
trl==0.8.6 peft==0.11.1 bitsandbytes==0.43.1
# 可选:日志与可视化工具
pip install wandb==0.18.0 tensorboard==2.16.2
4. 补充工具包(按需安装)
bash
# 数据处理与调试
conda install pandas==2.2.2 scikit-learn==1.4.2 matplotlib==3.8.4 jupyterlab==4.1.6 -c conda-forge
# 量化与优化
pip install optimum==1.20.0 onnxruntime-gpu==1.17.3
完整脚本:
conda create -n unsloth_env python=3.10 -y
conda activate unsloth_env
# 安装 PyTorch 2.3.0 + CUDA 12.1(兼容 NVIDIA 驱动 561.17 和 CUDA 12.6)
conda install pytorch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 pytorch-cuda=12.1 -c pytorch -c nvidia
# 安装 Unsloth(从源码编译,适配 CUDA 12.x)
pip install "unsloth[cu121] @ git+https://github.com/unslothai/unsloth.git"
# 安装 Hugging Face 库
pip install transformers==4.41.2 datasets==2.19.0 accelerate==0.30.1 \
trl==0.8.6 peft==0.11.1 bitsandbytes==0.43.1
# 可选:日志与可视化工具
pip install wandb==0.18.0 tensorboard==2.16.2
# 数据处理与调试
conda install pandas==2.2.2 scikit-learn==1.4.2 matplotlib==3.8.4 jupyterlab==4.1.6 -c conda-forge
# 量化与优化
pip install optimum==1.20.0 onnxruntime-gpu==1.17.3
5. 环境验证脚本
在 Python 中运行以下代码检查环境:
python
import torch
from unsloth import FastLanguageModel
print("PyTorch 版本:", torch.__version__)
print("CUDA 可用:", torch.cuda.is_available())
print("设备名称:", torch.cuda.get_device_name(0))
print("计算能力:", torch.cuda.get_device_capability(0))
print("剩余显存 (GB):", round(torch.cuda.mem_get_info()[0] / 1024**3, 2))
# 验证 Unsloth 基础功能
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/mistral-7b-bnb-4bit",
max_seq_length=2048,
dtype=torch.float16,
load_in_4bit=True,
)
print("\nUnsloth 模型加载成功!")
版本选择依据
库名称 | 版本 | 兼容性说明 |
PyTorch | 2.3.0 | 官方支持 CUDA 12.1,兼容驱动 561.17 + CUDA 12.6 环境 |
Unsloth | 最新源码 | 从 GitHub 安装适配 CUDA 12.x 的版本 |
Transformers | 4.41.2 | 与 Unsloth 最新版本兼容,支持 Flash Attention 2 优化 |
Bitsandbytes | 0.43.1 | 支持 4-bit/8-bit 量化,适配 CUDA 12.x |
常见问题解决
- CUDA 版本冲突:如果报错 CUDA kernel missing,运行:bash复制conda install cuda -c nvidia/label/cuda-12.1.1
- 显存不足:在 from_pretrained 中设置 load_in_4bit=True添加 bnb_4bit_compute_dtype=torch.float16 减少计算精度
- 依赖冲突:优先使用 Conda 安装基础库(如 NumPy、Cython),再用 Pip 安装其他包:bash复制conda install numpy=1.26.4 cython=3.0.8 -c conda-forge
完整环境导出
bash
conda env export > unsloth_env.yaml