chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于GLM-6B對(duì)話(huà)模型的實(shí)體屬性抽取項(xiàng)目實(shí)現(xiàn)解析

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:老劉說(shuō)NLP ? 2023-03-28 10:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Zero-shot、One-shot以及Few-shot讓人傻傻分不清,讀了很多文章,也沒(méi)搞清楚他們的差別,究竟什么叫zero-shot,其在應(yīng)用過(guò)程中的no gradient update是什么含義,zero-shot是否為一個(gè)偽命題,成為了一些有趣的問(wèn)題。???????

目前,直接使用以chatgpt為代表的大模型進(jìn)行nlp任務(wù)處理成為了一個(gè)潮流,直接拼接prompt進(jìn)行問(wèn)答,就可拿到相應(yīng)答案,例如最近的文章《ChatGPT+NLP下的Prompt模板工具:PromptSource、ChatIE代表性開(kāi)源項(xiàng)目介紹》中所介紹的chatie,直接來(lái)解決zeroshot的任務(wù)。

但是,我們發(fā)現(xiàn),如果引入incontext-learning這一思想,作為一個(gè)fewshot任務(wù)來(lái)提升ChatIE這類(lèi)模型的性能,可能是一個(gè)很好的思路,在此基礎(chǔ)上個(gè)配上一個(gè)開(kāi)源項(xiàng)目進(jìn)行解釋能夠增強(qiáng)了解。?????????????????????????????????????????

因此,帶著這個(gè)問(wèn)題,本文先談?wù)刏ero-shot、One-shot以及Few-shot、從ChatIE:面向REEENER三種任務(wù)的偽zero-shot prompt說(shuō)起、從偽zeroshot看In-Context Learning類(lèi)比學(xué)習(xí)、將In-Context Learning引入偽zero-shot完成信息抽取任務(wù)四個(gè)方面進(jìn)行介紹,供大家一起參考。

一、先談?wù)刏ero-shot、One-shot以及Few-shot

1、Zero-shot

Zero-shot就是希望模型能夠?qū)ζ鋸臎](méi)見(jiàn)過(guò)的類(lèi)別進(jìn)行分類(lèi),是指對(duì)于要分類(lèi)的類(lèi)別對(duì)象,一次也不學(xué)習(xí)。

f83474c2-cca3-11ed-bfe3-dac502259ad0.png

也就是說(shuō),只有推理階段,沒(méi)有訓(xùn)練階段。這個(gè)常見(jiàn)于chatgpt中qa形式,直接通過(guò)問(wèn)題prompt,基于已訓(xùn)練好的大模型,進(jìn)行直接預(yù)測(cè)。

2、Few-shot與One-shot

如果訓(xùn)練集中,不同類(lèi)別的樣本只有少量,則成為Few-shot,如果參與訓(xùn)練學(xué)習(xí),也只能使用較少的樣本數(shù)。?????????

f859cc86-cca3-11ed-bfe3-dac502259ad0.png

如果訓(xùn)練集中,不同類(lèi)別的樣本只有一個(gè),則成為One-shot, 屬于Few-shot的一種特殊情況。

f8ce789c-cca3-11ed-bfe3-dac502259ad0.png

但其中的“no gradient update讓人費(fèi)解”,后面想了想,有2種理解:

1)單次微調(diào),參數(shù)更新,但微調(diào)后模型不保存。???????????

LLM由于參數(shù)量巨大,導(dǎo)致更新起來(lái)困難(費(fèi)錢(qián)--費(fèi)卡)。因此很少對(duì)訓(xùn)練好的LLM做微調(diào)。但是為了在特殊任務(wù)上有較好的表現(xiàn)(微調(diào)效果肯定要好于不微調(diào)的),但是又不固定微調(diào)后的模型,所以提出了one-shot、few-shot的方式,通過(guò)加入偏置,影響模型的最終輸出。

而one-shot、few-shot可以變相的理解成用一個(gè)/多個(gè)example進(jìn)行模型微調(diào),但是微調(diào)后的模型不保存。每次提供inference都要微調(diào)一遍(輸入一個(gè)example或者多個(gè)example來(lái)模擬微調(diào)過(guò)程),No gradient updates are performed.就是說(shuō)提供inference的模型參數(shù)保持不變,但這其實(shí)是tuning的范疇。

2)直接不微調(diào),參數(shù)直接不更新??????

如果不更新參數(shù),那么這種學(xué)習(xí)就是瞬間的,不構(gòu)成learning。預(yù)訓(xùn)練模型自身訓(xùn)練完后本身有一套參數(shù),finetune就是在預(yù)訓(xùn)練基礎(chǔ)上繼續(xù)訓(xùn)練,肯定會(huì)有梯度更新,因?yàn)閒inetune后參數(shù)會(huì)變,參數(shù)變了梯度必然會(huì)更新。直接推理出答案,后臺(tái)梯度也不更新。

不過(guò),需要注意的是,如果以這個(gè)模型到底有沒(méi)有見(jiàn)過(guò)標(biāo)注樣本,來(lái)劃分zero-shot與其他的差別,就是主要見(jiàn)過(guò),無(wú)論是在推理階段(作為prompt)用【不更新梯度】,還是加入finetune階段參與訓(xùn)練【更新參數(shù)】,那就肯定不是zero-shot,否則就是數(shù)據(jù)泄漏。

