第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 / T4 | 8GB | 可跑,但小心OOM |
| BERT-base 微调(batch_size=32) | RTX 3060 / V100 | 16GB | 稳定,我常用 |
| BERT-large 微调 | A100 / 3090 | 24GB+ | 否则显存会炸 |
| 纯CPU推理 | — | — | 可用,但慢到怀疑人生 |
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 知识体系:环境搭建全流程
下面这张图,把整个环境搭建的步骤串起来。我自己画的时候,特意把“验证”框成了红色——因为这是最容易忽略的地方。
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。
好了,到这步你的环境应该就绪了。跑一遍上面的验证脚本,如果看到“All good! 🎉”,那就可以放心往下走了。如果没通过,别急,回头检查一下哪一步漏了。