Transformer Models: A Survey of Recent Advances in Pretraining Techniques

1.背景介紹

在過去的幾年里,自然語言處理(NLP)技術(shù)取得了顯著的進展,這主要歸功于深度學(xué)習(xí)和大規(guī)模數(shù)據(jù)集的應(yīng)用。在這個過程中,Transformer模型在NLP領(lǐng)域的表現(xiàn)尖端,使得許多先前無法實現(xiàn)的任務(wù)成為可能。這篇文章將涵蓋Transformer模型的最新進展,特別是在預(yù)訓(xùn)練技術(shù)方面。我們將討論背景、核心概念、算法原理、實例代碼、未來趨勢和挑戰(zhàn)。

1.1 背景

自然語言處理(NLP)是人工智能的一個重要分支,旨在讓計算機理解、生成和翻譯人類語言。在過去的幾十年里,NLP研究人員試圖解決許多任務(wù),如文本分類、情感分析、命名實體識別、語義角色標注、機器翻譯等。這些任務(wù)需要處理大量的文本數(shù)據(jù),以便計算機能夠理解語言的結(jié)構(gòu)和含義。

早期的NLP方法主要基于規(guī)則和手工工程,這些方法在實際應(yīng)用中存在許多局限性。隨著深度學(xué)習(xí)技術(shù)的出現(xiàn),NLP領(lǐng)域也開始使用這些方法,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。這些方法在處理序列數(shù)據(jù)方面表現(xiàn)出色,但在處理長距離依賴關(guān)系時存在挑戰(zhàn)。

2017年,Vaswani等人提出了Transformer模型,這是一個完全基于注意力機制的模型,能夠有效地處理長距離依賴關(guān)系。這一發(fā)明催生了一系列的預(yù)訓(xùn)練模型,如BERT、GPT、RoBERTa等,它們在多個NLP任務(wù)上取得了卓越的表現(xiàn)。

1.2 核心概念與聯(lián)系

1.2.1 Transformer模型

Transformer模型是一種基于注意力機制的序列到序列模型,它可以處理長距離依賴關(guān)系,并在多個NLP任務(wù)上取得了顯著的成果。Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。

1.2.2 預(yù)訓(xùn)練技術(shù)

預(yù)訓(xùn)練技術(shù)是一種訓(xùn)練模型的方法,通過使用大規(guī)模的、多樣化的數(shù)據(jù)集對模型進行初始訓(xùn)練,然后在特定任務(wù)上進行微調(diào)。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

1.2.3 BERT、GPT和RoBERTa

BERT、GPT和RoBERTa是基于Transformer架構(gòu)的預(yù)訓(xùn)練模型,它們在多個NLP任務(wù)上取得了顯著的成果。BERT是一種雙向預(yù)訓(xùn)練模型,通過Masked Language Model(MLM)和Next Sentence Prediction(NSP)任務(wù)進行預(yù)訓(xùn)練。GPT是一種基于生成任務(wù)的預(yù)訓(xùn)練模型,通過Maximum Likelihood Estimation(MLE)任務(wù)進行預(yù)訓(xùn)練。RoBERTa是BERT的一種變體,通過調(diào)整訓(xùn)練策略和超參數(shù)來提高BERT的性能。

2.核心概念與聯(lián)系

2.1 Transformer模型

Transformer模型是一種基于注意力機制的序列到序列模型,它可以處理長距離依賴關(guān)系,并在多個NLP任務(wù)上取得了顯著的成果。Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。

2.1.1 Multi-Head Self-Attention(MHSA)

Multi-Head Self-Attention(MHSA)是Transformer模型的核心組件,它可以計算輸入序列中每個詞語與其他詞語之間的關(guān)系。MHSA通過多個自注意力頭(attention heads)來捕捉不同類型的關(guān)系,從而提高模型的表現(xiàn)。

MHSA的計算過程如下:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \text{head}_2, ..., \text{head}_h)W^O

