Skip to content

Transformer 网络结构

自 2017 年 Google 推出 Transformer 以来,基于其架构的语言模型便如雨后春笋般涌现,其中 Bert、T5 等备受瞩目,而近期风靡全球的大模型 ChatGPT 和 LLaMa 更是大放异彩。本节内容将 为大家深入解析 Transformer 的技术内核。

自然语言处理概述

自然语言处理(Nature language Processing, NLP)研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言,例如:汉语、英语、法语等,该类型的数据不像我们前面接触的过的结构化数据、或者图像数据可以很方便的进行数值化。

image-20250506111819426

Transformer 整体结构

Transformer 是谷歌在 2017 年的论文《Attention Is All You Need》中提出的的用于机器翻译的模型。

image-20250506111854011

Transformer 的内部,在本质上是一个 Encoder-Decoder 的结构,即 编码器 - 解码器

image-20250506111911125

Transformer 的详细结构如右图所示,主要包括

以下内容:

  • 输入部分

  • 输出部分

  • 编码器部分

  • 解码器部分

image-20250506111945688

Huggingface 的使用

Huggingface 是一家专注于自然语言处理、人工智能和分布式系统的创业公司。Huggingface 一直致力于自然语言处理 NLP 技术的平民化 (democratize),希望每个人都能用上最先进 (SOTA, state-of-the-art) 的 NLP 技术。

image-20250506112015078

官网链接:https://huggingface.co/

国内镜像站:https://hf-mirror.com/

Huggingface Transformers 是基于一个开源基于 transformer 模型结构提供的预训练语言库。它支持 Pytorch,Tensorflow2.0,并且支持两个框架的相互转换。Transformers 提供了 NLP 领域大量 state-of-art 的 预训练语言模型结构的模型和调用框架。

Transformer 库的使用

Transformers 库提供了很多 SOTA 的预训练模型,比如 BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet, CTRL。它的安装方式如下所示:

shell
pip install Transformers

Transformers 库三层应用结构如右图所示:

  • 管道(Pipline):高度集成的极简使用方式,只需要几行代码即可实现一个 NLP 任务。
  • 自动模型(AutoMode):可载入并使用 BERTology 系列模型。
  • 具体模型(SpecificModel):使用时,明 确指定具体的模型,并按照每个 BERTology 系列模型中的特定参数进行调用,该方式相对复杂,但具有较高的灵活度。

image-20250506112150302

汉译英的实现

在这里我们利用 huggingface 中应用来实现汉译英,链接如下所示:

https://huggingface.co/liam168/trans-opus-mt-zh-en

image-20250506112314038

python
# 导入工具包
from transformers import AutoModelWithLMHead, AutoTokenizer, pipeline

# 指明预训练模型
mode_name = 'liam168/trans-opus-mt-zh-en'
# 加载预训练模型
model = AutoModelWithLMHead.from_pretrained(mode_name)
# 加载词嵌入层
tokenizer = AutoTokenizer.from_pretrained(mode_name)
# 使用管道的方式进行机器翻译
translation = pipeline("translation_zh_to_en", model=model, tokenizer=tokenizer)
# 将要翻译的文本传递到 API 中
out = translation('我喜欢学习数据科学和机器学习。', max_length=400)
# 输出结果
print(out)
[{'translation_text': 'I like to study data science and machine learning.'}]

总结:

  1. 自然语言处理是通过计算机算法来理解自然语言
  2. Transformer 由编码器和解码器构成
  3. 利用 huggingFace 完成汉译英任务