作者 | Adrien Treuille
譯者 | 布加迪
自從AI target=_blank class=infotextkey>OpenAI發(fā)布首個ChatGPT模型以來,人們對生成式AI的興趣激增。基于大語言模型(LLM)的應(yīng)用程序現(xiàn)處于企業(yè)思考生產(chǎn)力和效率的最前沿,用于構(gòu)建生成式AI應(yīng)用程序的工具和框架得到了極大的擴展。但人們?nèi)匀粨?dān)心生成式AI輸出的準確性,因此開發(fā)人員需要快速學(xué)會處理諸如此類的問題,以構(gòu)建強大、可靠的應(yīng)用程序。
以下是提高LLM應(yīng)用程序準確性的一些建議和技術(shù),以及選擇正確LLM的注意事項。我們無法詳盡地探討這些問題,因為每個問題本身都很復(fù)雜,但我們可以提供一番建議,供諸位進一步探索。
本文中的Streamlit是一個免費開源框架,用于快速構(gòu)建和共享機器學(xué)習(xí)和數(shù)據(jù)科學(xué)Web應(yīng)用程序,最近它發(fā)布了一份報告,分析了Streamlit社區(qū)云上13000余名開發(fā)人員構(gòu)建的21000多個LLM應(yīng)用程序。它介紹了開發(fā)人員迄今為止一直在使用的一些工具和技術(shù),并提供了以下一些建議。
比如說,矢量檢索工具可以為基于LLM的應(yīng)用程序有效地改善上下文推薦,但我們的調(diào)查發(fā)現(xiàn),目前只有少數(shù)開發(fā)人員在使用矢量功能,這代表未來大有機會。
隨著更多的開發(fā)人員利用生成式AI開發(fā)應(yīng)用程序,我們將開始看到跨類別和垂直行業(yè)的應(yīng)用程序逐漸內(nèi)置基于AI的搜索以及對話和輔助體驗。以下是我給開發(fā)人員的四條建議,幫助他們構(gòu)建更好的基于LLM的應(yīng)用程序,這樣他們可以給所在組織帶來真正的顛覆效應(yīng)。
1、為更智能的應(yīng)用程序使用代理和編排
像LangChain和LlamaIndex這樣的編排框架可以使用額外的工具或代理來幫助增強模型基于LLM的應(yīng)用程序的功能。在這種情況下,可以將代理視為插件系統(tǒng),允許您將額外功能做入到應(yīng)用程序中,用自然語言來表達。
這些代理可以組合起來管理和優(yōu)化LLM功能,比如改進AI推理、解決偏見和集成外部數(shù)據(jù)源。代理還可以為LLM提供一種方法來思考它是否犯了錯誤以及成功完成任務(wù)所必須采取的步驟。
打個比方,考慮一下開發(fā)人員如何編寫提供特定函數(shù)的API和描述該函數(shù)的文檔:API表示為代碼,文檔使用自然語言。代理以類似的方式工作,除了提供文檔是為了方便LLM,而不是方便其他開發(fā)人員。因此,LLM關(guān)注手頭的任務(wù),查看代理的文檔,并確定代理是否可以幫助它完成任務(wù)。
這些代理還為應(yīng)用程序提供了一種反思自身錯誤并糾正它們的方法,從而為LLM應(yīng)用程序增添了健壯性。比如說,假設(shè)一個LLM應(yīng)用程序編寫了一些SQL代碼來執(zhí)行任務(wù),比如檢查數(shù)據(jù)庫中的庫存數(shù)量,但它在代碼中犯了錯誤。對于標準的“幼稚”的LLM應(yīng)用程序而言,這個錯誤如同路之盡頭。
然而,如果應(yīng)用程序有一個執(zhí)行SQL的代理,它可以查看錯誤,使用代理來確定應(yīng)該采取什么不同的做法,然后糾正錯誤。這可能只是語法上的一個小變化,但是如果沒有代理,LLM就無法通過推理解決錯誤。
2、使用矢量魔法和RAG來對抗幻覺
有時,您在使用的LLM無法訪問完成預(yù)期任務(wù)所需的所有信息。這可以在提示時注入額外的信息,但大多數(shù)LLM限制了這些提示的大小。為了克服這種限制,LLM可能需要使用矢量查詢外部數(shù)據(jù)庫,這種技術(shù)就叫檢索增強生成(RAG)。
為了理解RAG可以為LLM應(yīng)用程序做什么,不妨考慮三個不同級別的LLM應(yīng)用程序。
•第1級:應(yīng)用程序可以使用LLM中已有的知識生成結(jié)果。
•第2級:應(yīng)用程序需要額外的信息,信息可以在提示時注入。只要您能保持遵守提示限制,這相當(dāng)簡單。
•第3級:LLM需要聯(lián)系外部信息源(比如數(shù)據(jù)庫)以完成任務(wù)。
RAG在第3級有了用武之地,外部數(shù)據(jù)庫通常使用矢量進行語義索引,這就是為什么您最近可能頻頻聽到矢量數(shù)據(jù)庫和矢量搜索工具的新聞。
具有矢量數(shù)據(jù)庫和矢量搜索的應(yīng)用程序可以通過對龐大的非結(jié)構(gòu)化數(shù)據(jù)集(包括文本、圖像、視頻或音頻)進行分類,以實現(xiàn)快速的上下文搜索。這對于進行更快、更強大的上下文推薦非常有效。但矢量工具仍未得到廣泛應(yīng)用。Streamlit的調(diào)查發(fā)現(xiàn),僅20%的基于生成式AI的應(yīng)用程序使用了某種矢量技術(shù)。
3、聊天機器人為用戶提供了一種強大的方式來優(yōu)化查詢
聊天機器人將生成式AI帶入了主流,但有人懷疑將來它們是否會成為一種有效的界面。有人認為,聊天機器人給了用戶太多的自由,卻沒有足夠的背景知識來說明如何使用LLM應(yīng)用程序。有人被過去的失敗所嚇倒:Clippy是一場災(zāi)難,為什么聊天機器人今天會成功呢?
很顯然,聊天機器人是否合適一方面取決于應(yīng)用程序的預(yù)期用途。但聊天機器人至少有一個非常有用的優(yōu)點不容忽視:它們?yōu)橛脩敉ㄟ^流暢的、仿人的界面添加上下文和完善答案提供了一種簡單又直觀的方式。
要理解為什么這很強大,不妨想想搜索引擎。用戶通常無法改進搜索引擎查詢;比如說,如果結(jié)果略有偏差,沒有辦法告訴搜索引擎“再試一次,但排除關(guān)于X的答案”,或者“給y更多的權(quán)重”。這將是一種方便而強大的功能,這也是聊天機器人為LLM應(yīng)用程序提供的功能。
調(diào)查發(fā)現(xiàn),用Streamlit構(gòu)建的生成式AI應(yīng)用程序中28%是聊天機器人,而72%的應(yīng)用程序通常不允許會話改進。另一方面,調(diào)查顯示,這些聊天機器人的每周使用率上升到近40%,而非聊天機器人應(yīng)用程序的使用率有所下降。因此,聊天機器人可能是最終用戶青睞的界面。
4、考慮GPT的替代方案,包括開源LLM
基本的GPT模型仍然是最知名的LLM,它們功能非常強大,但在過去的一年里出現(xiàn)了更多的選擇,其中一些可能更適合您的應(yīng)用程序。需要考慮的因素包括:LLM所需的知識廣度、LLM的規(guī)模、您的訓(xùn)練要求和預(yù)算,以及LLM是開源還是專有對您來說是否重要。與科技界的許多方面一樣,這里也存在取舍。
如果您在構(gòu)建一個供內(nèi)部使用的生成式AI應(yīng)用程序,可能需要使用內(nèi)部企業(yè)數(shù)據(jù)來訓(xùn)練該LLM。對于大多數(shù)企業(yè)來說,出于安全原因,與公共LLM共享敏感數(shù)據(jù)是不可能的,因此許多公司在現(xiàn)有的云安全邊界內(nèi)運行LLM,這常常導(dǎo)致它們選擇比較小的LLM,比如AI21和Reka。
非常龐大的LLM還往往有更高的延遲,由于所需的計算資源,通常運行成本更高。如果應(yīng)用程序執(zhí)行比較簡單的任務(wù),比如翻譯文本或總結(jié)文檔,較小的LLM可能效果很好,使用和操作成本顯著降低。
您也可能有理由偏愛開源LLM,比如Meta的LLaMA,而不是像OpenAI、Anthropic或Cohere這樣的專有LLM:在專有LLM中,源代碼、訓(xùn)練數(shù)據(jù)、權(quán)重或模型的其他細節(jié)通常不會公開披露。開源LLM需要自托管或通過托管提供商進行推理,但是源代碼及模型的其他細節(jié)更容易獲得。
5、寫在最后:現(xiàn)在就開始使用生成式AI
生成式AI仍然是迅速崛起的領(lǐng)域,但所需的工具和技術(shù)在迅速發(fā)展,今天有很多選擇可以開始入手。抓住這個機會的開發(fā)人員可以為所在組織提供巨大的價值,將AI應(yīng)用程序作為日常業(yè)務(wù)運營和任務(wù)的一項常規(guī)功能。隨著生成式AI繼續(xù)重塑組織中的角色和責(zé)任,依賴并精通基于LLM的應(yīng)用程序的開發(fā)人員將脫穎而出,上述建議將幫助您開始邁出正確的第一步。
原文鏈接:https://thenewstack.io/4-key-tips-for-building-better-llm-powered-Apps/