宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

當AI「客服」接受考試時,如何用更少的錢找到更多的漏洞?——IBM研究院提出全新智能評測框架DIVERT

2026年05月05日 首頁 » 熱門科技

這項由IBM研究院(IBM Research)主導的研究發表於2026年4月,論文以預印本形式提交至arXiv平台,編號為arXiv:2604.21480v1,有興趣深入閱讀原文的讀者可以通過該編號在arXiv網站上查詢完整論文。

每當你撥打客服電話或在網頁上和"智能客服"對話時,背後往往是一個由大型語言模型(也就是類似ChatGPT那樣的AI)驅動的自動代理系統。這些AI客服需要處理各種突發情況:用戶有時會說謊,有時會重複追問,有時會提出稀奇古怪的請求。那麼,在把這些AI客服正式推向市場之前,工程師們該怎麼測試它們到底夠不夠可靠?

這個問題聽起來簡單,但實際執行起來麻煩得很。你得和這個AI反覆聊天,模擬各種用戶場景,看它會不會犯錯。可是,把所有可能的對話路徑都走一遍,代價極其高昂——每一次對話都要消耗大量的計算資源,而且很多對話的開頭部分幾乎一模一樣,相當於在重複浪費時間和金錢。更糟糕的是,那些最容易暴露AI缺陷的"罕見對話路徑",用傳統的隨機測試方法幾乎碰不到。

IBM研究院的團隊針對這個痛點,設計出了一套名為DIVERT(多樣性引導評測框架,Diversity-Induced EValuation via branching of Trajectories)的全新評測系統。它的核心思路可以用一個簡單的類比來理解:把AI客服的評測過程看作一場"尋寶遊戲"。傳統方法是每次都從大門口出發,把整個地圖走一遍,哪怕前半段路你已經爛熟於心。而DIVERT的做法是,在你已經走到某個關鍵路口時,直接從那裡分叉出去,探索你從未踏足過的岔路——這樣不僅省去了重走老路的時間,還能更高效地發現藏在深處的"寶藏"(也就是AI的失誤和漏洞)。

---

一、為什麼傳統的AI測試方法既費錢又不夠用

要理解DIVERT解決了什麼問題,得先搞清楚傳統測試方法的邏輯。

當工程師要評估一個AI客服系統時,他們會啟動一個"用戶模擬器"——另一個AI扮演普通用戶,和被測試的AI客服展開對話。整個對話從頭開始,一來一往,直到任務完成或者失敗為止。這就是所謂的"線性蒙特卡洛滾動"(linear Monte Carlo rollout)——簡單來說,就是"完整跑完一次對話,記錄結果,然後再從頭跑一次"。

問題在哪裡?以一個典型的客服場景為例:用戶需要先報上自己的賬號名字,然後驗證身份,再說明來意,最後才進入真正複雜的操作環節——比如申請退款或者取消訂單。每次重新測試,前面那些"登錄"和"驗證"的步驟都要重走一遍,哪怕這部分內容毫無變化。這就像你每次去超市,為了買一瓶新口味的醬料,都要把超市從入口到收銀台之間所有貨架重新逛一遍,而不是直接奔向你上次已經找到的調料區。

IBM的研究人員通過數據測算發現,在標準的獨立滾動測試中,不同輪次之間真正"完全相同"的前綴部分只占總tokens(可以理解為"對話字數")的約0.5%到0.6%。這意味著即便兩次對話的開頭內容幾乎一模一樣,電腦系統也無法有效復用之前的計算結果,依然要從頭算起,造成大量浪費。

除了效率問題,傳統方法還有一個更隱秘的缺陷:它發現不了"深層漏洞"。用戶模擬器在默認情況下傾向於"合作"——它會說正確的話、走正常的流程,不會輕易去挑戰AI客服的邊界。於是,那些只有在用戶說了一句怪話、或者在某個關鍵節點提供了偽造資訊之後才會暴露的AI錯誤,永遠不會被發現。就像一個闖關遊戲的測試員總是乖乖按規則走,永遠不會發現第三關的隱藏Bug——因為觸發那個Bug需要你在第二關做一個不尋常的操作。

---

二、DIVERT的核心思路:在關鍵路口"存檔"再"分叉"

DIVERT的運作邏輯,可以用電子遊戲裡的"存檔讀檔"機制來理解。

在玩一款劇情複雜的角色扮演遊戲時,聰明的玩家會在每個關鍵劇情節點保存進度。當某個選項導致壞結局時,他們不會從遊戲最開始重來,而是直接讀取最近的存檔,嘗試另一個選擇。DIVERT就是把這個思路引入了AI評測系統。

