開始理解大型語言模型(LLM)所需的數學基礎

??每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領域的領跑者。點擊訂閱,與未來同行! 訂閱:https://rengongzhineng.io/

要提出像GPT這類大型語言模型的概念,并從事嚴肅的人工智能研究,確實需要扎實的數學功底。然而好消息是,如果只是想理解這些模型的工作原理,所需的數學并不復雜。只要曾經在1960年代以后接受過高中數學教育,就已經掌握了基本的知識,比如向量、矩陣等內容。

需要注意的是,本文講解的是理解“推理”過程所需的數學知識——也就是如何使用一個已經訓練好的人工智能模型,而不是關于如何訓練它的過程。雖然訓練所需的數學也并不復雜,但那部分內容將留待后續文章介紹。

明確這一點后,正式開始深入講解。

向量與高維空間

博主使用了“向量”一詞,基本等同于軟件工程師所說的“數字數組”。但在數學意義上,一個長度為 n 的向量不僅是一個數組,它還表示一個 n 維空間中的方向和距離,或者等價地,可以看作是從原點出發,沿著這個向量到達某個點。

在二維空間中,向量 (2, -3) 意味著“向右兩單位,下移三單位”,也就是從原點出發移動后所處的位置。三維空間中的向量 (5, 1, -7) 則意味著“向右五單位、上移一單位、遠離觀察者七單位”(某些情況下可能表示向觀察者移動七單位)。當維度更高時,人類無法直觀想象,但概念上是一致的。

在LLM中,向量用于表達各種含義。例如,模型輸出的logits向量(見上一篇)代表了對下一個token的不同可能性的預測。在這種情形下,可以將logits看作存在于一個高維空間中,這個空間表示了“意義”的分布。

詞匯空間(Vocab Space)

每個token對應的logits值是一組數字,每個數字表示該token在當前上下文中作為下一個token的可能性。在書中分析的GPT-2模型中,其tokenizer包含50,257個token,因此每個logits向量的長度也是50,257。比如,token ID為464的是“The”,那么logits向量中第464位的數值表示“The”作為下一個token的相對概率。

可以將每一個logits向量視為一個存在于50,257維空間中的點。這個空間的每一個位置都代表了對下一token的各種可能性組合。本文將這個空間稱為“詞匯空間”。

不過,這是一個“混亂”的詞匯空間。假設一個簡化的LLM,其詞匯表中只有三個token,那么兩個logits向量 (1, 2, 3) 和 (-9, -8, -7) 雖然數值不同,但表達的是相同的排序:第一個token最不可能,第二個次之,第三個最可能。

為了整理這種冗余,可以將logits向量傳入softmax函數,從而得到一組真實的概率分布。這組概率數值介于0到1之間,總和為1。這樣,所有表達相同排序的logits向量將映射為同一個概率向量。例如,(1, 2, 3) 和 (-9, -8, -7) 都會被softmax映射為大約 (0.09, 0.24, 0.66)。

需要指出的是,其他向量也可能表達相同的排序,但概率分布不同。例如,(1, 2, 5) 雖然仍是“第三個token最可能”的排序,但其softmax結果會是類似 (0.02, 0.05, 0.94) 的分布,顯示出第三個token的優勢更加明顯。

因此,可以將詞匯空間分為兩類:一種是“混亂”的、未經歸一化的向量空間;另一種是經過softmax函數后得到的、表示真實概率分布的“整潔”空間。

還有一種特殊情況是所謂的“one-hot向量”,其中只有一個數值為1,其余均為0,表示某個token的概率為100%。這種向量在下一篇文章中將發揮關鍵作用。

嵌入空間(Embedding Space)

嵌入空間是另一種高維空間,向量在此代表“意義”。如果將這些向量視為點,那么在語義上相近的詞匯會在空間中聚集在一起。

“意義”的定義因任務而異。比如,在一個為動物學家設計的嵌入空間中,“家貓”、“獅子”和“老虎”可能聚集成一個簇,而“狗”、“狼”和“郊狼”則形成另一個簇。這種分類體現了對貓科動物和犬科動物的區分。

而在日常應用中,可能更希望看到“家貓”和“狗”聚在一起,遠離“獅子”或“狼”等野生動物。這種嵌入空間更適合用于普通文本的處理和分析。

嵌入空間的維度和定義方式是靈活多樣的,可以從表達復雜概念的“豐富空間”,一直到僅根據詞性(如動詞、名詞、形容詞)來聚類的“簡單空間”。

一個可能令人困惑的事實是,在嵌入空間中,向量的長度往往并不重要。比如,(1, 2) 和 (8, 16) 方向一致,因此可視為表達相同的意義。

矩陣乘法實現空間投影

