官术网_书友最值得收藏!

譯者序

既然翻開這本書,你就已經是時代的幸運兒。大模型是近 10 年來最大的技術浪潮,機器第一次能夠掌握世界知識,像人一樣思考。遇到這樣大的技術浪潮是我人生最幸運的事情,在 GPT-4 發布之后,我就果斷投身創業。

如今,大模型已經走進千行百業——程序員用 Cursor 可以提升一倍以上的開發效率;不懂編程的人也可以用 Lovable 開發產品原型;OpenAI Deep Research 生成的調研報告比大部分實習生做的專業;只需兩小時,我就能使用 AI 根據錄音整理出 5 萬字的訪談稿;有了 AI,一名運營人員就可以管理幾十個網站、上百個社交媒體賬號;在公司舉行會議的過程中,項目管理工具中的工作項就能實時更新相關信息……一些公司已經開始組建 AI 原生團隊,每名真人員工帶幾名數字員工,真人員工將大多數時間用于思考和討論,煩冗的執行工作則交給 24 小時不休息的數字員工。大模型也已經走進普通人的日常生活——餐廳服務員教我用 Kimi 寫點評,家里的老人和親戚用 DeepSeek-R1 寫拜年短信,小區里的小孩天天“抱著”豆包聊天……

大模型發展迅速,可謂“AI 一天,人間一年”。很多人在百花齊放的模型花園中迷失了方向,不知道手頭的應用場景應該用什么模型,也無法預判未來一年模型的發展方向,時常陷入焦慮。其實,如今幾乎所有大模型都是基于 Transformer 架構的,萬變不離其宗。

而你手里的這本書正是幫你系統了解 Transformer 和大模型的基本原理和能力邊界的絕佳資料。當圖靈公司找到我翻譯這本書時,我看到作者的名字就第一時間答應了,因為我當年就是讀了 Jay Alammar的“The Illustrated Transformer”這篇博客文章才真正弄懂 Transformer的(本書第 3 章就是由這篇博客文章擴展而來的)。如今講解大模型的圖書和文章浩如煙海,但本書的插圖之精美、講解之深入淺出是罕見的。本書從詞元和嵌入講起,不局限于生成模型,還包括很多人忽視的表示模型。此外,書中還包括文本分類、文本聚類、提示工程、RAG、模型微調等實用內容。

花些時間讀一下本書,系統地了解 Transformer 和大模型的基本原理和能力邊界,就如同在大模型的探險之旅中擁有了地圖和指南針。這樣,我們不但不會擔心新發布的模型一夜之間讓長期的工程積累變得無用,還可以為未來的模型開發產品。模型能力一旦就緒,產品就可以馬上起量。

1這里的試題是一個精華版,李博杰老師為本書整理了大模型面試題 200 問,作為免費的配套閱讀資料,具體請前往 https://www.ituring.com.cn/book/3285 頁面的“隨書下載”下載閱讀。——編者注

我在面試候選人和參加業內研討會時,常常發現很多人有大量實戰經驗,但對模型的基本原理知之甚少。為了幫助大家更好地理解本書,也為了方便部分有面試需求的朋友更有針對性地閱讀本書,圍繞本書各章主題,我系統梳理了大模型領域常見的面試題,其中的大多數問題可以在書中直接找到答案,部分進階問題可以從本書的參考文獻或網絡上的最新論文中找到答案。希望所有的朋友都能夠帶著這些問題閱讀本書。

第 1 章 大語言模型簡介

Q1:僅編碼器(BERT 類)、僅解碼器(GPT 類)和完整的編碼器 - 解碼器架構各有什么優缺點?

Q2:自注意力機制如何使大模型能夠捕捉長距離依賴關系,它跟 RNN 有什么區別?

Q3:大模型為什么有上下文長度的概念?為什么它是指輸入和輸出的總長度?

第 2 章 詞元和嵌入

Q4:大模型的分詞器和傳統的中文分詞有什么區別?對于指定的詞表,一句話是不是只有唯一的分詞方式?

Q5:大模型是如何區分聊天歷史中用戶說的話和 AI 說的話的?

Q6:傳統的靜態詞嵌入(如 word2vec)與大模型產生的上下文相關的嵌入相比,有什么區別?有了與上下文相關的嵌入,靜態詞嵌入還有什么價值?

Q7:在 word2vec 等詞嵌入空間中,存在 king - man + woman ≈ queen的現象,這是為什么?大模型的詞元嵌入空間是否也有類似的屬性?

第 3 章 LLM的內部機制

Q8:注意力機制是如何計算上下文各個詞元之間的相關性的?每個注意力頭只關注一個詞元嗎?

Q9:如果需要通過修改盡可能少的參數值,讓模型忘記某一特定知識,應該修改注意力層還是前饋神經網絡層的參數?

Q10:為什么注意力機制需要多個頭?跟簡單地減少注意力頭的數量相比,多查詢注意力和分組查詢注意力優化有什么不同?它們優化的是訓練階段還是推理階段?

Q11:Flash Attention 并不能減少計算量,為什么能提升推理速度?Flash Attention 是如何實現增量計算 softmax的?

Q12:跟原始 Transformer 論文中的絕對位置編碼相比,RoPE(旋轉位置嵌入)有什么優點?RoPE 在長上下文外推時會面臨什么挑戰?

第 4 章 文本分類

Q13:在本章中,嵌入模型 + 邏輯回歸的分類方式獲得了 0.85的F1 分數,而零樣本分類方式獲得了 0.78的F1 分數。如果有標注數據,什么情況下會選擇零樣本分類?

Q14:與 BERT的掩蔽策略相比,掩碼語言建模有何不同?這種預訓練方式如何幫助模型在下游的文本分類任務中獲得更好的性能?

Q15:假設你有一個包含 100 萬條客戶評論的數據集,但只有 1000 條帶有標簽的數據,請同時利用有標簽和無標簽的數據,結合表示模型和生成模型的優勢,構建一個分類系統。

第 5 章 文本聚類和主題建模

Q16:有了強大的生成式大模型,嵌入模型還有什么用?(提示:推薦系統)

Q17:詞袋法和文檔嵌入在實現原理上有什么區別?詞袋法是不是一無是處了?

Q18:BERTopic 中的c-TF-IDF 與傳統的TF-IDF 有何不同?這種差異如何幫助改進主題表示的質量?

Q19:基于質心和基于密度的文本聚類算法有什么優缺點?

Q20:在一個主題建模項目中,你發現生成的主題中有大量重疊的關鍵詞,如何使用本章介紹的技術來提高主題之間的區分度?

第 6 章 提示工程

Q21:針對翻譯類、創意寫作類、頭腦風暴類任務,分別如何設置 temperature 和 top_p?

Q22:一個專業的提示詞模板由哪幾部分構成?為什么提示詞中需要描述角色定義?

Q23:為了盡可能防止提示詞注入,如何設計提示詞模板?如何在系統層面檢測提示詞注入攻擊?

Q24:在沒有推理模型之前,如何讓模型先思考后回答?思維鏈、自洽性、思維樹等幾種技術各有什么優缺點?

Q25:如何保證模型的輸出一定是合法的JSON 格式?將大模型用于分類任務時,如何保證其輸出一定是幾個類別之一,而不會輸出無關內容?如果開發一個學習英語的應用,如何確保其輸出的語言始終限定在指定的詞匯表中?

第 7 章 高級文本生成技術與工具

Q26:如果我們需要生成小說的標題、角色描述和故事梗概,當單次模型調用生成效果不佳時,如何分步生成?

Q27:如果用戶跟模型對話輪次過多,超出了模型的上下文限制,但我們又希望盡可能保留用戶的對話信息,該怎么辦?

Q28:如何編寫一個智能體,幫助用戶規劃一次包含機票預訂、酒店安排和景點游覽的旅行?需要配置哪些工具?如何確保系統在面對不完整或矛盾的信息時仍能提供合理建議?

Q29:如果單一智能體的提示詞過長,導致性能下降,如何將其拆分為多個智能體,并在合適的時機調用不同的智能體?

第 8 章 語義搜索與 RAG

Q30:在 RAG 中,為什么要把文檔劃分成多個塊進行索引?如何解決文檔分塊后內容上下文缺失的問題?如何處理跨片段的依賴關系?

