使用google colab 微调模型

以微调 BERT 进行文本分类为例介绍Google Colab基本使用方式

微调模型的基本流程(以 Transformers 为例)

  1. 准备环境

    • 使用 GPU
    • 安装需要的库(如 transformersdatasetsaccelerate
  2. 加载预训练模型

    • bert-base-uncased, gpt2, llama, chatglm
  3. 准备数据集

    • 本地上传 / 从 Hugging Face 加载 / 自己合成
  4. 设置 Trainer / FineTuning 参数

    • 学习率、epoch、batch size 等
  5. 开始训练(Colab GPU 上)

    • 可以保存权重到 Google Drive
  6. 保存 / 推理 / 导出模型

0. 基本使用

打开colab

url: https://colab.research.google.com/

在导航栏点击file

image-20250701011002698

选择 New notebook in Drive ,后续会保存在你的google drive里

image-20250701012740138

或者在进入网页之后的弹窗里选择 + New notebook

image-20250701011050081

之后会自动创建一个 .ipynb 格式的文件

image-20250701011220403

之后可以在红色框住的地方输入python代码,然后点击左边的黑色开始按钮执行。

例如第一步想要安装一些微调模型必须的python库可以输入

!pip install transformers datasets accelerate

然后点击执行会有如下的反应:

image-20250701011323862

image-20250701011338649

在执行完成之后,原来的开始键旁边会有一个绿色的小勾,提示说运行完成,之后可以在下面查看运行的日志

image-20250701011531432

如果想要隐藏这个日志,可以点击开始键下面的按钮,然后选择第一个 Show/hide output

image-20250701011651038

之后就会将日志进行隐藏,如果想要查看日志,可以再次选择这个选项 Show hidden output

image-20250701011751607


之后想要运行新的python代码可以点击上方的 + Code

image-20250701011955907

点击之后在原来代码框的下方就会出现一个新的代码框

image-20250701012011915

也可以点击 + Text 然后添加一个文本框(markdown格式)作为注释或者对代码的说明

image-20250701012136463

编辑完文字之后点击别处就可以保存,如果想再次编辑只需要双击这个文本框即可

image-20250701012259024

除了在导航栏外,也可以直接将鼠标移动到代码块或者文本块下,会出现两个选项,选择想要的一项即可。

image-20250701012434625

主要代码:

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")
添加新评论