ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

《AI大模型应用开发实战从入门到精通共60篇》003 开发环境搭建:Python、CUDA、PyTorch与Hugging Face全家桶安装指南

2026/8/13 14:20:26 拓冰建站 浏览量
《AI大模型应用开发实战从入门到精通共60篇》003 开发环境搭建:Python、CUDA、PyTorch与Hugging Face全家桶安装指南

003 开发环境搭建:Python、CUDA、PyTorch与Hugging Face全家桶安装指南

从一次“显卡不干活”的惨案说起

上周帮同事调试一个LLaMA微调脚本,他报错说“显存占用为0但程序跑不动”。我远程一看,nvidia-smi显示显卡驱动正常,torch.cuda.is_available()却返回False。折腾半小时,发现他装PyTorch时用了pip install torch——默认装了CPU版本。这种坑我踩过三次,每次都是因为没仔细看PyTorch官网那行小字:“Select your CUDA version”。

所以这篇笔记,咱们就从最底层的CUDA版本对齐开始,一步步把环境搭成“铁桶阵”。

Python版本:别追新,追稳

大模型开发目前最稳的是Python 3.10。3.11以上有些算子库还没完全适配,3.9以下又缺一些类型注解特性。我习惯用pyenv管理多版本,但如果你刚入门,直接去python.org下载3.10.11安装包就行。

踩坑记录:千万别用系统自带的Python(比如macOS的/usr/bin/python3),版本太老且权限混乱。Windows用户注意安装时勾选“Add Python to PATH”,否则后面pip会找不到。

验证安装:

python3--version# 输出:Python 3.10.11

CUDA与cuDNN:显卡的“方言”必须对齐

先查你的NVIDIA显卡算力。RTX 30系列(安培架构)用CUDA 11.8最稳,RTX 40系列(Ada Lovelace)建议CUDA 12.1。老卡如GTX 10系列用CUDA 11.0也行。

别这样写:直接去NVIDIA官网下载最新CUDA 12.4。我试过,PyTorch当时还没出对应版本,装完torch直接报“CUDA driver version is insufficient”。

我的做法:

  1. 打开NVIDIA控制面板 -> 系统信息 -> 组件,看“NVCUDA.DLL”版本号
  2. 去PyTorch官网看“Compute Platform”下拉菜单里支持哪些CUDA版本
  3. 选一个PyTorch和显卡驱动都支持的版本,比如CUDA 11.8

下载CUDA Toolkit时选“exe(local)”安装包,别选网络安装——国内网络你懂的。安装时取消勾选“Visual Studio Integration”,除非你要写CUDA C代码。

cuDNN更简单:去NVIDIA开发者网站注册后下载对应CUDA版本的cuDNN压缩包,解压后把bin、include、lib文件夹里的文件复制到CUDA安装目录(默认C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8)对应文件夹下。

验证CUDA

nvcc--version# 输出:Cuda compilation tools, release 11.8, V11.8.89

PyTorch安装:pip还是conda?我选pip

conda虽然能自动处理依赖,但大模型项目经常需要特定版本的torchvision、torchaudio,conda源更新慢。我改用pip后没再遇到版本冲突。

这里踩过坑:直接pip install torch torchvision torchaudio会装CPU版。正确姿势是去PyTorch官网复制带CUDA版本的命令:

# CUDA 11.8版本pipinstalltorch==2.1.0torchvision==0.16.0torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118

注意版本号要对应。我习惯用2.1.0而不是最新的2.2.x,因为很多第三方库(比如bitsandbytes)还没适配新版本。

验证PyTorch

importtorchprint(torch.__version__)# 2.1.0print(torch.cuda.is_available())# Trueprint(torch.cuda.get_device_name(0))# NVIDIA GeForce RTX 3090

如果torch.cuda.is_available()返回False,检查:

  • 显卡驱动版本是否够新(nvidia-smi看Driver Version)
  • CUDA版本是否与PyTorch匹配
  • 是否装了CPU版(pip list | grep torch看有没有+cpu后缀)

