白話告訴你大模型到底是怎么工作的
圖片
前言
2022年底“大模型”在國內突然遍地開花,不管你身處什么行業,都或多或少聽說或使用過大模型相關的工具,也聽說過大模型訓練是一件超級燒錢的事情。那你是否有想過大模型訓練為什么會這么燒錢,或者說大模型到底大在了哪里呢?
防止勸退,閱讀本文章你不用擔心看不懂晦澀難懂的公式以及計算過程,本文僅作為一篇大模型科普文章,帶你了解你使用的大模型背后的故事,文章最后會推薦一些幫助博主日常提效的大模型工具,希望通過本文能讓你對大模型有新的認識和理解。
大模型的工作過程
圖片
從上圖可以看出,樹左側Encoder-Only:表示僅做學習和理解內容的工作;樹右側Decoder-Only:表示做內容生成的工作。 大眾目前使用的大模型工具也基本集中在樹右側,比如大名鼎鼎的chat-gpt系列模型。
大模型的訓練構成可以拆解成:推理過程 + 訓練過程,我們通過理解這兩個過程來感受大模型到底是如何工作的。
推理過程
1. 詞向量
- 向量表示:每個單詞被表示為一個高維向量(比如三維、四維甚至更高維度),這些向量通常通過訓練模型從大量文本數據數據中學習而獲得的。
- 語義相似性:在向量空間中,語義相似的單詞會被映射到相近的位置(類似于物以類聚人以群分的感覺)。例如,“king”和“queen”都有“國王”的意思,它兩在向量空間中相對位置就比較近。
同義詞的case:
king和queen都有“國王”的意思,big和biggest都表示大的意思。
同音異義詞(一詞多義)的case:
china:既可以表示為“中國”的意思,也可以理解成“瓷器”的意思;magazine:可以指代雜志或者是雜志社。
無論是同義詞還是同音異義詞在大模型中是如何區分的呢?那就是向量的概念,對于多義詞的含義使用的向量比較相似,而對于同音異義詞使用的向量則不太相似。
2. 詞向量模型
- WOrd2Vec(2013年):由Google提出,包括CBOW(Continuous Bag Of Words)和Skip-Gram。前者通過預測上下文詞來學習目標詞的標識,后者通過目標詞來預測上下文詞。
- GlocVe(2014年):由斯坦福大學提出,通過統計整個語料庫中的詞共現矩陣來學習詞向量。
- FastText(2016年):由Facebook提出,擴展了Word2Vec,考慮了詞的子詞(subword)信息,使得模型在處理未見過的單詞或拼寫錯誤時有更好的表現。
3. Transformer架構
圖片
transformer框架通過修改詞向量來存儲每個詞的隱藏含義(即上圖中空色字體的內容),通過第一層transformer處理輸出后的新向量被稱為隱藏狀態hidden state,然后在傳遞給下一層transformer,在經過transformer處理,解釋出來了his和bank的真實語境含義。
對于Chat-GPT3大模型,transformer的中間層數達到了96層,有研究表名前基層的神經網絡會專注于理解句子的語法,并解決上面所表示的歧義,后面的層重點致力于對整個文本段落的更高層次的理解。
對于GPT3模型,它使用了12288維的詞向量,也就意味著每個詞有12288個維度;所以一個單詞通過輸入到最后數據的輸出就需要計算1179648次(有沒有感覺計算量非常大); 同時GPT3需要理解上下文之間關聯更多的信息,需要引入注意力頭的概念來進行信息的表達,在每一層的transformer都會存在96個注意力頭,所以在每次預測一個新詞的時候,需要執行9126次計算。
由于模型是通過海量簡單的向量運算,所以非常適合在GPU上進行訓練,同時由于計算數據量級超級大,一次模型訓練可能需要花上幾十天甚至更多,算力和電力成本可想而知是非常巨大的。
訓練過程
1. 早期的機器學習算法
早期的機器學習算法主要分為有監督和無監督學習兩大類。
有監督學習:用于訓練的樣本數據提前被打上各種標簽,讓機器提前知道樣本真正代表了什么,隨著機器不斷學習之后,投喂給機器一個未打標簽的數據,從而讓它得出這個數據對應的標簽是什么。
無監督學習:提前并未給訓練數據打上任何標簽,而是讓機器自動計算,通過不斷的計算迭代后,最終相似的數據逐漸聚合在一起,不相似的數據則逐漸遠離。
對于有監督學習,由于需要預先對大量數據人工打上標簽,導致訓練大模型這件事情就變得非常困難且成本非常高,以至于無法繼續推進,那么無監督學習對于大模型來說可實施性相對就更強一些(當然對于GPT,在實際訓練過程中,也會有部分人工達標的工作用于修正模型)。
2. 大模型的訓練過程
通過嘗試預測文本段落中的下一個單詞來學習幾乎任何的書面材料。對于一個新的模型,一開始預測的結果很差,因為對于一個新模型,它的每個權重參數最初狀態都是從一個隨機數字開始,隨著模型接觸到越來越的case,模型開始調整參數權重,從而實現GPT3的效果。
一個具體的case:城市地下網絡管道非常多且錯綜復雜,為了讓水流出到指定位置,當水流過錯誤的管道,就需要將對應管道的水龍頭關閉,在整個水流經的管道上,通過反復的向前后向后檢查流經路徑,并調整對應的管道閥門,最終水流向了指定的目的地,這個反復調整各個部位的權重的過程,正是大模型訓練的一個過程。
當然在整個訓練過程中還有很多具體的概念,比如前向傳播、后向傳播、以及損失函數等,不會在本文展開,感興趣的朋友可以自行通過GPT/百度來了解詳細過程。
工具推薦
推薦一些博主日常使用的大模型工具,供大家參考
可靈大模型(視頻&圖片生成)
官網地址:https://kling.kuaishou.com/
APP:可靈AI
圖片
秘塔AI搜索(學術搜索)
官網地址:https://metaso.cn/
APP:秘塔AI搜索
圖片
Kimi智能助手(百科搜索)
官網地址:https://kimi.moonshot.cn/
APP:Kimi只能助手
圖片
豆包(百科搜索、知識問答)
官網地址:https://www.doubao.com/chat/
APP:豆包
圖片
通義靈碼(代碼續寫)
官網地址:https://tongyi.aliyun.com/lingma/
圖片
總結
本文通過大白話的方式介紹了大模型的一個基礎訓練過程,以及淺顯的展示了大模型究竟大到了哪里,從而理解大模型訓練龐大的數據為什么那么貴,隨著技術的快速發展,相信未來大模型一定會對我們的生活產生非常大的影響。