久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

解讀AI大模型,,從了解token開始

 江海博覽 2023-11-11 發(fā)布于浙江
解讀AI大模型,,從了解token開始

上次《科普神文,一次性講透AI大模型的核心概念》一文中,,我基于結(jié)合大量示例及可視化的圖形手段給大家科普了AI大模型的相關(guān)算法和核心概念,。

但是收到不少非技術(shù)背景的小伙伴反饋,相關(guān)的算法內(nèi)容的解釋技術(shù)性還是太強,,很難完全理解,。所以這次,題主從最基礎(chǔ)的概念“token”著手,,跳過了復雜的算法邏輯,,這次一定讓你建立起對AI大模型工作原理的清晰認知。

什么是token,?最小的語義單元

你可能會好奇,,大規(guī)模語言模型是如何工作的呢?它們是如何從數(shù)據(jù)中學習到語言的呢,?它們是如何根據(jù)輸入來生成合理的文本延續(xù)的呢?為了回答這些問題,,我們需要從最基礎(chǔ)的概念開始講起:token,。

在自然語言處理(NLP)中,token是指文本中最小的語義單元,。比如,,一個句子可以被分割成若干個單詞,每個單詞就是一個token,。例如,,“I love you”這個句子可以被分割成三個token:“I”,“l(fā)ove”和“you”,。token可以幫助我們把文本分解成更容易處理和分析的部分,。

但是,并不是所有的語言都可以用空格來劃分單詞。有些語言,,比如中文,、日語等,沒有明顯的單詞邊界,。在這種情況下,,我們需要用一些更復雜的方法來進行tokenization(分詞)。比如,,我們可以用一些規(guī)則或者統(tǒng)計模型來判斷哪些字或者字組合構(gòu)成了一個有意義的token,。例如,“我愛你”這個句子可以被分割成兩個token:“我”和“愛你”,。當然,,這種方法并不完美,有時候會出現(xiàn)錯誤或者歧義,。

除了單詞之外,,還有一些其他的符號也可以被視為token。比如,,標點符號,、數(shù)字、表情符號等等,。這些符號也可以傳達一些信息或者情感,。例如,“I love you!”和“I love you?”就不同于“I love you”,,因為感嘆號和問號表達了不同的語氣和態(tài)度,。

總之,token就是文本中的最小有意義的單位,,它們可以幫助我們把文本分解成更容易處理和分析的部分,。不同的語言和場景可能需要不同的tokenization方法。接下來,,我們要看看GPT系列采用了什么樣的token類型,?

GPT系列采用了什么樣的token類型?

解讀AI大模型,,從了解token開始

GPT系列是一系列基于Transformer的生成式預訓練模型,,它們可以用來生成各種類型的文本。目前,,已經(jīng)有了GPT-2,、GPT-3和GPT-4等不同版本的模型,它們的區(qū)別主要在于模型的大小,、訓練數(shù)據(jù)的規(guī)模和質(zhì)量,、以及生成能力的強度,。

GPT系列的模型都是基于子詞(subword)來進行tokenization的。子詞是指比單詞更小的語言單位,,它們可以根據(jù)語料庫中的詞頻和共現(xiàn)頻率來自動劃分,。比如,一個單詞“transformer”可以被劃分成兩個子詞“trans”和“former”,,或者三個子詞“t”,,“rans”和“former”,或者四個子詞“t”,,“r”,,“ans”和“former”,等等,。不同的劃分方法會產(chǎn)生不同數(shù)量和長度的子詞,。一般來說,子詞越多越短,,就越能覆蓋更多的語言現(xiàn)象,,但也會增加模型的計算復雜度;子詞越少越長,,就越能減少模型的計算復雜度,,但也會損失一些語言信息。

GPT系列采用了一種叫做Byte Pair Encoding(BPE)的子詞劃分方法,。BPE是一種基于數(shù)據(jù)壓縮原理的算法,,它可以根據(jù)語料庫中出現(xiàn)頻率最高的字節(jié)對(byte pair)來合并字節(jié),從而生成新的字節(jié),。比如,,如果語料庫中出現(xiàn)頻率最高的字節(jié)對是“ns”,那么BPE就會把所有的“ns”替換成一個新的字節(jié)“Z”,,從而減少字節(jié)總數(shù),。這個過程可以重復進行,直到達到預設(shè)的字節(jié)總數(shù)或者沒有更多的字節(jié)對可以合并為止,。這樣,,BPE就可以把原始的字節(jié)序列轉(zhuǎn)換成一個由新字節(jié)組成的子詞序列。

