探秘AI,AI是怎么理解一句話的?

yan
0 評(píng)論 352 瀏覽 0 收藏 18 分鐘

人工智能的快速發(fā)展已經(jīng)徹底改變了我們的生活方式,但許多人對(duì)其背后的工作原理仍充滿疑問。特別是,AI是如何理解和處理語言的?這篇文章將帶你深入探索AI大語言模型的核心構(gòu)成,從詞嵌入到自注意力機(jī)制,揭示AI如何通過復(fù)雜的數(shù)學(xué)和算法,實(shí)現(xiàn)對(duì)人類語言的理解與生成。

AI大語言模型 (Artificial Intelligence Large Language Model)

? AI (Artificial Intelligence): 人工智能。這部分表明了AI的本質(zhì)——不是一個(gè)真實(shí)的人類,而是通過計(jì)算機(jī)程序和算法構(gòu)建出來的智能體。能夠執(zhí)行通常需要人類智能才能完成的任務(wù),比如學(xué)習(xí)、推理、解決問題、理解語言等等。

? 大 (Large): 大型。這個(gè)詞描述了模型的規(guī)模。AI通過學(xué)習(xí)海量的文本數(shù)據(jù)(例如書籍、文章、網(wǎng)站內(nèi)容等)來獲得知識(shí)和能力。 “大型”意味著模型擁有龐大的參數(shù)數(shù)量(可以理解為神經(jīng)元之間的連接),這使得AI模型能夠處理和生成復(fù)雜的語言模式。

? 語言 (Language): 語言。這表明了我的主要功能和應(yīng)用領(lǐng)域。我專注于理解和生成人類語言。我可以閱讀、寫作、翻譯、總結(jié)文本,并與人類進(jìn)行對(duì)話。

? 模型 (Model): 模型。這個(gè)詞指的是我的構(gòu)建方式。我是一個(gè)基于數(shù)學(xué)和統(tǒng)計(jì)學(xué)的模型。更具體地說,我通常是基于一種叫做“Transformer”的深度學(xué)習(xí)架構(gòu)。這個(gè)模型通過分析大量文本數(shù)據(jù)中的統(tǒng)計(jì)規(guī)律,來學(xué)習(xí)詞語之間的關(guān)系、句子的結(jié)構(gòu)以及語言的整體模式。

所以“AI大語言模型”可以看成 是一種基于數(shù)學(xué)和算法構(gòu)建的、用于執(zhí)行特定人工智能任務(wù)的結(jié)構(gòu)。它本質(zhì)上是由大量的參數(shù)、算法和數(shù)據(jù)組成的復(fù)雜系統(tǒng)。

整體架構(gòu):Transformer

目前主流的大語言模型大多基于Transformer架構(gòu)。Transformer的核心思想是“自注意力機(jī)制”(Self-Attention Mechanism),這使得模型能夠捕捉文本序列中不同詞語之間的關(guān)系,無論這些詞語在句子中的距離有多遠(yuǎn)。

核心組件:層(Layers)

Transformer模型是由多個(gè)相同的“層”(Layer)堆疊而成的。每個(gè)層都包含以下幾個(gè)關(guān)鍵子組件:

自注意力層(Self-Attention Layer):

這是Transformer的核心。它允許模型關(guān)注輸入序列中不同位置的信息,并計(jì)算它們之間的關(guān)系。

從線性代數(shù)的角度來看,自注意力機(jī)制可以看作是對(duì)輸入序列進(jìn)行一系列線性變換(矩陣乘法),然后通過Softmax函數(shù)進(jìn)行歸一化,得到注意力權(quán)重。這些權(quán)重表示不同位置之間的相關(guān)性。

前饋神經(jīng)網(wǎng)絡(luò)層(Feed-Forward Neural Network Layer):

在自注意力層之后,每個(gè)位置的表示都會(huì)通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行處理。

這個(gè)前饋網(wǎng)絡(luò)通常包含兩個(gè)線性變換(矩陣乘法)和一個(gè)激活函數(shù)(如ReLU)。

殘差連接(Residual Connections):

在每個(gè)子層(自注意力層和前饋網(wǎng)絡(luò)層)周圍都有一個(gè)殘差連接。

這意味著子層的輸入會(huì)直接加到子層的輸出上。這有助于緩解深度神經(jīng)網(wǎng)絡(luò)中的梯度消失問題,使得模型更容易訓(xùn)練。

