譯者 | 陳峻
審校 | 重樓
在這短短幾年內,大語言模型(LLM)已經從處理幾千個token的水平發展到了能夠駕馭數百萬個token。其近乎無限的上下文窗口,正在為人類解鎖更多新的應用,并以更簡單方法實現各項自定義任務。
根據卡內基梅隆大學(Carnegie Mellon University)和特拉維夫大學(Tel Aviv University)研究人員最近的一項研究(https://arxiv.org/abs/2405.00200),使用長上下文模型的上下文學習(In-context Learning,ICL)可以達到與微調模型(Fine-tuned Models)相當、甚至超過微調模型的性能水平,尤其是在處理那些大型數據集的時候。
同時,該研究結果表明,具有長上下文LLM的ICL,可以幫助產品團隊創建各種原型和完整的應用程序,而無需使用那些資源密集型且耗時的技術。
少樣本(Few-shot)和多樣本(Many-shot)的上下文學習
為了在不重新訓練或微調LLM的情況下,使之執行新的任務,您可以充分利用其上下文的學習能力。例如,當您在提示中插入“問題-解決方案”對的示例時,模型將能夠找到解決方案的模式,并據此去解決類似的問題。
通常,一個模型所支持的ICL示例數量,取決于其上下文窗口的長度。例如,由于早期版本的GPT-3僅支持大約2,000個token,因此它只能允許一小部分ICL示例。當然,早期的研究認為,您完全可以讓模型使用少量的ICL,來完成大量新的任務。
不過,現如今GPT-4已經能夠支持多達128,000個token,谷歌的Gemini 1.5 Pro也將支持2萬個token。這些模型不但支持持續樣本(Long-shot)ICL,而且在提示中帶有數百、甚至數千個示例。
谷歌最近的一項研究探討了持續樣本ICL在教授LLM新的任務,或改變其學習偏見方面的強大能力。當然,由于該研究僅針對Gemini Pro,因此很難將它與其他基線進行比較。
持續樣本ICL與檢索和微調
在他們的新研究中,卡內基梅隆大學和特拉維夫大學的研究人員對各種開放式模型進行了實驗。他們使用了不同版本的Llama-2 7B,其中包括:上下文窗口最多為80,000個token和Mistral-7B的32k版本。
他們的實驗包括了多種分類的數據集,其目標是了解用戶可以在多大程度上使用ICL,來提高模型對于不可見示例進行分類的能力。他們將持續樣本ICL與檢索增強生成(Retrieval-augmented Generation,RAG)和低秩適應(Low-rank Adaptation,LoRA)進行了比較。這里的LoRA是一種LLM微調方法,可降低內存和計算的各項需求。
他們的研究結果表明,將ICL擴展到許多示例上時,會產生強大的結果。如下圖所示,當他們將ICL示例從10個增加到1,000個時,就能夠獲得高達50.8點的收益。
不同分類基準上的持續樣本ICL與RAG
而當您的ICL示例比較少時,RAG的性能則會優于隨機抽樣。然而,隨著您添加更多的示例,其選擇策略的重要性便會降低。這就可以幫助用戶測試各種概念驗證(Proof-of-concepts),而無需設置RAG管道。
同時,當您只有一小部分的示例時,ICL通常會優于LoRA微調。研究人員發現,當標簽空間較大時,與ICL相比,微調的性能會下降。他們解釋到:“這可能是因為它們屬于更開放的分類問題,需要更多的數據來訓練分類器。”與此同時,微調模型的推理成本則會比ICL小得多。
他們另一個有趣的觀察結果是:隨著示例數量的增加,標簽分類開始對性能產生巨大的影響。也就是說,當您有許多ICL示例時,與隨機排序相比,按標簽對它們進行排序會降低模型的性能。對此,研究人員認為:“這表明,具有不同標簽的示例的上下文環境對于性能而言是非常重要的。并且,這種環境僅在上下文窗口中,相對較短的距離內,能夠有效地發生。”
這對LLM應用意味著什么?
持續樣本ICL對于開發LLM應用具有重要的意義。畢竟,LLM迭代的總體趨勢就是要減少機器學習應用的創建障礙。例如,您以前需要一個機器學習專家團隊、以及數周的培訓和測試時間,來創建情緒分析模型。如今,您只需要在預訓練的LLM上,通過簡單的提示工程,就能做到這一點。
同時,持續樣本ICL進一步降低了創建機器學習應用的障礙。例如,如果您有一個應用程序,而模型無法通過零樣本(Zero-shot)提示來“開箱即用”地完成,那么您通常需要微調模型、或設置RAG管道,來為其提供必要的上下文信息。
如今,得益于多樣本ICL,您只需將所有的文檔或演示轉存到上下文窗口中,然后構建好提示即可。可見,它不但有助于節省創建原型和概念驗證的時間,也將使得那些沒有大量機器學習經驗及編程技能的產品經理,能夠輕松創建和迭代自己的原型。
當然,一旦達到了產品市場契合度,并需要優化自己的LLM應用以擴大規模時,您仍然需要盡一切努力降低成本,并提高速度。也就是說,如果您是按token付費的話,那么持續樣本ICL會比較昂貴。同時,如果您采取的是模型托管機制的話,它不但會減慢推理速度,而且會增加內存需求。對此,其他技術可以按需進行彌補。例如,一個簡單的RAG管道可以大幅減少token的消耗。而微調能夠讓您的模型實現零樣本的問與答,而無需提供額外的上下文token。比如,Adapt-LLM等微調技術就能夠使模型,根據其對于主題的置信度,在RAG和內存中(In-memory)知識之間進行選擇。當然,您最終也可以憑借諸如:自定義雙向編碼器等更高級的技術,更有效地去執行分類等新的任務,而無需那些內存密集型LLM。
小結
上文提到的各種工具和技術實際上都能夠以不同的方式為您服務并完成各項任務。可以說,隨著多樣本ICL等技術的進步,LLM應用的入門只會變得越來越簡單。
原文標題:Boost LLM application development with many-shot learning,作者: Ben Dickson
鏈接:https://bdtechtalks.com/2024/05/20/long-context-llm-applications/。