這也就是說(shuō),如果在prompt中是否加入一個(gè)或者多個(gè)正確的例子,例如分類(lèi)任務(wù)中,加入一些正確的任務(wù)描述例子,都不能算作是zero-shot,但是問(wèn)題是你怎么能保證模型訓(xùn)練沒(méi)有用過(guò)這些數(shù)據(jù),他們當(dāng)時(shí)訓(xùn)練就可能搜集到了,模型說(shuō)不定都見(jiàn)過(guò),也就是說(shuō)至少不存在嚴(yán)格意義的zero shot。

二、從ChatIE:面向REEENER三種任務(wù)的偽zero-shot prompt說(shuō)起

最近有篇文章《Zero-Shot Information Extraction via Chatting with ChatGPT》很有趣,該工作將零樣本IE任務(wù)轉(zhuǎn)變?yōu)橐粋€(gè)兩階段框架的多輪問(wèn)答問(wèn)題(Chat IE),并在三個(gè)IE任務(wù)中廣泛評(píng)估了該框架:實(shí)體關(guān)系三元組抽取、命名實(shí)體識(shí)別和事件抽取。在兩個(gè)語(yǔ)言的6個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,Chat IE取得了非常好的效果,甚至在幾個(gè)數(shù)據(jù)集上(例如NYT11-HRL)上超過(guò)了全監(jiān)督模型的表現(xiàn)。

f8f5c0e6-cca3-11ed-bfe3-dac502259ad0.png

f934601c-cca3-11ed-bfe3-dac502259ad0.png

其實(shí)現(xiàn)基本原理為,通過(guò)制定任務(wù)實(shí)體關(guān)系三元組抽取、命名實(shí)體識(shí)別和事件抽取,并為每個(gè)任務(wù)設(shè)計(jì)了2個(gè)步驟的prompt-pattern,第一步用于識(shí)別類(lèi)型,第二步用于識(shí)別指定類(lèi)型的值。將抽取的任務(wù)定義(抽取要素)進(jìn)行prompt填充,然后調(diào)用chatgpt接口,在取得結(jié)果后進(jìn)行規(guī)則解析,結(jié)構(gòu)化相應(yīng)答案。

例如,關(guān)系抽取的具體執(zhí)行步驟包括:針對(duì)每類(lèi)prompt,分別調(diào)用prompt-pattern,得到相應(yīng)結(jié)果,以事件抽取prompt為例,

1)任務(wù)要素定義:

df_eet={
'chinese':{'災(zāi)害/意外-墜機(jī)':['時(shí)間','地點(diǎn)','死亡人數(shù)','受傷人數(shù)'],'司法行為-舉報(bào)':['時(shí)間','舉報(bào)發(fā)起方','舉報(bào)對(duì)象'],'財(cái)經(jīng)/交易-漲價(jià)':['時(shí)間','漲價(jià)幅度','漲價(jià)物','漲價(jià)方'],'組織關(guān)系-解雇':['時(shí)間','解雇方','被解雇人員'],'組織關(guān)系-停職':['時(shí)間','所屬組織','停職人員'],'財(cái)經(jīng)/交易-加息':['時(shí)間','加息幅度','加息機(jī)構(gòu)'],'交往-探班':['時(shí)間','探班主體','探班對(duì)象'],'人生-懷孕':['時(shí)間','懷孕者'],'組織關(guān)系-辭/離職':['時(shí)間','離職者','原所屬組織'],'組織關(guān)系-裁員':['時(shí)間','裁員方','裁員人數(shù)'],'災(zāi)害/意外-車(chē)禍':['時(shí)間','地點(diǎn)','死亡人數(shù)','受傷人數(shù)'],
'人生-離婚':['時(shí)間','離婚雙方'],'司法行為-起訴':['時(shí)間','被告','原告'],'競(jìng)賽行為-禁賽':['時(shí)間','禁賽時(shí)長(zhǎng)','被禁賽人員','禁賽機(jī)構(gòu)'],'人生-婚禮':['時(shí)間','地點(diǎn)','參禮人員','結(jié)婚雙方'],'財(cái)經(jīng)/交易-漲停':['時(shí)間','漲停股票'],'財(cái)經(jīng)/交易-上市':['時(shí)間','地點(diǎn)','上市企業(yè)','融資金額'],'組織關(guān)系-解散':['時(shí)間','解散方'],'財(cái)經(jīng)/交易-跌停':['時(shí)間','跌停股票'],'財(cái)經(jīng)/交易-降價(jià)':['時(shí)間','降價(jià)方','降價(jià)物','降價(jià)幅度'],'組織行為-罷工':['時(shí)間','所屬組織','罷工人數(shù)','罷工人員'],'司法行為-開(kāi)庭':['時(shí)間','開(kāi)庭法院','開(kāi)庭案件'],
'競(jìng)賽行為-退役':['時(shí)間','退役者'],'人生-求婚':['時(shí)間','求婚者','求婚對(duì)象'],'人生-慶生':['時(shí)間','生日方','生日方年齡','慶祝方'],'交往-會(huì)見(jiàn)':['時(shí)間','地點(diǎn)','會(huì)見(jiàn)主體','會(huì)見(jiàn)對(duì)象'],'競(jìng)賽行為-退賽':['時(shí)間','退賽賽事','退賽方'],'交往-道歉':['時(shí)間','道歉對(duì)象','道歉者'],'司法行為-入獄':['時(shí)間','入獄者','刑期'],'組織關(guān)系-加盟':['時(shí)間','加盟者','所加盟組織'],'人生-分手':['時(shí)間','分手雙方'],'災(zāi)害/意外-襲擊':['時(shí)間','地點(diǎn)','襲擊對(duì)象','死亡人數(shù)','襲擊者','受傷人數(shù)'],'災(zāi)害/意外-坍/垮塌':['時(shí)間','坍塌主體','死亡人數(shù)','受傷人數(shù)'],
'組織關(guān)系-解約':['時(shí)間','被解約方','解約方'],'產(chǎn)品行為-下架':['時(shí)間','下架產(chǎn)品','被下架方','下架方'],'災(zāi)害/意外-起火':['時(shí)間','地點(diǎn)','死亡人數(shù)','受傷人數(shù)'],'災(zāi)害/意外-爆炸':['時(shí)間','地點(diǎn)','死亡人數(shù)','受傷人數(shù)'],'產(chǎn)品行為-上映':['時(shí)間','上映方','上映影視'],'人生-訂婚':['時(shí)間','訂婚主體'],'組織關(guān)系-退出':['時(shí)間','退出方','原所屬組織'],'交往-點(diǎn)贊':['時(shí)間','點(diǎn)贊方','點(diǎn)贊對(duì)象'],'產(chǎn)品行為-發(fā)布':['時(shí)間','發(fā)布產(chǎn)品','發(fā)布方'],'人生-結(jié)婚':['時(shí)間','結(jié)婚雙方'],'組織行為-閉幕':['時(shí)間','地點(diǎn)','活動(dòng)名稱(chēng)'],
'人生-死亡':['時(shí)間','地點(diǎn)','死者年齡','死者'],'競(jìng)賽行為-奪冠':['時(shí)間','冠軍','奪冠賽事'],'人生-失聯(lián)':['時(shí)間','地點(diǎn)','失聯(lián)者'],'財(cái)經(jīng)/交易-出售/收購(gòu)':['時(shí)間','出售方','交易物','出售價(jià)格','收購(gòu)方'],'競(jìng)賽行為-晉級(jí)':['時(shí)間','晉級(jí)方','晉級(jí)賽事'],'競(jìng)賽行為-勝負(fù)':['時(shí)間','敗者','勝者','賽事名稱(chēng)'],'財(cái)經(jīng)/交易-降息':['時(shí)間','降息幅度','降息機(jī)構(gòu)'],'組織行為-開(kāi)幕':['時(shí)間','地點(diǎn)','活動(dòng)名稱(chēng)'],'司法行為-拘捕':['時(shí)間','拘捕者','被拘捕者'],'交往-感謝':['時(shí)間','致謝人','被感謝人'],'司法行為-約談':['時(shí)間','約談對(duì)象','約談發(fā)起方'],
'災(zāi)害/意外-地震':['時(shí)間','死亡人數(shù)','震級(jí)','震源深度','震中','受傷人數(shù)'],'人生-產(chǎn)子/女':['時(shí)間','產(chǎn)子者','出生者'],'財(cái)經(jīng)/交易-融資':['時(shí)間','跟投方','領(lǐng)投方','融資輪次','融資金額','融資方'],'司法行為-罰款':['時(shí)間','罰款對(duì)象','執(zhí)法機(jī)構(gòu)','罰款金額'],'人生-出軌':['時(shí)間','出軌方','出軌對(duì)象'],'災(zāi)害/意外-洪災(zāi)':['時(shí)間','地點(diǎn)','死亡人數(shù)','受傷人數(shù)'],'組織行為-游行':['時(shí)間','地點(diǎn)','游行組織','游行人數(shù)'],'司法行為-立案':['時(shí)間','立案機(jī)構(gòu)','立案對(duì)象'],'產(chǎn)品行為-獲獎(jiǎng)':['時(shí)間','獲獎(jiǎng)人','獎(jiǎng)項(xiàng)','頒獎(jiǎng)機(jī)構(gòu)'],'產(chǎn)品行為-召回':['時(shí)間','召回內(nèi)容','召回方']},
'english':{'Justice:Appeal':['Defendant','Adjudicator','Crime','Time','Place'],'Justice:Extradite':['Agent','Person','Destination','Origin','Crime','Time'],'Justice:Acquit':['Defendant','Adjudicator','Crime','Time','Place'],'Life:Be-Born':['Person','Time','Place'],'Life:Divorce':['Person','Time','Place'],'Personnel:Nominate':['Person','Agent','Position','Time','Place'],'Life:Marry':['Person','Time','Place'],'Personnel:End-Position':['Person','Entity','Position','Time','Place'],
'Justice:Pardon':['Defendant','Prosecutor','Adjudicator','Crime','Time','Place'],'Business:Merge-Org':['Org','Time','Place'],'Conflict:Attack':['Attacker','Target','Instrument','Time','Place'],'Justice:Charge-Indict':['Defendant','Prosecutor','Adjudicator','Crime','Time','Place'],'Personnel:Start-Position':['Person','Entity','Position','Time','Place'],'Business:Start-Org':['Agent','Org','Time','Place'],'Business:End-Org':['Org','Time','Place'],
'Life:Injure':['Agent','Victim','Instrument','Time','Place'],'Justice:Fine':['Entity','Adjudicator','Money','Crime','Time','Place'],'Justice:Sentence':['Defendant','Adjudicator','Crime','Sentence','Time','Place'],'Transaction:Transfer-Money':['Giver','Recipient','Beneficiary','Money','Time','Place'],'Justice:Execute':['Person','Agent','Crime','Time','Place'],'Justice:Sue':['Plaintiff','Defendant','Adjudicator','Crime','Time','Place'],
'Justice:Arrest-Jail':['Person','Agent','Crime','Time','Place'],'Justice:Trial-Hearing':['Defendant','Prosecutor','Adjudicator','Crime','Time','Place'],'Movement:Transport':['Agent','Artifact','Vehicle','Price','Origin'],'Contact:Meet':['Entity','Time','Place'],'Personnel:Elect':['Person','Entity','Position','Time','Place'],'Business:Declare-Bankruptcy':['Org','Time','Place'],'Transaction:Transfer-Ownership':['Buyer','Seller','Beneficiary','Artifact','Price','Time','Place'],
'Justice:Release-Parole':['Person','Entity','Crime','Time','Place'],'Conflict:Demonstrate':['Entity','Time','Place'],'Contact:Phone-Write':['Entity','Time'],'Justice:Convict':['Defendant','Adjudicator','Crime','Time','Place'],'Life:Die':['Agent','Victim','Instrument','Time','Place']},
}

