GPT-NER:通過大型語言模型的命名實體識別

2023-04-21 18:01:35

講在前面,chatgpt出來的時候就想過將其利用在資訊抽取方面,後續也發現了不少基於這種大語言模型的資訊抽取的論文,比如之前收集過的:

接下來繼續介紹另一篇論文。

GPT-NER:通過大型語言模型的命名實體識別

GPT-NER: Named Entity Recognition via Large Language Models

https://arxiv.org/pdf/2304.10428v1.pdf

https://github.com/ShuheWang1998/GPT-NER

Part1前言

為什麼使用大語言模型在NER上的表現仍然明顯低於普遍的基線?

由於NER和LLMs這兩個任務之間的差距:前者本質上是一個序列標記任務,而後者是一個文字生成模型。

怎麼解決上述的問題呢?

  • GPT-NER通過將序列標籤任務轉換 為一個可以被LLMs輕鬆適應的生成任務來彌補這一差距,例如, 在輸入文字Columbus是一個城市中尋找位置實體的任務被轉換為生成文字序列@@Columbus##是一個城市,其中特殊標記@@##標誌著要提取的實體。
  • 為了有效地解決LLMs的幻覺問題,即LLMs有一個強烈的傾向,即過度自信地將NULL輸入標記為實體,我們提出了一個自我驗證策略,即提示LLMs詢問自己所提取的實體是否符合標記的實體標籤。

Part2介紹

GPTNER遵循語境學習的一般正規化,可以分解為三個步驟:

  • (1)構建提示:對於一個給定的輸入句子X,我們為X構建一個提示(用Prompt(X) 來表示);
  • (2)將提示輸入到大語言模型得到生成的文字序列W = {w1 ,..., wn };
  • (3)將文字序列W轉化為實體標籤序列,以獲得最終的結果。

如圖所示:第一句話:你是一個優秀的語言學家;第二句話:任務是從給定的句子中標記xxx實體。接下來是一些例子,然後給樹了一些例子。最後再輸入自己想要提取實體的句子得到結果。很容易發現,每次只能提取一種實體,因此要提取出所有的實體,必須遍歷實體列表。例如GPT-3,對提示的長度有 一個硬性的限制(例如GPT-3的4096個tokens)。鑑於這種有限的標記數量,我們不可能在一個提示中包括對所有實體型別的描述和演示。

1怎麼提供範例樣本?

如圖所示:

  • 1、一個已經訓練好的ner模型提取訓練資料中的實體,併為每一個實體構建(實體,句子)對。
  • 2、將句子輸入的模型中並獲取實體的表示。
  • 3、通過knn找到和實體向量最接近的幾個鄰居,將得到的句子視為樣例。

2怎麼進行自我驗證?

Prompt:
I am an excellent linguist. The task is to label location entities in the given sentence.
Below are some examples.
Input:Columbus is a city
Output:@@Columbus## is a city
Input:Rare Hendrix song sells for $17
Output:
GPT-3 Output:
Rare @@Hendrix## song sells for $17

過度預測是指將不是實體的預測為實體。如上面的例子:Hendrix被識別為一個location實體,這顯然是不對的。自我驗證策略:給定一個由LLM提取的實體,我們要求LLM進一步驗證該提取的實體是否正確,用是或否回答。比如:

「The task is to verify whether the word is a location entity extracted from the given sentence」
(1) 「The input sentence: Only France and Britain backed Fischler’s proposal」,
(2) 「Is the word "France" in the input sentence a location entity? Please answer with yes or no」.
(3) Yes

同樣的,也是根據之前的策略選擇樣例。

Part3實驗

  • 模型:GPT-3 (Brown et al., 2020) (davinci-003)
  • 最大長度:512
  • 溫度:0
  • top_p:1
  • frequency_penalty:0
  • presence_penalty:0
  • best_of:1

總結一下,利用大語言模型進行資訊抽取,大多數都是採用這種類似問答的方式進行的,也就是分為多個步驟。