Q31:向量相似度檢索不能實現關鍵詞的精確匹配,基于倒排索引的關鍵詞檢索不能匹配語義相近的詞,如何解決這對矛盾?為什么需要重排序模型?

Q32:為什么要在向量相似度檢索前,對用戶輸入的話進行改寫?

Q33:如果需要根據某長篇小說的內容回答問題,而小說的長度遠遠超出了上下文限制,應該如何綜合利用摘要和 RAG 技術,使其能同時回答故事梗概和故事細節?

第 9 章 多模態 LLM

Q34:在 CLIP 訓練過程中,為什么需要同時最大化匹配圖文對的相似度和最小化非匹配圖文對的相似度?

Q35:BLIP-2 為何不直接將視覺編碼器的輸出連接到語言模型,而要引入 Q-Former 這一中間層結構?

Q36:現有一個能力較弱的多模態模型和一個能力較強的文本模型(如 DeepSeek-R1),如何結合兩者的能力來回答與多模態相關的問題?

Q37:如何構建一個 AI 照片助手,能夠對用戶的上萬張照片進行索引,根據用戶的查詢高效地檢索相關照片?

第 10 章 構建文本嵌入模型

Q38:相比交叉編碼器,為什么雙編碼器在大規模相似度搜索中更受歡迎?

Q39:在訓練嵌入模型時,MNR(多負例排序)損失、余弦相似度損失和 softmax 損失各有哪些優缺點?在哪些場景下,余弦相似度損失可能比 MNR 損失更合適?

Q40:如何生成負例以提升模型性能?如何構建高質量的難負例?

Q41:為什么 TSDAE 選擇使用特殊詞元而非平均池化作為句子表征?

Q42:相比 STSB,MTEB 有哪些改進?其中包括哪些類別的嵌入任務?

第 11 章 為分類任務微調表示模型

Q43:如果標注的訓練數據很少,如何擴增訓練數據的數量?(提示:SetFit)

Q44:在繼續預訓練時,如何在保證模型獲得特定領域知識的同時,最大限度地保留其通用能力?

Q45:請比較以下三種方案在醫療領域文本分類任務上的優缺點:(a) 直接使用通用 BERT 模型微調;(b) 在醫療文本上繼續預訓練 BERT 后再微調;(c) 從頭開始用醫療文本預訓練模型再微調。

Q46:在命名實體識別任務中,當 BERT 將單詞拆分成多個詞元時,如何解決標簽對齊問題?

Q47:假設一個嵌入模型的訓練語料主要由英文構成,在中文任務上表現不佳,如何用較低的繼續預訓練成本提升其中文能力?

第 12 章 微調生成模型

Q48:有人聲稱一篇文章是用 DeepSeek-R1 生成的,并給了你生成所用的完整提示詞,如何證實或證偽這個說法?(提示:利用困惑度)

Q49:如何微調一個 Llama 開源模型,使其輸出風格更簡潔、更像微信聊天,并保證輸出的內容符合國內的大模型安全要求?

Q50:QLoRA 中的分塊量化如何解決普通量化導致的信息損失問題?

Q51:現有一個由若干篇文章組成的企業知識庫,如何將其轉換成適合 SFT的數據集?

Q52:PPO 和 DPO 相比有什么優缺點?

Q53:在 PPO 中,如何防止模型在微調數據集以外的問題上泛化能力下降?如何防止模型收斂到單一類型的高獎勵回答?

Q54:設想一個網站上都是 AI 生成的內容,我們統計了每篇文章的平均用戶停留時長,如何將其轉化為 DPO 所需的偏好數據?對于小紅書和知乎兩種類型的網站,處理方式有什么區別?

Q55:提示工程、RAG、SFT、RL、RLHF 應該分別在什么場景下應用?例如:快速迭代基本能力(提示工程)、用戶個性化記憶(提示工程)、案例庫和事實知識(RAG)、輸出格式和語言風格(SFT)、領域深度思考能力和工具調用能力(RL)、根據用戶反饋持續優化(RLHF)。

附錄:圖解 DeepSeek-R1(建議補充閱讀 DeepSeek的原始論文)

