最新研究,GPT-4暴露了缺點!無法完全理解語言歧義!
作者 |智商掉了一地、Python
自然語言推理(Natural Language Inference,NLI)是自然語言處理中一項重要任務,其目標是根據給定的前提和假設,來判斷假設是否可以從前提中推斷出來。然而,由於歧義是自然語言內在的特徵,處理歧義也是人類語言理解的重要組成部分。由於人類語言表達的多樣性,歧義處理成為解決自然語言推理問題的難點之一。當前,各種自然語言處理演算法被應用到問答系統、語音識別、智慧翻譯和自然語言生成等場景中,但即使有這些技術,完全解決歧義仍然是一個極具挑戰性的任務。
對於 NLI 任務,大型自然語言處理模型如 GPT-4 等確實面臨著挑戰。其中一個問題是語言歧義導致模型難以準確理解句子的真正含義。此外,由於自然語言的靈活性和多樣性,不同文字之間可能存在各種各樣的關係,這使得 NLI 任務中的資料集變得極其複雜,同時也對自然語言處理模型的普適性和泛化能力提出了巨大挑戰。因此,在處理歧義語言方面,如果今後大模型成功將顯得至關重要,並且大模型已被廣泛應用於對話介面和寫作輔助工具等領域。處理歧義將有助於適應不同的背景,提高溝通的清晰性,以及識別誤導性或欺騙性言語的能力。
這篇討論大模型歧義的論文標題使用了一語雙關的表達,“We’re Afraid…”,既表達了當前對語言模型難以準確建模歧義的擔憂,又暗示了論文所描述的語言結構。本文也表明,人們正在努力制定新的基準,以真正挑戰強大的新的大模型,以便更準確地理解和生成自然語言,並實現模型上的新突破。
論文題目:
We're Afraid Language Models Aren't Modeling Ambiguity
論文連結:
程式碼和資料地址:
文章速覽
本文作者計劃研究預訓練大模型是否有能力識別和區分含有多個可能解釋的句子,評估模型如何區分不同的讀法和解釋。然而,現有的基準測試資料通常不包含歧義的例子,因此需要自己構建實驗來探究這個問題。
傳統的 NLI 三路標註方案指的是一種用於自然語言推理(NLI)任務的標註方式,它需要標註者在三個標籤中選擇一個標籤來表示原始文字和假設之間的關係。這三個標籤通常是“蘊含(entailment)”、“中立(neutral)”和“矛盾(contradiction)”。
作者使用了 NLI 任務的格式來進行實驗,採用了函式式方法,透過對前提或假設中的歧義對蘊含關係的影響來表徵歧義。作者提出了一個名為 AMBIENT(Ambiguity in Entailment)的基準測試,涵蓋了各種詞彙、句法和語用歧義,並更廣泛地涵蓋了可能傳達多個不同資訊的句子。
如圖 1 所示,歧義可能是無意識的誤解(圖 1 頂部),也可能是故意用來誤導聽眾的(圖 1 底部)。例如,如果貓離開家後迷失方向,那麼從無法找到回家的路線的意義上看,它是迷路了(蘊涵邊);如果它已經好幾天沒有回家,那麼從其他人無法找到它的意義上看,它也是迷路了(中立邊)。
AMBIENT 資料集介紹
精選示例
作者提供了 1645 個涵蓋多種型別歧義的句子樣例,其中包括手寫樣本和來自現有NLI資料集和語言學教材。AMBIENT 中的每個示例都包含一組標籤,對應於各種可能的理解,以及每種理解的消歧重寫,如表 1 所示。
生成的示例
研究人員還採用了過度生成和過濾的方法來構建一個大型的未帶標籤的 NLI 示例語料庫,以更全面地涵蓋不同的歧義情況。他們受到前人工作的啟發,自動識別共享推理模式的前提假設對組,並透過鼓勵建立具有相同模式的新示例來加強語料庫的質量。
註釋和驗證
針對先前步驟獲得的例子,需要進行註釋和標註。這一過程涉及到了兩位專家的註釋、一位專家的驗證和彙總,以及部分作者的驗證。同時,37 名語言學專業的學生為每個例子選擇了一組標籤,並提供了消歧重寫。所有這些被註釋後的例子經過篩選和驗證,最終得到了 1503 個最終的例子。
具體過程如圖 2 所示:首先,使用 InstructGPT 建立未帶標籤的示例,再由兩位語言學家獨立進行註釋。最後,透過一位作者的整合,得到最終的註釋和標註。
此外,這裡還探討了不同標註者之間標註結果的一致性問題,以及 AMBIENT 資料集中存在的歧義型別。作者在該資料集中隨機選擇了 100 個樣本作為開發集,其餘樣本用作測試集,圖 3 是其中集合標籤的分佈情況,每個樣本都具有對應的推理關係標籤。研究表明,在歧義情況下,多個標註者的標註結果具有一致性,使用多個標註者的聯合結果可以提高標註準確性。
歧義是否說明了“不同意”?
該研究分析了在傳統的 NLI 三路標註方案下,標註者在對含歧義輸入進行標註時的行為。研究發現,標註者可以意識到歧義,並且歧義是導致標籤差異的主要原因,因此挑戰了“不同意”是模擬例子不確定性的流行假設。
在研究中,採用 AMBIENT 資料集,僱傭了 9 名眾包工作者對每個含歧義的例子進行標註。
任務分為三步:
標註含歧義的例子 識別可能的不同解釋 標註已消除歧義的例子
其中,步驟 2 中,三個可能的解釋包括兩個可能的意思和一個類似但不完全相同的句子。最後,對每個可能的解釋,都將其代入原始例子得到三個新的 NLI 例子,讓標註者分別選擇一個標籤。
此實驗的結果支援了假設:在單標註體系下,原始的模糊例子會產生高度不一致的結果,即在給句子打標籤的過程中,人們對於模糊不清的句子容易產生不同的判斷,導致結果不一致。但是,當在任務中加入消除歧義的步驟後,註釋員們普遍能夠識別並驗證句子的多種可能性,結果的不一致性得到了大幅度解決。因此,消除歧義是減少註釋員主觀性對結果影響的有效方法。
評估大模型上的表現
Q1. 能否直接生成與消歧有關的內容
該部分重點在於測試語言模型在上下文中直接生成消歧和對應標籤的學習能力。為此,作者構建了一個自然提示並使用自動評估和人工評估來驗證模型的表現,如表 2 所示。
在測試中,每個示例都有 4 個其他測試示例作為上下文,並使用 EDIT-F1 指標和人工評估來計算得分和正確性。實驗結果如表 3 顯示,GPT-4 在測試中表現最佳,實現了18.0%的 EDIT-F1 得分和 32.0% 的人工評估正確性。此外,還觀察到大模型在消歧時常常採用加入額外上下文的策略來直接確認或否定假設。不過需要注意的是,人工評估可能會高估模型準確報告歧義來源的能力。
Q2. 能否識別出合理解釋的有效性
該部分主要研究了大模型在識別含有歧義的句子時的表現。透過建立一系列真假陳述模板,並對模型進行 zero-shot 測試,研究人員評估了大模型在選擇正誤之間的預測中的表現。實驗結果表明,最佳模型是 GPT-4,然而,在考慮歧義性的情況下,GPT-4 在回答所有四個模板的歧義解釋中的表現比隨機猜測的準確率還低。此外,大模型在問題上存在一致性問題,對於同一個歧義句子的不同解釋對,模型可能會出現內部矛盾的情況。
這些發現提示我們,需要進一步研究如何提高大模型對含有歧義的句子的理解能力,並更好地評估大模型的效能。
Q3. 透過不同解釋模擬開放式連續生成
這一部分主要研究基於語言模型的歧義理解能力。透過給定上下文,對語言模型進行測試,比較模型對於不同可能解釋下的文字延續的預測。為了衡量模型對於歧義的處理能力,研究人員透過在相應語境下比較模型在給定歧義和給定正確語境下所產生的機率和期望差異,用 KL 散度來衡量模型的“驚奇度”,並且引入隨機替換名詞的“干擾句”來進一步測試模型的能力。
實驗結果表明,FLAN-T5 的正確率最高,但不同測試套件(LS 涉及同義詞替換,PC 涉及拼寫錯誤的修正,SSD 涉及語法結構修正)和不同模型的表現結果不一致,說明歧義仍然是模型的一個嚴重挑戰。
多標籤 NLI 模型實驗
如表 4 所示,在已有帶有標籤變化的資料上微調 NLI 模型仍有較大提升空間,特別是多標籤 NLI 任務中。
檢測誤導性的政治言論
這項實驗研究了對政治言論的不同理解方式,證明了對不同理解方式敏感的模型可被有效利用。研究結果如表 5 所示,針對有歧義的句子,一些解釋性的釋義可以自然而然地消除歧義,因為這些釋義只能保留歧義或者明確表達一個特定的意義。
此外,針對這種預測的釋義,可以揭示歧義的根源。透過進一步分析誤報的結果,作者還發現了很多事實核查中沒有提到的歧義,說明這些工具在預防誤解方面具有很大的潛力。
小結
如同本文中所指出的那樣,自然語言的歧義性將是模型最佳化中的一個關鍵挑戰。我們期待未來的技術發展中,自然語言理解模型能夠更加準確地識別文字中的上下文和重點,並在處理歧義性文字時表現出更高的敏感度。儘管我們已經建立了評估自然語言處理模型識別歧義的基準,並能夠更好地瞭解模型在這個領域中的侷限性,但這仍然是一個非常具有挑戰性的任務。
我們期待能夠出現更為複雜、準確的自然語言理解模型,它將有助於我們更全面地理解人類語言,從而使得 AI 的應用更為廣泛。期待在未來的技術發展中,聊天機器人將成為我們真正的朋友,能夠更好地理解我們的需求,並提供更智慧化的推薦和回答~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027828/viewspace-2950606/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python語言的優缺點詳解!Python
- 各大程式語言優缺點對比
- 語義理解和研究資源是自然語言處理的兩大難題自然語言處理
- Bash 和 Python 程式語言優缺點分析Python
- 機器學習無法解決自然語言理解問題 - thegradient機器學習
- 關於Python程式語言不得不說的優缺點!Python
- Python語言的前景、方向、優缺點、就業情況分析Python就業
- 智慧合約語言 Solidity 教程系列10 - 完全理解函式修改器Solid函式
- nlp語義理解
- 語法與語義
- EMNLP2018-語言理解+對話系統的最新進展
- Rust為何無法成為超級語言?Rust
- 使用PHP實現詞法分析與自定義語言PHP詞法分析
- 0、Lua語言理解
- 網站指令碼語言有哪些優缺點?網路安全入門網站指令碼
- 人工智慧的研究熱點:自然語言處理人工智慧自然語言處理
- 中文分詞研究難點-詞語劃分和語言規範中文分詞
- 港中文周博磊團隊最新研究:無監督條件下GAN潛在語義識別指南
- HTML語法大全_html語言語法大全(必看)HTML
- 語法點
- HTML基本語法和語義HTML
- 【譯】Go語言宣告語法Go
- NLP 與 NLU:從語言理解到語言處理
- 資料定義語言(DDL)
- Facebook新研究:一個編碼器hold住93種語言!跨語言遷移無需修改
- Kotlin 程式語言詳解:特點、應用領域及語法教程Kotlin
- 技術解讀 | 基於fastText和RNN的語義消歧實戰ASTRNN
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 深入理解移動語義
- [go語言]-深入理解singleflightGo
- 指令碼語言怎麼理解指令碼
- 你對微信小程式的理解?優缺點?微信小程式
- 如何自定義python語法.Python
- List Incarnation 語法含義
- Go 語言的詞法分析和語法分析(1)Go詞法分析語法分析
- python和C++語言有何優缺點?哪個更適合人工智慧?PythonC++人工智慧
- python使用跳脫字元解決歧義Python字元
- Dart語言詳解(二)——基本語法Dart