復習一下:矩陣本質上是多個向量的集合。例如,將兩個二維向量 (2, -3) 和 (5, 1) 并排組合成矩陣:

[2 5]
[-3 1]


或按行排列:

[2 -3]
[5  1]


矩陣的維度用“行×列”表示。上面兩個都是2×2矩陣。另一個例子是2×3矩陣:

[ 2 -3  7]
[ 5  1 -8]


矩陣可以相乘。這種乘法可用于幾何變換。例如,下面這個2×2旋轉矩陣:

[cosθ  -sinθ]

Shortcode

可以將點繞原點逆時針旋轉θ度。將所有點放入一個n×2矩陣X(每行一個點),與旋轉矩陣R相乘得到結果矩陣Y:

Y = X · R


在傳統數學教學中,點通常是列向量組成的2×n矩陣,此時矩陣乘法寫作R · X。但在機器學習中,更常采用“行優先”的格式,將每個點表示為行向量,組合成n×2矩陣,再與R右乘,即X · R。本文從此將采用這一方式。

可以將這個旋轉矩陣R理解為一種函數,將輸入的點變換成另一個空間中的點。也可以將其看作是將點從一個二維空間投影到另一個旋轉過θ度的空間中。

更廣泛地說,矩陣乘法可用于在不同維度的空間之間進行投影。例如:

  • 3×2矩陣可將三維空間中的點投影到二維平面(用于圖形顯示)

  • 50,257×768矩陣可將50,257維空間投影到768維空間

  • 768×50,257矩陣則實現從768維空間到50,257維空間的投影

這種投影可能是“有損”的,也就是說,在降維過程中會丟失一部分信息,即使再投影回來,也無法恢復原始數據。例如將兩個不同遠近的正方體投影到二維平面后,可能變成大小相同的圖形。

神經網絡的本質

一個神經網絡的單層可以簡化表示為:

Z = ?(XW? + B)


其中?是激活函數,B是偏置項。若忽略這兩個部分,則簡化為:

? = XW?


其中:

  • X 是輸入數據,形狀為 n × d_in

  • W 是權重矩陣,形狀為 d_out × d_in,轉置后為 d_in × d_out

  • ? 是輸出矩陣,形狀為 n × d_out

因此,神經網絡中的一層實質上就是一個矩陣乘法過程,即從一個輸入維度的空間投影到輸出維度的空間。偏置項B僅僅是一個線性平移,激活函數則可選。

總結

以上便是目前為止理解大型語言模型所需的基本數學概念。正如文章開頭所述,這些內容基本不超出高中數學的范疇。盡管涉及的矩陣較大、空間維度較高,但核心數學原理仍然相對簡單。

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

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

相關文章

prometheus安裝部署與alertmanager郵箱告警

