首頁 >科技週邊 >人工智慧 >透過與 GPT 對話實現零樣本資訊抽取

透過與 GPT 對話實現零樣本資訊抽取

WBOY
WBOY轉載
2023-04-13 09:13:021749瀏覽

目前通用大模型取代為特定任務客製化訓練的專屬模型的趨勢逐漸顯露,這種方式使AI模型應用的邊際成本大幅下降。由此提出一個問題:不經過訓練來實現零樣本資訊抽取是否可行?

資訊擷取技術作為建立知識圖譜的重要一環,如果完全不需要訓練就可以實現,將使資料分析的門檻大幅降低,有利於實現自動化知識庫建置。

我們透過對GPT-3.5用提示工程的方法建立一個通用的零樣本IE系統-GPT4IE(GPT for Information Extraction),發現GPT3.5能夠自動從原始句子中提取結構化資訊。支援中英文,工具代碼已開源。

工具網址:https://cocacola-lab.github.io/GPT4IE/ 

程式碼:https://github.com/cocacola-lab/GPT4IE

#1 背景介紹

訊息抽取(Information Extraction,IE)目標是從無結構文本中抽取結構化訊息,包括實體-關係三元組抽取(Entity-relation Extract, RE)、命名實體識別(Named Entity Recognition, NER)和事件抽取( Event Extraction, EE)[1][2][3][4][5]。許多研究已經開始依賴IE技術來自動化進行零樣本/少樣本工作,例如clinical IE [6]。

最近大規模預訓練語言模型(Large Pre-trained Language Model, LLMs)在許多下游任務上都表現極佳,甚至僅僅透過幾個例子作為引導而不需要微調就能實現。由此我們提出一個問題:僅透過提示來實現零樣本IE任務是否可行?  我們嘗試對GPT-3.5用提示的方法建立一個通用的零樣本IE系統-GPT4IE(GPT for Information Extraction)。在與GPT3.5和提示的結合下,它能夠自動從原始句子中提取結構化資訊。

技術框架

設計了特定任務的提示範本(task-specified prompt template), 然後將使用者的輸入填入範本中特定的槽值(slot),形成提示(prompt),輸入GPT-3.5中,進行IE。支援的任務有三種:RE、NER和EE,這三種任務均支援中英文雙語。使用者需要輸入句子和製定抽取類型清單(即關係清單、頭實體清單、尾實體清單、實體類型清單或事件清單)。具體如下:

RE任務的目標是從文本中抽取三元組,例如「(China, capital, Beijing)」, “(《如懿傳》, 主演, 周迅)」。其要求的輸入格式如下(帶有“*”的代表非必填項,我們為這些選項都設置了默認值,但是為了靈活性支持用戶自定義指定列表,後同):

  • #Input Sentence: 輸入文字
  • Relation type list (rtl)* : ['關係型別1', '關係型別2', ...]
  • Subject type list (stl)* : ['頭實體類型1', '頭實體類型2', ...]
  • Object type list (otl)* : ['尾實體類型1', '尾實體類型2', ...]
  • OpenAI API key: OpenAI API 金鑰(我們在Github中提供了部分可用key,以供範例使用。)

#NER任務旨在從文字中抽取實體,例如「(LOC , Beijing)」 , 「(人物, 周恩來)」。在NER任務上,輸入格式如下:

  • Input Sentence: 輸入文字
  • Entity type list (etl)* : [ '實體類型1', '實體類型2', ...]
  • OpenAI API key: OpenAI API 金鑰

EE任務旨在從純文字中提取事件,例如「{Life-Divorce: {Person: Bob, Time: today, Place: America}}「 , 「{競賽行為-晉級: {時間: 無, 晉級方: 西北狼, 晉級賽事: 中甲榜首之爭}}」。輸入格式如下:

  • Input Sentence: 輸入文字
  • Event type list (etl)* : {'事件類型1': ['論元角色1', '論元角色2', ...], ...}
  • OpenAI API key: OpenAI API 金鑰

工具使用範例

3.1 RE範例一

##輸入:

Input Sentence: Bob worked for Google in Beijing, the capital of China.

rtl: [ 'location-located_in', 'administrative_division-country', 'person-place_lived', 'person-company', 'person-nationality', 'company-founders', 'country-administrative_divisions', 'person-children', 'country -capital', 'deceased_person-place_of_death', 'neighborhood-neighborhood_of', 'person-place_of_birth']

