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