
使用這些基本 REST API 最佳實踐構建出色的 API
為解決序列到序列有時產生不合理結果的問題,我們于 2017 年開發了基于深度強化學習的方法,對序列到序列 seq2seq 的學習結果做進一步的調優 [4]。與 RLHF 有相同的算法,先學習獎勵模型,然后基于策略梯度,調節整個序列到序列模型(策略模型)。模型也是基于 LSTM 的。當時的研究發現,加上深度強化學習的微調,可以把序列到序列的生成結果做得更好。
Google 的研究團隊于 2017 年發表了 Transformer 模型。序列到序列的生成開始轉向使用 Transformer。由于 Transformer 強大的表示和學習能力,生成式對話的效果有了大幅度的提升,也從單輪對話的生成逐漸發展到多輪對話的生成。
2018 年 Open AI 團隊發表了 GPT-1 模型。其基本想法是,先訓練一個基于 Transformer 的大規模語言模型,在其基礎上通過有監督的微調 SFT 方法,學習序列到序列模型,把自然語言的理解和生成任務都轉化為序列到序列生成的任務,在一個模型上實現所有的任務,包括生成式對話。之后又于 2019 年發表了 GPT-2,2020 年發表了 GPT-3,逐步發展到 ChatGPT 和 GPT-4。
傳統的相對小的生成式模型也可以生成自然的人類語言,甚至是基于 LSTM 的。因為學習的目標是單詞序列的預測誤差最小化。但生成的自然語言所描述的內容有很多在現實中是不會發生的或者不合理的,也就是有嚴重的幻覺(hallucination)。而大規模語言模型,由于學習手段和規模,其生成的自然語言所描述的內容,在現實中是很容易發生的,甚至是合理的,幻覺現象也得到比較有效的控制。
ChatGPT 之前,業界開發出了一系列的生成式大模型,做生成式對話等任務。整體觀察的現象是能更好地完成各種任務,但是能力都沒有能夠達到 ChatGPT 的水平。仔細閱讀 GPT-3 [5] 和 InstructGPT 的論文 [1],認真觀察 ChatGPT 等各種 LLM 的結果,讓人感到 Open AI 的核心競爭力是他們開發了一整套語言大模型的調教方法和工程實現方法。調教方法包含預訓練、SFT、RLHF 等基本步驟,更重要地,包含高質量大規模數據的準備,將數據一步步喂給模型的訓練細節。
實現人工智能可以考慮到以下三條路徑:
圖 1. 實現人工智能的三條路徑
人工智能傳統的符號處理屬于第 1 條路徑。機器學習屬于第 3 條路徑。深度學習是受人腦啟發的機器學習,屬于第 3 條路徑,但也借鑒了第 2 條路徑。
第 1 條路徑最容易想到,但是人工智能的歷史證明,它有很大的局限性。第 2 條路徑依賴于腦科學的進步,目前研究進展緩慢,也是非常困難的。第 3 條路徑看上去不是很直接,但是是目前實現人工智能的主要手段。
筆者認為 LLM 主要屬于第 3 條路徑,但也借鑒了第 2 條路徑,兼具第 1 條路徑的特點,因為 LLM 是深度學習,模型中的知識和能力是人通過精選的數據和巧妙的訓練方法授予的。三條路徑的融合使 LLM 成為當前實現人工智能的最強大手段。
對外部世界的認識和理解,我們可以站在第三者的角度,觀察現象,總結規律,分享結果,屬于第三者體驗(third person expeirence)。科學是在第三者體驗基礎上建立起來的。我們每個人的內心感受和想法是自己的精神活動,很難與他人分享,只能大概描述,屬于第一者體驗(first person experience)。
可以認為符號處理是基于開發者第一者體驗的,而機器學習是基于開發者第三者體驗的。比如,圍棋大師總結下棋的經驗,定義規則,在其基礎上開發圍棋系統,就是基于第一者體驗的。觀察圍棋大師下棋,從其下棋數據中自動學習規律,開發圍棋系統,就是基于第三者體驗的。
有趣的是,LLM 的開發基于第三者體驗,也結合第一者體驗。因為模型是基于深度神經網絡,使用大規模數據,通過預測誤差最小化的方式學到的,這些都可以認為是基于第三者體驗的。但是在學習過程中的數據收集,數據清洗,數據標注,以及在推理過程中使用的提示(prompt),上下文學習(in context learning),都需要開發者基于自己的經驗,有效地將知識和能力提供給模型,這應該看作是基于第一者體驗。這一點與其他的機器學習有本質的不同。這也就意味著開發 LLM,既需要能夠觀察數據和模型的統計指標,比如 scaling law,又要能夠站在使用者的角度準備數據,調教模型。而后者的技巧需要很多觀察和摸索才能掌握。
LLM 在一定程度上解決了通用性問題,進一步提高了智能性。大數據、大模型返回的結果大概率是現實中應該發生的而且是合理的。開發者通過預訓練、SFT、RLHF、Prompt 等方式,調教模型,可以大大提高模型的能力。
LLM 已經非常強大。但也有大家指出的明顯需要解決的問題:1. 如何優化模型,也就是降低訓練和使用成本,同時擴大可處理問題的規模。2. 如何保證模型生成內容的真實性,也就是避免幻覺。3. 如何構建可信賴大模型,也就是保證模型生成結果的有用性,安全性等。
筆者在 ChatGPT 出現之前,曾經指出深度學習需要更多地借鑒人腦的處理機制,需要更多的理論指導 [6]。這在 LLM 時代也依然是成立的。LLM 規模已經極其龐大,可能需要新的理論,對模型的能力進行分析和解釋。當模型達到一定規模以后,整個系統的 Dynamics 呈現了完全不同的規律,需要進一步研究。
總結起來,LLM 時代有以下重要研究課題。
未來,多模態大模型、LLM 加邏輯推理、智能體等都是重要的研究課題。下面重點討論前兩個課題。
人腦是一個巨大的神經網絡,推測有 1 千億個神經元,1 千萬億個突觸。腦神經網絡由諸多去中心化(decentralized)的子網絡組成,每個子網絡負責一個特定的功能,子網絡之間有一定的連接。神經網絡進行的是并行處理,處理速度快,在下意識中進行。人腦神經網絡的一部分被激活時產生某種狀態,稱作神經表示( neural representation)。
心智(mind)是我們每個人體驗的內心的感知和認知,既有意識的部分又有下意識的部分,主要是意識層面的。目前腦科學的一個有利假說是,意識是人腦整體信息同步的機制,信息同步在工作空間(workspace)中進行 [7]。意識中的信息處理是串行處理,處理速度慢。
具身認知論(emboddied cognition)認為,在人的思維過程中,在意識中的處理產生的是表象(image),心智計算論(computational theory of mind)認為意識中的處理產生的是心智語言(mental language, mentalese)[8]。目前沒有定論,本文根據需要,同時借用兩者的觀點。
圖 2 人腦和心智的組成
圖 2 給出了人腦和心智的組成。下意識中的腦(神經網絡)分成不同的腦區負責聽覺、視覺、運動、語言,數學等功能。意識得到下意識神經網絡處理的結果,通過心智語言表示出來,或者產生表象,在工作空間里進行各種處理。
心智語言是認知科學家福多、平克等提出的假說。一個重要特點是,自然語言是有歧義的,而心智語言沒有歧義。當我們理解某一個概念的時候,腦中喚起所有相關的多模態信息進行消歧處理,得到心智語言的表示。
目前為止,自然語言處理有六個大的任務,包括分類、匹配、標注和語義分析、序列生成、序列到序列、序貫決策。
前三個是語言理解任務,后三個是語言生成任務。理解任務的輸出是類別標簽等,可以認為是心智語言的表示。
所有的任務都可以用序列到序列 seq2seq 模型實現。語言理解是自然語言到心智語言的 seq2seq。語言生成是心智語言到自然語言的 seq2seq。語言轉換是一種自然語言到另一種自然語言的轉換。
GPT3、ChatGPT 等用大量文章數據做預訓練,然后用 seq2seq 數據做微調,但 seq2seq 數據也轉換成序列數據的形式 [seq:seq],即把兩者拼接起來。注意 ChatGPT 等在生成的時候并不區別是自然語言還是內部表示。內部表示也可以是程序代碼。
圖 3 LLM 實現所有自然語言處理任務
圖 3 描述基于 LLM 的語言理解,語言生成,語言轉換(翻譯)的 LLM。比如,思維鏈(chain of thought)就可以認為是心智語言的內容。基于 LLM 的語言理解就是把自然語言轉化為心智語言。注意:心智語言應該是沒有歧義的,而用 LLM 生成的內容,包括思維鏈,經常是有歧義的。
所以,可以認為 LLM 用于語言理解時生成的內容是心智語言的近似。自然語言表示心智語言的好處是人們可以很容易定義和標注數據,如思維鏈數據,但是缺點是不能保證不產生歧義。6.1 節有一個數學解題的例子,也可以用程序表示心智語言,就沒有歧義的問題。
人的語言理解可以從兩個角度定義,一個是概念,另一個是功能。如果是概念,理解一個詞語或者是一句話,意味著把記憶中的相關概念和事件喚起,并把它們聯系起來,這是在意識中產生表象或由心智語言的表示。理解的結果產生語義落實(grounding),是沒有歧義的。因為人腦在理解中做了消歧。
有很多證據表明,人的語言理解過程是通過視覺、聽覺等多模態處理進行的。概念相關的視覺、聽覺表征分別記憶在視覺、聽覺的腦區。當相關概念被喚起的時候,在意識中產生多模態的表象。比如,被問到「大猩猩是不是有鼻子」時,要回答這個問題,我們腦子里會展現出大猩猩的視覺表象。
另一方面,人對世界的理解也是通過語言的。人通過視覺、聽覺、觸覺、味覺、嗅覺從外界環境獲取信息。世界理解通常是將多模態信息與語言聯系到一起的過程。在這個過程中也會在意識中產生表象或心智語言的表示。比如,看到桌子上的物體,會識別是「杯子」,「圓珠筆」等。
大家關注的一個問題 LLM 是否實現了人的語言理解,LLM 是否建立了世界模型。筆者的回答:是也不是。
LLM 建立的對世界的認識完全是基于語言的,從語言數據中學習,將學到的知識存儲于語言模型。所以當問到關于世界的任何問題,LLM 都能回答,雖然有時是有幻覺的。知識的存儲的方式也與人不一樣,不是基于實體和概念,而是存儲在 Transformer 參數之中。
可以預見,當 LLM 和多模態大模型結合時,就能產生與人更接近的世界模型。這時知識也會通過實體和概念等聯系起來。特別是未來,機器人能通過與世界互動,獲得具身的多模態信息時,其產生的多模態大模型就應該能更接近人類的世界模型。注:世界模型并沒有大家都接受的嚴格定義。
因此,多模態處理應該是 LLM 之后未來人工智能發展的重要方向。多模態研究最近也有很多進展。比如,視覺語言模型(vision language model)方面,Open AI 開發的 CLIP 模型是視覺語言對齊上最有代表性的模型。字節跳動也開發了 X-VLM 模型,在細粒度的多模態理解任務上有最好的表現 [9]。
數學能力包括幾種能力,有邏輯推理、算術計算、代數計算、幾何概念理解等。
在西方哲學中,數學一直被認為是一種人類天生具有的獨立的能力。
亞里士多德認為哲學理論可以分為數學、自然學(physics)和形而上學 (metaphysics)。在古希臘,數學被認為獨立于「科學」的學科,因為其抽象性和邏輯性。
圖 4 將 2×2 的正方形面積擴大一倍的方法
柏拉圖在《美諾篇》中介紹了蘇格拉底與一位奴隸少年的對話。蘇格拉底通過不斷提問的方式,引導奴隸少年解決了如何把一個 2×2 的正方形的面積擴大一倍的數學問題(見圖 4)。蘇格拉底試圖證明,人的數學思維能力,更一般地,人的理性是生來具有的。
康德在《純粹理性批判》中主張人的推理能力是先天的,他稱之為先驗綜合判斷,其中包括數學推理,比如計算 5+7=12。
近年腦科學和認知科學的研究發現,人的數學基本能力是先天的,如基本的計算能力。數學思維主要涉及一些特定的腦區 [9]。
有這樣的實驗,4 個月的兒童,讓他們看到把一個球滾到屏風后面,再滾一個球過去,當把屏風挪開的時候,如果他們看到的留下的不是兩個球而是一個球,都會露出非常吃驚的表情。說明他們知道 1+1=2。
遞歸運算是數學的核心能力,猜測是人天生就有的。腦科學家發現人腦頂葉有一個腦區,其主要功能是數學思維,具體的機理仍不清楚,需要今后進一步研究。
當然不是所有的數學能力都是先天的,也有后天習得的數學能力。研究發現,數學家的部分視覺腦區在后天的學習過程中被再利用于數學 [10]。
數學思維會經常上升到意識。科學家們經常把自己的數學思維過程描述為意識中的與數學相關的表象的操作過程,這些表象與數學概念密切聯系在一起。對應著大腦神經網絡怎樣的計算尚不清楚。
愛因斯坦曾這樣反思自己的數學思維過程,「詞匯或者語言,無論是書面形式還是口頭形式,似乎在我的思維中并沒有發揮任何作用。作為思維元素的實體是某些符號和或多或少清晰的表象,可以自發地復制和組合。而且,這些元素和相關的邏輯概念之間存在一定的聯系。」
LLM 本身具備類推推理(analogical reasoning)的能力,但不具備邏輯推理(logical reasoning)的能力(邏輯推理是指基于三段論的推理)。因此,LLM 可以做一些簡單的數學計算、數學解題。對比于人,相當于用死記硬背的方法做數學。雖然 GPT4 展現出了非常強的數學解題能力,求解復雜的數學問題應該還需要其他機制。
一個想法是 LLM + 邏輯推理的數學解題。用 LLM 理解數學問題的題意,將其轉換為心智語言,在心智語的基礎上進行邏輯推理和數學計算。邏輯推理和數學計算調用其他的數學計算機制。
人的數學解題有兩種機制,分別使用心理學稱作的系統 1 和系統 2,進行快的思維(基于死記硬背)和慢的思維(進行深入思考)。用 LLM 直接解題,對應著系統 1。用 LLM 產生心智語言,在心智語言的基礎上進行解題,對應著系統 2。
在字節跳動,我們去年提出了神經符號處理方法,結合神經處理和符號處理,用于自然語言理解任務。也是基于相同的思想結合系統 1 和系統 2 的機制 [11]。這套方法既可以用于數學解題,又可以用于自然語言理解。
上述基于 LLM 的數學解題和自然語言理解方法中,一個自然的想法是用程序語言表示心智語言。這是因為 LLM 一般使用程序訓練,也能生成程序。
我們最近做了大規模的實驗,驗證了 Python 程序比英語(自然語言)作為 “心智語言”,在數學解題中更有優勢的事實 [12]。這個方法的一個優點是,LLM 理解題意后,得到的程序可以直接通過解釋器執行,驗證解題步驟的正確性。在 Python 程序上進行推理,也比在自然語言上進行推理更為容易。
[1] Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., Zhang, C., Agarwal, S., Slama, K., Ray, A. and Schulman, J., 2022. Training language models to follow instructions with human feedback. NeurIPS 2020.
[2] Open AI. GPT 4 Technical Report, 2023.
[3] Shang, L., Lu, Z. and Li, H., 2015. Neural Responding Machine for Short-Text Conversation. ACL 2015.
[4] Li, Z., Jiang, X., Shang, L. and Li, H., 2018. Paraphrase Generation with Deep Reinforcement Learning. EMNLP 2018.
[5] Brown, T.B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., Neelakantan, A., Shyam, P., Sastry, G., Askell, A. and Agarwal, S., 2020. Language models are few-shot learners. NeurIPS 2020.
[6] 李航,人工智能需要新的范式和理論,機器之心專欄,2022 年.
[7] Stanislas Dehaene, Consciousness and the Brain, Deciphering How the Brain Codes Our Thoughts, Viking Press Publisher, 2014. 中譯本:腦與意識,破解人類思維之謎,章熠譯,浙江教育出版社,2018.
[8] 李航,智能與計算,計算機學會通訊,第 15 卷,2019 年.
[9] Bugliarello, E., Sartran, L., Agrawal, A., Hendricks, L.A. and Nematzadeh, A., 2023. Measuring Progress in Fine-grained Vision-and-Language Understanding. arXiv preprint arXiv:2305.07558.
[10] Stanislas Dehaene, How We Learn: Why Brains Learn Better Than Any Machine . . . for Now, 2020.
[11] Liu, Z., Wang, Z., Lin, Y. and Li, H., 2022. A Neural-Symbolic Approach to Natural Language Understanding. EMNLP 2022 Finding.
[12] Jie, Z., Luong, T.Q., Zhang, X., Jin, X. and Li, H., 2023. Design of a Chain-of-Thought in Math Problem Solving. arXiv preprint arXiv:2309.11054.
文章轉自微信公眾號@算法進階