\text{MHSA}(X) = \text{MultiHead}(XW_Q, XW_K, XW_V)

其中,Q、KV分別是查詢、鍵和值,W_QW_KW_V是線性層的參數(shù),h是注意力頭的數(shù)量,W^O是線性層的參數(shù)。

2.1.2 位置編碼

位置編碼是一種用于表示序列中詞語位置信息的技術(shù)。在Transformer模型中,位置編碼是一種定期添加到詞語嵌入向量中的穩(wěn)定向量。這有助于模型在處理長距離依賴關(guān)系時保持位置信息。

位置編碼的計算過程如下:

P(pos) = \sin\left(\frac{pos}{10000^{2/3}}\right) \cdot \left[0.5^{2/3}\right]^{pos/10000^{2/3}}

PE(pos) = [P(pos), P(pos + 1), ..., P(pos + n - 1)]

其中,pos是詞語在序列中的位置,n是詞語嵌入的維度。

2.1.3 層連接

Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。在每個層中,MHSA和位置編碼被連接起來形成一個前饋神經(jīng)網(wǎng)絡(luò),這個網(wǎng)絡(luò)由多個線性層和非線性激活函數(shù)組成。

2.1.4 訓(xùn)練策略

Transformer模型通過最大化概率估計任務(wù)的對數(shù)概率來訓(xùn)練,這種任務(wù)可以是Masked Language Model(MLM)、Next Sentence Prediction(NSP)或者其他生成任務(wù)。通過優(yōu)化這些任務(wù),模型可以學(xué)習(xí)到語言模式和語義關(guān)系,從而在多個NLP任務(wù)上取得良好的表現(xiàn)。

2.2 預(yù)訓(xùn)練技術(shù)

預(yù)訓(xùn)練技術(shù)是一種訓(xùn)練模型的方法,通過使用大規(guī)模的、多樣化的數(shù)據(jù)集對模型進行初始訓(xùn)練,然后在特定任務(wù)上進行微調(diào)。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

2.2.1 雙向預(yù)訓(xùn)練

雙向預(yù)訓(xùn)練是一種預(yù)訓(xùn)練技術(shù),通過使用雙向LSTM或雙向GRU來捕捉上下文信息。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

2.2.2 生成預(yù)訓(xùn)練

生成預(yù)訓(xùn)練是一種預(yù)訓(xùn)練技術(shù),通過使用生成任務(wù)(如語言模型)來訓(xùn)練模型。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

2.2.3 微調(diào)

微調(diào)是一種模型訓(xùn)練的方法,通過使用特定任務(wù)的數(shù)據(jù)集對預(yù)訓(xùn)練模型進行微調(diào),以適應(yīng)特定任務(wù)。這種方法可以幫助模型在特定任務(wù)上取得更好的表現(xiàn),同時保留在預(yù)訓(xùn)練階段學(xué)到的語言知識。

3.核心算法原理和具體操作步驟以及數(shù)學(xué)模型公式詳細講解

3.1 Transformer模型

Transformer模型是一種基于注意力機制的序列到序列模型,它可以處理長距離依賴關(guān)系,并在多個NLP任務(wù)上取得了顯著的成果。Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。

3.1.1 Multi-Head Self-Attention(MHSA)

Multi-Head Self-Attention(MHSA)是Transformer模型的核心組件,它可以計算輸入序列中每個詞語與其他詞語之間的關(guān)系。MHSA通過多個自注意力頭(attention heads)來捕捉不同類型的關(guān)系,從而提高模型的表現(xiàn)。

MHSA的計算過程如下:

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \text{head}_2, ..., \text{head}_h)W^O

\text{MHSA}(X) = \text{MultiHead}(XW_Q, XW_K, XW_V)

其中,Q、KV分別是查詢、鍵和值,W_Q、W_KW_V是線性層的參數(shù),h是注意力頭的數(shù)量,W^O是線性層的參數(shù)。

3.1.2 位置編碼

