Skip to content

Mac 本地运行建议

你的机器是 MacBook Pro M4,24G 内存。它适合本地跑通小规模训练流程,但不适合一开始就全量训练 BERT。

设备选择

PyTorch 在 Apple Silicon 上可以使用 MPS:

python
device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")

建议启动时打印:

python
print(f"使用设备: {device}")

如果输出:

text
使用设备: mps

说明已经用上 Mac GPU。

第一次训练建议参数

为了快速看到完整流程,建议:

python
MAX_TRAIN_SAMPLES = 256
MAX_VALID_SAMPLES = 64
BATCH_SIZE = 8
MAX_LENGTH = 64
EPOCHS = 1
FREEZE_BERT = True

含义:

参数建议值原因
MAX_TRAIN_SAMPLES256快速跑通训练
MAX_VALID_SAMPLES64快速完成验证
BATCH_SIZE8降低内存压力
MAX_LENGTH64商品标题通常不长
EPOCHS1第一遍只验证流程
FREEZE_BERTTrue只训练分类头,更快

FREEZE_BERT = True 时:

python
for param in model.bert.parameters():
    param.requires_grad = False

这表示 BERT 主体不更新,只训练最后的分类层。

学习流程时这样很好;真正微调时再改成:

python
FREEZE_BERT = False

依赖安装

建议使用虚拟环境:

bash
python -m venv .venv
source .venv/bin/activate
pip install torch transformers datasets scikit-learn tqdm

如果只跑最小脚本,核心依赖是:

bash
pip install torch transformers

如果运行原项目完整流程,再安装:

bash
pip install -r requirements.txt

本地文档站点

安装依赖:

bash
npm install

启动文档:

bash
npm run docs:dev

构建文档:

bash
npm run docs:build

预览构建结果:

bash
npm run docs:preview

什么时候算成功

第一阶段不要看准确率。

先看这些信号:

text
能加载数据
能加载 tokenizer
能加载 bert-base-chinese
能进入训练循环
loss 能打印出来
验证能跑完
模型能保存

这些都跑通,说明训练管线已经通了。

准确率是第二阶段的事情。