具體來說,DIVERT的工作流程分為四個環節。

第一步,正常跑幾輪完整對話,記錄下整個過程,同時在每個用戶說話之前的時刻保存一個"快照"(snapshot)。這個快照就像遊戲存檔,包含了當前對話的完整歷史、AI客服的內部狀態、工具調用記錄、環境狀態以及隨機數種子——任何可能影響後續對話走向的資訊都被完整保存下來。

第二步,通過一個專門設計的"關鍵節點識別器"(Junction Chooser),從已有的對話中找出那個最關鍵的"轉折點"——也就是說,如果用戶在這個節點換一種說法,AI客服的後續行為最有可能發生根本性變化。這個識別器本身也是一個大語言模型,它會閱讀整段對話,判斷哪一個用戶發言的修改能帶來最大的下游影響,同時還要保證不偏離用戶的原始意圖。

第三步,在選定的關鍵節點上,生成三個備選的"替換用戶發言"。這三個候選發言都由另一個語言模型生成,每一個都保留了原始用戶的核心意圖,但表達方式和側重點各不相同。之後,系統通過計算語義相似度(一種衡量兩段話"意思有多接近"的數學方法),從三個候選中挑出與原始發言最不相似的那一個,作為最終的替換版本。這個步驟的目的很明確:用一個"跑偏得最遠但還沒跑出界"的發言,最大限度地把對話引向未被探索過的方向。

第四步,從保存的快照恢復對話狀態,注入這個新的用戶發言,然後繼續向後運行,直到對話自然結束。這樣就產生了一段從同一個前綴出發、但走向了完全不同方向的新對話。這整個過程可以重複多次,每次從已有對話中選擇不同的節點進行分叉,逐漸形成一棵以原始對話為主幹、由各種替換發言為枝杈的"對話樹"。

---

三、數學上的精打細算:DIVERT到底省了多少錢

DIVERT在節省計算成本方面的效果,研究團隊做了非常細緻的數量化分析,值得認真了解一下。

在測試所用的航空服務領域(Airline域)中,一次完整的標準對話平均消耗5763.52個tokens。其中,AI客服自己生成的內容(agent tokens)占了4068.86個,也就是約70.6%;用戶模擬器生成的內容占剩餘的29.4%。

當使用DIVERT的分叉機制時,每次分叉對話的平均agent tokens降低到了3272.96個,相比完整對話減少了795.90個,降幅約19.6%。評測框架側(用戶模擬器和相關工具)的tokens也減少了563.56個。兩者合計,每次分叉對話比完整對話節省了大約1359.46個tokens。

當然,DIVERT本身也有開銷:每次關鍵節點識別平均消耗103.48個tokens,三個候選發言的生成合計消耗326.04個tokens,框架總開銷約為429.52個tokens。用節省的1359.46減去開銷429.52,淨節省約929.94個tokens——也就是說,每使用一次DIVERT分叉,就能比跑一次完整對話節省將近一千個tokens,同時還探索了一條全新的對話路徑。

這個優勢在經濟層面的意義更為直觀。假設被測試的AI客服是市場上頂級的商業模型,比如Claude Opus(每百萬輸出tokens收費25美元)或者GPT-5(每百萬輸出tokens收費10美元),而DIVERT框架使用的是成本較低的GPT-OSS-120B(每百萬tokens僅0.19美元)。在這種價格結構下,DIVERT的框架開銷占總評測費用的比例不到0.20%,在高價模型場景下甚至低至0.08%。換句話說,DIVERT幾乎是"免費"附贈的測試效率提升。

此外,研究團隊還發現了一個與電腦系統緩存相關的潛在收益。在標準獨立滾動測試中,不同輪次之間精確共享的前綴tokens只占約0.5%-0.6%,因此幾乎無法利用現代AI推理系統中的"KV緩存"(一種避免重複計算的技術)。而在DIVERT的分叉對話中,從起點到分叉節點的完全相同前綴占比大幅提升:航空領域達到34.80%,零售領域達到42.50%,電信領域更高達58.35%。這意味著,在支持緩存復用的推理系統上,DIVERT的實際節省效果還會更顯著。

---

四、實驗結果:DIVERT在三個領域的表現