2)構(gòu)造prompt的pattern:

ee_s1_p={
'chinese':'''給定的句子為:"{}"

給定事件類(lèi)型列表:{}

在這個(gè)句子中,可能包含了哪些事件類(lèi)型?
請(qǐng)給出事件類(lèi)型列表中的事件類(lèi)型。
如果不存在則回答:無(wú)
按照元組形式回復(fù),如(事件類(lèi)型1, 事件類(lèi)型2, ……):''',
'english':'''Thegivensentenceis"{}"

Givenalistofeventtypes:{}

Whateventtypesinthegivenlistmightbeincludedinthisgivensentence?
Ifnotpresent,answer:none.
Respondasatuple,e.g.(eventtype1,eventtype2,......):'''
}


ee_s2_p={
'chinese':'''事件類(lèi)型"{}"對(duì)應(yīng)的論元角色列表為:{}。
在給定的句子中,根據(jù)論元角色提取出事件論元。
如果論元角色沒(méi)有相應(yīng)的論元內(nèi)容,則論元內(nèi)容回答:無(wú)
按照表格形式回復(fù),表格有兩列且表頭為(論元角色,論元內(nèi)容):''',
'english':'''Thelistofargumentrolescorrespondingtoeventtype"{}"is:{}.
Inthegivensentence,extracteventargumentsaccordingtotheirrole.
Iftheargumentroledoesnothaveacorrespondingargumentcontent,thentheargumentcontentanswer:None
Respondintheformofatablewithtwocolumnsandaheaderof(argumentrole,argumentcontent):'''
}

三、從偽zeroshot看In-Context Learning類(lèi)比學(xué)習(xí)

