AI產(chǎn)品經(jīng)理必修課:如何提升AI智能體輸出的確定性?
AI智能體的生成內(nèi)容有很大的不確定性,如何提升輸出確定性?本篇文章深入探討 AI 生成內(nèi)容的穩(wěn)定性問題,分析影響智能體輸出的關(guān)鍵因素,并提供實(shí)用策略,幫助產(chǎn)品經(jīng)理優(yōu)化 AI 交互體驗(yàn),讓智能體的回答更加精準(zhǔn)可靠。
AI智能體為我們描繪了激動(dòng)人心的未來。但在這片光明前景之下,一個(gè)巨大的挑戰(zhàn)正悄然浮現(xiàn):我們能百分百相信這些看似聰明的智能體嗎?它們給出的答案,真的可靠嗎?
一、想當(dāng)年,軟件“一是一,二是二”:代碼的“鐵律時(shí)代”
還記得我們以前用的那些軟件嗎?比如Word、Excel,或者你玩的那些規(guī)則明確的游戲。這些可以稱之為“軟件1.0”時(shí)代。它們的特點(diǎn)是:一切行動(dòng)聽指揮,一切結(jié)果可預(yù)期。
就像一個(gè)精密的鐘表,每一個(gè)齒輪、每一根指針都按照預(yù)設(shè)的規(guī)則一絲不茍地運(yùn)行。開發(fā)者需要像建筑師一樣,一磚一瓦(一行行代碼)地構(gòu)建整個(gè)程序。比如,你要做一個(gè)計(jì)算器,你告訴它“2+2”,它永遠(yuǎn)會(huì)告訴你“4”。你輸入一個(gè)客戶的訂單信息,它就會(huì)準(zhǔn)確無誤地生成訂單,不多一個(gè)小數(shù)點(diǎn),不少一個(gè)零。
很多程序的核心任務(wù)就是數(shù)據(jù)加工,比如銀行系統(tǒng)處理你的存款和取款,只要算法設(shè)計(jì)得沒毛病,賬目就不會(huì)出錯(cuò)。只要你的指令(算法)沒錯(cuò),輸入的數(shù)據(jù)一樣,它輸出的結(jié)果就永遠(yuǎn)一樣,穩(wěn)如老狗!
這個(gè)時(shí)代的軟件,開發(fā)起來可能很慢,就像用積木搭一個(gè)巨大的城堡,需要耐心和細(xì)致。而且它們不太“聰明”,你讓它做什么它就做什么,不會(huì)舉一反三,但最大的優(yōu)點(diǎn)就是高確定性。
二、AI大模型登場(chǎng):“最強(qiáng)大腦”還是“隨性的妖精”?
然后,AI時(shí)代來了,特別是以ChatGPT為代表的大語言模型(LLM)橫空出世。這就像我們突然擁有了一個(gè)超級(jí)大腦,它讀萬卷書(海量數(shù)據(jù)),能寫詩(shī)、能畫畫、能聊天、能編程,簡(jiǎn)直無所不能!“AI智能體”就是基于這些大模型打造的,希望能讓軟件變得像人一樣智能。
但問題也隨之而來:這個(gè)“超級(jí)大腦”有時(shí)候有點(diǎn)“隨性”。
你問它同一個(gè)問題,隔幾分鐘再問,它可能會(huì)給你一個(gè)略有不同的答案。這在軟件1.0時(shí)代是不可想象的。傳統(tǒng)軟件是基于明確的“如果…那么…(If …Else…)”規(guī)則。而AI大模型,尤其是LLM,其內(nèi)部決策過程更像一個(gè)極其復(fù)雜的“黑箱”,普遍缺乏可解釋性。它們通過學(xué)習(xí)海量數(shù)據(jù)中的模式和關(guān)聯(lián)來生成內(nèi)容,這個(gè)過程帶有一定的概率性。
打個(gè)比方,軟件1.0就像一本菜譜,你嚴(yán)格按照步驟和配料,每次做出來的菜味道一致。而AI大模型更像一位經(jīng)驗(yàn)豐富但偶爾喜歡即興發(fā)揮的大廚,你告訴他想吃“魚香肉絲”,他今天可能多放點(diǎn)醋,明天可能多放點(diǎn)辣椒,味道可能都還不錯(cuò),但總有點(diǎn)不一樣。
為什么AI會(huì)“擲骰子”呢?簡(jiǎn)單來說,LLM在生成每個(gè)詞的時(shí)候,并不是選擇唯一“正確”的那個(gè),而是在一堆候選詞中根據(jù)概率來挑選。這就好比我們說話,同一個(gè)意思,可以用很多種不同的表達(dá)方式。
這種“不確定性”是AI智能體與生俱來的特性。
三、提升確定性,有哪些招?
面對(duì)AI的這種“隨性”,我們需要想盡辦法給這匹“野馬”套上韁繩,提升它的“確定性”,讓它更“聽話”。常用的方法有以下4種:
- 提示詞工程(Prompt Engineering):“好好說話,說清楚!”這就像你跟人溝通一樣,話說得越清楚、越具體,對(duì)方才越能準(zhǔn)確理解你的意思。對(duì)AI也是如此。通過精心設(shè)計(jì)提問的方式(提示詞),可以引導(dǎo)AI給出更精確、更符合預(yù)期的答案。比如,你不能只說“寫個(gè)故事”,而是說“寫一個(gè)關(guān)于小狗找骨頭的短篇冒險(xiǎn)故事,風(fēng)格要活潑有趣,字?jǐn)?shù)在500字左右”。
- 小樣本學(xué)習(xí)(Few-shot Learning):“看,就像這樣做!”在提問的時(shí)候,給AI幾個(gè)正確答案的范例,讓它“照貓畫虎”。比如,你想讓AI幫你分類郵件,你可以先給它幾個(gè)例子:“這封是垃圾郵件”,“這封是重要郵件”,AI就能更好地學(xué)習(xí)你的分類標(biāo)準(zhǔn)。
- 微調(diào)(Fine-tuning):“專項(xiàng)特訓(xùn),術(shù)業(yè)有專攻!”把通用的AI大模型,用特定領(lǐng)域的數(shù)據(jù)進(jìn)行“加餐”訓(xùn)練,讓它成為某個(gè)領(lǐng)域的專家。比如,用大量法律文書去微調(diào)一個(gè)模型,它就能在起草合同、分析案例方面表現(xiàn)得更專業(yè)、更穩(wěn)定。
- 檢索增強(qiáng)生成(RAG):“先查資料再發(fā)言!”在AI回答問題前,先讓它從一個(gè)可靠的知識(shí)庫(kù)(比如公司內(nèi)部文檔、權(quán)威教材)中檢索相關(guān)信息,然后基于這些信息來組織答案。這樣可以大大減少AI“胡說八道”的概率。
這些方法都在一定程度上提升了AI輸出的穩(wěn)定性和可靠性,努力把AI的確定性從“偶爾靠譜”提升到“基本可用的程度。
但是顯然用這些常用方法還不夠,我們追求的是更高的確定性,下面介紹9種你或許還沒深入了解的技術(shù),我會(huì)盡量用白話講清楚這些技術(shù)的原理:
1.溫度參數(shù)(Temperature Scaling)調(diào)控
技術(shù)原理:
在LLM生成文本時(shí),它實(shí)際上是在預(yù)測(cè)下一個(gè)最可能的詞(或token)。它會(huì)為詞匯表中的所有詞計(jì)算一個(gè)概率分布。溫度參數(shù)就像一個(gè)旋鈕,用來調(diào)整這個(gè)概率分布的“形狀”。
- 低溫(例如0.1-0.5):會(huì)使高概率詞的概率更高,低概率詞的概率更低,分布變得更“尖銳”。模型會(huì)更傾向于選擇那些它認(rèn)為最最可能的詞。
- 高溫(例如0.8-1.0以上):會(huì)使不同詞之間的概率差異變小,分布變得更“平緩”。模型會(huì)有更大的可能性選擇一些不那么常見的詞,從而增加輸出的隨機(jī)性和創(chuàng)造性。
如何提升確定性:
將溫度參數(shù)設(shè)置得非常低(例如接近0)。這樣,模型在每一步生成時(shí),幾乎總是會(huì)選擇概率最高的那個(gè)詞。這就使得對(duì)于相同的輸入,輸出序列趨向于固定,從而大大提高確定性。很多API接口允許設(shè)置temperature=0來實(shí)現(xiàn)最接近確定性的輸出。
簡(jiǎn)單類比:想象你在一個(gè)有很多選項(xiàng)的抽獎(jiǎng)箱里摸球,低溫就像把最有可能中獎(jiǎng)的那個(gè)球變得特別大特別重,你幾乎每次都會(huì)摸到它。
2.Top-K 采樣(Top-K Sampling)
技術(shù)原理:
在LLM要選擇下一個(gè)詞時(shí),Top-K采樣會(huì)先將所有可能的詞按概率從高到低排序,然后只從概率最高的K個(gè)詞中進(jìn)行選擇(通常再結(jié)合溫度參數(shù)進(jìn)行采樣)。例如,如果K=5,模型就只會(huì)在概率最高的5個(gè)詞里挑一個(gè)作為下一個(gè)詞。
如何提升確定性:
通過限制候選詞的數(shù)量,Top-K避免了模型從概率極低的“長(zhǎng)尾”詞匯中進(jìn)行選擇,這些詞往往會(huì)導(dǎo)致不相關(guān)或奇怪的輸出。當(dāng)K值較小,并且結(jié)合低溫時(shí),模型的選擇范圍大大縮小,輸出的確定性會(huì)提高。如果K=1,那就變成了貪心搜索(Greedy Search),總是選擇概率最高的那一個(gè),確定性最高。
簡(jiǎn)單類比:
還是抽獎(jiǎng)箱,Top-K采樣就是你只被允許在寫著“一等獎(jiǎng)”、“二等獎(jiǎng)”、“三等獎(jiǎng)”的幾個(gè)(K個(gè))最高獎(jiǎng)項(xiàng)里抽,而不是在所有五花八門的獎(jiǎng)品里亂抽。
3.Top-P 采樣(Nucleus Sampling)
技術(shù)原理:
Top-P采樣比Top-K更靈活。它不是選擇固定數(shù)量K個(gè)詞,而是選擇一個(gè)概率累加起來能達(dá)到某個(gè)閾值P(例如P=0.9)的最小詞集合。也就是說,模型會(huì)按概率從高到低選詞,直到這些詞的概率總和超過P為止,然后從這個(gè)動(dòng)態(tài)大小的詞集合(稱為“核心核”,Nucleus)中采樣。
如何提升確定性:
當(dāng)P值設(shè)置得較低時(shí)(例如P=0.1或更低),核心核會(huì)非常小,可能只包含一兩個(gè)詞,模型的選擇余地大大減小,輸出的確定性隨之增強(qiáng)。它比Top-K的優(yōu)勢(shì)在于,當(dāng)模型對(duì)下一個(gè)詞非常確定時(shí)(某個(gè)詞概率遠(yuǎn)高于其他詞),核心核會(huì)自動(dòng)變??;當(dāng)模型不太確定時(shí)(多個(gè)詞概率相近),核心核會(huì)適當(dāng)變大,但依然排除了大量低概率詞。
簡(jiǎn)單類比:
你去自助餐廳打飯,Top-P采樣就像服務(wù)員告訴你:“你可以隨便拿,但你拿的這些菜加起來不能超過總預(yù)算的P比例(比如90%價(jià)值的菜都在熱門區(qū))?!?如果P很小,你就只能在少數(shù)幾個(gè)最便宜或最招牌的菜里選。
4.束搜索(Beam Search)
技術(shù)原理:
不同于貪心搜索(greedy search,每一步都只選當(dāng)前最優(yōu)的詞),束搜索在生成序列的每一步會(huì)保留B個(gè)(B是“束寬”,Beam Width或 Beam size)概率最高的候選序列。在下一步,它會(huì)基于這B個(gè)序列分別擴(kuò)展,再次選出總概率最高的B個(gè)新序列。最終,從這B個(gè)完整序列中選擇概率最高的那一個(gè)作為輸出。
如何提升確定性:
束搜索通過探索更廣闊的搜索空間,更有可能找到全局最優(yōu)或接近最優(yōu)的序列,而不是僅關(guān)注局部最優(yōu)。當(dāng)束寬B較大時(shí),它能生成更高質(zhì)量、更連貫的文本。雖然它本身不是為了嚴(yán)格的確定性(如果多個(gè)序列概率相同,選擇可能不同),但它相比隨機(jī)采樣方法,對(duì)于相同的輸入和模型狀態(tài),更容易收斂到相似的高質(zhì)量輸出,從而表現(xiàn)出更高的“事實(shí)上的確定性”。如果B=1,束搜索就退化為貪心搜索。
簡(jiǎn)單類比:
下棋的時(shí)候,貪心搜索是只看下一步怎么走最好。束搜索是同時(shí)考慮未來幾步的B種最佳走法,然后選擇整體看起來最優(yōu)的那條路。
5.約束解碼/引導(dǎo)生成(Constrained Decoding / Guided Generation)
技術(shù)原理:
這種技術(shù)在LLM生成文本的每一步,都強(qiáng)制其輸出必須符合預(yù)定義的規(guī)則、模式或詞匯表。這些約束可以是:
- 語法約束:例如,強(qiáng)制輸出必須是合法的JSON格式、XML格式或符合特定編程語言的語法。
- 詞匯約束:限制模型只能從一個(gè)特定的詞匯子集中選擇詞語。
- 正則表達(dá)式約束:輸出必須匹配某個(gè)正則表達(dá)式。
- 語義約束:例如,要求輸出必須包含某些關(guān)鍵詞,或者不能包含某些敏感詞。
如何提升確定性:
通過施加外部約束,極大地縮小了LLM的“自由發(fā)揮”空間。如果約束足夠強(qiáng),例如要求生成一個(gè)結(jié)構(gòu)固定的JSON對(duì)象,那么模型在填充值時(shí)雖然仍有一定靈活性,但整體結(jié)構(gòu)的確定性得到了保證。這對(duì)于需要特定格式輸出的Agentic任務(wù)(如API調(diào)用參數(shù)生成)至關(guān)重要。
簡(jiǎn)單類比:
就像玩填字游戲,你不僅要想詞語的意思,還要讓它能放進(jìn)格子里,并且符合橫豎其他詞的要求。
6.輸出緩存(Output Caching)
技術(shù)原理:
對(duì)于完全相同的輸入(prompt),系統(tǒng)可以緩存第一次由LLM生成的(經(jīng)過驗(yàn)證或用戶滿意的)輸出。當(dāng)后續(xù)再次接收到這個(gè)一模一樣的輸入時(shí),系統(tǒng)直接返回緩存中的輸出,而不再次調(diào)用LLM。
如何提升確定性:
這是實(shí)現(xiàn)“絕對(duì)確定性”的最簡(jiǎn)單直接的方法,但僅限于輸入完全重復(fù)的情況。對(duì)于需要穩(wěn)定結(jié)果的常見查詢,這是一個(gè)非常有效的策略。
簡(jiǎn)單類比:
你問了朋友一個(gè)問題,他回答了你。下次你再問同一個(gè)問題,他直接把上次的答案再說一遍。
7.輸出解析與校驗(yàn)修復(fù)(Output Parsing & Validation/Repair)
技術(shù)原理:
LLM生成輸出后,系統(tǒng)會(huì)使用解析器(Parser)嘗試將其轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù)(如JSON、對(duì)象)。然后,校驗(yàn)器(Validator)會(huì)檢查該結(jié)構(gòu)化數(shù)據(jù)是否符合預(yù)定義的模式(Schema)或業(yè)務(wù)規(guī)則。如果解析失敗或校驗(yàn)不通過,系統(tǒng)可以:
- 請(qǐng)求LLM重新生成:可能附帶錯(cuò)誤信息,引導(dǎo)LLM修正。
- 嘗試自動(dòng)修復(fù):對(duì)于一些小錯(cuò)誤,系統(tǒng)或許可以自行修正。
如何提升確定性:
雖然這不能保證LLM的原始輸出是確定的,但它保證了最終進(jìn)入下游流程的輸出是符合格式和基本業(yè)務(wù)規(guī)則的,從而提高了整個(gè)系統(tǒng)的“有效確定性”和魯棒性。
簡(jiǎn)單類比:
你交了一份作業(yè),老師(解析和校驗(yàn)器)會(huì)檢查格式對(duì)不對(duì),有沒有錯(cuò)別字,如果不對(duì)會(huì)打回讓你重寫或幫你改掉小毛病。
8.迭代求精與自我批判(Iterative Refinement & Self-Critique)
技術(shù)原理:
讓LLM生成一個(gè)初步答案后,再讓它(或另一個(gè)LLM實(shí)例)對(duì)這個(gè)答案進(jìn)行批判性評(píng)估,指出其中的問題、不足或不符合要求的地方。然后,基于這些批判意見,原始LLM再次修改和完善答案。這個(gè)過程可以迭代多次。
如何提升確定性:
通過多輪迭代和自我修正,輸出會(huì)逐漸收斂到更符合預(yù)期、質(zhì)量更高的結(jié)果。雖然每一步LLM的調(diào)用仍有隨機(jī)性,但整個(gè)迭代過程像一個(gè)負(fù)反饋循環(huán),有助于將結(jié)果“拉回”到期望的軌道上,從而在宏觀上表現(xiàn)出更高的穩(wěn)定性和一致性。
簡(jiǎn)單類比:
想象你在寫作文,寫完初稿后自己讀一遍,找找問題,修改一下;再讀再改,直到滿意為止。
9.混合系統(tǒng)架構(gòu)(Hybrid Systems: Rule-Based + LLM)
技術(shù)原理:
將確定性的、基于規(guī)則的傳統(tǒng)軟件模塊與LLM的認(rèn)知能力結(jié)合起來。對(duì)于那些可以通過明確規(guī)則處理的任務(wù)部分,使用傳統(tǒng)代碼實(shí)現(xiàn),保證其確定性。對(duì)于需要理解自然語言、進(jìn)行復(fù)雜推理或生成創(chuàng)意內(nèi)容的部分,則調(diào)用LLM。
如何提升確定性:
通過明確劃分任務(wù)邊界,將LLM的使用限制在那些它最擅長(zhǎng)且不確定性可以被容忍或管理的環(huán)節(jié),而系統(tǒng)的核心邏輯和關(guān)鍵數(shù)據(jù)處理依然由確定性模塊負(fù)責(zé)。這大大降低了整體系統(tǒng)因LLM不確定性而出現(xiàn)故障的風(fēng)險(xiǎn)。
簡(jiǎn)單類比:
一個(gè)機(jī)器人廚師,切菜、稱重這些精確的活兒用機(jī)械臂(規(guī)則模塊)完成,確保分毫不差;而菜品創(chuàng)新、口味搭配則參考AI大腦(LLM模塊)的建議。
這些技術(shù)往往不是孤立使用的,而是會(huì)根據(jù)具體的應(yīng)用場(chǎng)景和對(duì)確定性的要求程度,組合使用其中的幾種。例如,可以同時(shí)使用低溫采樣、Top-P采樣,并配合輸出解析與校驗(yàn),以期達(dá)到最佳的平衡。
總而言之,雖然讓LLM像傳統(tǒng)軟件那樣達(dá)到100%的、在所有情況下都可預(yù)測(cè)的確定性仍然是一個(gè)巨大的挑戰(zhàn),但通過上述這些技術(shù)的綜合運(yùn)用,我們已經(jīng)能夠在很大程度上控制和引導(dǎo)LLM的行為,使其在特定任務(wù)上的輸出變得更加可靠和一致。未來的研究還會(huì)繼續(xù)在這個(gè)方向上深耕,尋求更優(yōu)的解決方案。
四、未來之路:打造既“神通廣大”又“穩(wěn)如泰山”的AI智能體
AI智能體將深刻改變我們的工作和生活。但“確定性”這道坎,是我們邁向這個(gè)美好未來必須跨越的。
這并不意味著我們要扼殺AI的創(chuàng)造力和靈活性。關(guān)鍵在于“場(chǎng)景化應(yīng)用”和“風(fēng)險(xiǎn)控制”。
- 對(duì)于創(chuàng)意性、探索性的任務(wù),比如寫詩(shī)、畫畫、頭腦風(fēng)暴,AI的“不確定性”反而是優(yōu)點(diǎn),能帶來更多驚喜。
- 對(duì)于嚴(yán)肅性、高精度的任務(wù),比如醫(yī)療、金融、自動(dòng)控制,我們就需要更嚴(yán)格的“韁繩”,甚至可能需要“AI+人工審核”的雙保險(xiǎn)機(jī)制,或者發(fā)展出新型的、內(nèi)建更強(qiáng)確定性邏輯的AI架構(gòu)。
未來的AI發(fā)展,很可能是一條“規(guī)則與概率共舞”的道路。
我們既要利用大模型的強(qiáng)大歸納和生成能力,也要想辦法嵌入更多結(jié)構(gòu)化知識(shí)和邏輯推理,讓AI在“天馬行空”的同時(shí),也能“腳踏實(shí)地”。
或許,我們會(huì)看到更多混合型AI系統(tǒng)的出現(xiàn),它們將傳統(tǒng)軟件的嚴(yán)謹(jǐn)邏輯與AI大模型的認(rèn)知智能巧妙結(jié)合。
最終的目標(biāo),是培養(yǎng)出既能“神機(jī)妙算”解決復(fù)雜問題,又能“十拿九穩(wěn)”保證結(jié)果可靠的AI智能體。
作者:賽先聲;公眾號(hào):奇點(diǎn)漫游者
本文由 @賽先聲 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
我當(dāng)時(shí)覺得提升確定性是一個(gè)偽命題,更應(yīng)該做的是,讓我們的流程去兼容 AI 的不確定性
寫得很好