【AI大模型技术】4.预训练语言模型(PLMs,Pre-trained Langue Models);5.Transformers Tutorial


更多内容:XiaoJ的知识星球


目录

    • 4.预训练语言模型(PLMs,Pre-trained Langue Models)
      • 4.1 两种范式:
      • 4.2 GPT(Generative Pre-trained Transformer)
      • 4.3 BERT(Bidirectional Encoder Representations from Transformers)
        • 4.3.1 BERT介绍
        • 4.3.2 Masked Language Model(MLM)
        • 4.3.3 Next Sentence Prediction(NSP)
        • 4.3.4 BERT输入
    • 5.Transformers Tutorial
      • 5.1 Pipeline API
      • 5.2 `AutoModel`和`AutoTokenizer`
      • 5.3 Transformers fine-tune Demo

.

4.预训练语言模型(PLMs,Pre-trained Langue Models)

几个PLMs:word2vec(第一个PLM),GPT,BERT,...

PLMs具有强大可移植性。

如今基于Transformer的PLM非常流行,如BERT。

.

4.1 两种范式:

  • Feature-based approaches(基于特征的方法)

    • 最具代表性的是 word2vec。

    • 使用PLM的输出作为下游模型的输入。

  • Fine-tuning approaches(微调的方法)

    • 最具代表性的是 BERT。

    • 语言模型也将是下游模型,它们的参数将被更新。

.

4.2 GPT(Generative Pre-trained Transformer)

GPT(Generative Pre-trained Transformer,生成式预训练变换器)

  • 是由OpenAI开发的一种大型语言模型,它通过在大量文本数据上进行预训练,学习语言的模式和结构,从而具备强大的文本生成和理解能力。

GPT具有Zero-Shot Learning能力。

Zero-Shot Learning(ZSL,零样本学习):

  • 一种让模型能够在没有直接训练数据的情况下,对新的类别进行识别或分类的技术。

GPT总结:

  • 一个非常强大的生成模型

  • 在下游任务上也取得了非常好的迁移学习结果

    • 显著超越了ELMo
  • 成功的关键

    • 大数据(大型无监督语料库)

    • 深度神经模型(Transformer)

.

4.3 BERT(Bidirectional Encoder Representations from Transformers)

以前方法的问题

  • 问题:语言模型 只使用左侧上下文或右侧上下文,但语言理解是双向的。

  • 为什么LM(语言模型)是单向的?

    • 原因1:需要单向性,来拆解长文本。

    • 原因2:双向编码会发生信息泄露。

4.3.1 BERT介绍

BERT(Bidirectional Encoder Representations from Transformers,Transformer的双向编码器表示)是一种基于Transformer架构的深度学习模型。

BERT的核心特点包括:

  1. 双向编码:BERT使用双向Transformer编码器,即模型会同时考虑输入序列中,每个词的左侧和右侧上下文。这与传统的单向模型不同,后者只能从左到右或从右到左处理文本。

  2. 预训练:BERT通过在大量文本数据上进行预训练来学习语言表示。

  • 预训练任务包括:Masked Language Model(MLM)和 Next Sentence Prediction(NSP)

    • MLM:随机遮蔽输入序列中的一些词,然后让模型预测这些被遮蔽的词。

    • NSP:预测两个句子是否是连续的文本。

  1. 微调:在预训练完成后,BERT可以在特定任务上进行微调。这意味着模型可以调整其权重以适应特定的NLP任务,如文本分类、命名实体识别、问答系统等。

  2. Transformer架构:BERT基于Transformer模型,这是一种依赖于自注意力机制的架构,能够处理长距离依赖关系。

4.3.2 Masked Language Model(MLM)

Masked Language Model(MLM,掩蔽语言模型):

  • 让模型学会预测文本中被随机掩蔽的词。有助于模型学习到词与词之间的上下文关系,从而更好地理解语言的复杂性。一般掩蔽15%的词。

  • MLM解决信息泄露的问题。

问题1:

  • 在双向模型中所有单词可见,对于多次出现的词,模型可能会直接使用已经的含义,不利于语言模型的学习。

解决方案:

  • BERT采用了MLM技术来掩盖一些词语,让它更好的学习。

问题2:

  • Mask token不会出现在下游任务。

  • 会造成预训练和反训练(微调)有很大差异,模型效果变差。

解决方案:

  • 在Mask掉的15%的单词中,组成如下:

    • 80%使用Mask的词;

    • 10%替换成随机词;

    • 10%保持原本的词。

4.3.3 Next Sentence Prediction(NSP)

Next Sentence Prediction(NSP,下一句预测):

  • 让模型学会预测两个句子是否是连续的文本。

  • 为了生成训练数据,BERT从大规模的文本数据中随机挑选一对句子,并在输入中加入特殊的标记来指示两个句子的边界。

4.3.4 BERT输入

BERT模型处理输入数据:

  • BERT使用一个包含30,000个词的WordPiece词汇表来处理输入。

  • 每个token的表示是三个嵌入的总和:

    • Token Embeddings(词嵌入);

    • Segment Embeddings(段落嵌入);

    • Position Embeddings(位置嵌入)。

    段落嵌入用于区分两个句子,而位置嵌入则提供单词在句子中的位置信息。