In Context Learning(ICL)的關(guān)鍵思想是從類(lèi)比中學(xué)習(xí)?!禔 Survey on In-context Learning》一文(https://arxiv.org/pdf/2301.00234.pdf)對(duì)In Context Learning(ICL)進(jìn)行了綜述。

該工作認(rèn)為,ICL的強(qiáng)大性能依賴(lài)于兩個(gè)階段:(1)培養(yǎng)LLMsICL能力的訓(xùn)練階段,以及LLMs根據(jù)特定任務(wù)演示進(jìn)行預(yù)測(cè)的推理階段。就訓(xùn)練階段而言,LLMs直接接受語(yǔ)言建模目標(biāo)的訓(xùn)練,如從左到右的生成,并將整個(gè)研究分成了訓(xùn)練和推理兩個(gè)部分,如下圖所示。

f9537786-cca3-11ed-bfe3-dac502259ad0.png

如下圖所示:給出了一個(gè)描述語(yǔ)言模型如何使用ICL進(jìn)行決策的例子。首先,ICL 需要一些示例來(lái)形成一個(gè)演示上下文。這些示例通常是用自然語(yǔ)言模板編寫(xiě)的。然后 ICL 將查詢(xún)的問(wèn)題(即你需要預(yù)測(cè)標(biāo)簽的 input)和一個(gè)上下文演示(一些相關(guān)的 cases)連接在一起,形成帶有提示的輸入,并將其輸入到語(yǔ)言模型中進(jìn)行預(yù)測(cè)。

f96b74a8-cca3-11ed-bfe3-dac502259ad0.png

值得注意的是,首與需要使用后向梯度來(lái)更新模型參數(shù)的訓(xùn)練階段的監(jiān)督學(xué)習(xí)不同,ICL不進(jìn)行參數(shù)更新,而是直接對(duì)語(yǔ)言模型進(jìn)行預(yù)測(cè)。

四、將In-Context Learning引入偽zero-shot完成信息抽取任務(wù)

開(kāi)源項(xiàng)目中,借鑒In-Context Learning思想,給出了一個(gè)基于GLM-6B的zero-shot信息抽取方案,最終效果如下:

f983424a-cca3-11ed-bfe3-dac502259ad0.png

其本質(zhì)思想在于,針對(duì)zero-shot問(wèn)題,使用同一個(gè)大模型,對(duì)不同任務(wù)設(shè)計(jì)其獨(dú)有的 prompt,以解決不同的任務(wù)問(wèn)題針對(duì)信息抽取任務(wù),則采用2輪問(wèn)答的方式進(jìn)行抽取,首先進(jìn)行實(shí)體類(lèi)型分類(lèi),給定句子以及實(shí)體類(lèi)別,要求識(shí)別出其中的實(shí)體類(lèi)型,其次根據(jù)識(shí)別出的實(shí)體類(lèi)型,再進(jìn)行實(shí)體屬性要素抽取。在構(gòu)造prompt的過(guò)程中,通過(guò)列舉一些正確的例子,作為In-Context Learning學(xué)習(xí)的上下文。(按照第一節(jié)的理解,這其實(shí)不能算作zero-shot,已經(jīng)是fewshot)

因此,如何設(shè)計(jì)指定任務(wù)的promt,以及如何合理的引入In-Context是整個(gè)工作的一個(gè)核心。

1、調(diào)用chatglm6b進(jìn)行推理抽取

加載chatglm-6b模型,對(duì)模型進(jìn)行預(yù)測(cè),下面是使用huggingface調(diào)用chatglm6b的代碼:

fromtransformersimportAutoTokenizer,AutoModel
tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm-6b",trust_remote_code=True)
model=AutoModel.from_pretrained("THUDM/chatglm-6b",trust_remote_code=True).half().cuda()
response,history=model.chat(tokenizer,"你好",history=[])
print(response)
response,history=model.chat(tokenizer,"晚上睡不著應(yīng)該怎么辦",history=history)
print(response)

其中,整個(gè)history會(huì)作為一個(gè)部分,拼接進(jìn)行prompt當(dāng)中,從中可以看到,多輪對(duì)話(huà)最多做到8輪。

defbuild_prompt(history):
prompt="歡迎使用ChatGLM-6B模型,輸入內(nèi)容即可進(jìn)行對(duì)話(huà),clear清空對(duì)話(huà)歷史,stop終止程序"
forquery,responseinhistory:
prompt+=f"

用戶(hù):{query}"
prompt+=f"

ChatGLM-6B:{response}"
returnprompt

defmain():
history=[]
print("歡迎使用ChatGLM-6B模型,輸入內(nèi)容即可進(jìn)行對(duì)話(huà),clear清空對(duì)話(huà)歷史,stop終止程序")
whileTrue:
query=input("
用戶(hù):")
ifquery=="stop":
break
ifquery=="clear":
history=[]
os.system(clear_command)
print("歡迎使用ChatGLM-6B模型,輸入內(nèi)容即可進(jìn)行對(duì)話(huà),clear清空對(duì)話(huà)歷史,stop終止程序")
continue
count=0
forresponse,historyinmodel.stream_chat(tokenizer,query,history=history):
count+=1
ifcount%8==0:
os.system(clear_command)
print(build_prompt(history),flush=True)
os.system(clear_command)
print(build_prompt(history),flush=True)

最后,我們對(duì)模型進(jìn)行推理,將上述構(gòu)造的兩個(gè)任務(wù)作為history

definference(sentence,custom_settings):
withconsole.status("[boldbright_green]ModelInference..."):
sentence_with_cls_prompt=CLS_PATTERN.format(sentence)
cls_res,_=model.chat(tokenizer,sentence_with_cls_prompt,history=custom_settings['cls_pre_history'])
ifcls_resnotinschema:
print(f'Thetypemodelinferenced{cls_res}whichisnotinschemadict,exited.')
exit()
properties_str=','.join(schema[cls_res])
schema_str_list=f'“{cls_res}”({properties_str})'
sentence_with_ie_prompt=IE_PATTERN.format(sentence,schema_str_list)
ie_res,_=model.chat(tokenizer,sentence_with_ie_prompt,history=custom_settings['ie_pre_history'])
ie_res=clean_response(ie_res)
print(f'>>>[boldbright_red]sentence:{sentence}')
print(f'>>>[boldbright_green]inferenceanswer:')
print(ie_res)

deftest():
console=Console()
device='cuda:0'
tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm-6b",trust_remote_code=True)
model=AutoModel.from_pretrained("THUDM/chatglm-6b",trust_remote_code=True).half()
model.to(device)
sentence='張譯(原名張毅),1978年2月17日出生于黑龍江省哈爾濱市,中國(guó)內(nèi)地男演員。1997年至2006年服役于北京軍區(qū)政治部戰(zhàn)友話(huà)劇團(tuán)。2006年,主演軍事勵(lì)志題材電視劇《士兵突擊》。',
custom_settings=init_prompts()
inference(sentence,custom_settings
)

2、第一步:實(shí)體類(lèi)型識(shí)別

先做實(shí)體類(lèi)型識(shí)別(這個(gè)有點(diǎn)像事件抽取中的事件檢測(cè)),其中需要構(gòu)造

1)sentence_with_cls_prompt

sentence_with_cls_prompt = CLS_PATTERN.format(sentence),先對(duì)句子進(jìn)行實(shí)體類(lèi)型識(shí)別,構(gòu)造prompt:

CLS_PATTERN=f"“{{}}”是{class_list}里的什么類(lèi)別?"

例如,針對(duì)句子:“張譯(原名張毅),1978年2月17日出生于黑龍江省哈爾濱市,中國(guó)內(nèi)地男演員。1997年至2006年服役于北京軍區(qū)政治部戰(zhàn)友話(huà)劇團(tuán)。2006年,主演軍事勵(lì)志題材電視劇《士兵突擊》?!?/p>

構(gòu)造prompt后變?yōu)椋?/p>

