一切都要從 ChatGPT 的橫空出世說起......
曾經一片祥和的NLP 社區,被這個突如其來的「怪物」 嚇到了!一夜之間,整個NLP 圈發生了巨大的變化,工業界迅速跟進,資本“狂飆”,開始了復刻ChatGPT 之路;學術界突然陷入了一片迷茫的狀態......大家慢慢開始相信「NLP is solved!」
#然而,從最近依然活躍的NLP 學術圈和層出不窮的優秀工作來看,事實並非如此,甚至可以說「NLP just got real!」
這幾個月,北航、Mila、香港科技大學、蘇黎世聯邦理工學院(ETH)、滑鐵盧大學、達特茅斯學院、謝菲爾德大學、中科院等多家機構,經過系統、全面的研究之後,打磨出一篇110 頁的論文,系統闡述了#後ChatGPT 時代的技術鏈:互動。
#與傳統的「人在環路(HITL)」、「寫作助手」 等類型的交互不同,本文所討論的交互,有著更高、更全面的視角:
因此,讓語言模型(LM)與外部實體以及自我進行交互,不僅可以幫助彌合大模型的固有缺陷,還可能是通往AGI 的終極理想的一個重要的里程碑!
其實 「互動」 的概念並不是作者臆想的。自從 ChatGPT 問世之後,誕生了許多關於 NLP 界新問題的論文,例如:
可見,NLP 學界的關注點,逐漸從“怎麼打造模型”,過渡到了“怎麼打造框架”,也就是將更多的實體納入到語言模型訓練、推理的過程當中。最典型的例子就是大家所熟知的 Reinforcement Learning from Human Feedback (RLHF), 基本原理就是讓語言模型從與人的交互(反饋)中進行學習 [7],這一思想成為了 ChatGPT 畫龍點睛的一筆。
因此可以說,「互動」 這個特性,是 ChatGPT 之後,NLP 最為主流的技術發展路徑之一!作者們的論文首次定義並系統解構了“交互式NLP”,並主要基於交互對象的維度,盡可能全面地討論了各種技術方案的優劣以及應用上的考慮,包括:
因此,在互動的框架下,語言模型不再是語言模型本身,而是一個可以「看」(observe)、可以「動作」(act) 、可以「取得回饋」(feedback) 的語言為基礎的智能體。
與某個物件進行交互,作者稱之為「XXX-in-the-loop」, 表示這個物件參與了語言模型訓練或推理的過程,並且是以一種級聯、循環、回饋、或迭代的形式參與其中的。
讓語言模型與人互動可以分為三種方式:
另外,為了保證可規模化的部署,往往採用模型或程式模擬人類的行為或偏好,即從人類模擬中學習。
總的來說,與人互動要解決的核心問題是對齊問題(alignment), 也就是如何讓語言模型的回應更加符合使用者的需要,更加有幫助、無害且有理有據,能讓使用者有更好的使用體驗等。
「使用提示進行交流」 主要著重於互動的即時性和持續性,也就是強調連續性的多輪對話。這一點和 Conversational AI [8] 的想法是一脈相承的。也就是,透過多輪對話的方式,讓使用者連續問下去,讓語言模型的回應在對話中慢慢地對齊於使用者偏好。這種方式通常在交互作用中不需要模型參數的調整。
「使用回饋學習」 是目前進行alignment 的主要方式,也就是讓使用者給語言模型的回應一個回饋,這種回饋可以是描述偏好的「好/ 壞” 的標註,也可以是自然語言形式的更詳細的回饋。模型需要被訓練,以讓這些回饋盡可能地高。比較典型的例子就是InstructGPT 所使用的RLHF [7],首先使用使用者標註的對模型回應的偏好回饋資料訓練獎勵模型,然後使用這個獎勵模型以某種RL 演算法訓練語言模型以最大化獎勵(如下圖)。
Training language models to follow instructions with human feedback [7]
#「使用配置進行調節」 是一種比較特殊的互動方式,允許使用者直接調整語言模型的超參數(例如temperature)、或語言模型的級聯方式等。典型的例子例如Google的AI Chains [9], 帶有不同預設prompt 的語言模型互相連接構成了一個用於處理流程化任務的推理鏈條,用戶可以透過一個UI 拖曳調整這個鏈條的節點連接方式。
「從人類模擬中學習」 可以促進上述三種方式的規模化部署,因為尤其在訓練過程,使用真實的使用者是不切實際的。例如 RLHF 通常需要使用一個 reward model 來模擬使用者的偏好。另一個例子是微軟研究院的 ITG [10], 透過一個 oracle model 來模擬使用者的編輯行為。
最近,史丹佛Percy Liang 教授等人建構了一個非常系統化的Human-LM 互動的評測方案:Evaluating Human-Language Model Interaction [11], 有興趣的讀者可以參考本論文或原文。
#語言模型與知識庫互動有三個步驟:
總的來說,與知識庫互動可以減輕語言模型的「幻覺」 現象(hallucination), 即提升其輸出的事實性、準確性等,也能幫助改善語言模型的時效性問題,幫助補充語言模型的知識能力(如下圖)等。
MineDojo [16]:當一個語言模型智能體遇到不會的任務,可以從知識庫中找出學習資料,然後在資料的幫助下,完成這個任務。
「Knowledge Source」 分為兩種,一種是封閉的語料知識(Corpus Knowledge), 如WikiText 等[15];另一種是開放的網路知識(Internet Knowledge), 例如使用搜尋引擎可以得到的知識[14]。
「Knowledge Retrieval」 分為四種方式:
##語言模型與模型或工具交互,主要的目的是進行複雜任務的分解,例如將複雜的推理任務分解為若干子任務,這也是Chain of Thought [17] 的核心思想。不同的子任務可以使用不同能力的模型或工具解決,例如計算任務可以使用計算機解決,檢索任務可以使用檢索模型解決。因此,這種類型的互動不僅可以提升語言模型的推理 (reasoning)、規劃 (planning)、決策 (decision making) 能力,還能減輕語言模型的 「幻覺」 (hallucination)、不準確輸出等限制。特別地,當使用工具執行某種特定的子任務時,可能會對外部世界產生一定影響,例如使用WeChat API 發了一條朋友圈等,稱為「面向工具的學習」(Tool-Oriented Learning) [ 2].
另外,有時候明確地分解一個複雜的任務是很困難的,這種時候,可以為不同的語言模型賦予不同的角色或技能,然後讓這些語言模型在互相協作、溝通的過程當中,隱式、自動地形成某種分工方案(division of labor),進行任務的分解。這種類型的互動不僅可以簡化複雜任務的解決流程,還可以對人類社會進行模擬,建構某種形式的智能社會。
作者們將模型和工具放在一起,主要是因為模型和工具不一定是分開的兩個範疇,例如一個搜尋引擎工具和一個retriever model 並沒有本質的不同。這個本質,作者們使用 「任務分解後,怎樣的子任務由怎樣的物件來承擔」 進行界定。
語言模型與模型或工具互動時,有三種類型的操作:
注意:Thinking 主要論及的是「多階段思考鏈」 (Multi-Stage Chain-of-Thought),即:不同的推理步驟,對應語言模型不同的呼叫(multiple model run),而不是像Vanilla CoT [17] 那樣,跑一次模型同時輸出thought answer (single model run).
#這裡部分承襲的是ReAct [18] 的表達方式。
Thinking 的典型工作包括了 ReAct [18], Least-to-Most Prompting [19], Self-Ask [20] 等。例如,Least-to-Most Prompting [19] 首先將一個複雜問題分解為若干簡單的模組子問題,然後迭代式地呼叫語言模型逐一擊破。
Acting 的典型工作包括了 ReAct [18], HuggingGPT [21], Toolformer [22] 等。例如,Toolformer [22] 將語言模型的預訓練語料處理成了帶有tool-use prompt 的形式,因此,經過訓練後的語言模型,可以在生成文本的時候,自動地在正確的時機調用正確的外部工具(如搜尋引擎、翻譯工具、時間工具、計算器等)解決特定的子問題。
Collaborating 主要包括:
Generative Agents: Interactive Simulacra of Human Behavior, https://arxiv.org/pdf/2304.03442 .pdf
語言模型和環境屬於兩個不同的象限:語言模型建立在抽象的文字符號之上,擅長high-level 的推理、規劃、決策等任務;而環境建立在具體的感知信號之上(如視覺信息、聽覺信息等),模擬或自然發生一些low-level 的任務,如提供觀察(observation)、反饋(feedback)、狀態更新(state transition) 等(如:現實世界中一個蘋果落到了地上,模擬引擎中一個“苦力怕” 出現在了你的面前)。
因此,要讓語言模型能夠有效且有效率地與環境進行交互,主要包括了兩個面向的努力:
對 Modality Grounding 最典型的就是視覺 - 語言模型。一般而言可以使用單塔模型如 OFA [28], 雙塔模型如 BridgeTower [29], 或語言模型與視覺模型的交互作用如 BLIP-2 [30] 來進行。這裡不再多說,讀者可以詳看本論文。
對於Affordance Grounding 主要有兩個考慮,即:如何在給定任務的條件下進行(1) 場景尺度的感知(scene-scale perception), 以及(2)可能的動作(possible action)。舉個例子:
例如上圖的場景,給定任務“請關閉客廳裡面的燈”,“場景尺度的感知” 要求我們找到全部紅色框選的燈,而不要選中不在客廳而在廚房的綠色圈選的燈,「可能的動作」 要求我們確定可行的關燈方式,例如拉線燈需要使用「拉」 的動作,而開關燈需要使用「撥動開關」 的動作。
通常而言,Affordance Grounding 可以使用一個依附於環境的價值函數來解決,如SayCan [31] 等,也可以使用一個專門的grounding model 如Grounded Decoding [32]等。甚至也可以透過與人、與模型、與工具等的互動來解決(如下圖)。
Inner Monologue [33]
在論文Interaction Interface 章節,作者們有系統地討論了不同互動語言、互動媒介的用法與優劣,包括:
#論文也全面、詳細、有系統地討論了各種各樣的互動方法,主要包括:
囿於篇幅,本文不詳細介紹其他方面的討論,如評測、應用、倫理、安全以及未來發展方向等。但這些內容在該論文原文中,仍然佔據了15 頁的內容,因此推薦讀者在原文中查看更多細節,以下為這些內容的大綱:
對互動的評測
#論文中對評測的討論主要涉及以下關鍵字:
互動式NLP 的主要應用
############################################################################################################################################################## #####Multi-Role Tasks: 進階######################
#倫理與安全
討論了互動型語言模式在教育上的影響,也針對社會偏見、隱私等倫理安全議題進行了討論。
未來發展方向與挑戰
以上是NLP還能做什麼?北航、ETH、港科大、中科院等多機構聯合發布百頁論文,系統闡述後ChatGPT技術鏈的詳細內容。更多資訊請關注PHP中文網其他相關文章!