位置編碼是一種用于表示序列中詞語位置信息的技術(shù)。在Transformer模型中,位置編碼是一種定期添加到詞語嵌入向量中的穩(wěn)定向量。這有助于模型在處理長距離依賴關(guān)系時保持位置信息。

位置編碼的計算過程如下:

P(pos) = \sin\left(\frac{pos}{10000^{2/3}}\right) \cdot \left[0.5^{2/3}\right]^{pos/10000^{2/3}}

PE(pos) = [P(pos), P(pos + 1), ..., P(pos + n - 1)]

其中,pos是詞語在序列中的位置,n是詞語嵌入的維度。

3.1.3 層連接

Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。在每個層中,MHSA和位置編碼被連接起來形成一個前饋神經(jīng)網(wǎng)絡(luò),這個網(wǎng)絡(luò)由多個線性層和非線性激活函數(shù)組成。

3.1.4 訓(xùn)練策略

Transformer模型通過最大化概率估計任務(wù)的對數(shù)概率來訓(xùn)練,這種任務(wù)可以是Masked Language Model(MLM)、Next Sentence Prediction(NSP)或者其他生成任務(wù)。通過優(yōu)化這些任務(wù),模型可以學(xué)習(xí)到語言模式和語義關(guān)系,從而在多個NLP任務(wù)上取得良好的表現(xiàn)。

3.2 預(yù)訓(xùn)練技術(shù)

預(yù)訓(xùn)練技術(shù)是一種訓(xùn)練模型的方法,通過使用大規(guī)模的、多樣化的數(shù)據(jù)集對模型進行初始訓(xùn)練,然后在特定任務(wù)上進行微調(diào)。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

3.2.1 雙向預(yù)訓(xùn)練

雙向預(yù)訓(xùn)練是一種預(yù)訓(xùn)練技術(shù),通過使用雙向LSTM或雙向GRU來捕捉上下文信息。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

3.2.2 生成預(yù)訓(xùn)練

生成預(yù)訓(xùn)練是一種預(yù)訓(xùn)練技術(shù),通過使用生成任務(wù)(如語言模型)來訓(xùn)練模型。這種方法可以幫助模型學(xué)習(xí)到更廣泛的語言知識,從而在各種NLP任務(wù)中表現(xiàn)出色。

3.2.3 微調(diào)

微調(diào)是一種模型訓(xùn)練的方法,通過使用特定任務(wù)的數(shù)據(jù)集對預(yù)訓(xùn)練模型進行微調(diào),以適應(yīng)特定任務(wù)。這種方法可以幫助模型在特定任務(wù)上取得更好的表現(xiàn),同時保留在預(yù)訓(xùn)練階段學(xué)到的語言知識。

4.具體代碼實例和詳細解釋說明

在這個部分,我們將通過一個簡單的例子來演示如何使用PyTorch實現(xiàn)一個Transformer模型。我們將使用Masked Language Model(MLM)任務(wù)進行預(yù)訓(xùn)練,然后在文本分類任務(wù)上進行微調(diào)。

4.1 安裝PyTorch

首先,確保您已經(jīng)安裝了PyTorch。如果沒有,請參考官方文檔(https://pytorch.org/get-started/locally/)進行安裝。

4.2 導(dǎo)入庫

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, Dataset
import torch.utils.data.distributed as dist
import torch.multiprocessing as mp

4.3 定義數(shù)據(jù)集和數(shù)據(jù)加載器

class MyDataset(Dataset):
    def __init__(self, data, tokenizer, max_len):
        self.data = data
        self.tokenizer = tokenizer
        self.max_len = max_len

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        text = self.data[idx]
        inputs = self.tokenizer(text, max_len=self.max_len, padding="max_length", truncation=True, return_tensors="pt")
        labels = inputs["input_ids"][:, :-1]
        mask = inputs["input_ids"][:,:-1] != 0
        inputs["input_ids"] = inputs["input_ids"][:,1:]
        inputs["attention_mask"] = mask
        return inputs, labels

# 創(chuàng)建數(shù)據(jù)集和數(shù)據(jù)加載器
dataset = MyDataset(data, tokenizer, max_len)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)

