Transformers 库的基本使用

这篇具有很好参考价值的文章主要介绍了Transformers 库的基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  本内容主要介绍 Transformers 库 的基本使用。

1.1 Transformers 库简介

  Transformers 库是一个开源库,其提供的所有预训练模型都是基于 transformer 模型结构的。

1.1.1 Transformers 库

  我们可以使用 Transformers 库提供的 API 轻松下载和训练最先进的预训练模型。使用预训练模型可以降低计算成本,以及节省从头开始训练模型的时间。这些模型可用于不同模态的任务,例如:

  • 文本:文本分类、信息抽取、问答系统、文本摘要、机器翻译和文本生成。
  • 图像:图像分类、目标检测和图像分割。
  • 音频:语音识别和音频分类。
  • 多模态:表格问答系统、OCR、扫描文档信息抽取、视频分类和视觉问答。

  Transformers 库支持三个最流行的深度学习库(PyTorch、TensorFlow 和 JAX)。

  相关资源对应网址如下:

网址
库的 GitHub 地址 https://github.com/huggingface/transformers
官方开发文档 https://huggingface.co/docs/transformers/index
预训练模型下载地址 https://huggingface.co/models

1.1.2 Transformers 库支持的模型和框架

  以下表格展示了当前 Transformers 库对各模型的支持情况:

Model Tokenizer slow Tokenizer fast PyTorch support TensorFlow support Flax support
ALBERT
BART
BEiT
BERT
Bert Generation
BigBird
BigBirdPegasus
Blenderbot
BlenderbotSmall
CamemBERT
Canine
CLIP
ConvBERT
ConvNext
CTRL
Data2VecAudio
Data2VecText
Data2VecVision
DeBERTa
DeBERTa-v2
Decision Transformer
DeiT
DETR
DistilBERT
DPR
DPT
ELECTRA
Encoder decoder
FairSeq Machine-Translation
FlauBERT
Flava
FNet
Funnel Transformer
GLPN
GPT Neo
GPT-J
Hubert
I-BERT
ImageGPT
LayoutLM
LayoutLMv2
LED
Longformer
LUKE
LXMERT
M2M100
Marian
MaskFormer
mBART
MegatronBert
MobileBERT
MPNet
mT5
Nystromformer
OpenAI GPT
OpenAI GPT-2
OPT
Pegasus
Perceiver
PLBart
PoolFormer
ProphetNet
QDQBert
RAG
Realm
Reformer
RegNet
RemBERT
ResNet
RetriBERT
RoBERTa
RoFormer
SegFormer
SEW
SEW-D
Speech Encoder decoder
Speech2Text
Speech2Text2
Splinter
SqueezeBERT
Swin
T5
TAPAS
TAPEX
Transformer-XL
TrOCR
UniSpeech
UniSpeechSat
VAN
ViLT
Vision Encoder decoder
VisionTextDualEncoder
VisualBert
ViT
ViTMAE
Wav2Vec2
WavLM
XGLM
XLM
XLM-RoBERTa
XLM-RoBERTa-XL
XLMProphetNet
XLNet
YOLOS

注意:Tokenizer slow:使用 Python 实现 tokenization 过程。Tokenizer fast:基于 Rust 库 Tokenizers 进行实现。


1.2 Pipeline

  pipeline() 的作用是使用预训练模型进行推断,它支持从 这里 下载的所有模型。

1.2.1 Pipeline 支持的任务类型

  pipeline() 支持许多常见任务:

  • 文本
    • 情感分析(Sentiment analysis)
    • 文本生成(Text generation)
    • 命名实体识别(Name entity recognition,NER):
    • 问答系统(Question answering)
    • 掩码恢复(Fill-mask)
    • 文本摘要(Summarization)
    • 机器翻译(Translation)
    • 特征提取(Feature extraction)
  • 图像
    • 图像分类(Image classification)
    • 图像分割(Image segmentation)
    • 目标检测(Object detection)
  • 音频
    • 音频分类(Audio classification)
    • 自动语音识别(Automatic speech recognition,ASR)