CLSSEP是特殊标记,分别用于表示句子的开始和结束。

.


.

5.Transformers Tutorial

Transformer Tutorial -- hugging-face:

Transformers 是一个由 Hugging Face 开发的开源库,它提供了大量预训练的模型,支持多种不同的任务,包括文本、图像和音频的处理。这个库使得开发者可以轻松地加载预训练模型,并在特定任务上进行微调。

  • 模型架构:支持多种模型架构,如BERT、GPT、T5等。

主要特点

  • 多模态支持:不仅支持文本,还支持图像和音频任务。

  • 简化的API :提供了pipeline API,可以快速使用模型进行推理。

  • 社区支持:Hugging Face Hub上有一个活跃的社区,提供了许多共享的模型和项目

.

5.1 Pipeline API

1)简单示例:

使用 Transformers 的pipeline API 进行情感分析的简单示例:

Python 复制代码
from transformers import pipeline

# 创建一个用于情感分析的pipeline
classifier = pipeline('sentiment-analysis')

# 使用pipeline进行预测
result = classifier("We are very happy to introduce pipeline to the transformers repository.")
print(result)

这将输出情感分析的结果,例如:

JSON 复制代码
[{'label': 'POSITIVE', 'score': 0.9996980428695679}]

2)更多参考:

使用管道进行推理:https://hugging-face.cn/docs/transformers/pipeline_tutorial

.

5.2 AutoModelAutoTokenizer

Transformers 还提供了AutoModelAutoTokenizer类,可以自动加载预训练模型和对应的分词器。例如:

Python 复制代码
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")

AutoModelForSequenceClassification.from_pretrained()

Python 复制代码
# Tokenize the texts
inputs = tokenizer("Hello World!", return_tensors='pt')

# Run the model
outputs = model(**inputs)

# Save the fine-tuned model in one line
model.save_pretrained("path_to_save_model")

这样,你就可以使用模型进行更复杂的操作,比如自定义的训练和fine-tuning(微调)。

简单训练:Train the model with Trainer

Python 复制代码
trainer = Trainer(
    model,
    args,
    train_dataset=encoded_dataset["train"],
    eval_dataset=encoded_dataset["validation"],
    tokenizer=tokenizer,
    compute_metrics=compute_metrics
)
trainer.train()  # Start training!
trainer.evaluate()

Trainer 类是 Hugging Face Transformers 库中的一个工具,它简化了模型的训练过程。你需要提供以下参数:

  • model:要训练的模型。

  • args:训练参数,通常是一个 TrainingArguments 类的实例。

  • train_dataset:用于训练的数据集。

  • eval_dataset:用于评估模型性能的验证数据集。

  • tokenizer:用于数据预处理的分词器。

  • compute_metrics:一个函数,用于计算和返回评估指标。

trainer.train() 方法启动训练过程,而 trainer.evaluate() 方法则在训练完成后评估模型的性能。

.

5.3 Transformers fine-tune Demo

参考视频:https://www.bilibili.com/video/BV1rS411F735?p=40

参考文档:https://hugging-face.cn/docs/transformers/training

大致流程:

准备:datasets、transformers库

fine-tune方式一:pipline使用fine-tune好的模型,完成下游任务。

fine-tune方式二:在下游任务上进行fine-tune。

  • load datasets

  • load metric(加载评估指标)

  • metric_compute计算模型表现。

  • 进行tokenization

    • 通过preprocess_function,将tokenization的数据传给hugging facec处理。
  • 构建模型,进行fine-tune

    • 使用Traniner类:传参数

    • 使用Traniner类:train开始训练

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关推荐
码农小白AI3 小时前
采购合同与来料证书对标校验,IACheck联动AI报告审核通审Agent版自动识别指标不符单据
人工智能
元岳数字人小元4 小时前
AI 数字人开发公司浅谈 虚拟数字人打造景区新服务
人工智能·人机交互·交互
哦哦~9214 小时前
AI赋能生物医学:从临床数据到药物分子性质预测实战培
人工智能·生物医学·药物分子
GIS数据转换器4 小时前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
虫无涯4 小时前
本地离线大模型实战:Ollama + Llama 3.1 8B 全流程部署(适配VSCode Continue代码助手)
人工智能
Rocky Ding*4 小时前
Latent Consistency Models:一篇读懂扩散模型的少步生成核心基础知识
人工智能·深度学习·机器学习·ai作画·stable diffusion·aigc·ai-native
大山佬4 小时前
AI 边缘部署:MCU 上的轻量级目标检测,从 YOLO 到 TFLite Micro 的全链路优化
人工智能
数睿数据无代码开发4 小时前
深度解析smardaten数据大屏:六大核心功能重塑可视化开发
人工智能·信息可视化
陈猪的杰咪4 小时前
GitHub Copilot 2026计费新规:AI Credits消耗解析与节省策略
人工智能·ai·架构·github·copilot
学术头条4 小时前
清华团队开源SCAIL-2:角色动画告别骨骼依赖,端到端还原视频中动作细节
人工智能·科技·机器学习·ai·开源·音视频·agi