第4章 环境搭建与工具准备:让你的机器准备好跑BERT

说实话,微调BERT之前,很多人以为最难的是模型本身。但我在项目里踩过最大的坑,反而是环境没搭好。你想想看,折腾半天报错“CUDA out of memory”,或者import transformers直接崩掉——这种事我至少遇到过三次。

所以这一章,咱们把环境捋顺。我的习惯是:先确定硬件,再配Python,最后装依赖。一步步来,稳一点。

4.1 硬件选择:GPU还是CPU?

微调BERT,GPU基本是刚需。我刚开始用CPU跑一个小模型,一个epoch等了两个小时……后来改用T4,十分钟搞定。当然,如果你只是做推理或者极小的实验,CPU也能凑合。

场景推荐显卡显存需求备注
BERT-base 微调(batch_size=16)GTX 1660 / T48GB可跑,但小心OOM
BERT-base 微调(batch_size=32)RTX 3060 / V10016GB稳定,我常用
BERT-large 微调A100 / 309024GB+否则显存会炸
纯CPU推理——可用,但慢到怀疑人生
⚠️ 我曾经犯过的错: 用笔记本8GB显存强行跑batch_size=64,结果程序死掉,显卡驱动崩溃。别试,老老实实按表格来。

4.2 Python环境配置

我习惯用conda创建隔离环境,避免项目之间打架。你也可以用venv,看个人喜好。

# 创建环境,Python 3.8-3.10均可
conda create -n bert_mutation python=3.9 -y
conda activate bert_mutation

为什么要隔离?我以前在全局环境装torch,另一个项目需要旧版本,结果两边都不兼容,折腾了一下午。嗯,教训啊。

4.3 安装核心依赖

四个库:torch(深度学习框架)、transformers(模型和分词器)、datasets(数据处理)、tqdm(进度条)。顺序很重要——先装torch再装别的。

4.3.1 安装PyTorch

去官网选版本(pytorch.org)。我一般用pip,注意CUDA版本。

# 假设CUDA 11.8
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu118

# 如果只有CPU
pip install torch==2.1.0 --index-url https://download.pytorch.org/whl/cpu
💡 我的小技巧: 安装前先运行 nvidia-smi 确认CUDA版本。我曾经装错cu118结果驱动只支持cu117,torch直接报错。重新来一遍,浪费时间。

4.3.2 安装transformers、datasets、tqdm

pip install transformers==4.35.0 datasets==2.14.0 tqdm==4.66.1

版本不一定最新,但别太老。transformers 4.30以上比较稳,我都在用4.35。

4.4 验证安装

这一步不能跳过。很多同学装完就开搞,结果跑起来才发现torch没认到GPU。写个简单脚本验证:

import torch
import transformers
import datasets
from tqdm import tqdm

# 检查PyTorch版本和CUDA
print("Torch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("GPU name:", torch.cuda.get_device_name(0))
    print("Memory:", torch.cuda.get_device_properties(0).total_memory / 1e9, "GB")

# 检查transformers
print("Transformers version:", transformers.__version__)

# 检查datasets
print("Datasets version:", datasets.__version__)

# 测试tqdm
for i in tqdm(range(10), desc="Testing tqdm"):
    pass

print("All good! 🎉")
预期输出例子:
Torch version: 2.1.0+cu118
CUDA available: True
GPU name: Tesla T4
Memory: 16.0 GB
Transformers version: 4.35.0
Datasets version: 2.14.0
Testing tqdm: 100%|██████████| 10/10 [00:00<00:00, 99999.99it/s]
All good! 🎉

如果显示CUDA available: False,检查驱动和torch版本匹配。我曾经遇到过CUDA装好了,但torch装了cpu版本——嗯,这种低级错误我干过一次。

4.5 知识体系:环境搭建全流程

下面这张图,把整个环境搭建的步骤串起来。我自己画的时候,特意把“验证”框成了红色——因为这是最容易忽略的地方。

BERT微调环境搭建流程 创建虚拟环境 选择GPU/CPU 安装PyTorch 安装其他依赖 ⚠️ 验证安装 为什么验证很重要? - GPU未识别 → 白用CPU - 版本冲突 → 莫名报错 - 缺依赖 → import失败 💡 我的经验: 每次都跑一遍验证脚本

4.6 常见问题与避坑

  • CUDA版本不匹配: 用 nvidia-smi 看驱动支持的最高CUDA,然后装对应版本的torch。
  • 显存不足: 减少batch_size,或者用gradient accumulation。我有个项目batch_size=2,accumulation_steps=8,效果一样。
  • transformers版本太旧: 有些模型需要新版本,建议保持4.30+。
  • datasets下载慢: 设置镜像 export HF_ENDPOINT=https://hf-mirror.com。
🔧 我的调试小本本: 遇到torch报错,先看报错最后两行。90%的问题是CUDA相关。我曾经花半小时查一个拼写错误,结果发现是少了个下划线——哎,眼神不好。

好了,到这步你的环境应该就绪了。跑一遍上面的验证脚本,如果看到“All good! 🎉”,那就可以放心往下走了。如果没通过,别急,回头检查一下哪一步漏了。