Transformer 架構 理解

大家讀完覺得有幫助記得關注和點贊!!!

Transformer 架構:encoder/decoder 內部細節。

的介紹,說明?Transformer 架構相比當時主流的 RNN/CNN 架構的創新之處

在?transformer 之前,最先進的架構是 RNN(通常是 LSTM 或 GRU),但它們存在一些問題。

RNN?展開(unrolled)后長這樣:

RNN 最大的問題是級聯(recurrent connection): 雖然它使得信息能沿著 input sequence 一路傳導, 但也意味著在計算出?i?1?單元之前,無法計算出?i?單元的輸出。

與 RNN 此對比,一維卷積(1D convolution)如下:

在這個模型中,所有輸出向量都可以并行計算,因此速度非常快。但缺點是它們 在 long range dependencies 建模方面非常弱。在一個卷積層中,只有距離比 kernel size 小的單詞之間才能彼此交互。對于更長的依賴,就需要堆疊許多卷積。

Transformer 試圖兼顧二者的優點

  • 可以像對彼此相鄰的單詞一樣,輕松地對輸入序列的整個范圍內的依賴關系進行建模(事實上,如果沒有位置向量,二者就沒有區別);
  • 同時,避免 recurrent connections,因此整個模型可以用非常高效的 feed forward 方式計算。

Transformer 的其余設計主要基于一個考慮因素 ——?深度?—— 大多數選擇都是訓練大量 transformer block 層,例如,transformer 中只有兩個非線性的地方

  1. self-attention 中的 softmax;
  2. 前饋層中的 ReLU。

模型的其余部分完全由線性變換組成,完美地保留了梯度

摘要

主流的 sequence transduction model 都是基于復雜的循環或卷積神經網絡, 其中包括一個 encoder 和一個 decoder。效果最好的模型還會通過 attention 機制將 encoder 和 decoder 連起來。

我們提出一種新的簡單網絡架構?Transformer,它棄用了循環和卷積,完全基于 attention 機制。

在兩個機器翻譯任務上的實驗表明,Transformer 模型的效果好于其他模型,并且更容易并行化,訓練時間顯著減少。

  • Tranformer 在 WMT 2014 英德翻譯任務上達到了 28.4 BLEU,比現有最佳結果提高了 2 BLEU 以上。

  • 在 WMT 2014 英法翻譯任務上,Tranformer 在 8 個 P100 GPU 上訓練 3.5 天后,創造了新的單模型最佳性能, 這個訓練成本也遠小于本文引用的性能類似的其他模型。

我們還成功將 Transformer 應用于英語句法分析,展示了 Transformer 在其他任務上的泛化能力。

1 引言

當前,RNN(Recurrent Neural Networks,循環神經網絡)—— 尤其是?LSTM RNN(long short-term memory)和?gated RNN?—— 已經是序列建模和 transduction 問題(例如語言建模和機器翻譯)的最好方式, 現在也仍然有大量的工作在繼續擴大 recurrent 類語言模型和?encoder-decoder?架構的能力邊界。

1.1 RNN 架構的內在順序計算限制(來自 RNN 其中的?R

Recurrent models 通常沿輸入和輸出序列的符號位置進行因子計算。

  • 對于位置?t,根據前一個隱藏狀態?ht?1?和位置?t?處的 input 生成新的隱藏狀態?ht。

  • 這種內在的順序性限制了訓練數據之間的并行化,序列較長時這一點尤為重要。

近期的工作通過分解技巧(factorization tricks)和條件計算(conditional computation)顯著提高了計算效率, 此外,后者還提高了模型性能。然而,順序計算(sequential computation)這一根本約束仍然存在。

1.2 RNN+Attention 架構:更好的模型效果

Attention 機制已經成為很多任務中序列建模和 transduction 模型的一個重要組成部分, 它允許直接對依賴進行建模(modeling of dependencies), 而不用考慮這些依賴在輸入或輸出序列中的距離。

但是,絕大部分大部分情況,人們仍然是將 attention 機制與 RNN 一起使用,因而仍然受到順序計算的約束。

1.3 Transformer:避免?R,一種完全基于 attention 機制的新架構

本文提出 Transformer —— 一種避免循環機制、完全基于 attention 機制?而在輸入和輸出之間建立全局依賴關系的模型架構。

相比 RNN,Transformer 的并行能力顯著提升,在 8 個?P100?GPU 上訓練 12 小時就能創造新的最高翻譯水平。

2 背景

2.1 CNN:減少順序計算,但對遠距離依賴關系的學習成本很高

Extended Neural GPU、ByteNet 和 ConvS2S 也是想減少順序計算, 它們都使用?CNN(convolutional neural networks,卷積神經網絡)作為基本構建塊, 為所有輸入和輸出位置并行計算隱藏表示。

但是,在這些模型中,從兩個任意輸入或輸出位置(input or output positions)做信號關聯,所需的操作數量隨著位置之間的距離增加而增加,

  • ConvS2S 線性增長

  • ByteNet 對數增長。

這使得學習遠距離位置之間的依賴關系變得困難。而在 Transformer 中,

  • 所需的操作減少到一個常量,不過這里的代價是有效分辨率降低,這是 averaging attention-weighted positions 導致的;

  • 但是,可以通過 Multi-Head Attention 來緩解。

2.2 Self-attention (intra-attention) 機制

Self-attention,有時稱為 intra-attention,

  • 是一種注意力機制(2014 paper),

  • 目的是計算序列的一種表示(a representation of the sequence)

  • 方式是對一個輸入序列的不同位置做各種關聯(relating different positions of a single sequence)。

Self-attention 已經成功地應用于各種任務 [4, 27, 28, 22],包括

  • 閱讀理解(reading comprehension)

  • 總結抽象(abstractive summarization)

  • textual entailment

  • 學習任務無關的句子表示(task-independent sentence representations)

2.3 Tranformer:避免 RNN 和 CNN

端到端的記憶網絡(end-to-end memory networks)是基于一種 recurrent attention 而非 sequence-aligned recurrence 的機制,在 simple-language question answering 和語言建模任務中表現良好。

但據我們所知,Transformer 是第一個完全依賴 self-attention?—— 而不使用 sequence-aligned RNNs 或 CNNs —— 來計算輸入和輸出表示的 transduction 模型。

3 Transformer 模型架構

3.0 Encoder-decoder:sequence transduction 模型的基本結構

大部分性能較好的 neural sequence transduction 模型都會包含一個 encoder-decoder 結構:

  • encoder 將一個輸入序列?(x1,…,xn)?映射到另一個序列表示?𝐳=(z1,…,zn)。

  • 給定?𝐳,decoder 生成一個輸出序列?(y1,…,ym)?——?每次生成一個元素:

    • 生成下一個元素時,會將 input 連同上一步生成的元素一起,作為新的 input 輸入 decoder;

    • 這種機制叫?auto-regressive(自回歸)。

3.1 Encoder/decoder 內部結構

如下圖所示,Transformer 沿用了 encoder-decoder 架構,

Figure 1: Transformer 架構,沿用了業界的 encoder-decoder 架構。

3.1.1 Encoder:6 * {multi-head-attention + feed-forward}

Figure 1: Transformer 架構:encoder/decoder 內部細節。

Transformer 的 encoder 由?N=6?個相同的層組成,每層又分為兩個子層(圖 1 左邊):

  • multi-head self-attention 層;

  • 簡單的 feed-forward 全連接層。

兩個子層后面都會使用 residual connection,然后是 layer normalization。 也就是說,每個子層的輸出是?LayerNorm(x+Sublayer(x)), 其中?Sublayer(x)?是子層本身實現的函數。

為了促進這些殘差連接,模型中的所有子層以及 embedding 層, 都產生?dmodel=512?維的輸出。

3.1.2 Decoder:6 * {masked-multi-head-attention + multi-head-attention + feed-forward}

Transformer 的 decoder 也由?N=6?個相同的層組成,

Figure 1: Transformer 架構:encoder/decoder 內部細節。

但與 encoder 不同,decoder 的每層還插入了第三個子層(圖 1 右邊),

  • 它對 encoder 的輸出執行 multi-head attention。 具體來說,decoder 的輸入是 encoder 的輸出往右偏移一個位置(the output embeddings are offset by one position),再加上 position embeddings;

  • 這一子層的 self-attention 比較特殊,加了個掩碼(masking),這是為了避免它使用當前位置后面的信息(attending to subsequent positions)。 換句話說,這確保了位置?i?處的預測只能依賴?i?位置前面的已知輸出。

其他都與 encoder 類似,decoder 的每個子層后面都使用了殘差連接,然后是層歸一化。

3.2 Attention 內部結構

一個 attention 函數可以描述為將一個查詢(query)和一組 key-value pairs 映射到一個 output,其中:

  • 查詢、鍵、值和輸出都是向量;

  • output 是 values 向量的加權和,其中每個 value 的權重是由 query 與相應 key 的一個 compatibility function 計算得到的。

3.2.1 Scaled Dot-Product Attention

如圖 2?左側所示,我們的 attention 稱為 “Scaled Dot-Product Attention”。

Figure 2:(left) Scaled Dot-Product Attention. (right) Multi-Head Attention consists of several attention layers running in parallel.

輸入

  • queries 和 keys:都是?dk?維的向量;

  • values:dv?的向量。

計算過程

分為兩步:

  1. query 與所有 keys 的點積,將每個點積除以?dk??√,然后應用 softmax,得到的是 values 的權重;

  2. 將這些權重與 values 相乘。

如圖右側,實際中,

  • 同時計算一組 queries,將它們打包成一個矩陣?Q。

  • keys 和 values 也被打包成矩陣?K?和?V。

計算輸出矩陣為:

Attention(Q,K,V)=softmax(QKTdk??√)V

(1)兩個最常用的 attention 函數是 additive attention [2] 和 dot-product(multiplicative)attention。

  • Dot-product attention 除了縮放因子?1dk√?與我們的算法不同,其他都是一樣的;

  • Additive attention 使用有單個隱藏層的 feed-forward network 來計算 compatibility function。

盡管二者的理論復雜度上類似,但實際上?dot-product attention?更快,更節省空間,因為它可以使用高度優化的矩陣乘法實現。

雖然對于小的?dk?值,這兩種機制的性能相似,但對于較大的?dk?值,additive attention 優于不縮放的 dot-product attention。 我們猜測是對于較大的?dk?值,點積變得很大,將 softmax 函數推到到了梯度極小的區域。 為了避免這個問題,我們通過?1dk√?縮放點積。

3.2.2 Multi-Head Attention 的計算

Figure 2:(left) Scaled Dot-Product Attention. (right) Multi-Head Attention consists of several attention layers running in parallel.

線性變換 query/key,并行 attention 計算,最后再拼接 value

相比于對?dmodel?維的 keys、values 和 queries 執行單個 attention 函數, 我們發現可以并行計算:

  1. 將 queries、keys 和 values 進行?h?次線性變換(投影)?—— 每次使用不同的、學習到的變換矩陣 —— 將三者分別變換到?dk、dk?和?dv?維度。

  2. 對變換之后的 queries、keys 和 values?并行執行 attention 函數,就得到?dv?維的輸出 values。

  3. 將這些?values 拼接到一起再進行一次線性變換,就得到了最終的 values。

公式和參數矩陣

Multi-head attention 允許模型同時 attend(關注)不同位置的不同表示子空間(representation subspaces)的信息。 如果只有一個 attention head,它的平均(averaging)會削弱這種效果。

MultiHead(Q,K,V)=Concat(head1,…,headh)WO

其中,headi=Attention(QWQi,KWKi,VWVi)

其中,線性變換(投影)就是下面幾個參數矩陣:

  • WQi∈?dmodel×dk

  • WKi∈?dmodel×dk

  • WVi∈?dmodel×dv

  • WO∈?hdv×dmodel

本文中我們使用

  • h=8,也就是 8 個并行的 attention layers/heads。

  • dk=dv=dmodel/h=64,也就是將 query/key/value 向量都分段投影到 64 維向量。

由于每個 head 的維度降低,總計算成本與完整維度的 single head attention 相似。

3.2.3 Attention 在模型中的應用

Transformer 以三種不同的方式使用 multi-head attention:

“encoder-decoder attention” layers

這一步的用法就是 sequence-to-sequence 模型中 [38, 2, 9] 的典型 encoder-decoder attention 機制。

輸入:

  • queries 來自前一個 decoder 層

  • memory keys 和 values 來自 encoder 的輸出。

這使得?decoder 中的每個位置都可以關注輸入序列中的所有位置。

encoder layers

encoder 層包含了 self-attention layers。

輸入:keys、values 和 queries 都來自 encoder 中前一層的輸出。

encoder 中的每個位置都可以關注 encoder 前一層的所有位置。

docoder layers

與 encoder 中類似,decoder 中的 self-attention 層允許 decoder 中的每個位置關注 decoder 中到該位置為止的所有位置。

  • 為了保證自回歸特性(auto-regressive),需要防止 decoder 中的左向信息流。

  • 我們通過屏蔽與非法連接對應的 softmax 輸入中的所有值(設置為負無窮大??∞)來實現這一點。

3.3 Position-wise Feed-Forward Networks

除了 attention 子層,encoder 和 decoder 中的每個層都包含一個全連接的 feed-forward 網絡, 包括兩個線性變換和一個 ReLU 激活。

Figure 1: Feed-Forward Network (FFN) 內部結構。

對應的數學公式:

FFN(x)=max(0,xW1+b1)W2+b2

(2)線性變換在不同位置上是功能是相同的,但在不同的層使用的參數不同。 也可以將它們描述為:兩個 kernel size 為 1 的卷積。 輸入和輸出的維度是?dmodel=512,內層的維度是?dff=2048。

3.4 嵌入與 Softmax

與其他 序列轉導模型?類似,我們使用 學習到的嵌入 將輸入 tokens 和輸出 tokens 轉換為維度為?dmodel=512?的向量。 我們還使用常見的基于學習的線性變換和 softmax 函數將 decoder 輸出轉換為下一個 token 的預測概率分布(predicted next-token probabilities)。 我們的模型中,在兩個 embedding 層和 pre-softmax 線性變換之間共享相同的權重矩陣,類似于 [30]。 在 embedding 層中,我們將這些權重乘以?dmodel?????√。

3.5 Positional Encoding(位置編碼)

3.5.1 目的:向 token 注入位置信息

因為我們的模型不包含循環和卷積,為了使模型能夠利用到序列的順序, 必須向 token 注入一些關于相對或絕對位置的信息。

3.5.2 編碼算法:正弦函數

如下圖所示,為了注入位置信息,

Figure 1: Transformer 架構,沿用了業界的 encoder-decoder 架構。

我們在 encoder/decoder 的入口都添加了 “positional encodings”,它與 input embeddings 相加之后才開始后面的 attention 計算。。 位置編碼與 input embedding 具有相同的維度?dmodel=512,因此可以相加。

位置編碼有許多選擇,有基于學習的,也有固定的。 本文中,我們使用不同頻率的正弦和余弦函數:

PE(pos,2i)=sin(pos/100002i/dmodel)

PE(pos,2i+1)=cos(pos/100002i/dmodel)

其中,pos?是位置,i?是維度。也就是說,位置編碼的每個維度對應于一個正弦波。 波長從?2π?到?10000?2π?形成一個幾何級數。

  • 選擇這個函數是因為我們猜測它可以讓模型很容易地學習通過相對位置進行 attention, 因為對于任何固定的偏移?k,PEpos+k?可以表示為?PEpos?的線性函數。

  • 我們還嘗試使用 learned positional embeddings,發現結果幾乎相同。

  • 最終選擇了正弦版本,因為它可能會讓模型對超出訓練期間遇到的序列長度進行外推(extrapolate to sequence lengths)。

4 關注

本節我們對 self-attention 層與循環及卷積層(the recurrent and convolutional layers)進行一個比較, 它們都是常用的將一個變長序列的符號表示?(x1,…,xn)?映射為另一個同樣長度的序列?(z1,…,zn)?的方式, 其中?xi,zi∈?d,例如典型序列轉換 encoder/decoder 中的隱藏層。

4.1 Motivation

我們設計 self-attention 有三方面原因:

  1. 每層的計算復雜度;

  2. 可以并行化的計算量,由所需的最小順序操作數來衡量;

  3. 網絡中長距離依賴(long-range dependencies)的路徑長度。

    學習 long-range dependencies 是許多序列轉換任務的核心挑戰。 影響學習這種依賴的能力的一個核心因素是信號在網絡中前向和后向傳播的路徑長度。 輸入和輸出序列中任意位置的這種路徑越短,long-range dependencies 的學習越容易。 因此,我們還比較了在多層網絡中,輸入和輸出位置之間任意兩個位置的 maximum path length。

4.2 與循環網絡、卷積網絡的計算復雜度對比

如下表所示,

表 1:不同層類型的最大路徑長度、每層復雜度和最小順序操作數。 n 序列長度,d 表示的維度,k 卷積的內核大小,r 受限自注意 中的鄰域大小。

對于 sequential operations,

  • 一個 self-attention 層連接所有位置,因此所需的順序操作是常數(換句話說,可以完全并行化,一次完成);

  • 一個循環層則需要?O(n)?個順序操作。

在計算復雜度方面,

  • 當序列長度?n?小于表示維度?d?時,self-attention 層比循環層更快,

  • 這在機器翻譯領域已經得到證明,例如 word-piece 和 byte-pair 表示。

處理非常長的序列方面:

  • 為了提高計算性能,可以限制讓 self-attention 只考慮 輸入序列中以各自輸出位置為中心的大小為 r 的鄰域。

  • 這會將最大路徑長度增加到?O(n/r)。我們計劃在未來的工作中進一步研究這種方法。

核寬 k < n 的單個卷積層無法連接所有輸入和輸出位置對。在內核連續的情況下,這樣做需要堆疊 O(n/k) 個卷積層;在擴張卷積的情況下,需要堆疊 O(logk(n) 個卷積層,從而增加了網絡中任意兩個位置之間最長路徑的長度。卷積層的成本通常比遞歸層高 k 倍。然而,可分離卷積會大大降低復雜度,達到 O(k?n?d+n?d2)。不過,即使 k=n 時,可分離卷積的復雜度也相當于自注意層和點式前饋層的組合,而我們在模型中采用的正是這種方法。

4.3 更具可解釋性的模型

除了上述優勢,self-attention 還能產生更具可解釋性的模型。

我們檢查了 Transformer 模型的 attention 分布,并在附錄中展示和討論了一些例子。 不僅每個 attention head 都明顯學會了執行不同的任務,許多 head 還表現出與句子的句法和語義結構相關的行為。

5 訓練

本節描述 Transformer 的訓練方案。

5.1 訓練數據和批處理

1、我們在 WMT 2014 英德標準數據集上進行了訓練,該數據集包含約 450 萬個句子對。句子采用字節對編碼[3],源目標共享詞匯量約為 37000 個標記。

2、對于英語-法語,我們使用了規模更大的 WMT 2014 英語-法語數據集,該數據集包含 3600 萬個句子,并將標記拆分為 32000 個詞塊詞匯[38]。

3、句子對按近似序列長度分組。每個訓練批包含一組句子對,其中包含約 25000 個源詞塊和 25000 個目標詞塊。

5.2 硬件和時間表

在一臺?8 * NVIDIA P100 GPU?的機器上訓練。

  • 對于本文描述的超參數/尺寸,我們稱為基本模型,每個訓練步驟大約需要 0.4 秒。整個訓練共 100,000 步或?12 小時。

  • 對于尺寸更大的模型,步驟時間為 1.0 秒。整個訓練用了 300,000 步(3.5 天)。

5.3 優化器

我們使用了 Adam 優化器,其中?β1=0.9,β2=0.98?和??=10?9。 根據以下公式在訓練過程中改變學習率:

lrate=d?0.5model?min(stepnum?0.5,stepnum?warmupsteps?1.5)

這對應于在前?warmupsteps?訓練步驟中線性增加學習率,然后在此后按比例減少,與步數的倒數平方根成比例。 我們使用了?warmupsteps=4000。

5.4 規范化

我們在訓練過程中使用了幾種類型的正則化。

Residual Dropout

  • 對每個子層的輸出應用 dropout,然后將其添加到子層輸入并進行歸一化。

  • 對 encoder/decoder 中的?input embeddings + positional encodings?的結果應用 dropout。

對于 base 模型,我們使用了?Pdrop=0.1。

標簽平滑

在訓練過程中,我們使用了??ls=0.1?的 label smoothing。這會降低 perplexity,因為模型 learns to be more unsure,但會提高準確性和 BLEU 分數。

6 結果

6.1 Machine Translation

Table 2:在英語到德語和英語到法語的 newstest2014 測試中,Transformer 的 BLEU 分數高于之前的先進模型,而訓練成本僅為之前的一小部分。

在 WMT 2014 英譯德翻譯任務中,大轉換器模型(Transformer (big))的 BLEU 值比之前報道的最佳模型(包括合集)高出 2.0 以上,達到了 28.4 的最新 BLEU 值。該模型的配置見表 2 底行。在 8 個 P100 GPU 上的訓練耗時 3.5 天。即使是我們的基本模型,也超越了之前發布的所有模型和合集,而訓練成本僅為任何競爭模型的一小部分。

在 WMT 2014 英法互譯任務中,我們的大模型獲得了 41.0 的 BLEU 分數,超過了之前發布的所有單一模型,而訓練成本還不到之前最先進模型的 1/4。針對英譯法訓練的 Transformer(大)模型使用了 Pdrop=0.1,而不是 0.3。

對于基礎模型,我們使用的是通過平均最近 5 個檢查點得到的單一模型,這些檢查點是以 10 分鐘的間隔寫入的。對于大型模型,我們取最后 20 個檢查點的平均值。我們使用波束搜索,波束大小為 4,長度懲罰 α=0.6 。這些超參數是在開發集上實驗后選擇的。我們將推理過程中的最大輸出長度設定為輸入長度 + 50,但盡可能提前終止。

表 2 總結了我們的結果,并將我們的翻譯質量和訓練成本與文獻中的其他模型架構進行了比較。我們通過將訓練時間、使用的 GPU 數量和每個 GPU 的持續單精度浮點運算能力的估計值相乘,估算出訓練一個模型所使用的浮點運算次數。

6.2 模型變化

表 3:變壓器架構的各種變化。未列出的值與基礎模型的值相同。所有指標均基于英德翻譯開發集 newstest2013。根據我們的字節對編碼,列出的困惑度為每字片段的困惑度,不應與每字困惑度進行比較。

為了評估 Transformer 不同組件的重要性,我們以不同方式改變了基礎模型,測量了開發集 newstest2013 上英譯德性能的變化。我們使用了上一節所述的波束搜索,但沒有使用檢查點平均法。我們在表 3 中列出了這些結果。

在表 3 行(A)中,我們改變了注意頭的數量以及注意鍵和值的維度,計算量保持不變,如多頭一節所述。雖然單頭注意力比最佳設置差 0.9 BLEU,但注意力頭數過多也會導致質量下降。

在表 3 行(B)中,我們發現減小注意力密鑰大小 dk 會降低模型質量。這表明,確定兼容性并不容易,比點積更復雜的兼容性函數可能更有益處。在第(C)行和第(D)行中,我們進一步觀察到,正如我們所預期的那樣,模型越大越好,而 dropout 對避免過度擬合很有幫助。在第(E)行中,我們用學習到的位置嵌入替換了正弦位置編碼,觀察到的結果與基礎模型幾乎完全相同。

6.3 英語選區解析

表 4:轉換器在英語選區解析方面具有良好的通用性(結果見《WSJ》第 23 節)

為了評估轉換器是否能推廣到其他任務,我們進行了英語選區解析實驗。這項任務具有特殊的挑戰性:輸出結果受到強大的結構約束,而且比輸入結果要長得多。此外,RNN 序列到序列模型在小數據環境下也無法達到最先進的結果。

我們在賓夕法尼亞大學樹庫(Penn Treebank)的《華爾街日報》(WSJ)部分訓練了一個 dmodel=1024 的 4 層變換器,大約有 40K 個訓練句子。我們還使用更大的高置信度語料庫和 BerkleyParser 語料庫(約有 177 萬個句子),在半監督環境下對其進行了訓練。在僅使用 WSJ 的設置中,我們使用了 16K 詞組,而在半監督設置中,我們使用了 32K 詞組。

我們只在第 22 節開發集上進行了少量實驗,以選擇丟棄率(包括注意力和殘差)、學習率和波束大小,所有其他參數均與英德基礎翻譯模型保持一致。在推理過程中,我們將最大輸出長度增加到輸入長度 + 300。在僅 WSJ 和半監督設置中,我們使用的波束大小均為 21,α=0.3。

表 4 中的結果表明,盡管缺乏針對特定任務的調整,我們的模型仍然表現出了令人驚訝的出色性能,其結果優于除遞歸神經網絡語法之外的所有之前報道過的模型。

與循環神經網絡序列到序列模型相比,即使只在由 4 萬個句子組成的 WSJ 訓練集上進行訓練,Transformer 的表現也優于 BerkeleyParser。

展望未來,我們對基于 attention 的模型充滿期待,并計劃將其應用于其他任務。 我們計劃將 Transformer 擴展到文本以外的涉及輸入/輸出模態(involving input and output modalities)的場景, 并研究局部、受限的 attention 機制,以有效處理大輸入和輸出,如圖像、音頻和視頻。 讓生成過程盡量避免順序執行(making generation less sequential)也是我們的一個研究目標。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70830.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70830.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70830.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

事務的4個特性和4個隔離級別

事務的4個特性和4個隔離級別 1. 什么是事務2. 事務的ACID特性2.1 原子性2.2 一致性2.3 持久性2.4 隔離性 3. 事務的創建4. 事務并發時出現的問題4.1 DIRTY READ 臟讀4.2 NON - REPEATABLR READ 不可重復讀4.3 PHANTOM READ 幻讀 5. 事務的隔離級別5.1 READ UNCOMMITTED 讀未提交…

LeetCode熱題100- 字符串解碼【JavaScript講解】

古語有云&#xff1a;“事以密成&#xff0c;語以泄敗”&#xff01; 關于字符串解碼&#xff1a; 題目&#xff1a;題解&#xff1a;js代碼&#xff1a;代碼中遇到的方法&#xff1a;repeat方法&#xff1a;為什么這里不用this.strstack.push(result)&#xff1f; 題目&#x…

水利工程安全包括哪幾個方面

水利工程安全培訓的內容主要包括以下幾個方面&#xff1a; 基礎知識和技能培訓 &#xff1a; 法律法規 &#xff1a;學習水利工程相關的安全生產法律法規&#xff0c;了解安全生產標準及規范。 事故案例 &#xff1a;通過分析事故案例&#xff0c;了解事故原因和教訓&#x…

淺談新能源汽車充電樁建設問題分析及解決方案

摘要&#xff1a; 在全球倡導低碳減排的大背景下&#xff0c;新能源成為熱門行業在全球范圍內得以開展。汽車尾氣排放會在一定程度上加重溫室效應&#xff0c;并且化石能源的日漸緊缺也迫切對新能源汽車發展提出新要求。現階段的新能源汽車以電力汽車為主&#xff0c;與燃油汽…

05-1基于vs2022的c語言筆記——運算符

目錄 前言 5.運算符和表達式 5-1-1 加減乘除運算符 1.把變量進行加減乘除運算 2.把常量進行加減乘除運算 3.對于比較大的數&#xff08;往數軸正方向或者負方向&#xff09;&#xff0c;要注意占位符的選取 4.浮點數的加減乘除 5-1-2取余/取模運算符 1.基本規則 2.c語…

ubuntu:換源安裝docker-ce和docker-compose

更新apt源 apt換源&#xff1a;ubuntu&#xff1a;更新阿里云apt源-CSDN博客 安裝docker-ce 1、更新軟件源 sudo apt update2、安裝基本軟件 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y3、指定使用阿里云鏡像 su…

0—QT ui界面一覽

2025.2.26&#xff0c;感謝gpt4 1.控件盒子 1. Layouts&#xff08;布局&#xff09; 布局控件用于組織界面上的控件&#xff0c;確保它們的位置和排列方式合理。 Vertical Layout&#xff08;垂直布局&#xff09; &#xff1a;將控件按垂直方向排列。 建議&#xff1a;適…

Apache Doris 索引的全面剖析與使用指南

搞大數據開發的都知道&#xff0c;想要在海量數據里快速查數據&#xff0c;就像在星圖里找一顆特定的星星&#xff0c;賊費勁。不過別慌&#xff0c;數據庫索引就是咱們的 “定位神器”&#xff0c;能讓查詢效率直接起飛&#xff01;就拿 Apache Doris 這個超火的分析型數據庫來…

docker file中ADD命令的介紹

在 Docker 的世界里&#xff0c;Dockerfile 是一個用于定義鏡像內容和行為的腳本文件。其中&#xff0c;ADD 指令是 Dockerfile 中一個非常重要的命令&#xff0c;用于將文件或目錄從主機文件系統復制到容器的文件系統中。本文將詳細介紹 ADD 指令的作用、使用方式以及一些最佳…

從零到一:如何用阿里云百煉和火山引擎搭建專屬 AI 助手(DeepSeek)?

本文首發&#xff1a;從零到一&#xff1a;如何用阿里云百煉和火山引擎搭建專屬 AI 助手&#xff08;DeepSeek&#xff09;&#xff1f; 阿里云百煉和火山引擎都推出了免費的 DeepSeek 模型體驗額度&#xff0c;今天我和大家一起搭建一個本地的專屬 AI 助手。  阿里云百煉為 …

cpp中的繼承

一、繼承概念 在cpp中&#xff0c;封裝、繼承、多態是面向對象的三大特性。這里的繼承就是允許已經存在的類&#xff08;也就是基類&#xff09;的基礎上創建新類&#xff08;派生類或者子類&#xff09;&#xff0c;從而實現代碼的復用。 如上圖所示&#xff0c;Person是基類&…

【QT】QLinearGradient 線性漸變類簡單使用教程

目錄 0.簡介 1&#xff09;qtDesigner中 2&#xff09;實際執行 1.功能詳述 3.舉一反三的樣式 0.簡介 QLinearGradient 是 Qt 框架中的一個類&#xff0c;用于定義線性漸變效果&#xff08;通過樣式表設置&#xff09;。它可以用來填充形狀、背景或其他圖形元素&#xff0…

前端項目配置 Nginx 全攻略

在前端開發中&#xff0c;項目開發完成后&#xff0c;如何高效、穩定地將其部署到生產環境是至關重要的一步。Nginx 作為一款輕量級、高性能的 Web 服務器和反向代理服務器&#xff0c;憑借其出色的性能和豐富的功能&#xff0c;成為了前端項目部署的首選方案。本文將詳細介紹在…

網絡安全學習-常見web漏洞的滲xxx透以及防護方法

滲XX透測試 弱口令漏洞 漏洞描述 目標網站管理入口&#xff08;或數據庫等組件的外部連接&#xff09;使用了容易被猜測的簡單字符口令、或者是默認系統賬號口令。 滲XX透測試 如果不存在驗證碼&#xff0c;則直接使用相對應的弱口令字典使用burpsuite 進行爆破如果存在驗證…

網絡安全 機器學習算法 計算機網絡安全機制

&#xff08;一&#xff09;網絡操作系統 安全 網絡操作系統安全是整個網絡系統安全的基礎。操作系統安全機制主要包括訪問控制和隔離控制。 訪問控制系統一般包括主體、客體和安全訪問政策 訪問控制類型&#xff1a; 自主訪問控制強制訪問控制 訪問控制措施&#xff1a; 入…

2025網絡安全等級測評報告,信息安全風險評估報告(Word模板)

一、概述 1.1工作方法 1.2評估依據 1.3評估范圍 1.4評估方法 1.5基本信息 二、資產分析 2.1 信息資產識別概述 2.2 信息資產識別 三、評估說明 3.1無線網絡安全檢查項目評估 3.2無線網絡與系統安全評估 3.3 ip管理與補丁管理 3.4防火墻 四、威脅細類分析 4.1威脅…

Ubuntu22.04系統安裝Anaconda、CUDA和CUDNN

之前一直在Windows系統下使用Anaconda和CUDA加速&#xff0c;最近需要復現一個算法&#xff0c;文檔里面有Linux系統conda構建環境的教程。 本篇博文參考博文&#xff0c;記錄自己安裝的過程&#xff0c;便于以后需要。 目錄 1.Anaconda1.1 安裝包下載1.2 安裝軟件1.3 更新cond…

微信小程序調用火山方舟(字節跳動火山引擎)中的DeepSeek大模型

一、注冊火山引擎賬號&#xff0c;創建API Key和model&#xff08;接入點ID&#xff09; 1.注冊并登陸火山引擎賬號&#xff0c;網址為&#xff1a;https://console.volcengine.com/ 2.根據登陸后的頁面提示進行實名認證&#xff0c;實名認證后才能創建API Keyt和創建接入點。…

藍橋杯之日期題

文章目錄 1.藍橋杯必備知識點2. 題型13.需求2 1.藍橋杯必備知識點 藍橋杯是一個面向全國高校計算機相關專業學生的學科競賽&#xff0c;涵蓋多個賽道&#xff0c;常見的有軟件類&#xff08;如 C/C 程序設計、Java 軟件開發、Python 程序設計&#xff09;和電子類&#xff08;…

muduo網絡庫2

Muduo網絡庫&#xff1a;底層實質上為Linux的epoll pthread線程池&#xff0c;且依賴boost庫。 muduo的網絡設計核心為一個線程一個事件循環&#xff0c;有一個main Reactor負載accept連接&#xff0c;然后把連接分發到某個sub Reactor(采用輪詢的方式來選擇sub Reactor)&…