前往
大廳
主題

【筆記】[1hr Talk] Intro to Large Language Models —Andrej Karpathy

Rubibiyen | 2024-04-09 15:07:53 | 巴幣 0 | 人氣 42

一、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 生態很相似。

(最後講資安問題,就沒寫了。)

來源:

創作回應

更多創作