注意:可以在 Transformers 库的源码(查看 Transformers/pipelines/__init__.py 中的 SUPPORTED_TASKS 定义)中查看其支持的任务,不同版本支持的类型会存在差异。


1.2.2 Pipeline 使用

(1)简单使用

  例如,当前我们需要进行一个情感分析的推断任务。我们可以直接使用如下代码:

from transformers import pipeline


classifier = pipeline("sentiment-analysis")
result = classifier("We are very happy to show you the 🤗 Transformers library.")
print(result)

将输出以下结果:

[{'label': 'POSITIVE', 'score': 0.9997795224189758}]

  上面代码中的 pipeline("sentiment-analysis") 将下载并缓存一个默认的情感分析的预训练模型和加载对应的 tokenizer。针对不同类型的任务,对应的参数名称可查看 pipeline 的参数 task 的说明(这里);不同类型的任务所下载的默认预训练模型可以在 Transformers 库的源码(查看 Transformers/pipelines/__init__.py 中的 SUPPORTED_TASKS 定义)中查看。

  当我们需要一次推理多个句子时,可以使用 list 形式作为参数传入:

from transformers import pipeline

classifier = pipeline("sentiment-analysis")
results = classifier(["We are very happy to show you the 🤗 Transformers library.",
                      "We hope you don't hate it."])
print(results)

将输出以下结果:

[{'label': 'POSITIVE', 'score': 0.9997795224189758},
 {'label': 'NEGATIVE', 'score': 0.5308570265769958}]

(2)选择模型

  上面部分,在进行推理时,使用的是对应任务的默认模型。但是有时候我们希望使用指定的模型,可以通过指定 pipeline() 的参数 model 来实现。

  第一种方法:

from transformers import pipeline


classifier = pipeline("sentiment-analysis",
                      model="IDEA-CCNL/Erlangshen-Roberta-110M-Sentiment")
result = classifier("今天心情很好")
print(result)

将输出以下结果:

[{'label': 'Positive', 'score': 0.9374911785125732}]

  第二种方法:(和上面的方法,加载的是相同的模型。不过这种方法可以使用本地模型进行推理。)

from transformers import AutoModelForSequenceClassification
from transformers import AutoTokenizer
from transformers import pipeline


model_path = r"../pretrained_model/IDEA-CCNL(Erlangshen-Roberta-110M-Sentiment)"
model = AutoModelForSequenceClassification.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)

classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
result = classifier("今天心情很好")
print(result)

将输出以下结果:

[{'label': 'Positive', 'score': 0.9374911785125732}]

总结:上面部分介绍了使用 pipeline() 对文本分类任务的推断的方法。针对文本其他类型任务、图像和音频的任务,使用方法基本一致,详细可参照 这里。

1.3 加载模型

  下面我们将介绍加载模型的一些方法。

1.3.1 随机初始化模型权值

  有时候,需要随机初始化模型权值(比如使用自己的数据进行预训练)。首先我们需要初始化一个 config 对象,然后将这个 config 对象作为参数传给模型:

from transformers import BertConfig
from transformers import BertModel


config = BertConfig()
model = BertModel(config)

  上面的 config 使用的是默认值,不过根据需要,我们可以修改对应的参数。当然,我们也可以使用 AutoConfig.from_pretrained() 加载其他模型的 config:

from transformers import AutoConfig
from transformers import AutoModel


model_path = r"../pretrained_model/IDEA-CCNL(Erlangshen-Roberta-110M-Sentiment)"
config = AutoConfig.from_pretrained(model_path)
model = AutoModel.from_config(config)

1.3.2 使用预训练权值初始化模型权值

  有时候,需要从预训练模型中加载权值。一般使用 AutoModelForXXX.from_pretrained() 加载对应任务的预训练模型,这里之所以使用 XXX,是因为不同类型的任务所使用的类是不一样的。例如,我们需要加载一个文本序列分类模型,需要使用 AutoModelForSequenceClassification

from transformers import AutoModelForSequenceClassification


model = AutoModelForSequenceClassification.from_pretrained(
    "IDEA-CCNL/Erlangshen-Roberta-110M-Sentiment")

  AutoModelForSequenceClassification.from_pretrained() 的第一个参数 pretrained_model_name_or_path 可以是一个字符串,也可以是一个文件夹路径。

from transformers import AutoModelForSequenceClassification


model_path = r"../pretrained_model/IDEA-CCNL(Erlangshen-Roberta-110M-Sentiment)"
model = AutoModelForSequenceClassification.from_pretrained(model_path)

  我们也可以使用具体的模型类,比如下面的 BertForSequenceClassification

from transformers import BertForSequenceClassification


model_path = r"../pretrained_model/IDEA-CCNL(Erlangshen-Roberta-110M-Sentiment)"
model = BertForSequenceClassification.from_pretrained(model_path)

注意:上面的模型类型都是针对 PyTorch 模型的。如果我们使用 TensorFlow 模型,其类名需要在 PyTorch 模型类名的前面加上 TF。比如 BertForSequenceClassification 对应的 TF 模型类名是 TFBertForSequenceClassification

总结:官方推荐使用 AutoModelForXXXTFAutoModelXXX 加载预训练模型。官方认为这样将确保每次都能加载正确的框架。

1.4 预处理

  因为模型本身是无法理解原始文本、图像或者音频的。所以需要先将数据转换成模型可以接受的形式,然后再传入模型中。

1.4.1 NLP:AutoTokenizer

  处理文本数据的主要工具为 tokenizer。首先,tokenizer 会根据一组规则将文本拆分为 token。然后,将这些 token 转换为数值(根据词表,即 vocab),这些数值会被构建成张量并作为模型的输入。模型所需要的其他输入也是由 tokenizer 添加。

当我们使用预训练模型时,一定要使用对应的预训练 tokenizer。只有这样,才能确保文本以预训练语料库相同的方式进行分割,并使用相同的对应 token 索引(即 vocab)。

(1)Tokenize

  使用 AutoTokenizer.from_pretrained() 加载一个预训练 tokenizer,并将文本传入 tokenizer:

from transformers import AutoTokenizer


model_path = r"../pretrained_model/IDEA-CCNL(Erlangshen-Roberta-110M-Sentiment)"
tokenizer = AutoTokenizer.from_pretrained(model_path)

encoded_input = tokenizer("今天心情很好")
print(encoded_input)

将输出以下结果:

{'input_ids': [101, 791, 1921, 1921, 3698, 4696, 1962, 102],
 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0],
 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1]}

  可以看到上面的输出包含三个部分:

  • input_ids:对应于句子中每个 token 的索引。
  • token_type_ids:当存在多个序列时,标识 token 属于那个序列。
  • attention_mask:表明对应的 token 是否需要被注意(1 表示需要被注意,0 表示不需要被注意。涉及到注意力机制)。

  我们还可以使用 tokenizer 将 input_ids 解码为原始输入:

decoded_input = tokenizer.decode(encoded_input["input_ids"])
print(decoded_input)

将输出以下结果:

[CLS] 今 天 天 气 真 好 [SEP]

  我们可以看到上面的输出,相比原始文本多了 [CLS][SEP],它们是在 BERT 等模型中添加一些特殊 token。

  如果需要同时处理多个句子,可以将多个文本以 list 的形式输入到 tokenizer 中。

(2)填充(Pad)

  当我们处理一批句子时,它们的长度并不总是相同的。但是模型的输入需要具有统一的形状(shape)。填充是实现此需求的一种策略,即为 token 较少的句子添加特殊的填充 token。

  给 tokenizer() 传入参数 padding=True

batch_sentences = ["今天天气真好",
                   "今天天气真好,适合出游"]
encoded_inputs = tokenizer(batch_sentences, padding=True)
print(encoded_inputs)

将输出以下结果:

{'input_ids':
 [[101, 791, 1921, 1921, 3698, 4696, 1962, 102, 0, 0, 0, 0, 0],
  [101, 791, 1921, 1921, 3698, 4696, 1962, 8024, 6844, 1394, 1139, 3952, 102]], 'token_type_ids':
 [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]],
'attention_mask':
 [[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}

  可以看到 tokenizer 使用 0 对第一个句子进行了一些填充。

(3)截断(Truncation)

  当句子太短时,可以采用填充的策略。但有时候,句子可能太长,模型无法处理。在这种情况下,可以将句子进行截断。

  给 tokenizer() 传入参数 truncation=True 即可实现。

  如果想了解 tokenizer() 中更多关于参数 paddingtruncation 的信息,可以参照 这里

(4)构建张量(Build tensors)

  最终,如果我们想要 tokenizer 返回传入模型中的实际张量。需要设置参数 return_tensors。如果是传入 PyTorch 模型,将其设置为 pt;如果是传入 TensorFlow 模型,将其设置为 tf

batch_sentences = ["今天天气真好",
                   "今天天气真好,适合出游"]
encoded_inputs = tokenizer(batch_sentences,
                           padding=True, truncation=True,
                           return_tensors="pt")
print(encoded_inputs)

将输出以下结果:

{'input_ids':
 tensor([[ 101,  791, 1921, 1921, 3698, 4696, 1962,  102,    0,    0,    0,    0,
            0],
        [ 101,  791, 1921, 1921, 3698, 4696, 1962, 8024, 6844, 1394, 1139, 3952,
          102]]),
'token_type_ids':
 tensor([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]),
 'attention_mask':
 tensor([[1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]])}

1.4.2 其他

  针对音频数据,预处理主要包括重采样(Resample)、特征提取(Feature Extractor)、填充(pad)和截断(Truncate),详细信息请参照 这里。针对图像数据,预处理主要包括特征提取(Feature Extractor)和数据增强,详细信息请参照 这里。针对多模态数据,不同类型的数据使用前面介绍的对应预处理方法详细信息请参照 这里。虽然每种数据的预处理方法不完全一样,但是最终的目的都是一致的:将原始数据转换为模型可以接受的形式。

1.5 微调预训练模型

  下面将以一个文本多分类的例子,简单介绍如何使用我们自己的数据训练一个分类模型。

1.5.1 准备数据

  在微调预训练模型之前,我们需要先准备数据。我们可以使用 Datasets 库的 load_dataset 加载数据集:

from datasets import load_dataset


# 第 1 步:准备数据
# 从文件中获取原始数据
datasets = load_dataset(f'./my_dataset.py')
# 输出训练集中的第一条数据
print(datasets["train"][0])

  在这里需要注意一下,因为我们是使用自己的数据进行模型训练,所以上面 load_dataset 传入的参数是一个 py 文件的路径。这个 py 文件按照 Datasets 库的规则读取文件并返回训练数据,如果想了解更多信息,可以参照 这里。

  如果我们只是想简单学习 Transformers 库的使用,可以使用 Datasets 这个库预置的一些数据集,这个时候 load_dataset 传入的参数是一些字符串(比如,load_dataset("imdb")),然后会自动下载对应数据集。

1.5.2 预处理

  在将数据喂给模型之前,需要将数据进行预处理(Tokenize、填充、截断等)。

from transformers import AutoTokenizer


# 第 2 步:预处理数据
# 2.1 加载 tokenizer
tokenizer = AutoTokenizer.from_pretrained(configure["model_path"])

def tokenize_function(examples):
	return tokenizer(examples["text"], padding="max_length", truncation=True)

# 2.2 得到经过 tokenization 后的数据
tokenized_datasets = datasets.map(tokenize_function, batched=True)
print(tokenized_datasets["train"][0])

  首先,加载 tokenizer;然后,使用 datasets.map() 生成经过预处理后的数据。因为数据经过 tokenizer() 处理后的不再是 dataset 格式,所以需要使用 datasets.map() 进行处理。

1.5.3 加载模型

  在前面的部分,已经介绍过模型加载的方法,可以使用 AutoModelXXX.from_pretrained 加载模型:

from transformers import AutoModelForSequenceClassification

# 第 3 步:加载模型
classification_model = AutoModelForSequenceClassification.from_pretrained(
    configure["model_path"], num_labels=get_num_labels())

  与前面部分不同的地方在于:上面的代码中有一个 num_labels 参数,需要给这个参数传入我们的数据集中的类别数量。

1.5.4 设定度量指标

  在模型训练过程中,我们希望能够输出模型的性能指标(比如准确率、精确率、召回率、F1 值等)以便了解模型的训练情况。我们可以通过 Datasets 库提供的 load_metric() 来实现。下面的代码中实现了准确率计算:

import numpy as np
from datasets import load_metric


# 第 4 步:设定度量指标
metric = load_metric("./accuracy.py")

def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = np.argmax(logits, axis=-1)
    return metric.compute(predictions=predictions, references=labels)

  如果想了解更多信息,可以参照 这里。

1.5.5 设置训练超参数

  在进行模型训练时,还需要设置一些超参数,Transformers 库提供了 TrainingArguments 类。

from transformers import TrainingArguments


# 第 5 步:设置训练超参数
training_args = TrainingArguments(output_dir=configure["output_dir"],
                                  evaluation_strategy="epoch")

  在上面的代码中,我们设置了两个参数:output_dir 指定保存模型的输出路径;evaluation_strategy 决定什么时候对模型进行评估,设置的参数 epoch 表明每训练完一个 epoch 后进行一次评估,评估内容即上一步设定的度量指标。

  如果想了解更多参数的设置和具体含义,可以参照 这里。

1.5.6 训练和保存模型

  经过前面一系列的步骤后,我们终于可以开始进行模型训练了。Transformers 库提供了 Trainer 类,可以很简单方便地进行模型训练。首先,创建一个 Trainer,然后调用 train() 函数,就开始进行模型训练了。当模型训练完毕后,调用 save_model() 保存模型。

# 第 6 步:开始训练模型
trainer = Trainer(model=classification_model,
                  args=training_args,
                  train_dataset=tokenized_datasets["train"],
                  eval_dataset=tokenized_datasets["validation"],
                  tokenizer=tokenizer,
                  compute_metrics=compute_metrics)
trainer.train()

# 保存模型
trainer.save_model()

  有时候,我们需要调试模型,就需要自己编写模型训练循环,详细方法,可以参照 这里。

1.5.7 总结

  经过前面的介绍,现在我们就可以开始动手训练我们自己的文本多分类模型了。

  不过,前面是以一个文本多分类的例子介绍了如何使用 Transformers 库微调预训练模型。针对其他类型的任务,相比文本分类任务会存在一些差异,具体指导,可以参照以下链接:

任务类型 参考链接
文本分类(Text classification) https://huggingface.co/docs/transformers/tasks/sequence_classification
Token classification(例如 NER) https://huggingface.co/docs/transformers/tasks/token_classification
问答系统(Question answering) https://huggingface.co/docs/transformers/tasks/question_answering
语言模型(Language modeling) https://huggingface.co/docs/transformers/tasks/language_modeling
机器翻译(Translation) https://huggingface.co/docs/transformers/tasks/translation
文本摘要(Sumarization) https://huggingface.co/docs/transformers/tasks/summarization
多项选择(Multiple choice) https://huggingface.co/docs/transformers/tasks/multiple_choice
音频分类(Audio classification) https://huggingface.co/docs/transformers/tasks/audio_classification
自动语音识别(ASR) https://huggingface.co/docs/transformers/tasks/asr
图像分类(Image classification) https://huggingface.co/docs/transformers/tasks/image_classification

参考:

[1] Github 地址

[2] 官方开发文档

[3] transformers 教程

[4] https://github.com/nlp-with-transformers/notebooks

[5] https://github.com/datawhalechina/learn-nlp-with-transformers文章来源地址https://www.toymoban.com/news/detail-780258.html

到了这里,关于Transformers 库的基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习 | Transformer】Transformers 教程:pipeline一键预测

    Transformers 是用于自然语言处理 (NLP)、计算机视觉以及音频和语音处理任务的预训练最先进模型库。该库不仅包含 Transformer 模型,还包含非 Transformer 模型,例如用于计算机视觉任务的现代卷积网络。 pipeline() 可以加载多个模型让进行推理变得简单,即使没有使用特定模态的经

    2024年02月05日
    浏览(38)
  • (学习笔记)PCL点云库的基本使用

    目录 前言 1、理解点云库 1.1、不同的点云类型 1.2、PCL中的算法 1.3、ROS的PCL接口 2、创建第一个PCL程序 2.1、创建点云 2.2、加载点云文件 2.3、创建点云文件 2.4、点云可视化 2.5、点云滤波和下采样 2.5.1、点云滤波  2.5.2、点云下采样 2.6、点云配准与匹配         点云是一种

    2023年04月08日
    浏览(29)
  • 使用 Transformers 进行图分类

    在之前的 博文 中,我们探讨了图机器学习的一些理论知识。这一篇我们将探索如何使用 Transformers 库进行图分类。(你也可以从 此处 下载演示 notebook,跟着一起做!) 目前,Transformers 中唯一可用的图 transformer 模型是微软的 Graphormer,因此本文的例子将会基于该模型。我们期待

    2023年04月18日
    浏览(26)
  • 机器学习 不均衡数据采样方法:imblearn 库的使用

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 imblearn (全名为 imbalanced-learn )是一个用于处

    2024年02月07日
    浏览(39)
  • 【论文阅读】基于深度学习的时序预测——Non-stationary Transformers

    系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平稳性时序预测 论文五:2022 Pyraformer:基于金字塔图结构的时序预测 论文六:2023 Crossformer:多变量时序预

    2024年02月13日
    浏览(40)
  • [深度学习论文笔记]UNETR: Transformers for 3D Medical Image Segmentation

    UNETR: Transformers for 3D Medical Image Segmentation UNETR:用于三维医学图像分割的Transformer Published: Oct 2021 Published in: IEEE Winter Conference on Applications of Computer Vision (WACV) 2022 论文:https://arxiv.org/abs/2103.10504 代码:https://monai.io/research/unetr 摘要:   过去十年以来,具有收缩路径和扩展路径

    2024年01月24日
    浏览(52)
  • 在Transformers 中使用约束波束搜索引导文本生成

    本文假设读者已经熟悉文本生成领域波束搜索相关的背景知识,具体可参见博文 如何生成文本: 通过 Transformers 用不同的解码方法生成文本。 与普通的波束搜索不同, 约束 波束搜索允许我们控制所生成的文本。这很有用,因为有时我们确切地知道输出中需要包含什么。例如

    2024年02月08日
    浏览(37)
  • Elasticsearch:使用 Transformers 和 Elasticsearch 进行语义搜索

    什么语义搜索( semantic search )呢?根据搜索查询的意图和上下文含义(而不仅仅是)检索结果。语义/向量搜索是一种强大的技术,可以大大提高搜索结果的准确性和相关性。 与传统的基于的搜索方法不同,语义搜索使用单词的含义和上下文来理解查询背后的意

    2024年02月08日
    浏览(54)
  • 深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):基础知识

    分类目录:《深入理解深度学习》总目录 相关文章: · BERT(Bidirectional Encoder Representations from Transformers):基础知识 · BERT(Bidirectional Encoder Representations from Transformers):BERT的结构 · BERT(Bidirectional Encoder Representations from Transformers):MLM(Masked Language Model) · BERT(Bidirect

    2024年02月11日
    浏览(48)
  • 【预训练语言模型】 使用Transformers库进行BERT预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练。 鉴于算力限制,选用了较小的英文数据集wikitext-2 目的 :跑通Mask语言模型的预训练流程 注意:在Kaggle上训练时,最好将datasets更新到最新版(再重启kernel),避免版本低报错 colab和kaggle已经预安装transformers库 加载数据

    2024年03月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包