大語言模型入門
- 1 大語言模型步驟
- 1.1 pre-training 預訓練
- 1.1.1 從網上爬數據
- 1.1.2 tokenization
- 1.1.2.1 tokenization using byte pair encoding
- 1.3 預訓練
- 1.3.1 context
- 1.3.2 training
- 1.3.3 輸出
- 1.2 post-training1:SFT監督微調
- 1.2.1 token
- 1.3 強化學習
- 1.3.1 基于獎勵函數進行試錯
- 1.3.2 人類反饋強化學習
- PPO
- GRPO
- 4 大語言模型值得相信嗎
- 4.1 AI hallucinations幻覺
- 4.1.1 如何確認存在幻覺
- 4.1.2 如何解決幻覺
- 4.2 大模型心理學LLM psychology
- 4.3 大模型的自我認知
- 4.4 大模型的數學能力
- 4.4.1 Let the model think
- 4.4.2 如果強行要求直出結果,可能導致出錯
- 4.4.3 Use tools
- 4.4.3.1 Use tools to count
- 4.4.3.2 Use tools to spell
- 4.4.4 為什么模型認為4.11 > 4.9
- Deepseek
- Reasoning oriented RL using GRPO
1 大語言模型步驟
1.1 pre-training 預訓練
1.1.1 從網上爬數據
download and preprocess the internet, including url filtering(like, removing racist/adult websites), PII removal(personal identifiable information should be removed, 豆包被爆輸出個人信息,所以是這一點沒有做好)
數據規模大概是44TB左右,不大,甚至一個大點的移動硬盤就可以裝下。
1.1.2 tokenization
tokenization = context -> symbols/a sequence of tokens
- 文字編碼的本質就是把字或字母轉成一個有限表示的序列,比如a-z可以用1-26來表示。
- 這個序列不希望太長,要不然變相擠占了輸入資源
1.1.2.1 tokenization using byte pair encoding
找到常出現的編碼對,比如(125 67),就把它合成為一個新編碼符號(比如301),然后再看有沒有新的編碼對,比如(301 786),那就再把這個合成新的。這樣做decrease the length and increase the symbol size, in practice symbol size turns out to be 100k。
44TB -> 15 trillion萬億 token sequences
1.3 預訓練
1.3.1 context
選取任意長度的token窗口arbitrary window lengths of tokens, but in practice the maximum length is often set as 16k/8k/4k
1.3.2 training
模型輸出每個token的概率,和真值算loss
1.3.3 輸出
做完預訓練的模型一般稱為base,base一般不會被release出來。
如果給base輸入一句話,它不會回答,只會續寫。
如果想要prompt,可以參考如下,因為模型具有in-context learning ability
這個base model更像是internet document simulator
1.2 post-training1:SFT監督微調
- The pre-training stage is to sample documents, the post-training stage is to give answers to questions.
- The pre-training relies on the online documents, but the post-training stage totally throws them out and use datasets of human-labeling conversations.
- Knowledge in the parameters is the vague recollection (like something people read 1 month age); while knowledge in the context is the working memory (like something people read just now),因此在做prompt時,可以把盡可能充分的信息給到模型去推理,working memory可以直接訪問,更加準確。
- The pre-training stage takes 3 months while post-training 3 hours, because the datasets of conversations are much smaller.
- This stage is much computationally cheaper.
- 這個階段要學會和人類互動,也要拒絕不合理的要求(比如如何黑進別人的電腦)
- 這個階段不會也無法覆蓋所有的可能的問題,但是通過這種示例,模型能夠學到這樣的統計學模式statistical pattern,從而在推理時遇到沒被訓練過的問題,也能給予回答。
- 從LLM獲得的回答其實是類似人類標注員的回答,或者說LLM公司編寫的回答規范的回答。You are not talking to a magical AI, instead an average labeler.
- 為了克服大模型幻覺,可以使大模型具備聯網搜索能力,然后根據這些信息組織答案,這個方法也要添加在訓練集中。
1.2.1 token
因為輸入的是對話,所以需要對對話進行處理,增加虛擬獨白部分,分別在最前和最后,而且要指明是user還是assistant。
在推理時,輸入到<|im_start|>assistant<|im_sep|>,后面的由模型補充就得到了答案。
1.3 強化學習
chatgpt-4o are mostly SFT models, but deepseek RL models. So deepseek can present thinking process.
RL is a powerful way to learn. 在AlphaGo的訓練中,采用了強化學習的ALphaGo獲得了更強大的性能。Models can’t fundamentally go beyond a human player if it just imitates the human players. RL is not restrained by the human performance.
1.3.1 基于獎勵函數進行試錯
給模型一個問題,讓它產生非常多次的回答,然后選出最好的回答(最精簡,正確),然后拿進去訓練。
SFT更像是RL的初始化過程,教模型如何組織一個答案,但是模型學會組織好答案是需要依靠強化學習的。
在LLM中,pre-training和SFT已經標準化了,但是RL仍是在早期階段。This stage is early and nascent. 所以很多公司并不公開討論這些細節。
因此,deepseek能夠公開其RL方法,是對該領域的重要貢獻。This paper reinvigorated the interest of RL in LLMs, and gave the necessary details to reproduce the results.
- 論文名稱:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
- 論文鏈接:https://arxiv.org/abs/2501.12948
下圖表示,隨著RL訓練,模型use more tokens to achieve higher accuracy.
因為隨著模型訓練,它在不停try out different ideas,甚至可能“頓悟”aha moment。這些思考過程導致了模型回答長度變長,以及deepseek的think的過程。
1.3.2 人類反饋強化學習
上述都在說的是易于verify的任務,可以通過自動化的評判標準進行評價,從而引導模型學習,但是對于unverified task, like creative writing tasks,就無法依賴自動化的評價工具了,需要人類進行評價和反饋。
- 人類反饋的是排序,而不是分數。因為針對某些任務(比如講一個笑話),很難給它打分,因此會讓模型針對同一個問題生成多個任務,然后人類對其進行排序。
- 如果讓模型每生成一個答案,就拉一組評審員來評估,是很naive和cost的,因此,通過評審員訓練一個模型,讓模型學會如何給打分,分數和人類排序是正相關的。The reward model is a totally seperate neural net, is a simulator of human preferences.
PPO
proximal policy opt
最大化長期獎勵,但是通過clip保證不會偏離當前策略太遠。
舉個例子:智能家居系統
有一個智能家居系統,其中的恒溫器需要根據室內外溫度、能源價格等因素來調整設置,以達到舒適與節能的平衡。這個恒溫器就是我們的“智能體”,它的目標是通過調節溫度來最大化長期獎勵(比如節省能源費用和保持舒適)。
場景設定:
狀態:當前室內溫度、室外溫度、時間等。
動作:將恒溫器設置為 20°C、21°C 或 22°C。
獎勵:根據能源消耗和舒適度打分,比如:
如果溫度太低或太高,獎勵較低(因為不舒服)。
如果溫度適中且能源消耗少,獎勵較高。
恒溫器需要通過不斷嘗試不同的設置來找到最優策略。PPO 的作用就是幫助它在學習過程中逐步優化策略,避免“走得太遠”而犯錯。
GRPO
group relative policy opt
一種用于大模型的策略優化算法,通過分組比較,動態調整學習策略,使訓練更高效和穩定。因為之前是采用PPO算法,PPO會直接沖著獎勵最高的方向去學習,無法平衡風險。
舉個例子:班級小組學習
假設一個班級要提升數學成績,老師用 GRPO 的思路設計學習計劃:
分組:把學生分為 A、B、C 三組,每組用不同學習方法:
A組:題海戰術
B組:錯題分析
C組:概念推導
相對比較:
每周考試后,對比各組平均分。比如 B 組得分最高,說明“錯題分析”方法更有效。
策略優化:
讓 B 組分享經驗,但不強制其他組完全照搬(避免學得太快反而混亂)。
A、C 組參考 B 組的方法,適當調整自己的策略(比如題海戰術中加入錯題分析)。
結果:
整體班級成績提升,且各組保持自己的特色(穩定性)。
4 大語言模型值得相信嗎
things that occur very frequently in the internet are probably more likely to be remembered correctly. The output of the LLM is just a vague recollection of internet documents
4.1 AI hallucinations幻覺
給模型輸入一段沒見過的東西,它會沿著繼續預測下去,本質上是在概率性的前提下進行最佳預測。
由于是概率性的,所以在訓練集的分布里,并沒有"我不知道",只有自信的回答,所以面對及時不知道的事,AI也會給出自信的編造。Even the model knows it doesn’t know, it will not surface that.
The model are not looking it up(查找信息), instead just imitating the answer.
4.1.1 如何確認存在幻覺
- 測試大模型是否存在幻覺
a. 先用大模型A給出一些問答
b. 用這些問答問待測試的大模型
c. 如果回答錯了,就說明存在幻覺
4.1.2 如何解決幻覺
- 訓練大模型說我不知道
a. 根據答錯的問題,訓練它說我不知道
Through this way, the model learns the association of the knowledge-based refusal to the internal neuron - 聯網搜索,把搜索到的知識當作輸入一起給模型。
4.2 大模型心理學LLM psychology
涌現認知效應 emergent cognitive effect
4.3 大模型的自我認知
大模型實際上沒有自我認知,它其實就是基于traning set做best guess,如果沒有專門訓練過這個問題,那么它可能會說自己的GPT(盡管它不是),但是是網上很多數據是有GPT生成的,導致它認為自己的GPT。
因此,可以考慮對其進行專門訓練,或者hardcode,如下所示
4.4 大模型的數學能力
為了讓大模型有足夠的數學能力,它的輸入至關重要。舉例而言,下面左側的回答就更差,導致可能模型學不出來。
4.4.1 Let the model think
因為模型一開始就揭曉了答案,但是前面沒有足夠的推理過程。模型是采用自回歸的方式輸出答案的,這就說明模型要在 The answer is 結束時,完成所有的推理和計算,然后給出答案來。如果采用右側的答案,那么就能通過tokens的輸出,先計算中間結果intermediate results,將其存儲在working memory中,逐步完成推理和計算,提高其數學能力。
We should teach the model to spread out the reasoning and computation over the tokens, in other words, the model need tokens to think.
4.4.2 如果強行要求直出結果,可能導致出錯
4.4.3 Use tools
==use tools instead of allowing the models to do all the calculations in the memory. ==
因為在memory中計算就像人的心算,不一定特別靠譜。
只需要在提示詞中增加Use code即可。
4.4.3.1 Use tools to count
舉個例子,模型對于計數能力很差,因為這些數其實是離散的多個tokens。
這里的運算并不是用的模型的心算,而是讓模型做了復制粘貼的事(把dots復制到python中),然后寫python,最后的結果是由python給出的。這樣帶來2點好處:
- 代碼很容易檢查運算思路
- 避免了模型心算,模型只需要給出解題過程就可以了
4.4.3.2 Use tools to spell
模型拼寫能力不強,因為模型只能訪問到token,一個token包含多個字符/字母,但是人眼是能夠acess每個字符/字母的。
Model is not byte level or character level, but token level.
如果使用工具,那么模型提供思路+復制粘貼tokens即可,答案由python給出。
4.4.4 為什么模型認為4.11 > 4.9
因為模型回憶起圣經經文了,在經文中先有chapter4.9,然后才有4.11,所以它認為4.9 > 4.11。
Deepseek
Reasoning oriented RL using GRPO
其中的獎勵函數沒有用人工的,而是純deterministic的。A rule-based reward system