#stl: ['organization', '

stl: ['organization', '

stl

: ['organization', '

, 'location', 'country']透過與 GPT 對話實現零樣本資訊抽取

otl: ['person', 'location', 'country', 'organization', 'city']

輸出:

#3.2 RE範例二

輸入:

Input Sentence: 《如懿傳》是一部古裝宮廷情感電視劇,由汪俊執導,周迅、霍建華、張鈞甯、董潔、辛芷蕾、童瑤、李純、鄔君梅等人主演。

rtl: ['所屬專輯', '成立日期', '海拔', '官方語言', '佔地面積', '父親', '歌手', '製片人', '導演', '首都', '主演', '董事長', '祖籍', '妻子', '母親', '氣候', '面積', '主角' , '郵遞區號', '簡稱', '出品公司', '註冊資本', '編劇', '創辦人', '畢業院校', '國籍', '專業代碼', '朝代', '作者', '作詞', '所在城市', '嘉賓', '總部地點', '人口數量', '代言人', '改編自', '校長', '丈夫', '主持人', '主題曲', '修業年限', '作曲', '號', '上映時間', '票房', '飾演', '配音', '獲獎']

stl

: ['國家', '行政區', '文學作品', '人物', '影視作品', '學校', '圖書作品', '地點', '歷史人物', '景點' , '歌曲', '學科專業', '企業', '電視綜藝', '機構', '企業/品牌', '娛樂人物']

透過與 GPT 對話實現零樣本資訊抽取

otl : ['國家', '人物', 'Text', 'Date', '地點', '氣候', '城市', '歌曲', '企業', 'Number', '音樂專輯', '學校', '作品', '語言']

透過與 GPT 對話實現零樣本資訊抽取

##3.3 NER範例一

################輸入:###############Input Sentence :### Bob worked for Google in Beijing, the capital of China.###############etl###: ['LOC', 'MISC', 'ORG', ' PER']#############輸出:################################# 3.4 NER範例二##################輸入:######

Input Sentence: 在過去的五年中,致公黨在鄧小平理論指引下,遵循社會主義初級階段的基本路線,努力實踐致公黨十大提出的發揮參政黨職能、強化自身建設的基本任務。

etl: ['組織機構', '地點', '人物']

輸出:

透過與 GPT 對話實現零樣本資訊抽取

#3.5 EE範例一

##輸入:

Input Sentence: Yesterday Bob and his wife got divorced in Guangzhou.

#etl: {'Personnel:Elect': ['Person', 'Entity', 'Position', 'Time', 'Place'], 'Business:Declare-Bankruptcy': ['Org', 'Time ', 'Place'], 'Justice:Arrest-Jail': ['Person', 'Agent', 'Crime', 'Time', 'Place'], 'Life:Divorce': ['Person', 'Time ', 'Place'], 'Life:Injure': ['Agent', 'Victim', 'Instrument', 'Time', 'Place']}

輸出:

透過與 GPT 對話實現零樣本資訊抽取

3.6 EE範例二

輸入:

Input Sentence:: 在2022年卡達世界盃決賽中,阿根廷以點球大戰險勝法國。

etl: {'組織行為-罷工': ['時間', '所屬組織', '罷工人數', '罷工人員'], '競賽行為-晉級': ['時間', '晉級方', '晉級賽事'], '財經/交易-漲停':['時間', '漲停股'] , '組織關係-解僱': ['時間', '解僱方', '被解僱人員']}

輸出:

透過與 GPT 對話實現零樣本資訊抽取

##3.7 EE範例三(一個有意思的錯誤範例)

輸入:

##Input Sentence:

: 我今天和他離婚了

#etl

: {'組織行為-罷工': [ '時間', '所屬組織', '罷工人數', '罷工人員'], '競賽行為-晉級': ['時間', '晉級方', '晉級賽事'], '財經/交易-漲停' :['時間', '漲停股'] , '組織關係-解僱': ['時間', '解僱方', '被解僱人員']}輸出:

透過與 GPT 對話實現零樣本資訊抽取

明顯上面的輸出使錯誤的,自訂etl為: {'離婚': ['時間', '人物']},輸出為:

#

以上是透過與 GPT 對話實現零樣本資訊抽取的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除