層歸一化(Layer Normalization):

在每個(gè)子層之后,都會(huì)應(yīng)用層歸一化。

層歸一化有助于穩(wěn)定訓(xùn)練過程,并提高模型的性能。它會(huì)對(duì)每個(gè)樣本在層的維度上進(jìn)行歸一化。

基本組成單元:神經(jīng)元(Neurons)

無論是自注意力層還是前饋神經(jīng)網(wǎng)絡(luò)層,它們都是由大量的“神經(jīng)元”組成的。每個(gè)神經(jīng)元可以看作是一個(gè)簡單的計(jì)算單元。

總結(jié)一下:

從最底層到最高層,模型的構(gòu)成可以這樣理解:

神經(jīng)元: 執(zhí)行基本計(jì)算單元(加權(quán)求和、激活函數(shù))。

層: 由多個(gè)神經(jīng)元組成,包括自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層,以及殘差連接和層歸一化。

Transformer架構(gòu): 由多個(gè)層堆疊而成,利用自注意力機(jī)制捕捉文本序列中的長距離依賴關(guān)系。

參數(shù): 模型的權(quán)重和偏置,通過學(xué)習(xí)數(shù)據(jù)來調(diào)整。比如deepseek參數(shù)最大的是671B.

層的概念

什么是“層”?

你可以把“層”想象成一個(gè)信息處理的“工序”或者“步驟”。每一層都接收一些輸入信息,然后對(duì)這些信息進(jìn)行特定的處理和轉(zhuǎn)換,最后輸出處理后的信息給下一層。

就像工廠里的流水線一樣:

原材料: 最初的輸入文本(比如一個(gè)句子)。

第一道工序(第一層): 比如,把每個(gè)單詞轉(zhuǎn)換成一個(gè)數(shù)字表示(詞嵌入)。

第二道工序(第二層): 比如,分析每個(gè)單詞和句子中其他單詞的關(guān)系(自注意力機(jī)制)。

第三道工序(第三層): 比如,根據(jù)單詞之間的關(guān)系,進(jìn)一步理解整個(gè)句子的含義。

… 更多工序(更多層): 每一層都在前一層的基礎(chǔ)上進(jìn)行更深層次的處理。

最終產(chǎn)品: 模型對(duì)輸入文本的最終理解(比如,判斷這句話的情感是積極還是消極)。

為什么需要“多層”?

為什么要這么多層,而不是一層搞定呢?

逐步抽象: 每一層都在前一層的基礎(chǔ)上進(jìn)行更抽象的表示。

第一層可能關(guān)注的是單詞的含義。

第二層可能關(guān)注的是詞組的含義。

第三層可能關(guān)注的是句子的含義。

更深層可能關(guān)注的是段落、篇章的含義。

舉個(gè)例子:圖像識(shí)別

雖然我們主要討論的是語言模型,但“層”的概念在圖像識(shí)別中也非常常見,而且更容易可視化理解。

想象一下,一個(gè)用于識(shí)別貓的圖像的神經(jīng)網(wǎng)絡(luò):

輸入: 一張貓的圖片(可以看作是一個(gè)像素矩陣)。

第一層: 可能檢測圖像中的簡單邊緣和紋理。

第二層: 可能將邊緣和紋理組合成更復(fù)雜的形狀,比如貓的耳朵、眼睛的輪廓。

第三層: 可能將這些形狀組合成貓的臉部特征。

第四層: 可能根據(jù)臉部特征識(shí)別出這是一只貓。

每一層都在前一層的基礎(chǔ)上提取更高級(jí)別的特征。

回到語言模型

在語言模型中,層的工作方式類似,但處理的是文本而不是圖像:

輸入: “The cat sat on the mat.”

第一層(詞嵌入層):

“The” -> [0.1, 0.2, 0.3]

“cat” -> [0.4, 0.5, 0.6]

“sat” -> [0.7, 0.8, 0.9]

(每個(gè)單詞被轉(zhuǎn)換成一個(gè)向量)

第二層(自注意力層):

計(jì)算每個(gè)單詞與其他單詞之間的關(guān)系。

比如,”sat” 這個(gè)詞可能與 “cat” 和 “mat” 有更強(qiáng)的關(guān)系。

