以微调 BERT 进行文本分类为例介绍Google Colab基本使用方式
微调模型的基本流程(以 Transformers 为例)
准备环境
- 使用 GPU
- 安装需要的库(如
transformers
、datasets
、accelerate
)
加载预训练模型
- 如
bert-base-uncased
,gpt2
,llama
,chatglm
等
- 如
准备数据集
- 本地上传 / 从 Hugging Face 加载 / 自己合成
设置 Trainer / FineTuning 参数
- 学习率、epoch、batch size 等
开始训练(Colab GPU 上)
- 可以保存权重到 Google Drive
- 保存 / 推理 / 导出模型
0. 基本使用
打开colab
url: https://colab.research.google.com/
在导航栏点击file
选择 New notebook in Drive
,后续会保存在你的google drive里
或者在进入网页之后的弹窗里选择 + New notebook
之后会自动创建一个 .ipynb
格式的文件
之后可以在红色框住的地方输入python代码,然后点击左边的黑色开始按钮执行。
例如第一步想要安装一些微调模型必须的python库可以输入
!pip install transformers datasets accelerate
然后点击执行会有如下的反应:
在执行完成之后,原来的开始键旁边会有一个绿色的小勾,提示说运行完成,之后可以在下面查看运行的日志
如果想要隐藏这个日志,可以点击开始键下面的按钮,然后选择第一个 Show/hide output
之后就会将日志进行隐藏,如果想要查看日志,可以再次选择这个选项 Show hidden output
之后想要运行新的python代码可以点击上方的 + Code
点击之后在原来代码框的下方就会出现一个新的代码框
也可以点击 + Text
然后添加一个文本框(markdown格式)作为注释或者对代码的说明
编辑完文字之后点击别处就可以保存,如果想再次编辑只需要双击这个文本框即可
除了在导航栏外,也可以直接将鼠标移动到代码块或者文本块下,会出现两个选项,选择想要的一项即可。
主要代码:
1. 安装库
!pip install transformers>=4.3 datasets accelerate
!pip install --upgrade datasets fsspec
2. 加载预训练模型和 tokenizer
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)
3. 加载数据集
from datasets import load_dataset
dataset = load_dataset("imdb")
tokenized = dataset.map(lambda x: tokenizer(x["text"], truncation=True, padding="max_length"), batched=True)
在load_dataset("imdb")
中,"imdb"
是 Hugging Face Datasets 库 中的一个 内置数据集名称,表示 IMDB 电影评论数据集,是一个经典的二分类情感分析任务数据集。
4. 使用 Trainer
微调
from transformers import Trainer, TrainingArguments
args = TrainingArguments(
output_dir="./results",
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
num_train_epochs=2,
save_steps=500,
logging_dir='./logs',
report_to="none",
)
trainer = Trainer(
model=model,
args=args,
train_dataset=tokenized["train"].shuffle().select(range(2000)), # 小规模训练
eval_dataset=tokenized["test"].shuffle().select(range(500)),
)
trainer.train()
使用 GPU(Colab 设置)
点击菜单栏「Runtime(运行时) → Change runtime type(更改运行时类型)」,选择 GPU 或 TPU」,训练速度可以大大提高。
数据 & 模型保存
你可以将训练过程中的模型、日志保存在 Google Drive 上:
from google.colab import drive
drive.mount('/content/drive')
# 保存模型
model.save_pretrained("/content/drive/MyDrive/bert_finetuned")
tokenizer.save_pretrained("/content/drive/MyDrive/bert_finetuned")