一、LLM 是什麼
就兩個 files :
1.參數資料
2.用來部署的 code (可以用任何語言編寫)
二、怎麼跑 LLM
拿這兩個文件,用你的筆電 compile code (不用連網),得到二進制文件,並指向參數,你就可以跟 LLM 互動交流了。
三、參數從哪裡來
進入第一階段:Pre-training
計算複雜度出現在這裡,model training 比 model inference(直接去跑)更難,
我們在做的事可以理解為對 Internet 內容進行壓縮,變成參數,
不過,預訓練是一種有損壓縮(不是無損),一種 gestalt ,因為他是對文本做感知,沒有完全 copy 內容。
舉例中, LLaMA 的訓練資料量等等的數字,和現在最先進的模型偏差超過10倍,就想像他的10倍以上才是 GPT-4。
四、LLM 的神經網路在做什麼
對壓縮資料進行 token 的預測,用訓練生成的分佈產生 dreams (有點像幻覺),
產生的 dreams 文本中逐字內容在訓練集中是找不到的,
所以你不知道哪些是事實上有的,哪些是 LLM 自己填充的。
五、LLM 如何運作
transformer 裡有非常多參數,要迭代地去調整某些參數讓 LLM 預測能力更好,
我們大概知道架構,但實際上不知道他內部是怎麼運作的,
把它想成是藝術品,而不是工程類的產物,我們對 LLM 內部的理解程度不如對工程零件那麼高。
六、怎麼 train 一個 assistant
我們不只要一個文件生成器,還要他可以回答我們的問題。
進入第二階段:fine-tuning
找一群人,提供標注指示,讓這些人提出問題並寫出答案,生出很多標注文件。
預訓練階段的文本潛在質量低但資料量大,在這階段就是把質量提高但用少量資料,例如10萬個高質量對話,模型的格式就會改變,變成回答問題的助手,也就是 alignment 的過程。
七、總結訓練大型語言模型
第一階段:上網爬10TB的文→拿到一堆GPU→把文字丟到類神經網路→訓練很久→得到基礎模型(很貴)
第二階段:寫標注說明→收集10萬份的高質量資料→訓練一天→得到 fine-tune 模型(比較便宜)
接著部署、監控、收集模型輸出,表現不好就回去寫標注說明覆蓋舊的答案,把它插入訓練資料,下次 fine-tune 時就可以針對這個問題改進。
補充另一種標注方法:comparisons
對於人類標注者來說,比較候選答案比自己寫答案簡單,也就是從人類反饋中進行 Reinforcement Learning(RLHF),在生成這些標注文件時,可以用人機協作的方式來增加效率和正確性,人工部分需求就更少了。
八、LLM 的發展趨勢
1. Scaling Law 的本質是,模型預測下個 token 的準確性可以藉由參數量、訓練資料大小來預測,也就是說,你擁有更大的模型就可以想像你擁有更高的準確性,總之砸錢。
2. LLM 解決問題時會使用工具(ex. Web Browsing, DALL-E),或是當涉及到計算時,直接用 code 寫出來或叫計算機出來算,所以多模態性是一個重要的方向,除了對模型輸入圖像、聲音和文字,同樣模型也能輸出圖像和聲音。
九、未來方向
1. LLM 在推論方式上即將發生改變,也就是從 Syetem 1 到 Syetem 2 的轉變(取自《快思慢想》),也就是對 token 的預測從直覺式、不經大腦的方式,變成有去思考的方式。希望把時間轉換為準確性,能夠思考、反思、改寫再回答,例如 Tree of Thought。
2. LLMs 的自我能力提升機制,目前 LLM 能力只停留在人類給的標注文件上,還無法超過人類回答的準確性,要達到機器自我提升還有段距離,目前還缺乏完善的評估標準或者是獎勵函數。
3. 讓LLM成為特定任務的專家,例如提供特定文件、自己的訓練資料,或其他客制化的方式去訓練他。
十、總結
LLM 不只是 chatbot ,更是一種作業系統,context window 可以類比成 RAM,他是語言模型的有限資源,在這其中傳遞相關資訊來完成任務,其他還有multi-threading, multi-processing, speculative execution, user space/kernel space 等現今 OS 能做的都可以類比,這裡簡單帶過。總之,他跟目前 OS 生態很相似。
(最後講資安問題,就沒寫了。)
來源: