來源:機器之心
ChatGPT 是個「智商超高」的人工智能,經過GPT-4 內核的升級版更是如此。然而我們知道,它的訓練數據截止到2021 年,沒有訓練過的東西,AI 是不可能準確回答出來的。
自去年11 月上線以來,ChatGPT 已被無數人使用,人們一直要求以各種形式讓這個大語言模型接入更多數據,3 月24 日,OpenAI 終於宣布部分解除了ChatGPT 無法聯網的限制。
OpenAI 的解決方案是用第三方插件作為橋樑,讓AI 在較安全的環境下「看」外界數據。昨天該機構開放了第一批ChatGPT 插件名單。這批插件由Expedia、FiscalNote、Instacart、KAYAK、Klarna、Milo、OpenTable、Shopify、Slack、Speak、Wolfram 和Zapier 創建。
具體來說,插件現在可以讓你用ChatGPT 執行以下操作:
-
檢索實時信息:例如體育比分、股票價格、最新消息等;
-
檢索知識庫信息:例如公司文件、個人筆記等;
-
代表用戶執行操作:例如,訂機票、訂餐等。
除此之外,OpenAI 還自己提供了兩種插件,包括一個網絡瀏覽器和一個代碼解釋器,並開源了一個知識庫檢索插件的代碼。現在,任何開發人員都可以自行構建插件,用來增強ChatGPT 的信息庫了。
目前插件alpha 版的訪問權限已擴展至更多候補名單中的用戶和開發人員,雖然OpenAI 表示優先考慮少部分開發者和ChatGPT Plus 用戶,但也計劃未來進行更大規模的開放。
為了讓大家有個直觀的感受,這裡舉一個例子:用戶可以從ChatGPT 中選擇並安裝Wolfram 插件,從而提高其計算智能。
Wolfram Alpha 裡的數據均來自各大學術網站、出版刊物與科學機構,專業性絕對有保障,這樣的ChatGPT 有沒讓你感覺變得更強大了?
概述
今天的大語言模型雖然已能完成各種任務,但作用仍然有限。訓練數據是它們可以從中學習的唯一信息,這些內容可能已過時,但又要適配人們所有的需求。此外,語言模型唯一可以開箱即用的能力就是輸出文本。此文本可能包含有用的說明,但要真正遵循這些說明,人就需要進行更多處理。
雖然不是一個完美的類比,但插件可以成為語言模型的「眼睛和耳朵」,從而讓語言模型能夠訪問新的、私人的或具體的,不包含在訓練數據中的信息。
為了響應用戶的明確請求,插件還可以使語言模型代為執行安全、受限的操作,從而提高整個系統的實用性。
OpenAI 預計,統一應用程序做AI 交互的開放標準將會出現,他們正在對這樣一個標准進行早期嘗試。
今天,OpenAI 開始逐步開放OpenAI 早期合作者為ChatGPT 用戶構建的插件,首先覆蓋的對像是ChatGPT Plus 訂閱者,此外也開始推出讓開發人員為ChatGPT 創建自己的插件的能力。
在接下來的幾個月裡,隨著安全系統的改進,OpenAI 計劃讓使用OpenAI 模型的開發人員能夠將插件集成到自己的應用程序中,而不僅是ChatGPT。
安全性和更廣泛的影響
當然,將語言模型連接到外部工具會帶來新的機會,同時也會帶來重大的新風險。
插件提供了解決與大型語言模型相關的各種挑戰的潛力,包括大模型「幻覺」、追踪最近的事件,以及訪問(經過許可的)專有信息源。通過集成對外部數據的顯式訪問,例如在線最新信息、基於代碼的計算或自定義插件檢索信息,語言模型可以通過基於證據的參考內容來加強它們的回复。
這些參考資料不僅增強了模型的實用性,還使用戶能夠評估模型輸出的可信度並仔細檢查其準確性,從而有可能減輕與最近GPT-4 系統卡片中討論的過度依賴相關的風險。最後,插件的價值可能跨越通過幫助用戶處理各種新用例(從瀏覽產品目錄到預訂航班或訂購食物)的現有限制。
但與此同時,插件可能會採取有害或無意的行動,增加不法分子欺詐、誤導或虐待他人的能力,從而增加安全層面的挑戰。通過增加可能的應用範圍,插件可能會增加模型在新領域中採取的錯誤或未對齊操作而產生負面後果的風險。
這些因素就指導了ChatGPT 插件平台的開發,OpenAI 為此推出了多項保障措施。
此前,OpenAI 已經在內部和與外部合作者進行了「紅隊演練」,演習了許多可能的相關場景。例如,紅隊發現瞭如果插件在沒有安全措施的情況下發布,會執行複雜的prompt 注入、發送欺詐郵件和垃圾郵件、繞過安全限製或濫用發送到插件的信息。
OpenAI 正在使用這些發現來推動安全設計緩解措施以限制有風險的插件行為,並提高了它們作為用戶體驗的一部分運行的方式和時間透明度,此外還使用這些發現來確認逐步部署對插件的訪問的決定。
插件可能會產生廣泛的社會影響。例如,在最近發布的一篇論文中,OpenAI 研究者發現能夠使用工具的語言模型可能會比沒有工具的語言模型產生更大的經濟影響,更普遍地說,根據其他研究人員的發現, 當前的人工智能技術浪潮將對工作轉變、替代和創造的速度有很大影響。
讓ChatGPT 瀏覽網頁
在WebGPT、GopherCite、BlenderBot2、LaMDA2 等一系列工作的激勵下,允許語言模型從互聯網上讀取信息,將嚴格地擴大了可以討論的內容範圍,超越了訓練語料庫,融入了當下的新鮮信息。
下圖是一個例子,可以看到的是,瀏覽為ChatGPT 用戶打開了一種體驗,以前的模型可能會禮貌地指出它的訓練數據沒有包括足夠的信息讓它回答。而在這個例子中,ChatGPT 檢索了最近的奧斯卡獎信息(在2023 年3 月13 日頒獎),然後進行了一番熟悉的ChatGPT 詩歌表演。瀏覽成為了一種附加體驗的方式。
問:你能告訴我哪個人/ 電影贏得了這些類別的奧斯卡獎嗎?
-
最佳演員
-
最佳配樂
-
最佳影片
-
最佳男配角
然後想出一首詩將它們聯繫在一起。
ChatGPT 會給你一系列的搜索結果,你可以直接點擊查看相關的信息來源。
除了為終端用戶提供實用價值之外,語言和聊天模型能夠進行徹底和可解釋的研究,展現了具有可擴展對齊工作方面的前景。
值得注意的是,插件的基於文本的Web 瀏覽器僅限於發出GET 請求,這能減少但不會消除某些類別的安全風險。瀏覽插件的範圍被限定為可用於檢索信息,但不包括「事務性」操作,例如表單提交—— 這類操作具有更大的安全性風險。
瀏覽功能使用了微軟必應搜索API 從Web 檢索內容。因此,這一功能繼承了微軟在來源可靠性和信息真實性以及防止檢索有問題內容的「安全模式」方面的大量工作。該插件在一個獨立的服務中運行,ChatGPT 的瀏覽活動與基礎設施的其餘部分是分開的。
為了尊重內容創作者並遵守網絡規範,ChatGPT 瀏覽器插件的用戶代理token 是ChatGPT-User,並配置為尊重網站的robots.txt 文件。偶爾可能會導致「點擊失敗」,這表明該插件正在遵守網站的指示,避免對其進行抓取。此用戶代理將僅用於代表ChatGPT 用戶採取直接操作,而不用於以任何自動方式抓取網絡。 OpenAI 還發布了IP 出口範圍,並實施了限速措施以避免向網站發送過多流量。
代碼解釋器
可以使用Python 處理上傳和下載的實驗性ChatGPT 模型
OpenAI 為ChatGPT 背後的模型提供了一個在沙盒、防火牆執行環境中工作的Python 解釋器,以及一些臨時磁盤空間。由解釋器插件運行的代碼在一個持久會話中進行評估,該會話在聊天對話期間(具有上限超時)一直處於活動狀態,並且後續調用可以相互構建。目前該功能支持將文件上傳到當前對話工作區並下載工作結果。
點擊圖中的Finished Calculating:
從最初的用戶研究之中,OpenAI 確定了一些使用代碼解釋器較有價值的用例:
-
解決定量和定性的數學問題
-
進行數據分析和可視化
-
在格式之間轉換文件
安全機制
將ChatGPT 模型連接到編程語言解釋器的首要防範措施是對執行進行適當的沙盒處理,以便AI 生成的代碼不會在現實世界中產生意外的副作用。 OpenAI 會在安全環境中執行代碼,並使用嚴格的網絡控制來防止外部互聯網訪問執行代碼。此外,OpenAI 對每個會話都設置了資源限制。
禁用互聯網訪問會限制代碼沙箱的功能,但這可能是AI 輔助編程最安全的初始形態。第三方插件在設計中以安全為最優先考慮,再將ChatGPT 連接到外部世界。
數據獲取
開源檢索插件使ChatGPT 能夠經許可後訪問個人或組織的信息源。它允許用戶通過提問或用自然語言的方式表達需求,從他們的數據源中獲取最相關的文檔片段,例如文件、筆記、電子郵件或公共文檔。
作為一個開源和自託管的解決方案,開發人員可以部署他們自己的插件版本並在ChatGPT 上註冊。其插件利用OpenAI 嵌入並允許開發人員選擇向量數據庫(如Milvus、Pinecone、Qdrant、Redis、Weaviate 或Zilliz)來索引和搜索文檔。信息源可以使用webhooks 與數據庫同步。
檢索插件允許ChatGPT 搜索內容向量數據庫,並將最佳結果添加到ChatGPT 會話中。這意味著它不會受到任何外部影響,主要風險是數據授權和隱私。開發人員應只將內容添加到他們有權使用的檢索插件中,並且可以在用戶的ChatGPT 會話中共享。
第三方插件
在ChatGPT 上使用第三方的插件就像這樣:
OpenAI 為第三方插件準備了描述清單文件,其中包括對插件功能的機器可讀描述、調用方法,以及面向用戶的文檔。
{ “schema_version”: “v1”, “name_for_human”: “TODO Manager”, “name_for_model”: “todo_manager”, “description for human”: “Manages your TODOs!”, “description_for_model”: “An app for managing a user’s TODOs”, “api”: { “url”: “/openapi.json” }, “auth”: { “type”: “none” }, “logo_url”: “https://example.com/logo.png”, “legal_info_url”: “http://example.com”, “contact_email”: “hello@example.com”}
構建一個插件的步驟:
1、構建你希望語言模型調用的API 端點(可以是新的API、已有的API 或圍繞專門為LLM 設計的現有API 的包裝)。
2、創建一個記錄你的API 的OpenAPI 規範,以及一個鏈接到OpenAPI 規範並包含一些插件特定元數據的清單文件。
在chat.openai.com 上開始對話時,用戶可以選擇他們想要啟用的第三方插件。有關已啟用插件的文檔作為對話上下文的一部分顯示給語言模型,使模型能夠根據需要調用適當的插件API 來實現用戶意圖。目前,插件是為調用後端API 而設計的,OpenAI 還正在探索也可以調用客戶端API 的插件。
OpenAI 表示,他們正在努力開發插件,並推廣給更廣泛的受眾。
這也就意味著,ChatGPT 帶來的這場風暴,正在席捲一切。
參考內容:
https://openai.com/blog/chatgpt-plugins