第三層(前饋網(wǎng)絡(luò)層):

對(duì)每個(gè)單詞的表示進(jìn)行進(jìn)一步處理。

… 更多層:

每一層都在前一層的基礎(chǔ)上進(jìn)行更深層次的理解。

最后一層:

可能輸出模型對(duì)整個(gè)句子的理解,或者預(yù)測下一個(gè)單詞(比如 “.”), 或者進(jìn)行情感分類等任務(wù)。

好,現(xiàn)在有了這些基礎(chǔ)知識(shí),我們正式進(jìn)入主題,AI大模型是怎么理解一句話的?

在回答這個(gè)問題之前,我們先來想一個(gè)問題,AI能從字面意義上理解人類的話嗎?它真的知道蘋果是什么東西嗎?這個(gè)我想很多人都會(huì)回答不能。答案也確實(shí)是不能,很明顯,目前的AI的發(fā)展還處于初級(jí)階段,能力還沒有達(dá)到這種地步。

不信的可以那下面一段對(duì)話也考一考AI

A:先生,你要幾等座?

B:你們一共有幾等座?

A:特等,一等、二等,二等還要再等等。

B:我看一下,請(qǐng)等一等。

A:別等,再等一等也沒有了。

請(qǐng)問:這位先生最終購買了幾等座呢?

筆者拿了市面上比較知名的10款A(yù)I,其中還包括deepseekR1,Claude等知名大模型。結(jié)果是沒有一個(gè)模型能夠判斷”再等一等也沒有了“這句話斷句方式是這樣的:再等/一等/也沒有了。所有的模型都是這樣斷句的,再/等一等/也沒有了。可以說是全軍覆沒。

因此現(xiàn)階段AI尚且不能從字母意義上理解,那它們是怎么理解的呢?這還的從AI大模型的本質(zhì)上來說。開頭我們就介紹了,模型本質(zhì)是數(shù)學(xué)和算法的結(jié)合體。它實(shí)際上就算數(shù)學(xué)的應(yīng)用,所以它只能從數(shù)學(xué)的角度理解一句話。這就是詞嵌入——語言的數(shù)字化。

當(dāng)我們?cè)谀P椭休斎胍痪湓挄r(shí),比如”The cat sat on the mat.”

首先這句話會(huì)被分割成一個(gè)一個(gè)token,每個(gè)token,都對(duì)應(yīng)著一個(gè)向量。

– 第一層(詞嵌入層):

– “The” -> [0.1, 0.2, 0.3]

– “cat” -> [0.4, 0.5, 0.6]

– “sat” -> [0.7, 0.8, 0.9]

– …

– (每個(gè)單詞被轉(zhuǎn)換成一個(gè)向量)

所以輸入的一句話會(huì)被轉(zhuǎn)化成矩陣,即語言的數(shù)字化

上述過程稱為詞嵌入,對(duì)應(yīng)的向量稱為詞嵌入向量。所有嵌入向量組成的矩陣稱為詞嵌入矩陣。

詞嵌入(Word Embedding)中的向量數(shù)值不是隨意指定的,而是通過學(xué)習(xí)得到的。詳細(xì)解釋一下:?

詞嵌入的目標(biāo)是:將詞匯表中的每個(gè)詞(token)映射到一個(gè)固定維度的向量空間中,

使得:?

?語義相似的詞,對(duì)應(yīng)的向量在空間中距離較近。 例如,“king” 和 “queen” 的向量應(yīng)該比較接近。?

?語義相關(guān)的詞,向量之間存在一定的關(guān)系。 例如,“king” – “man” + “woman” 的結(jié)果向量應(yīng)該與 “queen” 的向量比較接近(經(jīng)典的“國王-男人+女人=女王”的例子)。

詞嵌入矩陣不具備唯一性

在初始詞嵌入時(shí),同一句話里的相同的字對(duì)應(yīng)的詞嵌入向量不一定相同

詞嵌入(Word Embedding)中的向量數(shù)值確實(shí)不是隨意指定的,而是通過學(xué)習(xí)得到的。詳細(xì)解釋一下:?

目標(biāo):?

詞嵌入的目標(biāo)是:將詞匯表中的每個(gè)詞(token)映射到一個(gè)固定維度的向量空間中,

使得:?