Hugging Face全家桶:transformers + datasets + accelerate + peft

这四个库是大模型开发的标配。我习惯一次性装好,避免后面缺依赖:

pipinstalltransformers datasets accelerate peft

别这样写pip install transformers后跑代码报错“No module named ‘accelerate’”,又回来补装。一次性装完省心。

transformers是模型加载和推理的核心,datasets处理数据,accelerate负责多卡训练和混合精度,peft做LoRA微调。

验证安装:

fromtransformersimportAutoModel,AutoTokenizerfromdatasetsimportload_datasetfromaccelerateimportAcceleratorfrompeftimportLoraConfig,get_peft_modelprint("All imports successful!")

额外工具:bitsandbytes与flash-attn

如果你要微调大模型(比如LLaMA-7B),这两个库能救命。bitsandbytes做4bit量化,flash-attn加速注意力计算。

这里踩过坑:bitsandbytes在Windows上安装需要编译,直接pip大概率失败。解决方案:

  1. 去GitHub Releases下载预编译的whl文件
  2. 或者用WSL2(Windows Subsystem for Linux)开发

我目前在Windows上直接用WSL2 + Ubuntu 22.04,所有工具都能原生安装:

# 在WSL2中pipinstallbitsandbytes pipinstallflash-attn --no-build-isolation

flash-attn安装需要CUDA编译器,确保nvcc在PATH中。

环境隔离:虚拟环境是保命符

大模型项目依赖复杂,不同项目可能要求不同版本的PyTorch或transformers。我每个项目都建独立虚拟环境:

python-mvenv llm_envsourcellm_env/bin/activate# Linux/Mac# 或 llm_env\Scripts\activate # Windows

个人经验:虚拟环境名用项目名缩写,比如llama_finetunechatglm_deploy。别用venv这种通用名,时间长了根本分不清哪个环境对应哪个项目。

最终验证脚本

写一个简单的测试脚本,确保所有组件能协同工作:

importtorchfromtransformersimportAutoModelForCausalLM,AutoTokenizer# 这里踩过坑:第一次跑时忘了加device_map="auto",模型加载到CPU导致OOMmodel_name="gpt2"# 小模型,适合测试tokenizer=AutoTokenizer.from_pretrained(model_name)model=AutoModelForCausalLM.from_pretrained(model_name,device_map="auto",# 自动分配到GPUtorch_dtype=torch.float16# 半精度节省显存)inputs=tokenizer("Hello, I'm",return_tensors="pt").to("cuda")outputs=model.generate(**inputs,max_length=50)print(tokenizer.decode(outputs[0]))

如果输出一段连贯的英文文本,恭喜你,环境搭建成功。

个人经验性建议

  1. 别在系统Python里装任何大模型库。我见过有人直接在/usr/lib/python3里装torch,结果系统包管理器升级时把依赖搞崩了。虚拟环境是底线。

  2. CUDA版本宁旧勿新。PyTorch官方支持列表里最老的版本往往最稳定。我现在主力机还是CUDA 11.8,虽然驱动支持12.4,但没必要追新。

  3. Windows用户建议装WSL2。虽然PyTorch官方支持Windows,但bitsandbytes、flash-attn这些底层库在Windows上编译困难。WSL2里装Ubuntu,所有问题迎刃而解。

  4. 记录每次安装的版本号。我习惯在项目根目录放一个requirements.txt,用pip freeze > requirements.txt生成。下次重装环境直接pip install -r requirements.txt,省去排查版本冲突的时间。

  5. 遇到报错先看PyTorch官网的“Installation Troubleshooting”。很多问题(比如CUDA版本不匹配、缺少Visual C++ Redistributable)都有官方解决方案,比搜CSDN效率高。

环境搭建是门手艺活,踩过的坑越多,后面越顺。下一篇咱们用这个环境跑通第一个大模型推理示例,看看GPT-2是怎么生成文本的。