目錄 安裝及部署知識拓展 各個組件的作用 1. Exporter(導出器) 2. Prometheus(普羅米修斯) 3. Grafana(格拉法納) 4. Alertmanager(告警管理器) 它們之間的聯系(工…

芯科科技FG23L無線SoC現已全面供貨,為Sub-GHz物聯網應用提供最佳性價比

低功耗無線解決方案創新性領導廠商Silicon Labs(亦稱“芯科科技”,NASDAQ:SLAB)近日宣布:其第二代無線開發平臺產品組合的最新成員FG23L無線單芯片方案(SoC)將于9月30日全面供貨。開發套件現已上…

Flutter跨平臺工程實踐與原理透視:從渲染引擎到高質產物

🌟 Hello,我是蔣星熠Jaxonic! 🌈 在浩瀚無垠的技術宇宙中,我是一名執著的星際旅人,用代碼繪制探索的軌跡。 🚀 每一個算法都是我點燃的推進器,每一行代碼都是我航行的星圖。 &#x…

【國內電子數據取證廠商龍信科技】淺析文件頭和文件尾和隱寫

一、前言想必大家在案件中或者我們在比武中遇到了很多關于文件的隱寫問題,其實這一類的東西可以進行分類,而我們今天探討的是圖片隱寫,音頻隱寫,電子文檔隱寫,文件頭和文件尾的認識。二、常見文件頭和文件尾2.1圖片&am…

深度學習筆記36-yolov5s.yaml文件解讀

🍨 本文為🔗365天深度學習訓練營中的學習記錄博客🍖 原作者:K同學啊 yolov5s.yaml源文件 yolov5s.yaml源文件的代碼如下 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 20 #80 # number of classe…

PostgreSQL 大對象管理指南:pg_largeobject 從原理到實踐

概述 有時候,你可能需要在 PostgreSQL 中管理大對象,例如 CLOB、BLOB 和 BFILE。PostgreSQL 中有兩種處理大對象的方法:一種是使用現有的數據類型,例如用于二進制大對象的 bytea 和用于基于字符的大對象的 text;另一種…

算法第四題移動零(雙指針或簡便設計),鏈路聚合(兩個交換機配置)以及常用命令

save force關閉導出dis vlandis ip int bdis int bdis int cudis thisdis ip routing-table(查路由表)int bridge-aggregation 1(鏈路聚合,可以放入接口,然后一起改trunk類。)穩定性高

告別繁瑣配置!Retrofit-Spring-Boot-Starter讓HTTP調用更優雅

01 引言 之前分享過一篇文章【像調用接口一樣調用第三方API】,今天迎來了新成員Retrofit。 retrofit-spring-boot-starter 是一個基于 Spring Boot 的 starter,它簡化了 Retrofit 在 Spring 環境中的集成和使用。Retrofit 本身是一個類型安全的 HTTP 客…

60_基于深度學習的羊群計數統計系統(yolo11、yolov8、yolov5+UI界面+Python項目源碼+模型+標注好的數據集)

目錄 項目介紹🎯 功能展示🌟 一、環境安裝🎆 環境配置說明📘 安裝指南說明🎥 環境安裝教學視頻 🌟 二、數據集介紹🌟 三、系統環境(框架/依賴庫)說明🧱 系統環…

代理服務器是什么?怎么選擇?

代理服務器是一種位于用戶設備與目標網絡之間的中間服務器,通過接收用戶請求、轉發至目標網絡并將結果返回給用戶,實現“用戶→代理服務器→目標網絡”的間接訪問。其核心功能圍繞“網絡優化”“訪問控制”與“身份隱藏”展開,為個人與企業用…

代碼隨想錄刷題Day56

子集 這道題求子集,集合的基本運算之一,按照高中數學學習集合的知識,可以把這個找冪集的過程按照元素的個數來劃分步驟。也就是先找零個元素的子集,再找一個元素的子集,再找兩個元素的子集...一直到找N個元素的集合為…

pycharm——關于Pyqt5

PyQt5新手教程(七萬字) import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QLabel, QInputDialog, QColorDialog, QFontDialog, QFileDialog, QProgressDialog, QMessageBox from PyQt5.QtCore i…

P2678 [NOIP 2015 提高組] 跳石頭

P2678 [NOIP 2015 提高組] 跳石頭 判斷條件該怎么寫

小麥矩陣系統:一鍵批量發,多賬號同步不掉鏈

隨著互聯網的發展和社交平臺的普及,企業和個人用戶越來越依賴社交媒體平臺來進行信息傳播、品牌宣傳以及市場推廣。在這個信息高速流動的時代,如何更高效地管理多個社交平臺的賬號,并保持信息的同步與流暢傳播,成為了許多企業面臨…

JavaScript經典面試題二(函數和作用域)

目錄 一、閉包,使用場景 1.閉包的定義 2.閉包的實現原理 3.閉包的應用場景 (1)數據封裝與私有變量 (2)函數柯里化 (3)事件處理與回調 (4)模塊化開發 4.注意事項 …

Linux防火墻iptables

目錄 一,Iptables概述 二,iptables組成 1,表 2,鏈 3,鏈表對應關系 4,數據包過濾的匹配流程 5,規則匹配策略 三,iptables防火墻配置 1,iptables命令 2&#xff…

[優選算法專題二——NO.16最小覆蓋子串]

題目鏈接 LeetCode最小覆蓋子串 題目描述 代碼編寫 、關鍵注意點 僅統計目標相關字符:通過 hash1.count(in) 判斷字符是否在 t 中,避免無關字符(如 s 中的 D、E)干擾統計,提升效率。count 的更新時機:僅當…

考研408計算機網絡近年第34題真題解析(2021-2024.34)

(2021.34)此題已明確為差分曼徹斯特編碼,通常第一個時間間隙可能不太好判斷,因為0,或1可以變化,但差分曼徹斯特編碼的其它位置可以判斷,圖中黃色數字的時間間隙位置,開始位置和前面一…

微信小程序開發教程(八)

目錄:1.全局配置-tabBar2.小程序的頁面配置3.數據請求-GET和POST請求4.數據請求-request請求的注意事項1.全局配置-tabBar注意tabar頁面必須放到Page頭部位置2.小程序的頁面配置3.數據請求-GET和POST請求4.數據請求-request請求的注意事項

日語學習-日語知識點小記-構建基礎-JLPT-N3階段(29):文法運用第9回3+(考え方11)

日語學習-日語知識點小記-構建基礎-JLPT-N3階段(31):文法運用第9回31、前言(1)情況說明(2)工程師的信仰2、知識點1ー 復習2ー 單詞訓練3、單詞(1)日語單詞  …