大模型也有“漂移(Drift)”現(xiàn)象?應引起AI應用開發(fā)者警惕
熟悉數(shù)據(jù)中心機器學習項目開發(fā)的讀者應該知道,數(shù)據(jù)漂移和概念漂移是導致機器學習模型效果衰退的一個常見原因。漂移產(chǎn)生的關鍵原因是因為模型會隨著時間而衰退,因此為了對抗這樣的問題就必須要定期優(yōu)化訓練方案及定期重訓模型。
那么大模型會不會有“漂移”現(xiàn)象呢,答案是肯定的。大致分為兩類:
1)大模型漂移(LLM Drift)
大模型漂移(LLM Drift)是指在較短時間內,LLM在處理相同問題時給出的答案發(fā)生了顯著變化。這種變化并不僅僅是因為大語言模型本質上的不確定性,或者問題提示的輕微變化,還有可能是LLM本身發(fā)生了變化。
斯坦福和伯克利有一項聯(lián)合研究《How Is ChatGPT’s Behavior Changing over Time?》,對GPT-4 和 GPT-3.5 在回答問題的準確性進行跟蹤,研究發(fā)現(xiàn),無論是 GPT-3.5 還是 GPT-4,它們的表現(xiàn)都出現(xiàn)了大幅波動,有的任務甚至出現(xiàn)了性能退化。下圖展示了四個月內模型準確度的波動情況,在某些情況下,準確度的下降相當嚴重,損失了超過60%。
圖片
https://arxiv.org/pdf/2307.09009.pdf
而其發(fā)生漂移的原因,對于應用開發(fā)者本身并不透明,比如模型發(fā)生變化等因素,但至少需要讓開發(fā)者知道持續(xù)監(jiān)控和評估LLM 隨著時間推移模型性能變化的必要性,進而保證應用的穩(wěn)定性。
該研究對應的代碼庫:https://github.com/lchen001/LLMDrift
2)提示漂移(Prompt Drift)
提示漂移是指在推理過程中,由于模型變化、模型遷移或提示注入數(shù)據(jù)的變化,提示產(chǎn)生的響應隨時間推移而不同的現(xiàn)象。
由于大模型的特點,其每次回答是非確定性的,即使是相同的問題,在不同時間點可能會得到不同的答案。本質上,這并不一定是問題,甚至是一個特點,并且即便用詞不同,核心內容可能依舊能保持一致。但在發(fā)生提示漂移時,LLM可能會有不合預期的回答。
市面上針對于Prompt drift提供了一些提示管理和測試工具,例如 ChainForge,LangSmith等。
由于模型在整個應用中起重要作用,因此,迫切需要一種機制,來確保在大規(guī)模遷移或淘汰大語言模型(LLM)之前,能夠對基于LLM的生成應用(Gen-Apps)進行充分測試。如果能有一種模型,在很大程度上對所使用的大語言模型不敏感,那自然是更理想的。要實現(xiàn)這一目標,一種可能的方法是利用大語言模型的上下文學習能力。
級聯(lián)放大
不僅如此,由于當前很多大模型應用,如RAG,Agent,在使用大模型構建應用時會多次使用到大模型,形成復雜的嵌套和組合的情況。而一旦發(fā)生“漂移”,就會引發(fā)級聯(lián)(Cascading)現(xiàn)象,它指的是在一個處理流程的連鎖過程中,如果一個環(huán)節(jié)出現(xiàn)問題或偏差,這個問題通常會在后續(xù)的環(huán)節(jié)被無意中放大。這意味著每個環(huán)節(jié)的輸出都會進一步偏離最初的預期結果。
考慮下面的情形:
1.用戶可能提出的問題是出乎意料的或者沒有預先計劃的,這可能會導致鏈式處理中出現(xiàn)意料之外的回答。
2.前一個環(huán)節(jié)可能會出現(xiàn)不準確的輸出或某種程度的偏差,在后續(xù)環(huán)節(jié)中被加劇。
3.大語言模型(LLM)的回答可能也會出現(xiàn)意外,這是因為大語言模型本身就具有不確定性。提示漂移或大語言模型漂移可能就是在這里引入的。
4.然后上一個環(huán)節(jié)的輸出就被傳遞到下一個環(huán)節(jié),導致了偏差的進一步“級聯(lián)”。
從某種角度看,一個基于大模型構建的應用,會放大因LLM漂移和提示漂移帶來的問題,越復雜的應用這樣的問題越突出,因此,如何避免這樣的問題發(fā)生或者降低這類情況的影響,比如類似微服務里的故障隔離等措施,也成了一個新的研究方向。