4.4 定義Transformer模型

class Transformer(nn.Module):
    def __init__(self, vocab_size, max_len, d_model, nhead, num_layers, dropout):
        super(Transformer, self).__init__()
        self.embedding = nn.Embedding(vocab_size, d_model)
        self.pos_encoding = PositionalEncoding(max_len, d_model)
        self.transformer = nn.ModuleList([nn.ModuleList([
            nn.Linear(d_model, d_model),
            nn.MultiheadAttention(d_model, nhead),
            nn.Dropout(dropout),
            nn.Linear(d_model, d_model)
        ]) for _ in range(num_layers)])
        self.dropout = nn.Dropout(dropout)
        self.classifier = nn.Linear(d_model, num_classes)

    def forward(self, x, labels=None):
        x = self.embedding(x)
        x *= torch.from_numpy(self.pos_encoding).to(x.device)
        for i in range(len(self.transformer)):
            x = self.transformer[i](x)
            x = self.dropout(x)
        if labels is not None:
            x = self.classifier(x.mean(1))
        return x

4.5 訓(xùn)練模型

model = Transformer(vocab_size, max_len, d_model, nhead, num_layers, dropout)
optimizer = optim.Adam(model.parameters(), lr=learning_rate)

# 訓(xùn)練循環(huán)
for epoch in range(num_epochs):
    for inputs, labels in dataloader:
        optimizer.zero_grad()
        outputs = model(inputs, labels)
        loss = nn.CrossEntropyLoss()(outputs, labels)
        loss.backward()
        optimizer.step()

4.6 微調(diào)模型

model.classifier = nn.Linear(d_model, num_classes)

# 微調(diào)循環(huán)
for epoch in range(num_epochs):
    for inputs, labels in dataloader:
        optimizer.zero_grad()
        outputs = model(inputs, labels)
        loss = nn.CrossEntropyLoss()(outputs, labels)
        loss.backward()
        optimizer.step()

5.核心算法原理和具體操作步驟以及數(shù)學(xué)模型公式詳細講解

在這個部分,我們將詳細講解Transformer模型的核心算法原理、具體操作步驟以及數(shù)學(xué)模型公式。

5.1 注意力機制

注意力機制是Transformer模型的核心組件,它可以計算輸入序列中每個詞語與其他詞語之間的關(guān)系。注意力機制通過計算每個詞語的“注意力分數(shù)”來捕捉這些關(guān)系,這些分數(shù)是基于詞語之間的上下文信息計算的。

5.1.1 計算注意力分數(shù)

注意力分數(shù)是基于詞語之間的上下文信息計算的。對于每個查詢詞語,它與所有鍵詞語都有一個注意力分數(shù)。這個分數(shù)是通過計算查詢詞語的“注意力值”與鍵詞語的“鍵值”的內(nèi)積來得到。

\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

其中,QKV分別是查詢、鍵和值,d_k是鍵的維度。

5.1.2 計算注意力分數(shù)的和

在計算注意力分數(shù)時,我們需要將所有的注意力分數(shù)相加起來,以得到每個詞語在序列中的“注意力和”。這個和表示了詞語在序列中的重要性,并用于計算詞語的最終表示。

5.1.3 計算多頭注意力

多頭注意力是一種將多個不同注意力頭組合在一起的方法,以捕捉不同類型的關(guān)系。每個注意力頭都有自己的查詢、鍵和值,這些值在訓(xùn)練過程中會逐漸學(xué)習(xí)到不同的關(guān)系。通過將這些注意力頭組合在一起,我們可以捕捉更多的關(guān)系,從而提高模型的表現(xiàn)。

5.2 位置編碼