Q56:DeepSeek-R1(簡稱 R1)與 DeepSeek-R1-Zero(簡稱 R1-Zero)的訓練過程有什么區別,各自有什么優缺點?既然 R1-Zero 生成的推理過程可讀性差,在非推理任務上的表現也不如 R1,那么 R1-Zero 存在的價值是什么?R1 訓練過程是如何解決 R1-Zero的上述問題的?

Q57:DeepSeek 是如何把 R1的推理能力蒸餾到較小的模型中的?如果我們要自己蒸餾一個較小的垂直領域模型,如何盡可能保留 R1 在特定領域的能力?

Q58:R1-Zero的方法主要適用于有明確驗證機制的任務(如數學、編程),如何將這一方法擴展到更主觀的領域(如創意寫作或戰略分析)?

Q59:如果要在一個非推理型模型的基礎上通過強化學習(RL)訓練出一個 1000 以內的整數四則運算錯誤率低于 1%的模型,預計基座模型至少需要多大?RL 過程需要多少張 GPU 和多少訓練時長?(提示:TinyZero)

Q60:在 QwQ-32B 推理模型的基礎上,通過 RL 在類似 OpenAI Deep Research的場景中強化垂直領域能力,如何構建訓練數據集?預計需要多少張 GPU 和多少訓練時長?

本書是我的首部譯作,本書的翻譯也是在大模型的輔助下完成的。翻譯與修改過程大體如下。

第一輪:使用 Claude 3.5 Sonnet 對文本內容進行初步翻譯,借助其多模態能力提取近 300 張圖片的文字并進行翻譯。

第二輪:由于技術圖書對術語表達的一致性、格式的一致性、語言的流暢度等要求很高,在劉美英編輯的指導下,我又用大模型生成了術語表,參考術語表批量修正了術語翻譯和格式問題。

第三輪:編輯中耕并提出修改反饋,按照編輯意見進行人工修改。

第四輪:編輯編加并提出修改反饋,按照編輯意見進行人工修改。

第五輪:排版后內容審讀,通讀全書內容并對個別問題進行人工修改。

由此可見,機器翻譯雖然做了大量工作,但翻譯過程仍然涉及多輪人工修改和校對。雖然我和編輯已竭盡所能地提升內容質量,但書中難免有錯漏和不當之處,懇請讀者指正。

本書初稿翻譯完成之際,恰逢 DeepSeek-R1 發布。推理模型開啟了縮放定律的第二曲線,不僅解決了數學計算和邏輯推理的可靠性問題,文字的流暢度和創造力也有了很大的提升。它背后的強化學習技術更是讓我們看到了模型智力超越人類的曙光,也為中小企業利用行業數據建立護城河提供了一條路徑。我們看到本書作者關于 DeepSeek-R1的精彩圖解博客文章后,又征得作者授權,補充了一個附錄,讓本書涵蓋了讀者最關心的主題之一。

我最近嘗試用 DeepSeek-R1 和 Claude 3.7 Sonnet 再次運行我的翻譯流水線,發現原有的術語不一致、翻譯味重等問題大多數已經能自動解決。如果今天才開始翻譯這本書,也許出版周期能縮短很多。這就是大模型的魅力,每過半年或一年,一件事情就有了全新的做法。

希望本書能夠成為大模型花園的觀光巴士,讓更多人看到大模型的全景。這樣,大模型不斷擴展的能力邊界就是一場視覺盛宴,而非吞噬一切的怪獸;我們就有機會站在 AI的潮頭,實現更多夢想,獲得更多自由。

李博杰,2025 年 3 月

主站蜘蛛池模板: 舞阳县| 镇康县| 锡林郭勒盟| 凤翔县| 陇川县| 晋江市| 泰宁县| 隆子县| 滨州市| 平泉县| 防城港市| 溧水县| 化州市| 武强县| 广水市| 阳曲县| 闵行区| 华容县| 周至县| 高平市| 来凤县| 江达县| 辽源市| 荆州市| 固原市| 黎川县| 海口市| 彩票| 南靖县| 颍上县| 福安市| 衢州市| 壶关县| 手机| 徐汇区| 临沂市| 和林格尔县| 宜都市| 泽州县| 崇左市| 鹤峰县|