天天看點

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

作者:薛定谔D家肥貓
用于ChatGPT的機器學習模型Transformer如何生成自然句子?

像ChatGPT這些能夠進行自然對話的聊天AI所基于的大規模語言模型是Google開發的機器學習架構“Transformer”。 人工智能專家路易斯·塞拉諾(Luis Serrano)解釋了Transformer如何根據上下文輸出自然句子。

What Are Transformer Models and How Do They Work?

https://txt.cohere.com/what-are-transformer-models/

簡而言之,Transformer是一種根據句子上下文生成延續的技術。 “生成句子後續的技術”已經研究了很長時間,手機等裝置的輸入法都配備了聯想輸入功能,但這些聯想功能隻從輸入曆史中選擇頻繁出現的單詞,忽略上下文關系的經常會被選中。 例如,要檢視手機的文本聯想查詢效果如何,請嘗試手動鍵入“th”,然後繼續僅點按建議的聯想查詢的文本。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

完成的文本如下所示。 最後會得到了一個沒有意義的句子。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

另一方面,Transformer可以在保持上下文合理的同時生成句子延續。例如,輸入“Write a story.”這篇文章的話,預計“Once”會繼續,再輸入“Write a story.Once”的話,預計“upon”會繼續,輸入“Write a story.Once upon”的話,預計“a”會繼續……像這樣,可以生成不會中斷的自然句子。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

Transformer大緻可分為“Tokenization(标記化)”、“Embedding(嵌入)”、“Positional encoding(位置編碼)”、“Transformer block”和“Softmax”。 它通過 5 個操作步驟識别并生成句子。 每個操作的詳細資訊如下。

1、 标記化(Tokenization)

在Transformer中,句子在處理之前被切割成稱為“token”的單元。 例如,句子“Write a story.”是“Write”、“a”、“story”、“.”。 它被分割如下。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

在英語句子的情況下,一個單詞通常是一個token,但token的劃分方式因單詞類型和語言而異。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

2、 嵌入(Embedding)

标記化完成後,将進行“嵌入”以将每個token轉換為數字。 嵌入是通過将token與“token -數字對應清單(向量)”進行比較來完成的。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

向量最初有很多類型,但假設兩種類型的向量,嵌入token後的狀态如下。 如果檢查每個token的坐标,可以看到具有相似含義的token,例如“蘋果(2,5)”,“香蕉(5,6)”,“草莓(5,5)”,“櫻桃(4,6)”位于緊密坐标處。 通過這種方式,通過嵌入量化token,您可以判斷每個token是否相似。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

3、位置編碼(Positional encoding)

量化每個token後,需要将整個語句轉換為單個向量。 要将整個語句轉換為一個向量,可以導出每個token的坐标之和。 例如,如果文本中包含的token坐标為“1,1”、“2,3”和“2,4”,則整個句子的坐标将為“1+5+2,2+1+3”=“4,5”。

但是,在簡單地求和坐标的情況下,“相同單詞以不同順序排列的句子”,例如“I’m not sad,I’m happy”“I’m not happy,I’m sad”将存在于相同的坐标上。 為了解決這個相同的坐标問題,Transformer向每個token添加一個位置标記,以訓示訂單的順序。 例如,句子“Write a story.”是“Write”、“a”、“story”、“.”。 并将位置向量添加到“Write(5)”,“a(12)”,“story(1)”,“. (2)".

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

4、 Transformer block

當token被嵌入并定位編碼時,執行“根據上下文生成後續”的過程。 該過程是通過通過多個稱為“Transformer block”的處理系統來執行的。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

Transformer block的一個重要部分是稱為“Attention(注意)”的過程,該過程對token進行權重,以便它們可以考慮上下文。 例如,“bank”一詞有兩個含義,“堤壩”和“銀行”, 即使隻顯示“bank”這個單詞,也很難判斷是哪個意思。但是,像“The bank of the river(河堤)”“Money in the bank(銀行的黃金)”這樣,通過與“bank”配套的單詞可以掌握“bank”的意思。是以,在Transformer中,将表示“堤壩”的“bank”配置在“river”附近的坐标上,将表示“銀行”的“bank”配置在“Money”附近的坐标上,這樣可以在不破壞句子原意的情況下連接配接單詞。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

在執行上述上下文權重過程後,Transformer block派生多個适當的單詞作為句子的延續,并為每個單詞配置設定分數。

5、 Softmax

在推導出适當的候選單詞作為Transformer block中句子的延續後,執行 softmax過程,将每個候選者的分數轉換為機率。 然後,輸出機率最高的單詞作為句子的延續。 在下面的例子中,輸入“Write a story.”的結果是“Once”“Somewhere”“There”等單詞作為候補被導出,候補中機率最高的“Once”作為文章的後續被輸出。然後,如果輸出“Once”,就會新輸入“Write a story.Once”,不斷生成句子的後續。

用于ChatGPT的機器學習模型Transformer如何生成自然句子?

繼續閱讀