研究團隊在τ-bench(tau-bench,一個專門用於評測面向用戶的AI代理系統的基準測試集合)的三個領域上進行了系統實驗:航空服務(Airline,50個任務)、零售服務(Retail,114個任務)以及電信服務(Telecom,114個任務)。測試使用了兩個主流大語言模型作為被測AI客服:OpenAI的GPT-OSS-120B和Google的Gemini-2.5-Flash。

評測的核心指標有兩個。第一個叫做"每十萬tokens發現的失敗對話數"(Errors per 100K Tokens),衡量的是在花費相同計算資源的前提下,能找到多少條AI客服的失敗案例——這個數字越高,說明評測方法越高效。第二個叫做"任務失敗覆蓋數"(Task Failure Count),衡量的是在所有測試任務中,有多少個不同的任務至少被發現了一次失敗——這個數字越高,說明評測方法的覆蓋面越廣。

從效率指標來看,DIVERT在所有三個領域、兩個模型上,都穩定地超越了標準線性滾動測試。以GPT-OSS-120B為例,在航空領域,僅做2輪完整對話、不加任何分叉時,效率值約為15.0;加入2次分叉後提升到18.4;加入8次分叉後進一步提升到19.7。這種提升是單調遞增的,即每增加一次分叉,效率幾乎總是在提高,沒有出現下降的情況。

更有意思的發現來自覆蓋率實驗。研究團隊用熱力圖直觀地展示了不同"完整滾動次數"和"分叉次數"組合下,能覆蓋到的失敗任務數量。結果非常清晰地揭示了一個規律:單純增加完整滾動次數,發現新失敗任務的邊際效益會越來越低,很快就進入"飽和區"——多跑十輪,可能也只多找到一兩個新失敗任務。但是,在保持完整滾動次數不變的情況下增加分叉次數,卻能持續解鎖此前從未發現過的失敗場景。這就好比你在一片森林裡找松露,沿著大路多走幾圈很快就沒有新收穫了,但如果你每次走到一個岔路口時換一條小路探索,每次都可能踩到新的松露。

在Gemini-2.5-Flash上的結果也呈現出相同的趨勢,證明DIVERT的優勢並不依賴於特定的模型,而是具有普遍性。研究團隊還測試了"異質化"場景,即用不同模型分別擔任AI客服和用戶模擬器,結果同樣穩定,DIVERT的提升效果在跨模型組合下依然成立。

---

五、多樣性選擇機制是否真的有效

有一個合理的疑問:DIVERT挑選"最不相似候選發言"的機制,真的能帶來實質性的差異,還是只是表面上的文字遊動?研究團隊專門針對這個問題設計了驗證實驗。

在候選發言層面,研究人員對4500個候選發言進行了分析。他們發現,被選中的"最不相似候選"與原始發言之間的平均餘弦相似度(越低表示越不相似)為0.711,而第二相似和第三相似候選的相似度分別為0.769和0.817。三者之間的差距是清晰且一致的,說明排名機制確實捕捉到了真實的語義差異。

在對話軌跡層面,研究團隊進一步追蹤了從同一節點出發的三個候選發言分別引發的後續對話走向。他們將每條替換對話與原始對話的後續部分進行相似度比較(相似度越低,表示後續對話差異越大)。結果顯示,最不相似候選發言引發的後續對話,相似度均值為0.743;第二、第三候選分別為0.799和0.849。候選發言層面的差異,確實傳導到了後續整段對話的走向——選擇更"另類"的用戶發言,確實能讓AI客服走入更不尋常的處理路徑,暴露出更多潛在問題。

---

六、拆開來看:DIVERT每個組件的貢獻

研究團隊還進行了"消融實驗"——也就是逐步拆掉DIVERT的各個零件,看看少了哪個部分性能會下降多少,以此判斷每個設計的重要性。

實驗在固定總對話數量為12條(基準方法:12次完整對話;DIVERT方法:8次完整對話加4次分叉)的條件下進行,結果在三個領域上取平均值。

基礎線性滾動(無任何DIVERT組件)的效率值為13.6,任務失敗覆蓋數為78。加入關鍵節點識別器(JC)後,效率提升到15.1——因為直接從對話中途恢復確實省了不少tokens,但任務失敗覆蓋數卻下降到了75。這是因為,如果只是從對話中途繼續,而不主動改變用戶發言,後續對話往往會沿著已知路徑繼續走,並不能探索到新的失敗場景。

進一步加入定向用戶發言生成(DG),效率提升到15.8,任務失敗覆蓋數回升到80——超過了基準值。這證明,發現新失敗場景的關鍵不僅在於從中途恢復,更在於注入一個主動"挑釁"AI客服的替換發言。

最後加入多樣性選擇機制(DC),效率再提升到16.2,任務失敗覆蓋數達到81。這個增量驗證了從多個候選中主動挑選最不相似者的必要性,而不是隨機選一個就完事。

由此可見,DIVERT的三個核心組件各有其不可缺少的作用:節點識別提供了效率基礎,定向發言生成實現了覆蓋率突破,多樣性選擇則進一步鞏固了結果。

---

七、關於"替換發言是否偏離原始任務意圖"的驗證

有人可能會擔心:DIVERT為了讓用戶發言更"另類",會不會把用戶的原始意圖也改得面目全非,從而使測試失去實際意義?

研究團隊對這個問題進行了專項驗證,分析範圍限定在航空服務領域(因為這是τ-bench中唯一提供了明確"任務目的"欄位的領域)。他們讓GPT-OSS-120B模型扮演獨立評判者,分別對原始用戶發言和DIVERT生成的替換發言進行評估,判斷每條發言是否還在合理地追求原始任務目標。

結果出乎意料地令人放心:原始用戶模擬器的發言中,有28.12%被判定為偏離了任務意圖;而DIVERT生成的替換發言,偏離率僅為25.27%,反而比原版更低。這說明DIVERT在追求語義多樣性的同時,並沒有以犧牲任務相關性為代價。恰恰相反,通過明確要求替換發言在保留意圖的前提下進行變化,DIVERT在某種程度上還糾正了原始模擬器的一部分隨機漂移。

---

歸根結底,DIVERT做的事情並不複雜:它只是把人們在玩遊戲時會自然採用的"存檔讀檔"策略,系統化地引入了AI客服的評測流程,並在每次讀檔後主動引入一個經過精心挑選的"更刁鑽的用戶發言"。這個簡單的改變,帶來了雙重收益——既省了錢(減少了重複生成相同前綴的浪費),又找到了更多問題(覆蓋了傳統隨機測試難以觸及的深層失敗場景)。

對於普通用戶而言,這項研究的意義或許藏在一個日常場景里:你下次和AI客服周旋,試圖以各種理由要求退款或者繞過規則時,背後的AI系統可能已經被DIVERT這樣的框架訓練和評測過——它見過更多"刁難",也因此更難被輕易糊弄。當然,反過來說,如果你希望AI客服系統更可靠、更難出錯,DIVERT這樣的評測方法正是保障這一點的技術基礎。

這項研究也提出了不少值得繼續探索的方向。目前DIVERT只在用戶發言層面進行分叉,未來是否可以在工具調用的返回結果或者環境變化上也引入分叉?關鍵節點識別是否有比語言模型更輕量的替代方案?多樣性衡量標準是否有比餘弦相似度更精準的選擇?這些問題,都等待著後續研究者去回答。有興趣深入了解這套框架全部細節的讀者,可以通過編號arXiv:2604.21480在arXiv平台上找到完整論文。

---

Q&A

Q1:DIVERT框架和傳統AI評測方法相比,具體能節省多少計算成本?

A:根據IBM研究院的實驗數據,在航空服務測試場景中,DIVERT每次分叉對話比一次完整對話平均減少約795.90個agent tokens和563.56個評測側tokens,合計節省約1359.46個tokens。扣除DIVERT自身約429.52個tokens的框架開銷後,淨節省約929.94個tokens。DIVERT的框架開銷占總評測費用的比例不到0.20%,在評測高價商業模型時甚至低至0.08%。

Q2:DIVERT生成的替換用戶發言會不會偏離原來用戶的真實意圖,導致測試不準確?

A:研究團隊專門對這個問題做了驗證。在航空服務領域,原始用戶模擬器發言的任務意圖偏離率為28.12%,而DIVERT生成的替換發言偏離率僅為25.27%,反而更低。這說明DIVERT在追求語義多樣性的同時,並沒有破壞用戶的原始任務意圖,測試結果依然具有現實意義。

Q3:DIVERT的關鍵節點識別器是如何決定在對話的哪個位置進行分叉的?

A:DIVERT使用一個大語言模型作為"關鍵節點識別器",將整段對話的文本餵給它,讓它判斷哪個用戶發言的位置,如果被替換,最有可能導致AI客服後續行為發生最大變化,同時還要保證不偏離原始任務意圖。識別器會輸出選中的節點位置及簡短的理由說明。這個識別過程在每次分叉時獨立進行,允許不同分叉選擇不同的關鍵節點。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新