入門:核心概念、Transformer架構(gòu)與訓(xùn)練流程考點精講)
1. 大模型零基礎(chǔ)入門先搞清楚這玩意兒到底怎么運轉(zhuǎn)的很多人第一次接觸大模型腦子里冒出來的第一個問題就是這東西到底是怎么“學(xué)會說話”的我剛開始接觸的時候也一樣覺得它像個黑盒子輸入一句話它就能給你吐出一大段像模像樣的回答甚至還能寫代碼、做翻譯、編故事。但你要是真去翻那些講大模型原理的資料滿屏的“注意力機制”“Transformer架構(gòu)”“參數(shù)微調(diào)”很容易就把人勸退了。我寫這篇東西的出發(fā)點很簡單把大模型從“玄學(xué)”拉回到“工程”。你不需要先成為算法專家才能理解它就像你不需要懂發(fā)動機熱效率也能開車一樣。但如果你想在考試?yán)锬玫椒?、在工作中用得上、在面試?yán)锪牡瞄_那有些核心概念是繞不過去的。這篇文章就是幫你把這些繞不過去的東西用最直白的方式講清楚。所謂“零基礎(chǔ)考點精講”重點在“考點”兩個字。不管你是準(zhǔn)備一門課的期末考試還是應(yīng)對某個認(rèn)證考試或者單純想在團隊里能接上話大模型相關(guān)的知識已經(jīng)從一個“加分項”變成了“必選項”。我見過太多人卡在幾個關(guān)鍵概念上反復(fù)打轉(zhuǎn)其實只要換個角度理解這些東西一點都不復(fù)雜。這篇文章適合誰看如果你是完全沒有算法背景的學(xué)生或者是從傳統(tǒng)軟件開發(fā)轉(zhuǎn)過來的工程師又或者是產(chǎn)品、運營崗位想搞明白大模型到底能干什么、不能干什么那接下來的內(nèi)容就是為你準(zhǔn)備的。我會從最基礎(chǔ)的概念講起逐步深入到訓(xùn)練流程、核心架構(gòu)、應(yīng)用方式和常見考點每一塊都配上我自己的理解和實操中踩過的坑。1.1 大模型到底是什么從“下一個詞預(yù)測”說起大模型的全稱是“大規(guī)模語言模型”英文叫Large Language Model縮寫LLM。這個名字聽起來很唬人但它的核心任務(wù)其實簡單到令人發(fā)指預(yù)測下一個詞。你給它一句話“今天天氣真”它要預(yù)測下一個詞最可能是“好”。你給它“床前明月”它預(yù)測下一個字是“光”。就這么簡單。但就是這么一個簡單的任務(wù)當(dāng)模型足夠大、訓(xùn)練數(shù)據(jù)足夠多的時候它就能學(xué)會語法、邏輯、常識甚至一些推理能力。為什么“預(yù)測下一個詞”能產(chǎn)生這么強大的能力這里有一個關(guān)鍵洞察要準(zhǔn)確預(yù)測下一個詞模型必須理解上下文。比如“我把鑰匙插進___”你可能會填“鎖孔”也可能會填“車門”具體填哪個取決于前文。模型為了預(yù)測準(zhǔn)確就必須學(xué)會理解“鑰匙”“插進”這些詞之間的關(guān)系以及整個句子的語境。這種理解能力就是大模型各種神奇表現(xiàn)的根源。我經(jīng)常用一個類比來解釋這件事想象你在玩一個填空游戲每空一個詞你都要根據(jù)前面所有的內(nèi)容來猜。剛開始你只能猜個大概但如果你玩了幾億次而且每次都能看到正確答案你就會慢慢總結(jié)出語言的規(guī)律。大模型做的就是這件事只不過它玩的次數(shù)是萬億級別的看到的文本是互聯(lián)網(wǎng)規(guī)模的。這里有一個考點經(jīng)常被忽略大模型不是數(shù)據(jù)庫它不存儲原文。很多人以為模型里存著維基百科的所有條目問它什么它就去查。不是這樣的。模型學(xué)到的是“詞的統(tǒng)計規(guī)律”是概率分布。它知道“中國的首都是”后面大概率跟“北京”但它并不是在某個表格里查到了這條記錄。這個區(qū)別很重要因為它解釋了為什么大模型會“胡說八道”——當(dāng)它遇到訓(xùn)練數(shù)據(jù)里沒見過的組合時它會按照概率生成一個看起來合理但實際上是編造的答案。1.2 為什么叫“大”參數(shù)量、數(shù)據(jù)量和算力的三重規(guī)?!按竽P汀钡摹按蟆斌w現(xiàn)在三個維度上參數(shù)量大、訓(xùn)練數(shù)據(jù)大、算力消耗大。參數(shù)量可以理解為模型內(nèi)部的“旋鈕”數(shù)量。每一個參數(shù)都是一個可以調(diào)節(jié)的數(shù)字模型通過調(diào)節(jié)這些數(shù)字來學(xué)習(xí)語言規(guī)律。早期的語言模型參數(shù)量在百萬級別而現(xiàn)在的動輒千億甚至萬億。你可以把參數(shù)量想象成模型的“腦容量”容量越大能記住的規(guī)律越復(fù)雜。訓(xùn)練數(shù)據(jù)量同樣驚人。以某類主流模型為例訓(xùn)練語料可能包含數(shù)萬億個詞來源涵蓋網(wǎng)頁、書籍、論文、代碼等各種文本。數(shù)據(jù)量越大模型見過的語言現(xiàn)象就越豐富泛化能力就越強。算力消耗是最直觀的“大”。訓(xùn)練一個千億參數(shù)的模型可能需要數(shù)千張高性能計算卡連續(xù)運行數(shù)周甚至數(shù)月。電費、硬件折舊、人力成本加起來是一個天文數(shù)字。這也是為什么只有少數(shù)機構(gòu)能從頭訓(xùn)練大模型大多數(shù)團隊都是在已有模型基礎(chǔ)上做微調(diào)或應(yīng)用開發(fā)。這三個“大”之間有一個大致的對應(yīng)關(guān)系參數(shù)量決定了模型的“容量上限”數(shù)據(jù)量決定了模型能學(xué)到多少東西算力決定了你能不能把這個過程跑完。三者缺一不可但也不是簡單堆砌就能出效果后面講訓(xùn)練流程的時候我會詳細說。1.3 零基礎(chǔ)必須掌握的五個核心概念在深入之前先把五個最核心的概念拎出來。這五個概念貫穿大模型的所有考點理解了它們后面的事情就順了。第一個是Token。Token是模型處理文本的基本單位可以是一個詞、一個字也可以是一個詞的一部分。英文里“playing”可能會被拆成“play”和“ing”兩個Token中文里“人工智能”可能會被拆成“人工”和“智能”。模型的所有輸入輸出都是以Token為單位的計費也是按Token算的。一個經(jīng)驗數(shù)據(jù)1000個Token大約相當(dāng)于750個英文單詞或500個漢字。第二個是Embedding。Embedding是把Token轉(zhuǎn)換成向量的過程。向量就是一串?dāng)?shù)字比如[0.2, -0.5, 0.8, ...]。為什么要轉(zhuǎn)成向量因為計算機只會算數(shù)不會直接理解文字。把詞變成向量之后語義相近的詞在向量空間里的距離就會比較近。比如“貓”和“狗”的向量距離會比“貓”和“汽車”的距離近得多。這個性質(zhì)是大模型理解語義的基礎(chǔ)。第三個是Transformer。這是大模型的核心架構(gòu)2017年提出之后基本上統(tǒng)一了江湖。Transformer最關(guān)鍵的設(shè)計是“自注意力機制”它讓模型在處理一個詞的時候能同時看到句子里所有其他詞并判斷哪些詞跟當(dāng)前詞關(guān)系最密切。這比之前那種從左到右逐個處理的架構(gòu)強太多了因為語言里的依賴關(guān)系經(jīng)常是跨距離的。第四個是預(yù)訓(xùn)練與微調(diào)。預(yù)訓(xùn)練是在海量通用文本上訓(xùn)練模型讓它學(xué)會語言的基本規(guī)律。微調(diào)是在預(yù)訓(xùn)練模型的基礎(chǔ)上用特定領(lǐng)域的數(shù)據(jù)繼續(xù)訓(xùn)練讓它適應(yīng)具體任務(wù)。你可以把預(yù)訓(xùn)練理解為“通識教育”微調(diào)理解為“職業(yè)培訓(xùn)”。第五個是推理。推理就是模型根據(jù)輸入生成輸出的過程。你問它一個問題它給你一個答案這個過程就是推理。推理階段不改變模型參數(shù)只是利用已經(jīng)訓(xùn)練好的參數(shù)做計算。推理的成本主要取決于模型大小和輸出長度。這五個概念是后面所有內(nèi)容的基石。如果你現(xiàn)在覺得還有點模糊沒關(guān)系接下來我會逐個展開配上具體的例子和操作層面的解釋。2. 核心架構(gòu)拆解Transformer到底在算什么Transformer是大模型領(lǐng)域最重要的架構(gòu)沒有之一。2017年那篇論文發(fā)表之后幾乎所有主流大模型都建立在它之上。但很多零基礎(chǔ)的人看到“自注意力”“多頭機制”“位置編碼”這些詞就頭大。這一章我用最直白的方式把這些概念拆開讓你不僅知道它們是什么還知道它們?yōu)槭裁创嬖凇?.1 自注意力機制讓模型學(xué)會“看上下文”自注意力機制的核心思想是處理每個詞的時候都去問一遍其他所有詞“你跟我有多相關(guān)”。舉個例子句子是“小明把書放在了桌子上因為它太重了”。這里的“它”指代什么是書還是桌子人類很容易判斷是書因為“太重了”通常形容書。但模型怎么知道自注意力機制就是干這個的。當(dāng)模型處理“它”這個詞的時候它會計算“它”跟前面每個詞的關(guān)聯(lián)度?!八备皶钡年P(guān)聯(lián)度會很高跟“桌子”的關(guān)聯(lián)度會低一些跟“小明”的關(guān)聯(lián)度更低。然后模型根據(jù)這些關(guān)聯(lián)度把相關(guān)信息加權(quán)匯總形成“它”這個詞的新表示。具體計算過程涉及三個向量Query、Key、Value。你可以這樣理解Query是“我在找什么”Key是“我有什么”Value是“我的實際內(nèi)容”。模型用當(dāng)前詞的Query去跟所有詞的Key做匹配算出匹配分?jǐn)?shù)然后用這些分?jǐn)?shù)對Value做加權(quán)求和。這個過程聽起來復(fù)雜但本質(zhì)上就是“根據(jù)相關(guān)性做信息聚合”。我剛開始學(xué)的時候最大的困惑是為什么要搞這么復(fù)雜直接看前后幾個詞不就行了嗎后來我想明白了語言里的依賴關(guān)系經(jīng)常是長距離的。比如“我昨天在書店買了一本關(guān)于人工智能的書它寫得非常好”這里的“它”跟“書”隔了十幾個詞。如果只看前后幾個詞根本找不到指代關(guān)系。自注意力機制讓模型能直接看到全句不受距離限制。注意自注意力的計算復(fù)雜度是輸入長度的平方。也就是說文本長度翻倍計算量變成四倍。這就是為什么大模型處理長文本時特別吃資源也是為什么會有各種“稀疏注意力”“滑動窗口注意力”的優(yōu)化方案。2.2 多頭注意力為什么一個“頭”不夠用多頭注意力是自注意力的升級版。它不是只做一次注意力計算而是同時做多次每次用不同的參數(shù)矩陣最后把結(jié)果拼接起來。為什么要這樣因為語言里的關(guān)系是多種多樣的。有的詞之間是語法關(guān)系有的是語義關(guān)系有的是指代關(guān)系。一個注意力頭可能專注于捕捉主謂關(guān)系另一個頭可能專注于捕捉修飾關(guān)系還有一個頭可能專注于捕捉指代關(guān)系。多個頭各司其職最后匯總起來模型對句子的理解就更全面。你可以把多頭注意力想象成一個專家團隊。每個專家看問題的角度不同有的關(guān)注語法有的關(guān)注語義有的關(guān)注情感。最后大家把意見匯總得出的判斷比單個專家更靠譜。實際應(yīng)用中頭的數(shù)量通常是8個、16個或更多具體取決于模型規(guī)模。這里有一個考點多頭注意力的計算量并沒有變成原來的N倍。因為每個頭的維度被縮小了總的計算量和單頭差不多。比如原來單頭是512維現(xiàn)在8個頭每個64維總維度還是512。這樣既增加了表達能力又沒有顯著增加計算成本。2.3 位置編碼沒有它模型就是個“詞袋”Transformer有一個先天缺陷它本身不包含順序信息。如果沒有額外處理模型看“我打你”和“你打我”是一樣的因為自注意力機制只關(guān)心詞與詞的相關(guān)性不關(guān)心誰在前誰在后。位置編碼就是用來解決這個問題的。它給每個位置生成一個向量然后加到對應(yīng)詞的Embedding上。這樣模型就能區(qū)分不同位置的詞了。位置編碼有兩種主要方式一種是固定的三角函數(shù)編碼一種是可學(xué)習(xí)的編碼。早期Transformer用的是固定編碼后來很多模型改用可學(xué)習(xí)編碼效果更好。我見過一個很形象的比喻位置編碼就像是給每個詞發(fā)一個“座位號”。沒有座位號大家擠在一起誰也不知道誰坐在哪。有了座位號模型就知道“第一個詞”和“第五個詞”是不同的位置處理起來就有了順序感。實操心得位置編碼的長度是有限的通常等于訓(xùn)練時的最大序列長度。如果你輸入的文本超過了這個長度就需要做截斷或者用一些擴展技術(shù)。這也是為什么很多模型標(biāo)稱支持4096個Token超過就會出問題。2.4 前饋網(wǎng)絡(luò)與殘差連接讓模型“深”得起來Transformer的每一層除了注意力還有一個前饋網(wǎng)絡(luò)。這個網(wǎng)絡(luò)很簡單就是兩層全連接加一個激活函數(shù)。它的作用是對注意力輸出的信息做進一步變換和提取。你可以把它理解為“加工車間”注意力負(fù)責(zé)收集原料前饋網(wǎng)絡(luò)負(fù)責(zé)加工成品。殘差連接是另一個關(guān)鍵設(shè)計。它把輸入直接加到輸出上讓梯度能更順暢地傳播。沒有殘差連接深層網(wǎng)絡(luò)很難訓(xùn)練因為梯度會消失或者爆炸。有了殘差連接模型可以堆到幾十層甚至上百層表達能力大幅提升。層歸一化也是類似的作用它把每一層的輸出做標(biāo)準(zhǔn)化讓訓(xùn)練更穩(wěn)定。這三個東西——前饋網(wǎng)絡(luò)、殘差連接、層歸一化——合在一起構(gòu)成了Transformer層的基本結(jié)構(gòu)。一個標(biāo)準(zhǔn)的大模型就是這樣的層重復(fù)幾十次每一層都在前一層的基礎(chǔ)上做更抽象的理解。2.5 編碼器與解碼器兩種架構(gòu)的分工Transformer最初是編碼器-解碼器結(jié)構(gòu)編碼器負(fù)責(zé)理解輸入解碼器負(fù)責(zé)生成輸出。但后來大家發(fā)現(xiàn)很多任務(wù)其實只需要其中一半。編碼器-only的模型擅長理解任務(wù)比如文本分類、情感分析、命名實體識別。代表模型是BERT系列。它能看到完整的上下文因為它是雙向的。解碼器-only的模型擅長生成任務(wù)比如寫文章、對話、代碼生成。代表模型是GPT系列。它是單向的只能看到前面的詞因為生成的時候不能偷看后面的答案。編碼器-解碼器的模型適合序列到序列的任務(wù)比如翻譯、摘要。代表模型是T5、BART。目前主流的大模型基本都是解碼器-only架構(gòu)因為生成能力是通用人工智能的核心。但理解編碼器和解碼器的區(qū)別對于考試和實際選型都很重要。3. 訓(xùn)練流程全解析從零到能用的四個階段大模型的訓(xùn)練不是一蹴而就的它分為幾個明確的階段。每個階段的目標(biāo)不同用的數(shù)據(jù)不同訓(xùn)練方式也不同。理解這些階段你就能明白為什么大模型有時候很聰明有時候又很蠢。3.1 預(yù)訓(xùn)練在海量文本里“讀萬卷書”預(yù)訓(xùn)練是第一階段也是成本最高的階段。這個階段的目標(biāo)是讓模型學(xué)會語言的基本規(guī)律。用的數(shù)據(jù)是海量的無標(biāo)注文本來源包括網(wǎng)頁、書籍、論文、代碼等。訓(xùn)練任務(wù)是“預(yù)測下一個詞”就是前面說的那個填空游戲。預(yù)訓(xùn)練的數(shù)據(jù)量有多大以某類主流模型為例訓(xùn)練語料可能包含數(shù)萬億個Token。這些數(shù)據(jù)需要經(jīng)過清洗、去重、過濾去掉低質(zhì)量內(nèi)容和重復(fù)內(nèi)容。數(shù)據(jù)質(zhì)量對最終模型效果影響極大業(yè)界有一句話叫“垃圾進垃圾出”。預(yù)訓(xùn)練的計算成本極高。一個千億參數(shù)的模型可能需要數(shù)千張高性能計算卡訓(xùn)練幾個月。這個階段只有少數(shù)機構(gòu)能承擔(dān)。但預(yù)訓(xùn)練出來的模型叫“基座模型”它只會續(xù)寫文本不會回答問題。你問它“今天天氣怎么樣”它可能會續(xù)寫成“今天天氣怎么樣明天天氣怎么樣后天天氣怎么樣”因為它只學(xué)會了預(yù)測下一個詞沒學(xué)會“對話”。注意預(yù)訓(xùn)練階段模型學(xué)到的知識是有時效性的。訓(xùn)練數(shù)據(jù)截止到某個時間點之后的事情模型就不知道了。這就是為什么問模型最近發(fā)生的事情它可能會說“我不知道”或者編一個答案。3.2 監(jiān)督微調(diào)教會模型“好好說話”預(yù)訓(xùn)練出來的基座模型不會對話所以需要第二階段監(jiān)督微調(diào)。這個階段用人工標(biāo)注的“問題-答案”對來訓(xùn)練模型讓它學(xué)會按照指令回答問題。比如標(biāo)注數(shù)據(jù)里會有“請介紹一下北京”對應(yīng)“北京是中國的首都位于華北平原……”模型通過大量這樣的例子學(xué)會“當(dāng)用戶問介紹某地時我應(yīng)該給出一個結(jié)構(gòu)化的回答”。這個階段的數(shù)據(jù)量比預(yù)訓(xùn)練小得多通常是幾萬到幾十萬條。但數(shù)據(jù)質(zhì)量要求極高因為模型會模仿這些標(biāo)注數(shù)據(jù)的風(fēng)格。如果標(biāo)注數(shù)據(jù)里有錯誤或者偏見模型也會學(xué)去。監(jiān)督微調(diào)之后模型基本能對話了但還不夠“聽話”。它可能會生成有害內(nèi)容或者回答得不夠有幫助。這就需要第三階段。3.3 獎勵建模與強化學(xué)習(xí)讓模型“對齊”人類偏好第三階段是讓模型的行為符合人類期望。這個過程通常叫“對齊”具體方法包括基于人類反饋的強化學(xué)習(xí)。首先訓(xùn)練一個“獎勵模型”。具體做法是給模型同一個問題生成多個答案然后讓人來排序哪個答案更好。用這些排序數(shù)據(jù)訓(xùn)練一個獎勵模型讓它學(xué)會給答案打分。然后用強化學(xué)習(xí)算法比如PPO來優(yōu)化語言模型讓它生成的答案能獲得更高的獎勵分?jǐn)?shù)。這個過程就是讓模型學(xué)會“什么樣的回答人類更喜歡”。這個階段非常關(guān)鍵它決定了模型是“有用”還是“有害”。一個沒有經(jīng)過對齊的模型可能會生成歧視性內(nèi)容、虛假信息或者危險建議。經(jīng)過對齊之后模型會拒絕回答有害問題也會更傾向于給出有幫助的答案。實操心得對齊不是一次性的而是一個持續(xù)的過程。模型上線之后還需要根據(jù)用戶反饋不斷調(diào)整。這也是為什么大模型產(chǎn)品經(jīng)常更新每次更新都可能改變模型的回答風(fēng)格。3.4 推理部署模型怎么變成你能用的產(chǎn)品訓(xùn)練完成之后模型需要部署才能使用。推理部署要考慮幾個關(guān)鍵問題延遲、吞吐量、成本。延遲是指從輸入到輸出的時間。對于對話應(yīng)用延遲要控制在幾秒以內(nèi)否則用戶體驗很差。吞吐量是指單位時間能處理多少請求。成本主要是計算資源的花費。為了降低推理成本業(yè)界有很多優(yōu)化技術(shù)。比如量化把模型參數(shù)從16位浮點數(shù)壓縮到8位甚至4位減少內(nèi)存占用和計算量。比如蒸餾用一個大模型教一個小模型讓小模型達到接近大模型的效果但速度快得多。比如緩存把常見的問答對緩存起來避免重復(fù)計算。這些技術(shù)細節(jié)在考試中經(jīng)常出現(xiàn)尤其是量化和蒸餾的概念。你不需要會實現(xiàn)它們但要知道它們解決什么問題。4. 應(yīng)用開發(fā)實戰(zhàn)怎么把大模型用起來理解了原理和訓(xùn)練流程之后接下來就是怎么用。大模型的應(yīng)用開發(fā)有很多種方式從最簡單的API調(diào)用到復(fù)雜的智能體系統(tǒng)難度和效果各不相同。4.1 API調(diào)用最直接的入門方式大多數(shù)大模型都提供API接口你只需要發(fā)一個HTTP請求就能得到模型的回答。這是最簡單的使用方式不需要任何機器學(xué)習(xí)背景。一個典型的API調(diào)用包括幾個部分API密鑰、模型名稱、輸入消息、生成參數(shù)。生成參數(shù)里比較重要的有溫度、最大長度、top_p等。溫度控制輸出的隨機性。溫度越低輸出越確定溫度越高輸出越多樣。寫代碼的時候通常用低溫度寫創(chuàng)意文案的時候用高溫度。最大長度控制輸出多少Token。top_p控制采樣的范圍值越小輸出越保守。我剛開始用API的時候經(jīng)常犯一個錯誤把溫度設(shè)得太高結(jié)果模型回答得天花亂墜但完全不靠譜。后來學(xué)乖了做事實性問答用0.1到0.3的溫度做頭腦風(fēng)暴用0.7到0.9。注意API調(diào)用是按Token計費的輸入和輸出都算。所以長對話的成本會累積。優(yōu)化方法包括壓縮歷史消息、使用更小的模型處理簡單任務(wù)、緩存常見問題的答案。4.2 提示工程不改變模型只改變輸入提示工程是通過設(shè)計輸入文本來引導(dǎo)模型輸出更好結(jié)果的技術(shù)。它不需要訓(xùn)練模型只需要在輸入上下功夫。幾個核心技巧角色設(shè)定告訴模型“你是一個資深工程師”它就會用更專業(yè)的口吻回答。少樣本示例給模型幾個例子它就會模仿例子的格式。思維鏈讓模型“一步一步思考”能顯著提升推理任務(wù)的準(zhǔn)確率。輸出格式約束明確要求模型輸出JSON或表格方便后續(xù)處理。我實測下來思維鏈對數(shù)學(xué)題和邏輯題的效果特別明顯。你直接問“一個水池進水3小時滿出水5小時空同時開多久滿”模型可能會算錯。但你加一句“請一步一步計算”它就能算對。原因是模型在生成中間步驟的時候相當(dāng)于給了自己更多的計算時間。提示工程有一個常見誤區(qū)很多人以為提示越長越好。其實不是。提示要精準(zhǔn)要包含必要信息但不要堆砌無關(guān)內(nèi)容。過長的提示會稀釋關(guān)鍵信息反而降低效果。4.3 檢索增強生成給模型接上“外部大腦”檢索增強生成是目前最火的應(yīng)用架構(gòu)之一。它的核心思想是模型本身的知識有限那就外接一個知識庫回答問題時先去知識庫里檢索相關(guān)內(nèi)容然后把檢索結(jié)果和問題一起交給模型生成答案。這個架構(gòu)解決了大模型的幾個痛點知識時效性、幻覺問題、私有數(shù)據(jù)訪問。模型不知道最新發(fā)生的事情但知識庫可以實時更新。模型可能會編造答案但有了檢索結(jié)果作為依據(jù)它就更可能給出有根據(jù)的回答。模型沒學(xué)過公司內(nèi)部文檔但把文檔放進知識庫它就能回答相關(guān)問題。實現(xiàn)檢索增強生成的關(guān)鍵是向量數(shù)據(jù)庫。你把文檔切分成小塊每塊轉(zhuǎn)成向量存進數(shù)據(jù)庫。用戶提問時把問題也轉(zhuǎn)成向量然后在數(shù)據(jù)庫里找最相似的塊。找到的塊作為上下文和問題一起送給模型。實操心得切分文檔的時候塊的大小很關(guān)鍵。太小了信息不完整太大了檢索不精準(zhǔn)。一般建議每塊200到500字塊之間可以有重疊避免關(guān)鍵信息被切斷。4.4 微調(diào)與蒸餾讓模型更懂你的領(lǐng)域如果你有大量領(lǐng)域數(shù)據(jù)而且API調(diào)用滿足不了需求可以考慮微調(diào)。微調(diào)是在預(yù)訓(xùn)練模型的基礎(chǔ)上用你的數(shù)據(jù)繼續(xù)訓(xùn)練讓模型適應(yīng)你的特定任務(wù)。微調(diào)的成本比預(yù)訓(xùn)練低得多但也需要一定的計算資源和數(shù)據(jù)準(zhǔn)備。數(shù)據(jù)質(zhì)量比數(shù)量重要幾百條高質(zhì)量數(shù)據(jù)可能比幾萬條低質(zhì)量數(shù)據(jù)效果更好。蒸餾是另一種思路用一個大模型生成大量數(shù)據(jù)然后用這些數(shù)據(jù)訓(xùn)練一個小模型。小模型速度快、成本低雖然效果可能略差但在很多場景下夠用。蒸餾的關(guān)鍵是數(shù)據(jù)生成的質(zhì)量要讓大模型生成多樣化的、高質(zhì)量的數(shù)據(jù)。這兩種技術(shù)在實際項目中經(jīng)常結(jié)合使用先用大模型蒸餾出小模型再對小模型做領(lǐng)域微調(diào)。5. 常見考點與避坑指南這一章整理一些高頻考點和實際使用中的坑。不管你是考試還是做項目這些內(nèi)容都能幫你少走彎路。5.1 高頻考點速查表考點核心要點常見誤區(qū)Token與詞的區(qū)別Token是模型處理的基本單位不等于詞以為一個漢字就是一個Token溫度參數(shù)控制隨機性低溫度確定高溫度多樣以為溫度越高越好自注意力復(fù)雜度與序列長度的平方成正比忽略長文本的計算成本預(yù)訓(xùn)練與微調(diào)預(yù)訓(xùn)練學(xué)通用規(guī)律微調(diào)學(xué)特定任務(wù)混淆兩者的數(shù)據(jù)需求和成本幻覺產(chǎn)生原因模型按概率生成不查數(shù)據(jù)庫以為模型知道所有事實上下文窗口模型能處理的最大Token數(shù)忽略超出窗口后的截斷問題量化降低參數(shù)精度以減少資源消耗以為量化沒有精度損失對齊讓模型行為符合人類偏好以為對齊是一次性工作5.2 新手最容易踩的五個坑第一個坑把模型當(dāng)搜索引擎。模型不是搜索引擎它不實時檢索網(wǎng)頁。它給出的答案是基于訓(xùn)練數(shù)據(jù)的概率生成可能過時也可能錯誤。重要信息一定要交叉驗證。第二個坑提示詞太模糊?!皫臀覍憘€方案”這種提示模型只能給你一個泛泛的模板。好的提示應(yīng)該包含背景、目標(biāo)、格式要求、約束條件。你給的信息越具體輸出越符合預(yù)期。第三個坑忽略Token限制。每個模型都有上下文窗口限制超出部分會被截斷。長文檔處理時要注意分段或者用檢索增強的方式。第四個坑不做輸出校驗。模型輸出需要校驗尤其是代碼和事實性內(nèi)容。我見過有人直接把模型生成的代碼部署到生產(chǎn)環(huán)境結(jié)果出了大問題。模型是助手不是替代品。第五個坑忽視成本。API調(diào)用是按量計費的大規(guī)模應(yīng)用的成本可能很高。要在效果和成本之間找平衡簡單任務(wù)用便宜模型復(fù)雜任務(wù)用好模型。5.3 實操排查技巧實錄問題模型回答太短。排查思路檢查最大長度參數(shù)是否設(shè)得太小檢查提示是否要求了詳細回答檢查溫度是否太低導(dǎo)致輸出保守。問題模型答非所問。排查思路檢查提示是否清晰檢查上下文是否太長導(dǎo)致關(guān)鍵信息被淹沒檢查是否用了不適合的模型。問題模型輸出格式不穩(wěn)定。排查思路在提示中明確格式要求使用少樣本示例降低溫度考慮用結(jié)構(gòu)化輸出功能。問題API調(diào)用超時。排查思路檢查網(wǎng)絡(luò)連接檢查輸入長度是否過大檢查是否觸發(fā)了速率限制考慮用流式輸出。問題模型拒絕回答。排查思路檢查問題是否觸發(fā)了安全策略嘗試換一種問法檢查是否需要對模型做特定領(lǐng)域的微調(diào)。這些排查思路是我在實際項目中一點點積累的。很多時候問題不在模型本身而在輸入設(shè)計或者參數(shù)配置。遇到問題先別急著換模型把提示和參數(shù)調(diào)一遍往往就能解決。5.4 學(xué)習(xí)路徑建議如果你是從零開始我建議按這個順序?qū)W先理解Token、Embedding、Transformer這些基礎(chǔ)概念不用深究數(shù)學(xué)推導(dǎo)知道它們解決什么問題就行。然后動手調(diào)一次API感受一下模型的能力和局限。接著學(xué)提示工程這是投入產(chǎn)出比最高的技能。再往后可以了解檢索增強生成和微調(diào)根據(jù)實際需求決定深入方向。不要一上來就啃論文那樣很容易放棄。先從應(yīng)用入手有了直觀感受之后再回頭看原理理解會深刻得多。我見過很多非科班出身的人通過這種方式在幾個月內(nèi)就能獨立做項目了。大模型這個領(lǐng)域變化很快但核心概念是相對穩(wěn)定的。把基礎(chǔ)打牢新東西出來的時候你就能快速理解。反過來如果基礎(chǔ)不牢追新概念只會越追越亂。