Google Colab 和预训练BERT模型轻松入门

Google Colab 和预训练BERT模型轻松入门

首页休闲益智解压模型更新时间:2024-10-21

Google Colab(或称为 "Colaboratory")是Google提供的一个免费的、基于浏览器的Python开发环境,它为深度学习研究提供了强大的计算支持。

在Colab中,python代码的执行是基于.ipynb文件,也就是Jupyter Notebook格式的python文件。这种笔记本文件与普通.py文件的区别是可以分块执行代码并立刻得到输出,同时也可以很方便地添加注释,这种互动式操作十分适合一些轻量的任务。

Google Colab的工作流程相对直观和简单。下面是一个常见的Colab工作流程的概述:

1. 访问 Colab

打开浏览器,访问Google Colab的主页。

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

需要创建一个谷歌账户。Colab一般配合Google Drive使用。

可以选择新建一个笔记本、从Google Drive打开现有笔记本,或者从GitHub导入一个外部笔记本。

进入Colab的页面后点击新建笔记本。

使用这种方法新建的笔记本时,会在云端硬盘的根目录自动创建一个叫Colab Notebook的文件夹,新创建的笔记本就保存在这个文件夹中。

2. 选择运行时类型

在笔记本页面的顶部菜单,点击“代码执行程序” > “更改运行时类型”。

选择你需要的硬件加速器类型(CPU、GPU或TPU)。

3. 编写和运行代码

在单元中输入Python代码或者使用Markdown格式的文本。

使用快捷键或点击播放按钮运行代码单元。

Colab已经预装了大多数常见的深度学习库,比如PyTorch,tensorflow等等,如果有需要额外安装的库可以通过"!pip3 install <package>"命令来安装。

下面在笔记本中使用pip命令安装Python库或者依赖。

我们可以随时保存笔记本到Google Drive。可以生成共享链接,与其他人分享自己的笔记本。

Colab支持将笔记本下载为多种格式,如.ipynb、.py。

当完成工作后,可以选择断开连接或关闭浏览器标签来结束Colab会话。需要注意的是,每个会话的资源是临时的,当会话结束后,未保存到Google Drive的数据和结果都会丢失。

虽然Colab提供了免费的GPU和TPU资源,但这些资源是有使用限制的,例如每个会话的持续时间、总的计算时间等。长时间不活跃或使用资源过多可能会导致会话被中断。

4. 示例代码

下面是一段使用预训练BERT模型和分词器(tokenizer)的简单示例代码:

# 在Colab中安装Transformers库 !pip install transformers # 导入对应的库 from transformers import BertTokenizer # 下载了BERT base版本的预训练分词器 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

# 对输入文本进行分词化 tokenization text = "Using transformers is easy!" tokenizer(text) 调用tokenizer(text)将返回一个字典,该字典通常包含input_ids(文本的token IDs)和attention_mask(用于标识实际token和填充token的掩码)。 输出内容: {'input_ids': [101, 2478, 19081, 2003, 3733, 999, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1]}

input_ids显示每个标记的标记ID,token_type_ids(有时也被称为“segment ids”)是一个与输入token序列长度相同的整数序列。

token_type_ids提供了一种机制,让模型知道输入中的不同句子或段落的界限。不过,需要注意的是,并不是所有的transformer模型都使用token_type_ids;例如,GPT-2就没有这个概念。

Hugging Face的transformers库为多种预训练模型提供了Tokenizers。Tokenization是将文本字符串转换为模型可以理解的形式(如ID序列)的过程。

# 下载模型 from transformers import BertModel model = BertModel.from_pretrained("bert-base-uncased")

使用BertModel.from_pretrained("bert-base-uncased")下载了预训练的"bert-base-uncased"模型。这个模型是BERT的基础版本,是不区分大小写的英文模型。

# 将分词器的输出传递给BERT模型 encoded_input = tokenizer(text, return_tensors = "pt") output = model(**encoded_input)

tokenizer(text, return_tensors = "pt")是将输入的文本text进行分词,并返回一个字典,其中包含模型需要的输入信息,如input_ids和attention_mask。参数return_tensors = "pt"表示返回的张量是PyTorch张量。

通过将分词器返回的字典encoded_input解包并传递给模型,执行了BERT模型的前向传播操作。

output变量现在包含了模型的输出,通常这会是每个输入token的隐藏状态。对于BERT base模型,每个token的隐藏状态的维度是768。



查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved