天天看點

關于NLP模型GPT-2的學習筆記(二)關于NLP模型GPT-2的學習筆記(二)前言一、GPT-2基本機制二、GPT-2數學模型總結

關于NLP模型GPT-2的學習筆記(二)

文章目錄

  • 關于NLP模型GPT-2的學習筆記(二)
  • 前言
  • 一、GPT-2基本機制
  • 二、GPT-2數學模型
  • 總結

前言

上一次我們介紹了GPT模型的基本結構,下面對于GPT的基本工作流程進行介紹:

一、GPT-2基本機制

GPT-2 可以處理最長 1024 個單詞的序列。每個單詞都會和它的前續路徑一起經過所有的解碼器子產品。

運作一個訓練好的 GPT-2 模型,最簡單的方法就是讓它自己随機工作(生成無條件樣本)。我們也可以給它一些限制條件,讓它生成一些關于特定主題的文本(即生成互動式條件樣本)。在随機情況下,我們隻簡單地提供一個預先定義好的起始單詞,然後讓它自己生成文字。

此時,模型的輸入隻有一個單詞,是以隻有這個單詞的路徑是活躍的。單詞經過層層處理,最終得到一個向量。向量可以對于詞彙表的每個單詞計算一個機率。我們選擇機率最高的單詞作為下一個單詞。

但有時這樣會出問題——就像如果我們持續點選輸入法推薦單詞的第一個,它可能會陷入推薦同一個詞的循環中,隻有你點選第二或第三個推薦詞,才能跳出這種循環。同樣的,GPT-2 也有一個叫做「top-k」的參數,模型會從前 k個機率較大的單詞中選取下一個單詞。當top-k = 1時,就是選取機率最大的單詞作為輸出。目前很多訓練模型的預設top-k在8左右,當預設值生成的效果不好時,可以調整到40看看效果。

模型每輸出一個單詞就會将輸出的單詞添加在輸入序列的尾部建構新的輸入序列,讓模型進行下一步的預測。

二、GPT-2數學模型

與其它自然語言處理模型一樣,GPT-2 同樣從嵌入矩陣中查找單詞對應的嵌入向量,該矩陣也是模型訓練結果的一部分。

每一行都是一個詞的嵌入向量:一個能夠表征某個單詞,并捕獲其意義的數字清單。嵌入向量的長度和 GPT-2 模型的大小有關,最小的模型使用了長為 768 的嵌入向量來表征一個單詞。

是以在一開始,我們需要在嵌入矩陣中查找起始單詞對應的嵌入向量。但在将其輸入給模型之前,我們還需要引入位置編碼——一些向 transformer 子產品指出序列中的單詞順序的信号。1024 個輸入序列位置中的每一個都對應一個位置編碼,這些編碼組成的矩陣也是訓練模型的一部分。

至此,輸入單詞在進入模型第一個 transformer 子產品之前所有的處理步驟就結束了。如上文所述,訓練後的 GPT-2 模型包含兩個權值矩陣:嵌入矩陣和位置編碼矩陣。

第一個 transformer 子產品處理單詞的步驟如下:首先通過自注意力層處理,接着将其傳遞給神經網絡層。第一個 transformer 子產品處理完但此後,會将結果向量被傳入堆棧中的下一個 transformer 子產品,繼續進行計算。每一個 transformer 子產品的處理方式都是一樣的,但每個子產品都會維護自己的自注意力層和神經網絡層中的權重。

自注意力機制沿着序列中每一個單詞的路徑進行處理,主要由 3 個向量組成:

查詢向量(Query 向量):目前單詞的查詢向量被用來和其它單詞的鍵向量相乘,進而得到其它詞相對于目前詞的注意力得分。我們隻關心目前正在處理的單詞的查詢向量。

鍵向量(Key 向量):鍵向量就像是序列中每個單詞的标簽,它使我們搜尋相關單詞時用來比對的對象。

值向量(Value 向量):值向量是單詞真正的表征,當我們算出注意力得分後,使用值向量進行權重求和得到能代表目前位置上下文的向量。

将每個檔案夾的值向量乘以其對應的注意力得分,然後求和,得到最終自注意力層的輸出。此時的注意力得分權重就得到單詞的權重,并生成新的文本。

總結

以上就是今天要講的内容,本次對于GPT-2的結構與模型進行了介紹,後面将會進行實踐操作訓練可用的模型。