好文分享 — 不用懂數學也能理解 LLM 原理 / How LLMs Work, Explained Without Math
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
個人蠻喜歡這種不用扯到太多數學,但又能夠把深奧的事物講得夠淺顯明白的文章,畢竟不是每個人都能像海豚一樣在數學公式的大海之中恣意遨遊,所以如何讓感興趣的讀者可以清楚從大方向理解來龍去脈就很重要。
現代許多開發框架都會透過抽象化、封裝等手段,不斷地將入門門檻降低,因此你不懂實作細節沒關係,但是你不能對某技術缺乏大方向的理解。
舉 “How LLMs Work, Explained Without Math” 1 文為例,作者先介紹 LLM 實際上是做了什麼事,接著介紹 token, 如何把文字變成 token 的編碼技術、如何預測 token 的下 1 個 token 、 如何生成文本(text)、語言模型是怎麼訓練、演化等過程都用淺顯的說明告訴你,相當值得閱讀。
個人摘要如下:
- 大語言模型在做事情是給定 1 個輸入文字,然後預測這個輸入文字的下 1 個 token 或文字會是什麼,預測的手段不外乎是靠機率。
- 所有的輸入文字在進到大語言模型之前,都會有 tokenization 與 encoding 的過程,簡單來講是把輸入文字拆成含有多個數字的向量,每 1 個數字都代表 1 個 token, 同樣的 LLM 預測結束,也是回給我們多個數字的向量,我們必須透過 decoding 的過程,再把數字向量轉回文字,最終變成我們所熟知的生成式內容。
- 多數語言模型都會使用 Byte Pair Encoding (BPE) 技術,如果有興趣的話可以從已經開源的 GPT-2 開始研究。
- 生成內容的過程是 1 個迭代的過程,從輸入文字開始不斷地預測下 1 個 token 是什麼,然後附加新的 token 到輸入文字之後,變成新的輸入文字,再預測下 1 個文字的迭代過程。
- Context window 其實是為了解決預測出來的 token 失去一致性的問題,譬如前面的 token 都代表軟體相關的文字,突然預測出來的 token 變成醫學相關的文字。
- 現在針對文字生成的語言模型中,最流行的是採用神經網路架構(neural network)的 Transformer, 而 GPT 就是 Generative Pre-Trained Transformers 的縮寫。
- Transformer 的特點是它會進行稱為 Attention 的計算,這能夠讓模型考慮整個 context window, 並影響接下來 token 的預測結果(詳見 Attention is all you need 論文)。