“張譯(原名張毅),1978年2月17日出生于黑龍江省哈爾濱市,中國(guó)內(nèi)地男演員。1997年至2006年服役于北京軍區(qū)政治部戰(zhàn)友話(huà)劇團(tuán)。2006年,主演軍事勵(lì)志題材電視劇《士兵突擊》?!笔?['人物','書(shū)籍','電視劇']里的什么類(lèi)別?

2)cls_pre_history實(shí)體類(lèi)型識(shí)別的例子

利用cls_pre_history作為incontext-learning學(xué)習(xí)的上下文,進(jìn)行拼接,例如,cls_pre_history形式為:

cls_pre_history:
[
("現(xiàn)在你是一個(gè)文本分類(lèi)器,你需要按照要求將我給你的句子分類(lèi)到:['人物', '書(shū)籍', '電視劇']類(lèi)別中。",'好的。'),
(
"“岳云鵬,本名岳龍剛,1985年4月15日出生于河南省濮陽(yáng)市南樂(lè)縣,中國(guó)內(nèi)地相聲、影視男演員。2005年,首次登臺(tái)演出。2012年,主演盧衛(wèi)國(guó)執(zhí)導(dǎo)的喜劇電影《就是鬧著玩的
》。2013年在北京舉辦相聲專(zhuān)場(chǎng)?!笔荹'人物', '書(shū)籍', '電視劇']里的什么類(lèi)別?",
'人物'
),
(
"“《三體》是劉慈欣創(chuàng)作的長(zhǎng)篇科幻小說(shuō)系列,由《三體》《三體2:黑暗森林》《三體3:死神永生》組成,第一部于2006年5月起在《科幻世界》雜志上連載,第二部于2008年5
月首次出版,第三部則于2010年11月出版?!笔荹'人物', '書(shū)籍', '電視劇']里的什么類(lèi)別?",
'書(shū)籍'
),
(
"“《狂飆》是由中央電視臺(tái)、愛(ài)奇藝出品,留白影視、中國(guó)長(zhǎng)安出版?zhèn)髅铰?lián)合出品,中央政法委宣傳教育局、中央政法委政法綜治信息中心指導(dǎo)拍攝,徐紀(jì)周執(zhí)導(dǎo),張譯、
張頌文、李一桐、張志堅(jiān)、吳剛領(lǐng)銜主演,倪大紅、韓童生、李建義、石兆琪特邀主演,李健、高葉、王驍?shù)戎餮莸姆春谛虃蓜 !笔荹'人物', '書(shū)籍', '電視劇']里的什么類(lèi)別?",
'電視劇'
)
]

3、第2步:實(shí)體屬性抽取

根據(jù)識(shí)別的實(shí)體類(lèi)型結(jié)果做實(shí)體屬性抽?。ㄟ@個(gè)有點(diǎn)像事件抽取中的事件要素抽?。?,

根據(jù)上一步得到的實(shí)體類(lèi)型,進(jìn)一步生成問(wèn)句sentence_with_ie_prompt和in-context learning上下文,其中:

1)sentence_with_ie_prompt

sentence_with_ie_prompt指的是對(duì)任務(wù)的描述,其中需要用到不同實(shí)體對(duì)應(yīng)的屬性schema以及問(wèn)題的promt模版。

schema如下:

schema={
'人物':['姓名','性別','出生日期','出生地點(diǎn)','職業(yè)','獲得獎(jiǎng)項(xiàng)'],
'書(shū)籍':['書(shū)名','作者','類(lèi)型','發(fā)行時(shí)間','定價(jià)'],
'電視劇':['電視劇名稱(chēng)','導(dǎo)演','演員','題材','出品方']
}

屬性抽取的prompt如下:

IE_PATTERN="{}

提取上述句子中{}類(lèi)型的實(shí)體,并按照J(rèn)SON格式輸出,上述句子中不存在的信息用['原文中未提及']來(lái)表示,多個(gè)值之間用','分隔。"

變成:

張譯(原名張毅),1978年2月17日出生于黑龍江省哈爾濱市,中國(guó)內(nèi)地男演員。1997年至2006年服役于北京軍區(qū)政治部戰(zhàn)友話(huà)劇團(tuán)。2006年,主演軍事勵(lì)志題材電視劇《士兵突擊》。

提取上述句子中“人物”(姓名,性別,出生日期,出生地點(diǎn),職業(yè),獲得獎(jiǎng)項(xiàng))類(lèi)型的實(shí)體,并按照J(rèn)SON格式輸出,上述句子中不存在的信息用['原文中未提及']來(lái)表示,多個(gè)值之間用','分隔。

2)ie_pre_history屬性抽取的例子

ie_pre_history屬性抽取的例子給定了一些正確抽取的實(shí)際例子,如下所示:

[
(
"現(xiàn)在你需要幫助我完成信息抽取任務(wù),當(dāng)我給你一個(gè)句子時(shí),你需要幫我抽取出句子中三元組,并按照J(rèn)SON的格式輸出,上述句子中沒(méi)有的信息用['原文中未提及']來(lái)表示,多
個(gè)值之間用','分隔。",
'好的,請(qǐng)輸入您的句子。'
),
(
"岳云鵬,本名岳龍剛,1985年4月15日出生于河南省濮陽(yáng)市南樂(lè)縣,中國(guó)內(nèi)地相聲、影視男演員。

提取上述句子中“人物”(姓名, 性別, 出生日期, 出生地點(diǎn), 職業(yè), 
獲得獎(jiǎng)項(xiàng))類(lèi)型的實(shí)體,并按照J(rèn)SON格式輸出,上述句子中不存在的信息用['原文中未提及']來(lái)表示,多個(gè)值之間用','分隔。",
'{"姓名":["岳云鵬"],"性別":["男"],"出生日期":["1985年4月15日"],"出生地點(diǎn)":["河南省濮陽(yáng)市南樂(lè)縣"],"職業(yè)":["相聲演員","影視演員"],"獲得獎(jiǎng)項(xiàng)":
["原文中未提及"]}'
),
(
"《三體》是劉慈欣創(chuàng)作的長(zhǎng)篇科幻小說(shuō)系列,由《三體》《三體2:黑暗森林》《三體3:死神永生》組成,第一部于2006年5月起在《科幻世界》雜志上連載,第二部于2008年5月首
,第三部則于2010年11月出版。

提取上述句子中“書(shū)籍”(書(shū)名, 作者, 類(lèi)型, 發(fā)行時(shí)間, 
定價(jià))類(lèi)型的實(shí)體,并按照J(rèn)SON格式輸出,上述句子中不存在的信息用['原文中未提及']來(lái)表示,多個(gè)值之間用','分隔。",
'{"書(shū)名":["《三體》"],"作者":["劉慈欣"],"類(lèi)型":["長(zhǎng)篇科幻小說(shuō)"],"發(fā)行時(shí)間":["2006年5月","2008年5月","2010年11月"],"定價(jià)":["原文中未提及"]}'
)
]

3、第三步:對(duì)模型輸出進(jìn)行后處理

defclean_response(response:str):
if'```json'inresponse:
res=re.findall(r'```json(.*?)```',response)
iflen(res)andres[0]:
response=res[0]
response.replace('、',',')
try:
returnjson.loads(response)
except:
returnresponse

總結(jié)

本文先談?wù)刏ero-shot、One-shot以及Few-shot、從ChatIE:面向REEENER三種任務(wù)的偽zero-shot prompt說(shuō)起、從偽zeroshot看In-Context Learning類(lèi)比學(xué)習(xí)、將In-Context Learning引入偽zero-shot完成信息抽取任務(wù)四個(gè)方面進(jìn)行介紹,供大家一起參考。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • icl
    icl
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    17480
  • CLS
    CLS
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    9853
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    491

    瀏覽量

    23182
  • ChatGPT
    +關(guān)注

    關(guān)注

    30

    文章

    1596

    瀏覽量

    10059

