當前位置: 妍妍網 > 碼農

借助大模型實作從數位化到智慧化

2024-06-01碼農

2024年5月初,國家發展改革委辦公廳、國家數據局綜合司印發【數位經濟2024年工作要點】(以下簡稱【工作要點】),對2024年數位經濟重點工作作出部署。國家發展改革委辦公廳和國家數據局綜合司印發的這份檔,提出了九方面的重點工作,包括適度超前布局數位基礎設施、加快構建數據基礎制度、深入推進產業數位化轉型等,旨在全面推動數位經濟的高品質發展。圖表:聚焦9方面!2024年數位經濟重點工作來了__中國政府網 (www.gov.cn)

在進行 IT 系統整合或設計某些自動化流程時,其實已經有 Agent 這一層了,尤其是在裝置與外界互動的環節,而那時還沒有將大模型技術整合進來以實作更廣泛的泛化能力和生成式能力。大模型技術引入後,起初我們並沒有考慮將其套用於裝置控制或高度互動性的 IT 系統互動中,而主要看中其在創作和生成內容方面的潛力。我們在裝置代理方面的工作與 AI Agent 的概念思路頗為相似,只是隨著大模型的加入,AI Agent 的能力和套用場景都發生了變化。如果僅從 IT 系統的能力角度來看,AI Agent 這個概念並不神秘,不過是透過引入大模型為 AI Agent 帶來了更多能力,從而豐富了其功能。

在數位世界中,我們需要利用規劃、迴圈和反思的控制機制,實作任務從開始到結束的全流程控制,並呼叫數位世界裏的外部工具進行執行,這正是我們的IT系統透過引入大模型實作數位化向智慧化轉變的關鍵技術:AI Agent。

大語言模型的主要功能是處理和生成文本,核心在於將文本資訊進行向量化處理,並透過 Transformer 架構以及監督學習機制,實作技術上的範式轉變。這些技術基礎的叠代,再結合大量的數據和強大的算力,促成了 ChatGPT 等大語言模型的誕生,它們在文本生成和回復方面表現出色。盡管大語言模型在文本領域取得了顯著的成就,但本質上只具備基於零樣本提示詞的文本回復的能力,而不具備執行實際任務的能力。這意味著,無論大模型在文本處理上多麽先進,它們仍然需要 Agent 的介入來實作從文本到行動的轉變和全流程的處理。因此,大模型和 Agent 是兩個不同的概念,前者專長於文本互動,而後者則涉及到任務的執行和落地能力。簡而言之,大語言模型缺乏將文本回復轉化為實際行動的能力,是典型的缸中之腦。

我分享一下第一次接觸 Agent 的經歷,在Chatgpt出來以後,微軟釋出了一個開源計畫Semantic kernel,其中實作的思路就是Agent,只不過是單個Agent,在Semantic kerenl的範例計畫Chat-copilot中做了展示。2023年夏天 OpenAI 在ChatComplete介面上開發了一項名為「Function Calling」的能力,雖然看起來仍然是文本的輸入和輸出,但當函式作為一個字串被輸出並被精確呼叫時,我確實看到了 Agent 的不同之處。以前我們認為創作和創意不確定性是大語言模型最人性化的特征,但同時它們也有機器的一面,能夠在有限的範圍內喚醒某些函式。這項能力讓我意識到 Agent 應該被獨立考慮,其圍繞工具使用、規劃和執行的能力,可以幫助大模型結合現實世界中的數位和物理能力,形成一個更完整、更通用的解決方案。OpenAI隨後推出了GPTs,並將之前的Plugin作廢了,GPTs 已經是一個Agent 的商店。

然而,隨著時間的推移,我發現 Function Calling 可能並不像我最初想象的那麽好。它演示的技能是查詢天氣,雖然可以很好地執行,但許多場景要復雜得多,可能不只有 1個或 2 個函式可供呼叫,會出現完全不確定的函式,下一步該執行哪個函式也會是未知的,測試過幾十個模型號稱具有Function Calling能力的模型,目前只有Azure OpenAI/OpenAI和Anthropic 這兩個模型族具備穩定的函式呼叫能力,其他的很多模型都在穩定性和可用性方面存在能力短板。不過,Agent 的主流能力,如瀏覽器的喚起、搜尋引擎的查詢結果以及一些生成能力的喚起,確實有效地讓它從概念走向實際。當然,在實際套用過程中,我們也發現了許多不確定因素,但 Agent 的能力已經讓我感到驚訝,它不僅僅是一個玩具,而可以改變現實世界。

Agent 主要依賴於大模型的 Function Calling 能力,需要準確地辨識出當前呼叫哪個模型來完成當前任務,並提供相應的結果,以便大模型進行下一步操作。而瓶頸可能在於讀取上下文的長度,上下文長度決定了能夠辨識多少個函式。Agent 在執行過程中受限於場景,只能在有限的函式中進行選擇,其執行也不完全精確;如果執行不精確,就需要獲取更多的環境資訊或反饋資訊來執行函式,過程中可能會出錯。Agent 是一個精妙但不夠魯棒的系統,如果它返回到上一級並根據錯誤資訊重新執行,可能會帶來更大的資源消耗和時間延遲。

在企業場景中實施 Agent 時,我們首先需要考慮的是技術的可實作性。在挑選場景的過程中,就要考察技術是否可行;一旦場景確定,接下來需要考慮的是如何提高 Function Calling 的準確度,如果準確度不夠高,需探索其他工程手段來提升 API 的辨識準確率,甚至在語意理解之後透過額外的工程能力進行調整、校驗生成的 API 並透過查詢方式進行補充。