給一段文字提示,生成相關且符合上下文的回應。難點不在流量,而在如何把一個語言模型訓練成有幫助、安全、對齊人類偏好的聊天機器人,並在推論時守住安全。
📋 Requirements
- 功能:輸入使用者的文字提示(問題、指令或查詢),輸出相關且符合上下文的回應;同一對話內要能處理後續追問。
- 範圍:先聚焦純文字、英文;上下文視窗(context window)至少 4096 個 token。
- 非功能:內容無偏見且安全,搭配嚴格的內容審核。
- 資料:已有一份指令與回覆的示範資料集(約 80,000 筆)。
🧠 Core Ideas
TIP
這是語言生成任務,由大型語言模型(LLM)處理。架構選用僅解碼器 Transformer(decoder-only Transformer);訓練分三階段:預訓練 → SFT → RLHF,逐步把「會接話的基礎模型」變成「有幫助又安全的聊天機器人」。
機器學習目標是下一個 token 預測(next-token prediction),用交叉熵損失衡量預測與正確 token 的差異。上下文遠長於單句,因此位置編碼要能同時捕捉 token 位置與相對關係——書中比較絕對、相對,以及被 Llama 3 採用的 RoPE(旋轉位置嵌入)。
⚖️ Reference Design
資料準備
- 預訓練資料主要爬自網路,需大量清理:內容擷取與解析、URL/網域過濾、語言辨識、內容品質過濾。
- 通用清理:移除不當內容、PII 匿名化、移除低品質資料、去重複、移除無關資料。
- 分詞用子詞演算法,例如 Byte-Pair Encoding (BPE)。
三階段訓練
- 預訓練:在大規模語料庫(Common Crawl、C4、GitHub、Wikipedia、Books、ArXiv、Stack Exchange 等)上訓練,產出具廣泛語言理解的基礎模型(如 Llama-1 用了約 1.4 兆個 token)。運算昂貴——常需數千張 GPU、數百萬美元、數個月。
- SFT(監督式微調 / 指令微調):在較小但高品質的**(提示, 回應)示範資料**上微調,讓模型學會回應而非只延續文字。
- RLHF(對齊):先用**(提示, 勝出, 落敗)偏好對訓練獎勵模型**,再以 PPO 等強化學習演算法優化 SFT 模型,強化高分回應。
取樣(Sampling)
- 確定性方法(貪婪搜尋、束搜尋)適合短而可預測的輸出,開放式對話易重複或次優。
- 隨機性方法引入隨機性:多項式取樣、Top-k、Top-p(核心取樣);先進 LLM 廣用 Top-p。
- 溫度(temperature) 縮放 logits 控制隨機性,重複懲罰 抑制重複序列。
評估
- 離線:傳統指標(困惑度 perplexity)不足,需搭配任務特定評估(常識推理、世界知識、閱讀理解、數學、程式碼、MMLU 等綜合基準)、安全性評估(毒性、偏見與公平、真實性、隱私、對抗穩健性)與人工評估。
- 線上:使用者回饋與評分、參與度、轉換率、線上排行榜(如 Chatbot Arena)。
推論流程
即時互動的關鍵元件依序為:安全過濾(先擋有害查詢)→ 提示增強器(展開縮寫、糾錯、補上下文)→ 回應生成器(以 Top-p 取樣呼叫 LLM)→ 回應安全評估器(展示前的最後防線)→ 拒絕回應生成器(不安全時禮貌說明);會話管理維護聊天歷史與追問上下文。
🔑 Takeaways
- 先把問題建模成語言生成任務:decoder-only Transformer + next-token prediction。
- 三階段訓練是主線:預訓練給語言與世界知識、SFT讓它會回應、RLHF讓它有幫助又安全。
- 對話是開放式生成,取樣偏好 Top-p,並用溫度與重複懲罰調節。
- 評估要多面向:任務能力 + 安全性 + 人工/線上指標,別只看困惑度。
- 推論時安全不是選配:輸入端過濾、輸出端評估、必要時拒絕,是完整流程的一部分。
No notes yet — jot your takeaways or Q&A here.