例如,,“obsessiveness”這個單詞可以被BPE轉(zhuǎn)換成以下子詞序列:

  • 原始字節(jié)序列:o b s e s s i v e n e s s
  • 第一次合并:o b s e Z i v e n e Z (假設(shè)Z代表ss)
  • 第二次合并:o b s E i v e n E (假設(shè)E代表e Z)
  • 最終子詞序列:o b s E i v e n E(如果沒達到預設(shè)的字節(jié)要求,可合并只出現(xiàn)一次的子詞)

當然,,這只是一個簡單的例子,,實際上BPE會根據(jù)大規(guī)模的語料庫來生成更多更復雜的子詞。GPT系列使用了不同大小的BPE詞典來存儲所有可能出現(xiàn)的子詞,。比如,,GPT-3使用了50,257個子詞,。

總之,GPT系列采用了基于BPE算法的子詞作為token類型,,主要目的是以無損的方式壓縮文本的內(nèi)容,,從而以保證語言覆蓋度和計算效率之間達到一個平衡。接下來,,我們要看看如何用子詞來表示和生成文本,?

如何用子詞來表示和生成文本?

我們已經(jīng)知道了GPT系列使用了子詞作為token類型,,并且通過上文講述的BPE或其他相關(guān)算法我們可以將文本內(nèi)容轉(zhuǎn)換為由子詞組合而成的序列,,也就是術(shù)語中分詞過程。

有了子詞序列之后,,我們就可以用子詞來表示和生成文本了嗎,?答案是否定的。因為語言模型是基于神經(jīng)網(wǎng)絡(luò)的,,而神經(jīng)網(wǎng)絡(luò)只能處理數(shù)值數(shù)據(jù),,而不能處理文本數(shù)據(jù)。因此,,我們還需要做第二件事情:將子詞序列轉(zhuǎn)換為數(shù)值向量,。

這里,我們需要介紹兩個重要的概念:編碼(encoding)和解碼(decoding),。

編碼和解碼

將子詞序列轉(zhuǎn)換為數(shù)值向量的過程叫做編碼(Encoding),,它是語言模型的第二步。編碼的目的是將一個個離散且無序的token映射到一個個連續(xù)且有序的向量空間中,,從而方便語言模型進行計算和學習,。比如,我們可以用以下的BPE詞典來表示上面的例子:

子詞

數(shù)值編碼

子詞

數(shù)值編碼

o

1

i

5

b

2

v

6

s

3

e

7

E

4

n

8

那么,,編碼和解碼就可以按照以下的規(guī)則進行:

  • 編碼:根據(jù)BPE算法,,將文本分割成最長的匹配子詞,然后根據(jù)BPE詞典,,將每個子詞替換成其對應的數(shù)值編碼,,從而得到一個數(shù)值向量。比如,,“obsessiveness”這個單詞可以被編碼為[1, 2, 3, 4, 5,,6,7,,8,,4]這個數(shù)值向量。
  • 解碼:根據(jù)BPE詞典,,將每個數(shù)值編碼替換成其對應的子詞,,然后根據(jù)BPE算法,,將相鄰的子詞合并成最長的匹配單詞,從而得到一個文本,。比如,,[1, 2, 3, 4, 5,6,,7,,8,4]這個數(shù)值向量可以被解碼為“obsessiveness”這個單詞,。

通過編碼和解碼,,我們就可以實現(xiàn)文本和子詞序列向量之間的互相轉(zhuǎn)換。但是,,這還不夠,。我們還需要讓GPT系列能夠理解和生成這些子詞序列。為了做到這一點,,我們還需要進行另外兩個步驟:嵌入(embedding)和預測(prediction),。

嵌入和預測

我們已經(jīng)知道,子詞分詞和編解碼,,可以把文本轉(zhuǎn)換成數(shù)字,,就像我們用數(shù)字來表示電話號碼一樣。但是,,這樣的數(shù)字只是一種編碼方式,,它們并不能告訴我們子詞之間有什么關(guān)系。比如,,我們怎么知道“貓”和“狗”是兩種動物,,而“貓”和“桌子”是不同的東西呢?

