極光筆記 | 大語言模型外掛

發表於2023-09-22

在人工智慧領域,大語言模型(LLMs)是根據預訓練資料集進行”學習“,獲取可以擬合結果的引數,雖然隨著引數的增加,模型的功能也會隨之增強。但無論專業領域的小模型,還是當下最火、效果最好的大模型,都有一個共同的劣勢:無法準確/正確地回答出訓練資料集以外(區別於驗證集和測試集的新增資料,如實時新聞、未公開的企業資訊等)的結果,進而編造答案進行回覆,即大模型幻覺問題。

為了解決上述問題,同時避免微調/重新訓練帶來的成本,LLMs外掛應運而生。透過LLMs強大的內容生成能力和上下文理解能力,結合外掛提供的資料以及特定功能,不僅拓寬了LLMs的應用領域,還增加了LLMs生成結果的可信度,更好地服務於使用者。

1 外掛

外掛是一種軟體元件,它可以被新增到一個主要的應用程式或系統中,以擴充套件其功能或提供額外的特性。外掛通常被設計成可獨立安裝和解除安裝,並且可以與主應用程式進行互動。外掛的功能取決於所應用的領域和具體的應用程式,在AIGC快速發展的今天,大語言模型外掛異軍突起,改變了外掛存在的形態,這也是本篇文章重點的研究物件。結合當前大語言模型外掛的發展,外掛分類如下:
(/img/bVc9MrG)

1.1 傳統外掛

傳統外掛(Plug-in,又稱addin、add-in、addon或add-on,又譯外掛)是一種遵循一定規範的應用程式介面編寫出來的程式。其只能執行在程式規定的系統平臺下(可能同時支援多個平臺),而不能脫離指定的平臺單獨執行,即外掛的執行依賴於宿主軟體,無差別地啟用或禁用外掛功能。傳統外掛可分為瀏覽器外掛和客戶端軟體外掛,傳統外掛的存在形態如下圖所示。

1.2 大語言模型外掛

大語言模型外掛是隨著大語言模型發展而誕生的全新外掛。 大語言模型外掛的核心是Web API,獨立於大語言模型,外掛開發過程不受大語言模型的約束,同時沒有開發語言的限制,更加通用,只要Web API遵循RESTful相關規則即可。只是在為大語言模型配置外掛時遵循配置規則,如原生ChatGPT外掛配置遵循OpenAPI格式以及新增相關描述。大語言模型與外掛是相對獨立的兩個部分,大語言模型與外掛關係示意如下圖所示。

大語言模型是外掛的選擇器,按需使用外掛功能,即只有當使用者提供的問題或資料滿足外掛呼叫條件時,才會呼叫外掛,不是無差別地使用外掛功能,大語言模型外掛的工作流程如下圖所示。

2 ChatGPT外掛

目前最強大的商用大語言模型莫過於OpenAI的大語言模型ChatGPT-3.5/4.0,均支援外掛功能(後面統一使用ChatGPT),並且對支援開發者開放了外掛開發入口,開發者可以基於自身需求開發Web API作為ChatGPT外掛。但是,ChatGPT建立外掛的過程比較繁瑣,下面以GPTBots外掛建立過程作為對比,兩者外掛建立過程如下圖所示(左:ChatGPT建立外掛;右:GPTBots建立外掛)。

3 GPTBots外掛

我們不一樣!GPTBots外掛應用的技術路線不同於ChatGPT,GPTBots外掛融合了ChatGPT外掛建立規範(通用的OpenAPI規範)和函式呼叫功能,這樣做有如下優勢:

  • 開發者只需專注於自身功能介面開發,無需開發額外的介面
  • 外掛配置遵循OpenAPI規範,開發者可以直接複用面向ChatGPT Web 的外掛,一鍵釋出外掛至GPTBots
  • GPTBots外掛自動相容市面上主流已支援外掛能力的LLM,開發者無需再去適配每個LLM

3.1 建立外掛

透過上面外掛建立過程對比,我們知道,使用GPTBots外掛只需四步:開發外掛介面、新建外掛、配置外掛鑑權、新增符合OpenAPI規範的介面配置,其餘的交給GPTBots。
(1)開發外掛介面
這裡與ChatGPT原生方式相同,需要開發者自行開發外掛介面,但是,在GPTBots中不需要開發者另行開發外掛清單介面、外掛介面配置資訊介面、外掛Logo介面,只需要開發者專注於外掛功能介面開發。
(2)新建外掛
GPTBots新建外掛入口如下圖。

(3)配置外掛鑑權
GPTBots外掛提供三種鑑權方式,即不鑑權(None)、Basic鑑權和Bearer鑑權,配置過程如下圖。

(4)新增符合OpenAPI規範的介面配置
完成上述準備工作,最後為外掛配置介面規則,即開發者的功能介面,GPTBots採用的介面規則遵循OpenAPI規範,配置說明如下圖。

完成外掛建立後,可以在“我的外掛”中看到已建立成功的外掛,同時,GPTBots提供了外掛一鍵釋出功能,即將外掛釋出到外掛市場,供其他開發者使用。

綜上,GPTBots外掛最大程度簡化了使用者建立和使用外掛的流程,極大降低了外掛使用門檻。

3.2 外掛應用

GPTBots不僅建立外掛流程非常簡單、對開發者非常友好,使用起來也非常順手。使用外掛前,我們需要為Bot新增外掛。以高德天氣外掛為例,為“天氣小精靈”Bot新增外掛過程如下:


當我們為“天氣小精靈”Bot新增天氣外掛和搜尋外掛後,當問題中出現天氣和實時資訊相關問題時,外掛會主動承擔內容生產的責任,實測效果如下:

3.3 外掛市場

GPTBots官方為廣大開發者和使用者提供了眾多實用的外掛,如PDF生成外掛、天氣外掛和搜尋外掛等等,GPTBots部分外掛如下:

4 思考與展望

外掛在實際業務應用中,由於LLM每次呼叫token是有上限的,而外掛也不可避免的佔用token,這樣就導致無法在一次請求呼叫中提供多個外掛備用。或者一個外掛協議如果過於複雜,可能導致直接呼叫失敗。

GPTBots平臺為了更好解決此類問題,推出了Flow功能。開發者可以在不同的步驟編排多個LLM參與業務處理,每個LLM 可以最多新增3 個外掛,這樣就很好的解決了外掛使用限制的問題,同時透過減少請求上下文內容長度讓LLM更加專注,從而提升外掛呼叫成功率。

LLMs外掛區別於傳統外掛,它獨立、靈活、自由、功能強大,大語言模型外掛的核心是Web API,因此大語言模型外掛完全擁抱網際網路,同時,沒有開發語言“歧視”,無論開發者的語言棧是Python、Java、Go、PHP等,只要可以開發HTTP協議介面,遵循RESTful規則,就可以構建大語言模型外掛,相信未來大語言模型外掛種類會越來越豐富,功能越來越強大。相對於ChatGPT繁瑣的外掛建立流程,GPTBots平臺簡化了外掛建立流程,簡單、易用、好用,提高外掛開發者效率,降低開發者學習成本,未來一定會有越來越多的開發者選擇GPTBots平臺。