啃透大模型:從Transformer到Dify與DeepSeek的考點(diǎn)精講)
1. 從零啃下大模型為什么“考點(diǎn)精講”比“速成教程”更值得花時間很多人第一次接觸大模型路徑都差不多刷到幾篇“三分鐘搞懂Transformer”的短視頻收藏一堆“大模型學(xué)習(xí)路線圖”然后打開某個開源項(xiàng)目發(fā)現(xiàn)連環(huán)境都跑不起來。問題不在于不夠聰明而在于大模型這個領(lǐng)域有一個很特殊的地方——它的知識結(jié)構(gòu)是“倒金字塔”式的。你如果不知道注意力機(jī)制在算什么就永遠(yuǎn)理解不了為什么上下文長度會成為瓶頸你如果不清楚預(yù)訓(xùn)練和微調(diào)的區(qū)別就永遠(yuǎn)搞不明白為什么同一個模型換個場景效果就崩了?!傲慊A(chǔ)考點(diǎn)精講”這個方向本質(zhì)上解決的就是這個問題。它不是教你調(diào)一個API就完事而是把大模型從底層原理到工程落地這條鏈路上那些真正會被問到、真正會影響你判斷的關(guān)鍵節(jié)點(diǎn)一個一個拆開講清楚。適合誰看三類人一是準(zhǔn)備面試或考試、需要系統(tǒng)性梳理知識點(diǎn)的二是剛轉(zhuǎn)行做AI應(yīng)用開發(fā)、被各種框架和術(shù)語繞暈的三是已經(jīng)在用DeepSeek、Dify這類工具但遇到問題只能靠搜索和試錯、想搞明白背后邏輯的。我自己在這個領(lǐng)域摸爬滾打的過程中最大的體會是大模型的知識點(diǎn)看起來多但真正核心的骨架就那么幾根。Transformer是骨架注意力機(jī)制是關(guān)節(jié)預(yù)訓(xùn)練和微調(diào)是肌肉推理優(yōu)化和部署是皮膚。你把這幾塊吃透了剩下的都是在這個基礎(chǔ)上長出來的枝葉。這篇內(nèi)容就按照這個邏輯把每個核心考點(diǎn)講透同時補(bǔ)充那些教程里不會寫、但實(shí)際工作中一定會遇到的細(xì)節(jié)。2. Transformer架構(gòu)大模型所有能力的起點(diǎn)2.1 為什么是Transformer而不是RNN要理解Transformer先得知道它替代了什么。在Transformer出現(xiàn)之前處理序列數(shù)據(jù)的主流方案是RNN和LSTM。RNN的思路很直覺像人讀句子一樣一個字一個字往后讀每讀一個字就把前面的信息壓縮成一個“記憶狀態(tài)”傳下去。這個方案的問題在于當(dāng)句子變長時最早的信息在傳遞過程中會被不斷稀釋就像傳話游戲傳了十幾個人之后原話早就面目全非了。Transformer的解法很暴力既然逐個傳遞會丟信息那干脆讓每個詞直接和句子中所有其他詞建立聯(lián)系。這就是**自注意力機(jī)制Self-Attention**的核心思想。每個詞都會生成三個向量——Query查詢、Key鍵、Value值然后用Query去和所有詞的Key做匹配算出注意力權(quán)重再對所有Value加權(quán)求和。這個過程可以并行計(jì)算不像RNN必須按順序來所以訓(xùn)練效率大幅提升。用一個生活化的類比RNN像是一個人在圖書館里逐本書翻閱看完一本才能看下一本Transformer像是同時把所有書攤在桌上每本書都和其他書做交叉比對直接找到最相關(guān)的信息組合。顯然后者更適合處理大規(guī)模數(shù)據(jù)。2.2 自注意力的計(jì)算過程拆解具體來看自注意力的計(jì)算。假設(shè)輸入是一個長度為n的序列每個詞的嵌入維度是d那么輸入矩陣X的維度是n×d。通過三個可學(xué)習(xí)的權(quán)重矩陣W_Q、W_K、W_V分別得到Q、K、V三個矩陣Q X · W_Q K X · W_K V X · W_V然后計(jì)算注意力分?jǐn)?shù)Attention(Q, K, V) softmax(Q·K^T / √d_k) · V這里有幾個關(guān)鍵細(xì)節(jié)。第一除以√d_k是為了防止點(diǎn)積結(jié)果過大導(dǎo)致softmax梯度消失。第二softmax的作用是把分?jǐn)?shù)歸一化成概率分布讓權(quán)重之和為1。第三這個計(jì)算是并行化的所有位置的注意力可以同時算出來。實(shí)際代碼中PyTorch的實(shí)現(xiàn)大概長這樣import torch import torch.nn.functional as F def self_attention(Q, K, V, maskNone): d_k Q.size(-1) scores torch.matmul(Q, K.transpose(-2, -1)) / torch.sqrt(torch.tensor(d_k)) if mask is not None: scores scores.masked_fill(mask 0, -1e9) weights F.softmax(scores, dim-1) return torch.matmul(weights, V)這段代碼看起來簡單但實(shí)際跑的時候有幾個坑。mask的處理很關(guān)鍵尤其是在解碼器中必須用因果掩碼防止模型“偷看”未來的token。另外√d_k這個縮放因子如果忘了加訓(xùn)練時loss會劇烈震蕩甚至直接發(fā)散。2.3 多頭注意力為什么要“多此一舉”單個注意力頭只能學(xué)到一種關(guān)注模式但語言中的關(guān)系是多樣的——有的詞關(guān)注語法結(jié)構(gòu)有的詞關(guān)注語義關(guān)聯(lián)有的詞關(guān)注位置鄰近。多頭注意力就是讓模型同時學(xué)習(xí)多組Q、K、V變換每組關(guān)注不同的模式最后把結(jié)果拼接起來再做一次線性變換。假設(shè)有h個頭每個頭的維度是d_k d_model / h。比如d_model512h8那每個頭的維度就是64。這樣總計(jì)算量和單頭差不多但表達(dá)能力更強(qiáng)。實(shí)際使用中頭數(shù)不是越多越好8到16個頭是比較常見的配置再多的話每個頭的維度太小反而學(xué)不到有效特征。2.4 位置編碼沒有它Transformer就是個詞袋自注意力本身不包含位置信息——把句子里的詞打亂順序注意力計(jì)算結(jié)果是一樣的。這顯然不行因?yàn)椤柏堊防鲜蟆焙汀袄鲜笞坟垺币馑纪耆喾?。所以需要位置編碼來注入位置信息。原始Transformer用的是正弦余弦位置編碼def positional_encoding(max_len, d_model): pe torch.zeros(max_len, d_model) position torch.arange(0, max_len).unsqueeze(1).float() div_term torch.exp(torch.arange(0, d_model, 2).float() * -(math.log(10000.0) / d_model)) pe[:, 0::2] torch.sin(position * div_term) pe[:, 1::2] torch.cos(position * div_term) return pe這種編碼的好處是不需要學(xué)習(xí)參數(shù)而且理論上可以外推到訓(xùn)練時沒見過的長度。但實(shí)際中很多現(xiàn)代大模型改用可學(xué)習(xí)的位置編碼或旋轉(zhuǎn)位置編碼RoPE因?yàn)樗鼈冊陂L序列上表現(xiàn)更好。RoPE的核心思想是把位置信息編碼成旋轉(zhuǎn)矩陣讓注意力分?jǐn)?shù)自然攜帶相對位置信息這也是為什么現(xiàn)在很多模型能支持超長上下文的原因之一。3. 大模型訓(xùn)練全流程從原始文本到能對話的模型3.1 預(yù)訓(xùn)練模型“讀萬卷書”的階段預(yù)訓(xùn)練是大模型獲取基礎(chǔ)能力的階段。這個階段的目標(biāo)很簡單給定一段文本預(yù)測下一個詞是什么。聽起來簡單但要在海量數(shù)據(jù)上做好這件事模型必須學(xué)會語法、事實(shí)知識、推理模式甚至一些常識。預(yù)訓(xùn)練的數(shù)據(jù)量通常以萬億token計(jì)。數(shù)據(jù)來源包括網(wǎng)頁文本、書籍、代碼、論文等。數(shù)據(jù)清洗是極其關(guān)鍵的一步——重復(fù)數(shù)據(jù)會導(dǎo)致模型記憶而非泛化低質(zhì)量數(shù)據(jù)會引入噪聲有害數(shù)據(jù)會導(dǎo)致模型輸出問題內(nèi)容。實(shí)際工程中數(shù)據(jù)去重、質(zhì)量過濾、敏感內(nèi)容篩查這些步驟的工作量往往比模型訓(xùn)練本身還大。訓(xùn)練時的關(guān)鍵參數(shù)包括參數(shù)典型值作用學(xué)習(xí)率1e-4到3e-4控制參數(shù)更新幅度批次大小數(shù)百萬token影響梯度穩(wěn)定性和訓(xùn)練效率訓(xùn)練步數(shù)數(shù)十萬到數(shù)百萬步?jīng)Q定模型見過多少數(shù)據(jù)warmup步數(shù)總步數(shù)的1%-5%防止訓(xùn)練初期不穩(wěn)定預(yù)訓(xùn)練的成本極高一次完整的預(yù)訓(xùn)練可能需要數(shù)千張GPU跑數(shù)周。所以大多數(shù)團(tuán)隊(duì)不會從零預(yù)訓(xùn)練而是基于開源基座模型做后續(xù)訓(xùn)練。3.2 監(jiān)督微調(diào)讓模型學(xué)會“聽話”預(yù)訓(xùn)練出來的模型叫基座模型它的能力是“續(xù)寫文本”但你問它問題它可能會給你續(xù)寫更多問題而不是答案。監(jiān)督微調(diào)SFT就是教模型按照特定格式回應(yīng)。SFT的數(shù)據(jù)是“指令-回答”對比如指令解釋什么是過擬合 回答過擬合是指模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)很好但在新數(shù)據(jù)上表現(xiàn)差...這個階段的數(shù)據(jù)量比預(yù)訓(xùn)練小幾個數(shù)量級通常幾萬到幾十萬條就夠。但數(shù)據(jù)質(zhì)量比數(shù)量重要得多——一條高質(zhì)量的回答勝過一百條敷衍的回答。實(shí)際做SFT時數(shù)據(jù)配比很講究要覆蓋問答、寫作、代碼、推理等多種任務(wù)類型否則模型容易在某個方向上過擬合。3.3 人類反饋強(qiáng)化學(xué)習(xí)對齊人類偏好SFT之后模型能回答問題了但回答的風(fēng)格、安全性、有用性還不一定符合人類期望。RLHFReinforcement Learning from Human Feedback就是解決這個問題的。流程分三步第一步讓模型對同一個問題生成多個回答人類標(biāo)注員對這些回答排序第二步用這些排序數(shù)據(jù)訓(xùn)練一個獎勵模型讓它學(xué)會給回答打分第三步用強(qiáng)化學(xué)習(xí)算法通常是PPO優(yōu)化語言模型讓它生成的回答能獲得更高的獎勵分?jǐn)?shù)。這個過程聽起來優(yōu)雅但實(shí)際操作中非常不穩(wěn)定。獎勵模型可能被“鉆空子”——模型學(xué)會生成一些能騙過高分的回答但實(shí)際上質(zhì)量很差。所以現(xiàn)在很多團(tuán)隊(duì)改用DPODirect Preference Optimization等更穩(wěn)定的方法直接優(yōu)化模型而不需要單獨(dú)訓(xùn)練獎勵模型。3.4 實(shí)際訓(xùn)練中的踩坑經(jīng)驗(yàn)我在實(shí)際參與訓(xùn)練任務(wù)時遇到過幾個典型問題。一是loss突然變成NaN排查后發(fā)現(xiàn)是某批數(shù)據(jù)里有超長序列導(dǎo)致梯度爆炸解決方案是加梯度裁剪并檢查數(shù)據(jù)長度分布。二是模型在訓(xùn)練集上表現(xiàn)很好但驗(yàn)證集很差原因是數(shù)據(jù)泄露——訓(xùn)練集和驗(yàn)證集有重疊樣本重新劃分?jǐn)?shù)據(jù)后解決。三是多卡訓(xùn)練時速度不升反降原因是通信開銷大于計(jì)算收益調(diào)整并行策略后才恢復(fù)正常。提示做任何訓(xùn)練任務(wù)之前先用小規(guī)模數(shù)據(jù)跑通全流程確認(rèn)loss能正常下降、模型能正常保存和加載再上大規(guī)模數(shù)據(jù)。這個習(xí)慣能幫你省下大量時間和算力。4. Dify與DeepSeek大模型應(yīng)用落地的兩條典型路徑4.1 Dify解決的是什么問題Dify是一個LLM應(yīng)用開發(fā)平臺它的核心價值在于把大模型應(yīng)用的常見組件——提示詞管理、知識庫檢索、工作流編排、Agent調(diào)度——打包成可視化界面。你不用從零寫代碼就能搭出一個能用的AI應(yīng)用。舉個例子你要做一個企業(yè)內(nèi)部知識問答系統(tǒng)。傳統(tǒng)做法是寫代碼調(diào)用大模型API自己實(shí)現(xiàn)文檔切分和向量化自己搭向量數(shù)據(jù)庫自己寫檢索邏輯自己處理多輪對話。這一套下來沒個一兩周搞不定。用Dify的話上傳文檔、配置檢索參數(shù)、拖拽工作流節(jié)點(diǎn)半天就能跑通原型。Dify的工作流功能特別值得說。它允許你把多個處理步驟串起來比如用戶輸入 → 意圖識別 → 條件分支 → 知識庫檢索 → 大模型生成 → 輸出格式化。每個節(jié)點(diǎn)可以單獨(dú)配置模型、提示詞和參數(shù)。這種設(shè)計(jì)讓復(fù)雜邏輯變得可視化調(diào)試起來也方便。4.2 Dify接入本地大模型的注意事項(xiàng)很多人想把Dify和本地部署的大模型結(jié)合起來既想用Dify的編排能力又想數(shù)據(jù)不出內(nèi)網(wǎng)。這個思路沒問題但有幾個坑要注意。第一模型接口的兼容性。Dify默認(rèn)對接OpenAI格式的API本地模型需要用類似OpenAI兼容的接口暴露出來。很多推理框架都支持這個模式配置時注意端口和路徑要對上。第二上下文長度限制。本地模型的上下文窗口通常比云端小如果Dify的工作流里拼接了太多檢索結(jié)果很容易超長。實(shí)際配置時要在檢索節(jié)點(diǎn)限制返回條數(shù)在提示詞里控制拼接長度。第三SSL證書問題。如果本地服務(wù)用了自簽名證書Dify調(diào)用時可能報(bào)SSL錯誤。解決方案是在Dify的部署環(huán)境里配置信任證書或者在內(nèi)網(wǎng)環(huán)境下使用HTTP僅限完全隔離的網(wǎng)絡(luò)。4.3 DeepSeek的差異化定位DeepSeek系列模型這兩年在技術(shù)社區(qū)討論度很高核心原因是它在推理能力和成本之間找到了一個不錯的平衡點(diǎn)。它的MoE混合專家架構(gòu)讓模型在推理時只激活部分參數(shù)既保證了效果又控制了計(jì)算量。從應(yīng)用角度看DeepSeek適合的場景包括需要較強(qiáng)推理能力的任務(wù)如數(shù)學(xué)題解答、邏輯分析、對成本敏感但要求一定質(zhì)量的場景、以及需要私有化部署的場合。它的API價格相對友好對個人開發(fā)者和小團(tuán)隊(duì)比較友好。實(shí)際使用中DeepSeek在代碼生成和中文理解上表現(xiàn)不錯但在一些需要廣泛世界知識的開放域問答上可能不如參數(shù)規(guī)模更大的模型。選型時不要只看benchmark分?jǐn)?shù)要拿自己的實(shí)際任務(wù)做對比測試。4.4 Dify工作流上下文超長的處理策略這是Dify使用中最常見的問題之一。工作流里如果有多個知識庫檢索節(jié)點(diǎn)每個節(jié)點(diǎn)返回若干文檔片段拼接到提示詞里很容易超過模型上下文限制。處理策略有幾個層次。最直接的是限制檢索返回?cái)?shù)量比如每個知識庫只返回top 3而不是top 10。其次是在檢索后加一個重排序節(jié)點(diǎn)用更精細(xì)的模型篩選最相關(guān)的片段。還可以在提示詞模板里做截?cái)鄡?yōu)先保留開頭和結(jié)尾的內(nèi)容。如果這些還不夠就需要考慮用支持更長上下文的模型或者在架構(gòu)上做分層檢索——先粗篩再精篩。5. OCR與大模型結(jié)合被低估的實(shí)用方向5.1 OCR在大模型時代的角色變化OCR光學(xué)字符識別是一個傳統(tǒng)技術(shù)但在大模型時代它有了新的價值。原因很簡單大模型再強(qiáng)它也只能處理文本輸入。而現(xiàn)實(shí)世界中大量信息是以圖片、掃描件、PDF的形式存在的。OCR就是把這些非文本信息轉(zhuǎn)換成大模型能理解的文本的橋梁。傳統(tǒng)OCR的流程是圖像預(yù)處理 → 文字檢測 → 文字識別 → 后處理。這個流程在標(biāo)準(zhǔn)印刷體上已經(jīng)做得很好了但遇到手寫體、復(fù)雜排版、低質(zhì)量掃描件時錯誤率會明顯上升。大模型給OCR帶來的改變有兩個方向。一是用多模態(tài)大模型直接做端到端的圖文理解跳過傳統(tǒng)OCR的多個步驟。二是用大模型對OCR結(jié)果做后處理和糾錯比如根據(jù)上下文修正識別錯誤的字詞。5.2 實(shí)際項(xiàng)目中的OCR選型思路不同場景對OCR的要求差異很大。如果是處理標(biāo)準(zhǔn)發(fā)票、身份證這類結(jié)構(gòu)化文檔用專門的OCR服務(wù)或開源工具就夠了準(zhǔn)確率高且速度快。如果是處理書籍掃描件、歷史檔案這類復(fù)雜文檔可能需要結(jié)合版面分析和大模型糾錯。代碼層面Python生態(tài)里有不少OCR庫可以用。PaddleOCR在中文場景下表現(xiàn)不錯Tesseract是老牌選擇但中文效果一般。如果要做驗(yàn)證碼識別這類特定任務(wù)通常需要自己訓(xùn)練模型因?yàn)橥ㄓ肙CR對扭曲、干擾線、粘連字符的處理能力有限。from paddleocr import PaddleOCR ocr PaddleOCR(use_angle_clsTrue, langch) result ocr.ocr(document.png, clsTrue) for line in result[0]: print(line[1][0]) # 識別出的文本這段代碼能跑通大部分中文印刷體識別但實(shí)際使用中要注意圖片質(zhì)量。分辨率太低、光照不均、傾斜角度過大都會影響效果。預(yù)處理階段做一下灰度化、二值化、去噪、糾偏識別率能提升不少。5.3 大模型輔助OCR后處理的實(shí)踐OCR識別出來的文本往往有錯別字、斷行錯誤、格式混亂等問題。把OCR結(jié)果丟給大模型做后處理是一個性價比很高的做法。具體操作是把OCR原始結(jié)果和提示詞一起發(fā)給大模型讓它做糾錯和格式化。提示詞可以這樣寫以下是一段OCR識別的文本可能存在錯別字、斷行錯誤或格式問題。 請?jiān)诒3衷獾那疤嵯滦拚e誤輸出格式整潔的文本。 如果某些內(nèi)容無法確定用[?]標(biāo)注。 OCR結(jié)果 {ocr_text}實(shí)測下來大模型對常見錯別字的糾正效果很好對斷行和段落合并的處理也基本合理。但要注意大模型可能會“過度糾正”——把正確的專業(yè)術(shù)語改成它認(rèn)為更常見的詞。所以對于專業(yè)領(lǐng)域的文檔后處理結(jié)果還需要人工抽檢。6. 大模型學(xué)習(xí)中的高頻困惑與應(yīng)對6.1 理論知識和工程實(shí)踐怎么平衡很多人學(xué)大模型時容易走兩個極端。一種是只啃論文和公式把Transformer的每個數(shù)學(xué)推導(dǎo)都搞得清清楚楚但一行代碼沒寫過遇到實(shí)際問題完全不知道從哪下手。另一種是只調(diào)API和跑開源項(xiàng)目能做出demo但說不清原理遇到效果不好也不知道怎么調(diào)。我的建議是“理論夠用就行實(shí)踐必須深入”。具體來說Transformer的核心公式要能手推注意力機(jī)制的計(jì)算過程要能講清楚預(yù)訓(xùn)練和微調(diào)的區(qū)別要能說明白。但不需要把每一篇變體論文都讀完遇到具體問題時再針對性補(bǔ)課。實(shí)踐方面至少要完整跑通過一次模型微調(diào)搭過一個RAG應(yīng)用處理過一次真實(shí)的業(yè)務(wù)需求。6.2 面試和考試中真正會被問到的考點(diǎn)根據(jù)我和同行交流的經(jīng)驗(yàn)大模型相關(guān)的面試和考試高頻考點(diǎn)集中在幾個方向Transformer架構(gòu)細(xì)節(jié)自注意力的計(jì)算、多頭注意力的作用、位置編碼的必要性訓(xùn)練流程預(yù)訓(xùn)練、SFT、RLHF各自的目標(biāo)和數(shù)據(jù)要求推理優(yōu)化KV Cache、量化、蒸餾的基本原理應(yīng)用架構(gòu)RAG的流程、Agent的設(shè)計(jì)模式、提示工程的核心原則評估方法困惑度、BLEU、ROUGE的適用場景和局限這些問題很少要求你背出精確的公式但要求你能用自己的話解釋清楚“為什么這樣設(shè)計(jì)”和“什么情況下會出問題”。6.3 工具和框架的學(xué)習(xí)優(yōu)先級大模型生態(tài)里的工具太多了LangChain、Dify、CrewAI、LlamaIndex等等每個都有自己的定位。零基礎(chǔ)的人容易陷入“工具焦慮”——這個還沒學(xué)完那個又火了。我的建議是按需求驅(qū)動學(xué)習(xí)。如果你要做知識庫問答先學(xué)Dify或LlamaIndex如果你要做復(fù)雜的Agent編排看LangChain或CrewAI如果你只是要調(diào)用模型API做簡單應(yīng)用直接看官方文檔就夠了。不要為了學(xué)工具而學(xué)工具工具是解決問題的不是用來收藏的。6.4 持續(xù)學(xué)習(xí)的節(jié)奏把控大模型領(lǐng)域變化快但底層的東西變化慢。Transformer是2017年的論文到現(xiàn)在核心思想沒變過。注意力機(jī)制、位置編碼、殘差連接這些基礎(chǔ)組件幾年內(nèi)不太可能被完全替代。所以學(xué)習(xí)節(jié)奏可以這樣安排底層原理花20%的時間搞扎實(shí)主流工具花30%的時間動手實(shí)踐剩下50%的時間跟進(jìn)行業(yè)動態(tài)和具體業(yè)務(wù)場景。不要被每天的新論文和新模型嚇到大部分都是增量改進(jìn)核心骨架沒變。7. 一些實(shí)際踩過的坑和總結(jié)的經(jīng)驗(yàn)說幾個我在實(shí)際工作中踩過的坑都是教程里不會寫但實(shí)際一定會遇到的。第一個坑是環(huán)境配置。大模型相關(guān)的工具鏈對版本很敏感PyTorch、CUDA、Python版本之間有一堆兼容性要求。我遇到過裝了半天發(fā)現(xiàn)CUDA版本和顯卡驅(qū)動不匹配也遇到過某個庫依賴的numpy版本和另一個庫沖突。后來養(yǎng)成的習(xí)慣是每個項(xiàng)目用獨(dú)立的虛擬環(huán)境用conda或venv隔離把依賴版本寫死在requirements.txt里。第二個坑是數(shù)據(jù)質(zhì)量。做RAG應(yīng)用時我一開始覺得只要把文檔丟進(jìn)向量數(shù)據(jù)庫就行了。實(shí)際跑起來發(fā)現(xiàn)檢索效果差得離譜。排查后發(fā)現(xiàn)是文檔切分有問題——按固定長度切分把完整的段落切碎了導(dǎo)致檢索到的片段缺乏上下文。后來改成按語義切分并在每個片段前加上所屬章節(jié)的標(biāo)題檢索準(zhǔn)確率明顯提升。第三個坑是評估缺失。做應(yīng)用開發(fā)時很容易陷入“感覺效果還行”的狀態(tài)。但沒有量化評估你根本不知道改動是變好了還是變差了。后來我養(yǎng)成了習(xí)慣任何改動之前先準(zhǔn)備一組測試問題記錄當(dāng)前版本的準(zhǔn)確率改完之后再跑一遍對比。這個習(xí)慣讓迭代效率提升了很多。第四個坑是過度依賴大模型。有些任務(wù)其實(shí)用規(guī)則或小模型就能解決但因?yàn)榇竽P陀闷饋矸奖憔褪裁炊紒G給它。結(jié)果成本上去了延遲也上去了。后來學(xué)會判斷簡單分類用規(guī)則固定格式提取用正則只有需要理解和生成的復(fù)雜任務(wù)才用大模型。注意大模型不是萬能的它擅長的是語言理解和生成不擅長精確計(jì)算、實(shí)時信息查詢和確定性邏輯。把合適的任務(wù)交給合適的工具才是工程思維。最后分享一個實(shí)用技巧學(xué)習(xí)大模型最好的方式不是看教程而是找一個真實(shí)的小需求從頭到尾做一遍。比如做一個“自動整理會議紀(jì)要”的工具或者做一個“根據(jù)描述生成SQL查詢”的助手。做的過程中你會遇到各種問題解決這些問題的過程就是最好的學(xué)習(xí)。