測(cè)評(píng)估指南:Proper Scoring Rules如何塑造模型概率輸出)
做LLM預(yù)測(cè)LLM Forecasting之前我一直低估了評(píng)估指標(biāo)的力量——一個(gè)Proper Scoring Rules正確評(píng)分規(guī)則的選型直接決定了模型在預(yù)測(cè)任務(wù)上長(zhǎng)成什么樣。這兩年我陸續(xù)在幾個(gè)預(yù)測(cè)類(lèi)產(chǎn)品里用大模型做概率判斷、趨勢(shì)估計(jì)和風(fēng)險(xiǎn)打分踩了很多評(píng)估上的坑之后才明白不是模型不會(huì)預(yù)測(cè)而是你用什么尺子去量它它就會(huì)朝什么方向長(zhǎng)。這篇文章就把這塊經(jīng)驗(yàn)完整梳理一遍從評(píng)分規(guī)則的原理到它對(duì)LLM訓(xùn)練和推理的隱性影響再到完整的實(shí)操流程和排錯(cuò)清單希望對(duì)正在做預(yù)測(cè)類(lèi)LLM應(yīng)用的同學(xué)有實(shí)際幫助。1. 為什么LLM預(yù)測(cè)繞不開(kāi)評(píng)分規(guī)則1.1 準(zhǔn)確率不是萬(wàn)能的預(yù)測(cè)問(wèn)題需要概率化評(píng)估我們做LLM應(yīng)用時(shí)習(xí)慣性用準(zhǔn)確率來(lái)評(píng)判模型效果預(yù)測(cè)漲了結(jié)果真漲了就算對(duì)預(yù)測(cè)跌了結(jié)果漲了就算錯(cuò)。但真實(shí)場(chǎng)景里L(fēng)LM預(yù)測(cè)很少是一個(gè)二選一的判斷題它通常要求模型輸出一個(gè)概率比如明日指數(shù)上漲的可能性是68%未來(lái)三個(gè)月需求波動(dòng)超過(guò)20%的概率為四成。這時(shí)候用準(zhǔn)確率去評(píng)估就完全失真了——你只會(huì)得到一個(gè)二值化的判定而模型輸出里最關(guān)鍵的概率信息被徹底丟棄。舉個(gè)直觀的例子模型A預(yù)測(cè)某事件發(fā)生概率為51%模型B預(yù)測(cè)為99%如果事件確實(shí)發(fā)生了用準(zhǔn)確率看兩者都是正確但顯然模型B的判斷質(zhì)量遠(yuǎn)高于模型A。反過(guò)來(lái)如果事件沒(méi)有發(fā)生模型A預(yù)測(cè)51%可能只是輕微偏差模型B預(yù)測(cè)99%就是極端置信下的巨大失誤準(zhǔn)確率卻一視同仁地把兩者都判為錯(cuò)誤。這種粗糙的評(píng)估方式無(wú)法區(qū)分蒙對(duì)的預(yù)測(cè)和真正理解不確定性的預(yù)測(cè)也就沒(méi)法指導(dǎo)你下一步該怎么優(yōu)化模型。所以做預(yù)測(cè)類(lèi)應(yīng)用第一步就是拋棄準(zhǔn)確率思維換成能對(duì)概率質(zhì)量打分的評(píng)估指標(biāo)。這也是我在實(shí)際項(xiàng)目里踩過(guò)最大的坑一開(kāi)始用Accuracy衡量模型結(jié)果模型越調(diào)越極端輸出概率全部往0和1兩端擠因?yàn)檫@樣做更容易猜對(duì)。后來(lái)?yè)Q成了Proper Scoring Rules正確評(píng)分規(guī)則來(lái)做評(píng)估模型的概率分布才變得合理起來(lái)。1.2 Brier Score與Log Loss最基礎(chǔ)的兩個(gè)正確評(píng)分規(guī)則Proper Scoring Rules是一類(lèi)評(píng)分函數(shù)的統(tǒng)稱(chēng)核心性質(zhì)是當(dāng)預(yù)測(cè)者真實(shí)相信某個(gè)概率p時(shí)按照p來(lái)報(bào)告預(yù)測(cè)才能拿到最優(yōu)的期望分?jǐn)?shù)。也就是說(shuō)誠(chéng)實(shí)報(bào)告是最好的策略任何虛報(bào)、極端化、保守化的報(bào)告都會(huì)在期望上吃虧。這個(gè)性質(zhì)對(duì)LLM尤其重要因?yàn)樗o了模型一個(gè)說(shuō)真話(huà)的數(shù)學(xué)激勵(lì)。實(shí)操中最常用的兩個(gè)評(píng)分規(guī)則是Brier Score和Log Loss對(duì)數(shù)損失。Brier Score的計(jì)算方式是預(yù)測(cè)概率與實(shí)際結(jié)果之差的平方公式很簡(jiǎn)單[ Brier \frac{1}{N} \sum_{i1}^{N} (p_i - y_i)^2 ]其中p_i是模型給出的概率y_i是實(shí)際結(jié)果發(fā)生為1不發(fā)生為0。Brier Score的范圍是0到1越小越好。Log Loss則是取實(shí)際發(fā)生結(jié)果對(duì)應(yīng)的預(yù)測(cè)概率的負(fù)對(duì)數(shù)[ LogLoss -\frac{1}{N} \sum_{i1}^{N} [y_i \cdot log(p_i) (1 - y_i) \cdot log(1 - p_i)] ]兩者性質(zhì)上有些微妙差別指標(biāo)對(duì)極端錯(cuò)誤的懲罰對(duì)中間概率的偏好適用場(chǎng)景Brier Score溫和按平方懲罰相對(duì)友好一般分類(lèi)、比賽評(píng)估、業(yè)務(wù)風(fēng)控Log Loss極強(qiáng)概率趨近0/1時(shí)損失趨近無(wú)窮鼓勵(lì)概率不要過(guò)于極端需要避免過(guò)度自信的場(chǎng)景CRPS連續(xù)值擴(kuò)展版對(duì)分布整體打分銷(xiāo)量預(yù)測(cè)、天氣預(yù)測(cè)、量化交易Log Loss對(duì)模型在完全錯(cuò)誤方向上的極端自信比如預(yù)測(cè)99%結(jié)果卻錯(cuò)了懲罰極其猛烈這是比Brier Score更敏感的診斷工具也是為什么很多前沿預(yù)測(cè)競(jìng)賽選擇用它做最終排名的原因。1.3 用錯(cuò)評(píng)分規(guī)則的代價(jià)模型會(huì)學(xué)會(huì)鉆空子我不止一次看到團(tuán)隊(duì)在評(píng)估LLM預(yù)測(cè)時(shí)用了一套不合適的規(guī)則導(dǎo)致模型的預(yù)測(cè)行為被帶偏。最有名的案例邏輯是這樣的如果評(píng)估只看預(yù)測(cè)概率是否超過(guò)50%這個(gè)閾值那么模型只要把概率盡量往極值推就能最大化命中率——反正超過(guò)50%就算贏。結(jié)果就是模型輸出的概率嚴(yán)重失真看起來(lái)預(yù)測(cè)很自信實(shí)際上完全經(jīng)不起校準(zhǔn)檢驗(yàn)。Proper Scoring Rules之所以proper在于它天然杜絕了這種鉆空子行為。如果你真實(shí)認(rèn)為概率是70%虛報(bào)到90%并不能提高你的期望得分因?yàn)锽rier Score和Log Loss都懲罰過(guò)度自信虛報(bào)到50%也同樣吃虧因?yàn)檫@會(huì)損失你在正確方向上的一部分正收益。這種機(jī)制保證了誠(chéng)實(shí)報(bào)告的期望收益最大化。再往深一層想評(píng)分規(guī)則不只是事后評(píng)估工具它本質(zhì)上是優(yōu)化目標(biāo)的載體。無(wú)論你是在做RLHF獎(jiǎng)勵(lì)模型還是在下游任務(wù)里微調(diào)LoRA只要損失函數(shù)里隱含了對(duì)預(yù)測(cè)行為的衡量評(píng)分規(guī)則就在悄悄改變模型的策略空間。所以選對(duì)評(píng)分規(guī)則本質(zhì)上是在給模型立規(guī)矩——這也是Proper Scoring Rules Shape LLM Forecasting這句話(huà)背后最核心的機(jī)制。2. 評(píng)分規(guī)則如何反向塑造LLM的預(yù)測(cè)行為2.1 交叉熵?fù)p失LLM從出生就在被評(píng)分規(guī)則訓(xùn)練聊到LLM工作原理很多人第一反應(yīng)是預(yù)測(cè)下一個(gè)token但很少有人在預(yù)測(cè)下一個(gè)token和Proper Scoring Rules之間畫(huà)等號(hào)。事實(shí)上LLM預(yù)訓(xùn)練階段的損失函數(shù)——交叉熵?fù)p失就是Log Loss的廣義版本。模型每預(yù)測(cè)一個(gè)token都是在給整個(gè)詞表上的每個(gè)候選詞分配一個(gè)概率分布然后用真實(shí)token對(duì)應(yīng)位置的負(fù)對(duì)數(shù)似然作為損失。所以嚴(yán)格來(lái)說(shuō)LLM在訓(xùn)練階段已經(jīng)經(jīng)歷了海量的評(píng)分規(guī)則優(yōu)化它被反復(fù)訓(xùn)練成盡可能準(zhǔn)確地用概率表達(dá)下一個(gè)token的可能性。這帶來(lái)一個(gè)有意思的推論——大模型的底層表征對(duì)概率預(yù)測(cè)是有先天敏感度的它天生被訓(xùn)練為不撒謊的概率預(yù)測(cè)器。但問(wèn)題是這個(gè)訓(xùn)練目標(biāo)是在token空間里而不是在用戶(hù)問(wèn)的事件空間里。當(dāng)你問(wèn)模型你覺(jué)得明天漲的概率有多少時(shí)模型需要把它在海量文本里學(xué)到的統(tǒng)計(jì)規(guī)律轉(zhuǎn)化成一個(gè)具體領(lǐng)域的概率數(shù)值。這個(gè)過(guò)程容易出錯(cuò)原因有兩個(gè)第一事件空間的邊界模糊用戶(hù)說(shuō)上漲到底指漲幅超過(guò)多少第二模型在文本生成過(guò)程中受語(yǔ)氣、上下文、角色設(shè)定的影響太大容易被帶偏。所以雖然底層機(jī)制在誠(chéng)實(shí)預(yù)測(cè)但表層輸出卻容易出現(xiàn)各種偏差。2.2 對(duì)齊階段的隱性信號(hào)獎(jiǎng)勵(lì)函數(shù)也在用評(píng)分邏輯到了RLHF基于人類(lèi)反饋的強(qiáng)化學(xué)習(xí)階段評(píng)分規(guī)則的影響就更加直接了。RLHF的核心是訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型來(lái)模擬人類(lèi)偏好然后用強(qiáng)化學(xué)習(xí)讓LLM的輸出拿到更高獎(jiǎng)勵(lì)。如果你希望LLM在預(yù)測(cè)任務(wù)上表現(xiàn)好那么獎(jiǎng)勵(lì)模型的構(gòu)建方式、評(píng)估數(shù)據(jù)的標(biāo)注方式本質(zhì)上就是在定義一個(gè)評(píng)分規(guī)則。我做預(yù)測(cè)類(lèi)產(chǎn)品時(shí)觀察到一個(gè)很典型的例子人類(lèi)標(biāo)注員在評(píng)估LLM預(yù)測(cè)質(zhì)量時(shí)天然傾向于結(jié)果對(duì)了就打高分結(jié)果錯(cuò)了就打低分而不是去評(píng)估模型給出的概率是否合理。這樣一來(lái)獎(jiǎng)勵(lì)模型就變成了一個(gè)二值化的馬后炮評(píng)判器模型在RLHF階段學(xué)到的策略就會(huì)變成要么給出模糊的、難以證偽的預(yù)測(cè)要么在內(nèi)部自我確認(rèn)后給出極端概率盡量規(guī)避被打低分的風(fēng)險(xiǎn)。這就解釋了為什么很多通用LLM在零樣本預(yù)測(cè)任務(wù)上表現(xiàn)不理想——它被對(duì)齊成了讓人滿(mǎn)意而非預(yù)測(cè)準(zhǔn)確。想糾正這一點(diǎn)要么在提示詞層面設(shè)計(jì)更精細(xì)的評(píng)估框架要么在微調(diào)階段直接用Brier Score或Log Loss這類(lèi)Proper Scoring Rules作為獎(jiǎng)勵(lì)函數(shù)的一部分。后者已經(jīng)有研究論文在探索核心思想是讓強(qiáng)化學(xué)習(xí)的獎(jiǎng)勵(lì)信號(hào)來(lái)自校準(zhǔn)的預(yù)測(cè)質(zhì)量而不是人類(lèi)的事后主觀判斷。2.3 置信度與校準(zhǔn)模型的概率輸出值不值得信評(píng)估LLM預(yù)測(cè)時(shí)我特別看重一個(gè)概念校準(zhǔn)度Calibration。校準(zhǔn)度指的是當(dāng)模型說(shuō)某事有70%概率發(fā)生時(shí)這件事在現(xiàn)實(shí)中是否真的以接近70%的頻率發(fā)生。一個(gè)高度校準(zhǔn)的模型它的概率輸出與真實(shí)頻率高度吻合而一個(gè)校準(zhǔn)差的模型可能說(shuō)70%但實(shí)際只有40%也可能說(shuō)60%但實(shí)際到80%。用生活化的方式理解校準(zhǔn)一個(gè)天氣預(yù)報(bào)員如果說(shuō)明天降雨概率70%那么一周之內(nèi)他給出70%預(yù)報(bào)的日子應(yīng)該有大約7成真的下雨。如果實(shí)際只有3天下雨那這個(gè)預(yù)報(bào)員就嚴(yán)重過(guò)度自信了。LLM也是如此我見(jiàn)到太多模型在回答預(yù)測(cè)類(lèi)問(wèn)題時(shí)傾向于輸出80%到95%的高概率區(qū)間無(wú)論問(wèn)題多難、信息多不充分。這種過(guò)度自信本質(zhì)上是模型生成聽(tīng)起來(lái)合理文本的副作用而不是真實(shí)的不確定性表達(dá)。校準(zhǔn)度與評(píng)分規(guī)則的關(guān)系非常密切Brier Score和Log Loss都可以分解為校準(zhǔn)誤差和銳度兩部分。校準(zhǔn)誤差衡量的是預(yù)測(cè)概率與實(shí)際頻率的系統(tǒng)性偏差銳度衡量的是預(yù)測(cè)分布的尖銳程度——一個(gè)總是輸出50%的模型校準(zhǔn)可能很好但銳度很差因?yàn)樗鼪](méi)有提供任何有效區(qū)分信息。Proper Scoring Rules同時(shí)懲罰校準(zhǔn)誤差和銳度的不均衡所以它評(píng)估的不只是準(zhǔn)不準(zhǔn)還有有沒(méi)有信息量。2.4 輸出空間的選擇文本、JSON、還是多次采樣在真實(shí)系統(tǒng)里L(fēng)LM預(yù)測(cè)的輸出形式直接影響評(píng)分質(zhì)量。我建議預(yù)測(cè)類(lèi)應(yīng)用盡量不要讓模型自由發(fā)揮輸出一段包含概率的文字描述因?yàn)榻馕龀杀靖摺⒏怕嗜菀兹笔?、語(yǔ)義模糊。更務(wù)實(shí)的做法是定義嚴(yán)格的輸出schema讓模型結(jié)構(gòu)化的輸出JSON比如{ event: stock_index_up, probability: 0.68, confidence_interval: [0.55, 0.80], reasoning: 基于近期流動(dòng)性改善和情緒修復(fù) }不過(guò)要注意一點(diǎn)很多LLM平臺(tái)比如接入LLM時(shí)常用的dify或自研框架在配置模型輸出時(shí)默認(rèn)會(huì)讓模型附帶思考過(guò)程或推理鏈路這在對(duì)話(huà)場(chǎng)景里很有用但用在預(yù)測(cè)打分場(chǎng)景里就是災(zāi)難——思考過(guò)程會(huì)占用token預(yù)算導(dǎo)致schema輸出被截?cái)嗌踔涟迅怕手禂D到被忽略的位置。所以接入時(shí)一定要顯式關(guān)閉輸出思考過(guò)程或者設(shè)置合理的max_tokens讓模型優(yōu)先保證結(jié)構(gòu)化字段的完整性。另外單個(gè)采樣得到的概率值方差很大。同一個(gè)prompt在temperature1.0下跑十次可能得到0.4、0.5、0.7、0.35這樣跳來(lái)跳去的結(jié)果。一個(gè)很有效的工程技巧是多次采樣取均值或者對(duì)多個(gè)采樣結(jié)果做整體分布統(tǒng)計(jì)把模型平均概率作為最終輸出。這本質(zhì)上是在用蒙特卡洛方法平滑單次生成的隨機(jī)性得到更穩(wěn)定的概率估計(jì)。3. 實(shí)操給LLM搭一套評(píng)分與校準(zhǔn)的完整流程3.1 任務(wù)定義與數(shù)據(jù)準(zhǔn)備先確定你要預(yù)測(cè)什么完整流程的第一步是明確定義預(yù)測(cè)任務(wù)。我以一個(gè)很常見(jiàn)的場(chǎng)景為例預(yù)測(cè)某只股票未來(lái)五個(gè)交易日的漲跌概率。這類(lèi)任務(wù)有兩個(gè)好處一是結(jié)果可驗(yàn)證五天后數(shù)據(jù)自然出結(jié)果二是能持續(xù)積累測(cè)試集方便做長(zhǎng)期的評(píng)分追蹤。數(shù)據(jù)準(zhǔn)備階段要注意把歷史數(shù)據(jù)切成獨(dú)立的樣本避免數(shù)據(jù)泄漏。比如你計(jì)劃用過(guò)去兩年的數(shù)據(jù)進(jìn)行回測(cè)就要把數(shù)據(jù)集按時(shí)間順序劃分訓(xùn)練窗口在時(shí)間上嚴(yán)格早于測(cè)試窗口。預(yù)測(cè)日期、預(yù)測(cè)事件漲跌幅閾值、實(shí)際結(jié)果是三個(gè)核心字段。不要用模型已經(jīng)見(jiàn)過(guò)的未來(lái)信息去提示它哪怕你只是在prompt里無(wú)意中提到了本周市場(chǎng)已經(jīng)上漲了3%這都會(huì)干擾測(cè)試的有效性。3.2 設(shè)計(jì)Prompt模板與輸出Schema提示詞模板的質(zhì)量直接影響預(yù)測(cè)效果。我的經(jīng)驗(yàn)是預(yù)測(cè)類(lèi)Prompt應(yīng)該包含四部分任務(wù)背景、輸入數(shù)據(jù)、預(yù)測(cè)要求、輸出格式。任務(wù)背景要講清楚你是一個(gè)資深策略分析師之類(lèi)角色設(shè)置但不建議過(guò)度渲染角色因?yàn)檫^(guò)度角色化會(huì)讓模型傾向于輸出有觀點(diǎn)而不是有概率的結(jié)論。輸入數(shù)據(jù)部分盡量用簡(jiǎn)潔的表格或列表呈現(xiàn)避免大段文字把模型的注意力帶偏。預(yù)測(cè)要求部分要顯式寫(xiě)清楚請(qǐng)基于給定信息給出嚴(yán)謹(jǐn)?shù)母怕逝袛嗖灰獮榱肆?chǎng)而極端化概率如果信息不足請(qǐng)適當(dāng)降低置信度。這類(lèi)句子能一定程度上抑制模型的過(guò)度自信。輸出格式部分用JSON Schema描述得越具體越好同時(shí)附上最少一個(gè)示例模型對(duì)few-shot格式的學(xué)習(xí)能力遠(yuǎn)強(qiáng)于對(duì)純描述的遵循能力。一個(gè)我在項(xiàng)目中反復(fù)調(diào)優(yōu)后的Prompt模板大致長(zhǎng)這樣你是一位嚴(yán)格遵循貝葉斯思維的概率預(yù)測(cè)助手。請(qǐng)根據(jù)以下歷史數(shù)據(jù)和市場(chǎng)背景 預(yù)測(cè)目標(biāo)事件發(fā)生的概率。注意概率必須是校準(zhǔn)的即你認(rèn)為有70%把握時(shí) 事件實(shí)際發(fā)生頻率應(yīng)接近70%。 [數(shù)據(jù)輸入] 股票X近20個(gè)交易日收盤(pán)價(jià) [...] 近期成交量變化 [...] [任務(wù)] 預(yù)測(cè)3個(gè)交易日內(nèi)股票X收盤(pán)價(jià)上漲超過(guò)1%的概率是多少 請(qǐng)輸出JSON格式{probability: 0到1之間的小數(shù), reasoning: 不超過(guò)50字的依據(jù)} [要求] 1. 嚴(yán)格輸出JSON不要輸出其他內(nèi)容。 2. probability必須是0到1之間的數(shù)字不要使用百分比字符串。3.3 采樣、解析與評(píng)分計(jì)算拿到模型的輸出后先做解析和過(guò)濾。我會(huì)用JSON解析庫(kù)讀取probability字段如果解析失敗就把該樣本標(biāo)記為異常如果reasoning字段缺失但不影響概率解析也可以保留。多做一步很值得對(duì)同一個(gè)預(yù)測(cè)任務(wù)重復(fù)采樣3到5次把多次概率取平均后作為最終預(yù)測(cè)值。實(shí)測(cè)下來(lái)多次采樣平均能把單次生成的隨機(jī)噪聲大幅降低校準(zhǔn)表現(xiàn)更穩(wěn)定。接下來(lái)就是評(píng)分環(huán)節(jié)。這里給出一個(gè)可直接復(fù)制的Python實(shí)現(xiàn)用來(lái)計(jì)算Brier Score和Log Lossimport numpy as np from sklearn.metrics import brier_score_loss, log_loss # predictions和outcomes是平行數(shù)組 # predictions是0到1之間的概率outcomes是0或1的實(shí)際結(jié)果 predictions np.array([0.68, 0.42, 0.90, 0.31, 0.75]) outcomes np.array([1, 0, 1, 0, 1]) brier brier_score_loss(outcomes, predictions) ll log_loss(outcomes, predictions, labels[0, 1]) print(fBrier Score: {brier:.4f}) print(fLog Loss: {ll:.4f}) # 對(duì)比baseline預(yù)測(cè)長(zhǎng)期基準(zhǔn)頻率比如樣本中正類(lèi)占比 base_rate outcomes.mean() baseline_pred np.full_like(predictions, base_rate) brier_base brier_score_loss(outcomes, baseline_pred) ll_base log_loss(outcomes, baseline_pred, labels[0, 1]) print(fBaseline Brier: {brier_base:.4f}) print(fBaseline Log Loss: {ll_base:.4f})如果模型的Brier Score和Log Loss比baseline好不了太多說(shuō)明模型并沒(méi)有真正學(xué)到預(yù)測(cè)信號(hào)只是在輸出感覺(jué)上合理的概率。這個(gè)對(duì)比基準(zhǔn)是很多團(tuán)隊(duì)最容易漏掉的一步——不做baseline對(duì)比你根本不知道模型的絕對(duì)分?jǐn)?shù)是優(yōu)秀還是不及格。3.4 校準(zhǔn)檢查與溫度調(diào)節(jié)評(píng)分計(jì)算完之后一定要做校準(zhǔn)檢查。最簡(jiǎn)單高效的診斷手段是可靠性圖Reliability Diagram把預(yù)測(cè)概率分為幾個(gè)區(qū)間比如0-0.1、0.1-0.2……0.9-1.0然后統(tǒng)計(jì)每個(gè)區(qū)間的實(shí)際結(jié)果頻率看兩者是否接近對(duì)角線(xiàn)。如果點(diǎn)都落在對(duì)角線(xiàn)下方說(shuō)明模型整體過(guò)度自信落在線(xiàn)下方說(shuō)明預(yù)測(cè)概率系統(tǒng)性偏高。修正校準(zhǔn)偏差有幾種常用手段。第一種是溫度縮放Temperature Scaling把模型的logits除以一個(gè)常數(shù)溫度T后再做softmaxT越大預(yù)測(cè)概率越趨于平滑。對(duì)LLM而言temperature參數(shù)不僅影響生成多樣性也直接影響概率輸出的銳度降低temperature能讓輸出概率更保守、更集中。第二種是經(jīng)驗(yàn)校準(zhǔn)Empirical Calibration收集模型在歷史測(cè)試集上的預(yù)測(cè)結(jié)果擬合一個(gè)從模型概率到實(shí)際頻率的映射函數(shù)然后再對(duì)后續(xù)預(yù)測(cè)做映射修正。這個(gè)方法在工程上最實(shí)用等于是給模型加了一層事后的誠(chéng)實(shí)化校正。第三種是用提示詞引導(dǎo)告訴模型如果你的預(yù)測(cè)過(guò)度自信請(qǐng)降低概率之類(lèi)的話(huà)效果存在但不如前兩種穩(wěn)定。我在一個(gè)實(shí)際項(xiàng)目里用溫度縮放做了一組對(duì)比測(cè)試temperature0.2時(shí)模型的Brier Score比temperature1.0時(shí)改善了約30%主要原因是極端概率的出現(xiàn)頻率明顯下降校準(zhǔn)曲線(xiàn)更貼近對(duì)角線(xiàn)。但溫度過(guò)低也會(huì)導(dǎo)致預(yù)測(cè)喪失區(qū)分度所以最終參數(shù)通常需要通過(guò)驗(yàn)證集調(diào)優(yōu)而不是盲目取低。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 請(qǐng)求超時(shí)與模型無(wú)響應(yīng)預(yù)測(cè)類(lèi)應(yīng)用經(jīng)常遇到LLM請(qǐng)求超時(shí)報(bào)錯(cuò)信息是llm request timed out. the model did not produce a response before the deadline。這類(lèi)問(wèn)題的根因通常不是網(wǎng)絡(luò)而是模型在生成長(zhǎng)篇思考過(guò)程或reasoning字段時(shí)消耗了過(guò)多token導(dǎo)致響應(yīng)時(shí)間超過(guò)網(wǎng)關(guān)設(shè)置的閾值。排查思路很直接先看調(diào)用日志里實(shí)際生成的token數(shù)再看max_tokens配置是否過(guò)小最后看prompt是否觸發(fā)了模型輸出大量分析文本。我的做法是預(yù)測(cè)類(lèi)任務(wù)統(tǒng)一設(shè)置max_tokens在200到500之間并顯式要求模型不要輸出除JSON外的任何解釋性?xún)?nèi)容。如果任務(wù)本身需要復(fù)雜的邏輯推理就把推理拆到單獨(dú)一個(gè)prompt里完成再讓另一個(gè)prompt基于推理結(jié)果輸出預(yù)測(cè)。這樣能避免一個(gè)請(qǐng)求干太多事導(dǎo)致的超時(shí)問(wèn)題代價(jià)是增加了調(diào)用次數(shù)但勝在穩(wěn)定可控。4.2 模型不按Schema輸出接入LLM平臺(tái)時(shí)經(jīng)常遇到provider rejected the request schema or tool payload這類(lèi)錯(cuò)誤。出現(xiàn)這個(gè)問(wèn)題的原因通常是輸出schema定義過(guò)于復(fù)雜或者使用了平臺(tái)不支持的類(lèi)型標(biāo)簽。文檔里說(shuō)得清楚但實(shí)際踩坑時(shí)才發(fā)現(xiàn)很多平臺(tái)只支持部分JSON Schema特性。我的建議是schema盡量扁平不要嵌套太深boolean類(lèi)型能不用就不用統(tǒng)一用0/1或字符串替代數(shù)組元素類(lèi)型保持一致避免混合類(lèi)型。另外就是容錯(cuò)解析。即便schema定義正確模型偶爾也會(huì)輸出殘缺的JSON尤其當(dāng)token預(yù)算吃緊時(shí)。我習(xí)慣在解析層做三層兜底第一層直接json.loads第二層用正則提取probability字段第三層如果提取失敗就把這條樣本標(biāo)記為預(yù)測(cè)失敗讓它不參與評(píng)分。千萬(wàn)不要讓解析失敗拖垮整個(gè)評(píng)分流程記錄好失敗率本身也是一個(gè)重要的質(zhì)量指標(biāo)。4.3 預(yù)測(cè)概率輸出不穩(wěn)定同一個(gè)prompt同一個(gè)模型連續(xù)跑三次得到完全不同的概率這是概率輸出不穩(wěn)定問(wèn)題。模型生成存在隨機(jī)性這是常識(shí)但對(duì)預(yù)測(cè)類(lèi)應(yīng)用來(lái)說(shuō)這種不穩(wěn)定是致命的因?yàn)橛脩?hù)會(huì)質(zhì)疑系統(tǒng)的專(zhuān)業(yè)性。最有效的治理手段是多次采樣平均。我在工程里會(huì)把采樣次數(shù)設(shè)為5逐個(gè)請(qǐng)求再合并結(jié)果計(jì)算平均概率和標(biāo)準(zhǔn)差。標(biāo)準(zhǔn)差本身也能提供額外信息如果某個(gè)預(yù)測(cè)問(wèn)題的標(biāo)準(zhǔn)差特別大說(shuō)明模型對(duì)這個(gè)問(wèn)題沒(méi)有一致的意見(jiàn)這個(gè)預(yù)測(cè)本身就更值得懷疑。這一招在金融預(yù)測(cè)類(lèi)場(chǎng)景里尤其好用可以把模型不確定變成產(chǎn)品的一個(gè)賣(mài)點(diǎn)。另外很多推理框架支持設(shè)置隨機(jī)種子固定seed能讓同一輸入得到穩(wěn)定輸出適合A/B測(cè)試對(duì)齊場(chǎng)景。4.4 模型過(guò)度自信輸出永遠(yuǎn)在90%以上我遇到最多的預(yù)測(cè)質(zhì)量問(wèn)題就是LLM無(wú)論什么問(wèn)題都給出80%以上的高概率似乎什么事件都很有把握。這類(lèi)問(wèn)題光看Brier Score不容易發(fā)現(xiàn)因?yàn)樗袝r(shí)甚至能拿到不錯(cuò)的分?jǐn)?shù)但要疊加可靠性圖就原形畢露——預(yù)測(cè)90%的樣本實(shí)際準(zhǔn)確率可能只有60%。診斷方法把多次預(yù)測(cè)結(jié)果按概率分箱統(tǒng)計(jì)各箱的實(shí)際頻率。如果預(yù)測(cè)概率和實(shí)際頻率的系統(tǒng)偏差很規(guī)律首選溫度縮放如果偏差集中在某個(gè)概率段考慮用經(jīng)驗(yàn)校準(zhǔn)映射。我見(jiàn)過(guò)一個(gè)比較離譜的case模型因?yàn)橄到y(tǒng)提示詞里寫(xiě)了你是專(zhuān)家級(jí)分析師結(jié)果把專(zhuān)家理解成必須自信所有預(yù)測(cè)都往90%以上走。把角色設(shè)定改成嚴(yán)謹(jǐn)、承認(rèn)不確定性的科研人員后概率分布立刻恢復(fù)正常。所以排查時(shí)先看提示詞的角色設(shè)定是否在誘導(dǎo)模型極端輸出這一條往往被人忽略但其實(shí)改動(dòng)成本最低、效果最直接。最后做個(gè)小結(jié)之外的經(jīng)驗(yàn)分享做LLM預(yù)測(cè)評(píng)估別把目光只盯在猜得對(duì)不對(duì)上。我個(gè)人的體會(huì)是一套靠譜的評(píng)分體系加上校準(zhǔn)檢查比換更大的模型、調(diào)更長(zhǎng)的prompt帶來(lái)的提升都明顯。評(píng)估規(guī)則設(shè)計(jì)好了模型自然會(huì)被引導(dǎo)著輸出更誠(chéng)實(shí)、更有區(qū)分度的預(yù)測(cè)——這個(gè)先有尺子再量長(zhǎng)度的思路比你反復(fù)試各種提示詞技巧重要得多。如果你也在做類(lèi)似的預(yù)測(cè)應(yīng)用建議從Log Loss加可靠性圖的組合開(kāi)始先跑通再優(yōu)化這個(gè)基礎(chǔ)打牢之后后續(xù)的模型微調(diào)和提示詞工程才有可靠的標(biāo)尺。