位置編碼是一種用于表示序列中詞語位置信息的技術(shù)。在Transformer模型中,位置編碼是一種定期添加到詞語嵌入向量中的穩(wěn)定向量。這有助于模型在處理長距離依賴關(guān)系時保持位置信息。

5.2.1 計算位置編碼

位置編碼是通過計算一個正弦函數(shù)來得到的。這個函數(shù)的計算公式如下:

P(pos) = \sin\left(\frac{pos}{10000^{2/3}}\right) \cdot \left[0.5^{2/3}\right]^{pos/10000^{2/3}}

5.2.2 計算詞語嵌入

詞語嵌入是通過將詞語映射到一個連續(xù)的向量空間中來表示的。這個向量空間中的向量可以通過計算詞語之間的上下文信息來學(xué)習(xí)。在Transformer模型中,詞語嵌入還包括位置編碼,這有助于模型在處理長距離依賴關(guān)系時保持位置信息。

5.3 層連接

Transformer模型由多個相互連接的層組成,每個層包含兩個主要組件:Multi-Head Self-Attention(MHSA)和位置編碼(Positional Encoding)。在每個層中,MHSA和位置編碼被連接起來形成一個前饋神經(jīng)網(wǎng)絡(luò),這個網(wǎng)絡(luò)由多個線性層和非線性激活函數(shù)組成。

5.3.1 計算層連接

層連接的計算過程包括多個步驟。首先,我們需要計算每個詞語在序列中的“注意力和”。然后,我們需要將這些和與位置編碼相加,以得到每個詞語的嵌入。最后,我們需要將嵌入通過一個前饋網(wǎng)絡(luò)進行處理,以得到最終的詞語表示。

5.4 訓(xùn)練策略

Transformer模型通過最大化概率估計任務(wù)的對數(shù)概率來訓(xùn)練,這種任務(wù)可以是Masked Language Model(MLM)、Next Sentence Prediction(NSP)或者其他生成任務(wù)。通過優(yōu)化這些任務(wù),模型可以學(xué)習(xí)到語言模式和語義關(guān)系,從而在多個NLP任務(wù)上取得良好的表現(xiàn)。

5.4.1 訓(xùn)練過程

訓(xùn)練過程包括多個epoch,每個epoch中包括多個批次。在每個批次中,我們需要計算損失函數(shù),并使用梯度下降算法來優(yōu)化模型參數(shù)。通過重復(fù)這個過程,我們可以逐漸優(yōu)化模型參數(shù),使模型在給定任務(wù)上取得更好的表現(xiàn)。

6.未來展望與挑戰(zhàn)

在這個部分,我們將討論Transformer模型在未來的潛在應(yīng)用和挑戰(zhàn)。

6.1 潛在應(yīng)用

Transformer模型在自然語言處理領(lǐng)域取得了顯著的成果,但它們的應(yīng)用范圍遠不止于此。以下是一些潛在的應(yīng)用領(lǐng)域:

  1. 機器翻譯:Transformer模型可以用于提高機器翻譯的質(zhì)量,通過學(xué)習(xí)源語言和目標語言之間的語法結(jié)構(gòu)和詞匯表達關(guān)系。
  2. 文本摘要:Transformer模型可以用于生成文章摘要,通過捕捉文章的主要內(nèi)容和關(guān)鍵信息。
  3. 情感分析:Transformer模型可以用于分析文本的情感,例如判斷文本是積極的還是消極的。
  4. 問答系統(tǒng):Transformer模型可以用于構(gòu)建問答系統(tǒng),通過理解問題和提供相關(guān)的答案。
  5. 知識圖譜構(gòu)建:Transformer模型可以用于構(gòu)建知識圖譜,通過理解實體之間的關(guān)系和屬性。

6.2 挑戰(zhàn)

盡管Transformer模型取得了顯著的成果,但它們?nèi)匀幻媾R一些挑戰(zhàn):

  1. 計算資源需求:Transformer模型需要大量的計算資源來訓(xùn)練和部署,這可能限制了其在一些資源有限的環(huán)境中的應(yīng)用。
  2. 解釋性:Transformer模型是一個黑盒模型,難以解釋其決策過程,這可能限制了其在一些敏感應(yīng)用場景中的使用。
  3. 多語言支持:雖然Transformer模型在英語任務(wù)上取得了顯著的成果,但在其他語言任務(wù)中的表現(xiàn)可能不佳,需要進一步的研究和優(yōu)化。
  4. 數(shù)據(jù)依賴:Transformer模型需要大量的高質(zhì)量數(shù)據(jù)來訓(xùn)練,這可能限制了其在一些數(shù)據(jù)稀缺的環(huán)境中的應(yīng)用。

7.結(jié)論

在本文中,我們詳細介紹了Transformer模型及其在NLP領(lǐng)域的應(yīng)用。我們還討論了預(yù)訓(xùn)練技術(shù)及其在模型表現(xiàn)中的影響。通過一個簡單的例子,我們演示了如何使用PyTorch實現(xiàn)一個Transformer模型。最后,我們討論了Transformer模型在未來的潛在應(yīng)用和挑戰(zhàn)。

8.附錄

8.1 常見問題與解答

在這個部分,我們將回答一些常見問題及其解答。

8.1.1 Transformer模型與RNN、CNN的區(qū)別

Transformer模型與傳統(tǒng)的RNN和CNN模型在結(jié)構(gòu)和注意力機制上有顯著的區(qū)別。RNN和CNN通常需要循環(huán)或卷積操作來處理序列數(shù)據(jù),這可能導(dǎo)致梯度消失或梯度爆炸問題。而Transformer模型通過注意力機制直接模型序列中詞語之間的關(guān)系,從而避免了這些問題。

8.1.2 Transformer模型的優(yōu)缺點

優(yōu)點:

  1. 能夠處理長距離依賴關(guān)系。
  2. 通過注意力機制捕捉多種關(guān)系。
  3. 預(yù)訓(xùn)練技術(shù)可以學(xué)習(xí)更廣泛的語言知識。

缺點:

  1. 計算資源需求較大。
  2. 模型解釋性較差。
  3. 數(shù)據(jù)依賴較高。

8.1.3 Transformer模型的局限性

  1. 模型參數(shù)較多,計算資源需求較大。
  2. 模型訓(xùn)練需要大量高質(zhì)量數(shù)據(jù)。
  3. 模型解釋性較差,限制了其在一些敏感應(yīng)用場景中的使用。

8.1.4 Transformer模型在NLP任務(wù)中的表現(xiàn)

Transformer模型在多個NLP任務(wù)中取得了顯著的成果,例如文本分類、情感分析、機器翻譯等。這是因為Transformer模型可以捕捉到序列中的長距離依賴關(guān)系,并通過預(yù)訓(xùn)練技術(shù)學(xué)習(xí)更廣泛的語言知識。

8.1.5 Transformer模型的未來發(fā)展方向

未來,Transformer模型可能會在以下方面進行發(fā)展:

  1. 優(yōu)化計算資源,使其在資源有限的環(huán)境中也能取得良好的表現(xiàn)。
  2. 提高模型解釋性,以便在敏感應(yīng)用場景中使用。
  3. 擴展到其他語言,以便在全球范圍內(nèi)應(yīng)用。
  4. 研究新的預(yù)訓(xùn)練任務(wù)和技術(shù),以提高模型的表現(xiàn)。

參考文獻

[1] Vaswani, A., Shazeer, N., Parmar, N., Jones, L., Gomez, A. N., Kaiser, L., & Shen, K. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5984-6004).

[2] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). BERT: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.

[3] Radford, A., Vaswani, S., Mnih, V., & Brown, J. (2018). Improving language understanding through self-supervised learning with transformers. arXiv preprint arXiv:1904.00924.

[4] Liu, Y., Dai, Y., Zhang, Y., & Chen,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容