原文標(biāo)題:基于GLM-6B對(duì)話(huà)模型的實(shí)體屬性抽取項(xiàng)目實(shí)現(xiàn)解析:對(duì)Zero-shot與In-Context Learning的若干思考

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用OpenVINO部署GLM-Edge系列SLM模型

    近期智譜發(fā)布了其最新的GLM-Edge系列SLM模型,GLM-Edge 系列是智譜在面向端側(cè)真實(shí)落地使用的場(chǎng)景下的一次嘗試,由兩種尺寸的大語(yǔ)言對(duì)話(huà)
    的頭像 發(fā)表于 12-09 16:12 ?2407次閱讀

    智能硬件接入主流大模型做語(yǔ)音交互(附文心一言、豆包、kimi、智譜glm、通義千問(wèn)示例)

    接通文心一言、豆包、kimi、智譜glm、通義千問(wèn)等國(guó)內(nèi)主流大模型,詳細(xì)操作步驟可以參考附件文檔。實(shí)操時(shí)也可以對(duì)照視頻進(jìn)行: https://b23.tv/vn6By9F
    發(fā)表于 08-21 19:13

    【附實(shí)操視頻】聆思CSK6模型開(kāi)發(fā)板接入國(guó)內(nèi)主流大模型(星火大模型、文心一言、豆包、kimi、智譜glm、通義千問(wèn))

    接入文心一言、通義千問(wèn)、豆包、智譜glm、kimi等國(guó)內(nèi)的大模型,但由于各家接口和數(shù)據(jù)格式不一樣,調(diào)試驗(yàn)證會(huì)浪費(fèi)很多時(shí)間。因此本篇以聆思CSK6模型開(kāi)發(fā)板接入為例,分享具體的接入步驟
    發(fā)表于 08-22 10:12

    中文專(zhuān)利屬性值對(duì)抽取技術(shù)及應(yīng)用

    習(xí)知識(shí),提出一種基于條件隨機(jī)場(chǎng)的抽取方法。該方法將屬性屬性值視為命名實(shí)體,利用語(yǔ)料訓(xùn)練得到條件隨機(jī)場(chǎng)模型,從而
    發(fā)表于 12-01 16:58 ?2次下載

    基于遠(yuǎn)距離監(jiān)督和模式匹配的屬性抽取方法

    和人工標(biāo)注知識(shí),挖掘具有高覆蓋度的模式庫(kù),用于發(fā)現(xiàn)職銜履歷屬性抽取候選集;其次利用職銜機(jī)構(gòu)等屬性間的文字接續(xù)關(guān)系,以及特定人物與候選屬性的依存關(guān)系,設(shè)計(jì)候選集的過(guò)濾規(guī)則對(duì)候選項(xiàng)進(jìn)行篩
    發(fā)表于 12-23 11:08 ?0次下載
    基于遠(yuǎn)距離監(jiān)督和模式匹配的<b class='flag-5'>屬性</b><b class='flag-5'>抽取</b>方法

    基于WebHarvest的健康領(lǐng)域Web信息抽取方法

    針對(duì)Web信息抽取(WIE)技術(shù)在健康領(lǐng)域應(yīng)用的問(wèn)題,提出了一種基于WebHarvest的健康領(lǐng)域Web信息抽取方法。通過(guò)對(duì)不同健康網(wǎng)站的結(jié)構(gòu)分析設(shè)計(jì)健康實(shí)體抽取規(guī)則,
    發(fā)表于 12-26 13:44 ?0次下載

    節(jié)點(diǎn)屬性的海量Web信息抽取方法

    樹(shù)節(jié)點(diǎn)的密度和視覺(jué)屬性,根據(jù)屬性值對(duì)Web頁(yè)面內(nèi)容進(jìn)行預(yù)處理;引入MapReduce計(jì)算框架,實(shí)現(xiàn)海量Web信息的并行化抽取。仿真實(shí)驗(yàn)結(jié)果表明,提出的海量Web信息
    發(fā)表于 02-06 14:36 ?0次下載

    模型NLP事件抽取方法總結(jié)

    : Event Extraction as Definition Comprehension, EMNLP 2020[1] 動(dòng)機(jī) 提出一種新穎的事件抽取方法,為模型提供帶有漂白語(yǔ)句(實(shí)體用通用的方式指代)的
    的頭像 發(fā)表于 12-31 10:19 ?1.1w次閱讀
    <b class='flag-5'>模型</b>NLP事件<b class='flag-5'>抽取</b>方法總結(jié)

    借助局部實(shí)體特征的事件觸發(fā)詞抽取方法

    于神經(jīng)網(wǎng)絡(luò)的觸發(fā)詞抽取模型利用實(shí)體信息判別觸發(fā)詞,但大量無(wú)關(guān)實(shí)體會(huì)影響觸發(fā)詞抽取效果。提出一種借助局部實(shí)
    發(fā)表于 05-26 15:24 ?2次下載

    實(shí)體關(guān)系抽取模型CasRel

    許多實(shí)驗(yàn)證明聯(lián)合學(xué)習(xí)方法由于考慮了兩個(gè)子任務(wù)之間的信息交互,大大提升了實(shí)體關(guān)系抽取的效果,所以目前針對(duì)實(shí)體關(guān)系抽取任務(wù)的研究大多采用聯(lián)合學(xué)習(xí)方法。
    的頭像 發(fā)表于 07-21 14:11 ?4926次閱讀

    如何用一種級(jí)聯(lián)的并解決嵌套的實(shí)體的三元組抽取模型

    關(guān)系抽取是自然語(yǔ)言處理中一個(gè)比較基礎(chǔ)的任務(wù),除了關(guān)系抽取之外還有類(lèi)似的任務(wù)如:屬性抽取等。
    的頭像 發(fā)表于 02-08 09:28 ?1798次閱讀
    如何用一種級(jí)聯(lián)的并解決嵌套的<b class='flag-5'>實(shí)體</b>的三元組<b class='flag-5'>抽取</b><b class='flag-5'>模型</b>?

    ChatGLM-6B的局限和不足

    ;ChatGLM-6B 參考了 ChatGPT 的設(shè)計(jì)思路,在千 億基座模型 GLM-130B 中注入了代碼預(yù)訓(xùn)練,通過(guò)有監(jiān)督微調(diào)等技術(shù)實(shí)現(xiàn)與人類(lèi)意圖對(duì)齊(即讓機(jī) 器的回答符合人類(lèi)的期
    的頭像 發(fā)表于 06-25 11:50 ?6205次閱讀
    ChatGLM-<b class='flag-5'>6B</b>的局限和不足

    智譜AI發(fā)布全新多模態(tài)開(kāi)源模型GLM-4-9B

    近日,智譜AI在人工智能領(lǐng)域取得重大突破,成功推出全新開(kāi)源模型GLM-4-9B。這款模型以其卓越的多模態(tài)能力,再次刷新了業(yè)界對(duì)于大型語(yǔ)言模型的認(rèn)識(shí)。
    的頭像 發(fā)表于 06-07 09:17 ?1392次閱讀

    智譜GLM-Zero深度推理模型預(yù)覽版正式上線(xiàn)

    近日,智譜公司宣布其深度推理模型GLM-Zero的初代版本——GLM-Zero-Preview已正式上線(xiàn)。這款模型是智譜首個(gè)基于擴(kuò)展強(qiáng)化學(xué)習(xí)技術(shù)訓(xùn)練的推理
    的頭像 發(fā)表于 01-02 10:55 ?791次閱讀

    智譜推出深度推理模型GLM-Zero預(yù)覽版

    的產(chǎn)品。 GLM-Zero-Preview擅長(zhǎng)處理數(shù)理邏輯、代碼解析以及需要深度推理的復(fù)雜問(wèn)題,旨在為用戶(hù)提供更精準(zhǔn)、高效的智能推理服務(wù)。與同基座模型相比,GLM-Zero-Previ
    的頭像 發(fā)表于 01-03 10:42 ?755次閱讀