為了讓GPT系列能夠理解子詞之間的關(guān)系,,我們需要進行嵌入(embedding),。嵌入就是把每個子詞用一個特征向量來表示,這個特征向量可以反映出子詞的含義,、用法,、情感等方面的信息。

特征向量的計算算法比較復雜,,但計算原理比較容易理解,,GPT只需要基于互聯(lián)網(wǎng)上大量的文本資料,統(tǒng)計出兩個詞語在相鄰/句子/文章中共同出現(xiàn)的概率并通過權(quán)重來匯總計算,,就能分析出某個詞語與另外一個詞語的親密度的數(shù)值,,并將這個數(shù)值作為特征向量來描述這個詞語。 比如,“貓”在互聯(lián)網(wǎng)的資料中與“動物”等詞語一同出現(xiàn)的次數(shù)多,,所以“貓”的特征向量可能包含了它是一種動物、有毛發(fā),、喜歡吃魚,、會發(fā)出喵喵聲等信息。

通過嵌入,,我們就可以把每個子詞看作是高維空間中的一個點,,而這些點之間的距離和方向,就可以表示出子詞之間的相似度和差異度,。比如,,“貓”和“狗”的點因為同為寵物,可能會比較接近,,相對“狗”而言,,“貓”和“牛”的點可能會比較遠離,。

解讀AI大模型,,從了解token開始

在完成嵌入后,我們就可以進行預測(prediction),。預測就是根據(jù)給定的文本,,計算出下一個子詞出現(xiàn)的概率。比如,,如果給定的文本是“我家有一只”,,那么下一個子詞可能是“貓”或者“狗”,而不太可能是“桌子”或者“電視”,。這個概率的計算,,就是基于特征向量表進行的。

解讀AI大模型,,從了解token開始

通過嵌入和預測,,我們就可以實現(xiàn)從數(shù)字到文本,或者從文本到數(shù)字的轉(zhuǎn)換,。但是,,這還不夠。我們還需要讓GPT系列能夠根據(jù)給定的文本來生成新的文本,。為了做到這一點,,我們還需要進行最后一個步驟:生成(generation)。

生成與自回歸

生成是指根據(jù)給定的文本來生成新的文本的過程,。生成可以分為兩種模式:自回歸(autoregressive)和自編碼(autoencoding),,GPT系列主要采用了自回歸模式。

那么什么是自回歸,?簡單理解就是想象這么一副畫面:

一個人在拍連環(huán)畫,,每一頁連環(huán)畫都是前一張連環(huán)畫的延續(xù),。也就是說,人需要看前一張畫乃至前多張畫才能知道該畫什么內(nèi)容,。類似地,,自回歸模型中的每個時間點都需要前一個時間點的信息才能計算出當前時間點的輸出值。就像拍連環(huán)畫一樣,,自回歸模型中各個時間點之間存在著緊密的聯(lián)系和依賴關(guān)系,,這種聯(lián)系在預測時間序列數(shù)據(jù)時非常有用。

解讀AI大模型,,從了解token開始

例如,,“I love you”這個句子可以被GPT系列生成為以下的文本:

  • I love you more than anything in the world.
  • I love you and I miss you so much.
  • I love you, but I can't be with you.

總之,GPT系列使用了子詞,、數(shù)值向量,、實數(shù)向量和Transformer模型來表示和生成文本。通過編碼,、解碼,、嵌入、預測和生成等步驟,,它可以實現(xiàn)從文本到文本的轉(zhuǎn)換,。

整體過程可以參考GPT官方的示意圖,如下:

解讀AI大模型,,從了解token開始

總結(jié)

今天,,我們學習了GPT系列是如何用子詞來表示和生成文本的。我們了解了token相關(guān)的概念和文本生成的步驟,,通過這些概念和步驟,,我們可以理解GPT系列是如何從文本到文本的轉(zhuǎn)換。希望你喜歡今天的AI科普文章,,如果你有任何問題或建議,,請在評論區(qū)留言。謝謝你的閱讀和支持,!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多