?語義相似的詞,對(duì)應(yīng)的向量在空間中距離較近。 例如,“king” 和 “queen” 的向量應(yīng)該比較接近。?

?語義相關(guān)的詞,向量之間存在一定的關(guān)系。 例如,“king” – “man” + “woman” 的結(jié)果向量應(yīng)該與 “queen” 的向量比較接近(經(jīng)典的“國王-男人+女人=女王”的例子)。

詞嵌入矩陣不具備唯一性

在初始詞嵌入時(shí),同一句話里的相同的字對(duì)應(yīng)的詞嵌入向量不一定相同

自注意力機(jī)制的計(jì)算步驟?

假設(shè)我們的輸入序列是:”The cat sat on the mat.” 并且每個(gè)詞已經(jīng)通過詞嵌入層轉(zhuǎn)換成了向量。?

轉(zhuǎn)換成嵌入向量后,模型會(huì)創(chuàng)建一個(gè)位置編碼向量。這個(gè)位置編碼 (Positional Encoding) 的核心目的是向 Transformer 模型提供輸入序列中單詞的位置信息,它蘊(yùn)含了token之間的位置關(guān)系。

步驟 1: 計(jì)算 Query, Key, Value?。

對(duì)于輸入序列中的每個(gè)詞,我們都計(jì)算三個(gè)向量:?

Query (Q): 查詢向量??梢岳斫鉃椤拔倚枰P(guān)注什么?”?

Key (K): 鍵向量。可以理解為“我有什么信息可以提供?”?

Value (V): 值向量。可以理解為“我提供的具體信息是什么?”??

這三個(gè)向量是通過將每個(gè)詞的詞嵌入向量與三個(gè)不同的權(quán)重矩陣(WQ, WK, WV)相乘得到的。這些權(quán)重矩陣是模型需要學(xué)習(xí)的參數(shù)。

線性代數(shù)表示:

假設(shè)詞嵌入向量的維度是 m。

WQ, WK, WV 的維度都是 m × m。(實(shí)際上,為了提高效率,通常會(huì)使用多頭注意力機(jī)制,將 dmodel 分成多個(gè)頭,每個(gè)頭的維度是 dk = dmodel / h,其中 h 是頭的數(shù)量。這里為了簡化,我們先不考慮多頭注意力。)

對(duì)于每個(gè)詞 i:

Qi = Wi * WQ

Ki = Wi * WK

Vi = Wi * WV

(其中 Wi 是詞 i 的詞嵌入向量)

接下來我將用Gemini2.0模擬AI將這句話數(shù)據(jù)化的過程

注意:

為了便于演示和計(jì)算,

我會(huì)進(jìn)行以下簡化:

? 嵌入向量維度 (dmodel): 3 維

? 頭的數(shù)量 (h): 1 (我們只考慮單頭注意力)

? Q, K, V 維度 (dk): 3 維 (因?yàn)?h=1, 所以 dk = dmodel)

? 不包含:

? 多頭注意力機(jī)制 (只使用一個(gè)頭)

? 前饋神經(jīng)網(wǎng)絡(luò)

? 層歸一化

? 殘差連接

? 多層堆疊 (只計(jì)算一層)

步驟一:

1. 分詞: 將句子“今天天氣怎么樣”分詞為:

[“今天”, “天氣”, “怎么樣”]

2. 嵌入向量 (假設(shè)):

“今天”: [0.1, 0.2, 0.3]

“天氣”: [0.4, 0.5, 0.6]

“怎么樣”: [0.7, 0.8, 0.9]

3.我們假設(shè)位置編碼如下(3 維)

位置 0: [0.0, 0.0, 0.0]

位置 1: [0.8, 0.6, 0.0]

位置 2: [0.9, -0.4, 0.0]

4.輸入表示

將嵌入向量和位置編碼相加,得到每個(gè) token 的輸入表示:

“今天”: [0.1, 0.2, 0.3] + [0.0, 0.0, 0.0] = [0.1, 0.2, 0.3]

“天氣”: [0.4, 0.5, 0.6] + [0.8, 0.6, 0.0] = [1.2, 1.1, 0.6]

“怎么樣”: [0.7, 0.8, 0.9] + [0.9, -0.4, 0.0] = [1.6, 0.4, 0.9]

5.權(quán)重矩陣 (假設(shè))

本文由 @yan 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!