DeepKE-LLM鏈接: https://github.com/zjunlp/DeepKE/tree/main/example/llm OpenKG地址: http:///tool/deepke Gitee地址: https:///openkg/deepke/tree/main/example/llm 開放許可協(xié)議:Apache-2.0 license 貢獻(xiàn)者:浙江大學(xué)(張寧豫、張錦添、王瀟寒、桂鴻浩、姜一諾、陳華鈞) 1、背景DeepKE是一個(gè)開源可擴(kuò)展的知識(shí)圖譜抽取工具,可實(shí)現(xiàn)命名實(shí)體識(shí)別、關(guān)系抽取和屬性抽取等抽取任務(wù),并支持低資源少樣本、文檔篇章和多模態(tài)等復(fù)雜場(chǎng)景。在大模型時(shí)代,我們對(duì)DeepKE進(jìn)行了全面升級(jí)并發(fā)布大模型版DeepKE-LLM(智析抽取大模型)。該版本基于大模型對(duì)數(shù)據(jù)進(jìn)行智能解析以實(shí)現(xiàn)知識(shí)抽取,支持多種大模型、遵循指令和自定義知識(shí)類型、格式。 2、支持多種大模型DeepKE-LLM目前支持多個(gè)大模型如Llama系列模型(Alpaca、Linly等)、ChatGLM等(MOSS、CPM-Bee、Falcon開發(fā)測(cè)試中將于近期支持),并通過自研的EasyInstruct支持調(diào)用OpenAI和Claude的系列模型,還進(jìn)行了多實(shí)例并發(fā)請(qǐng)求(BatchPrompt)優(yōu)化。此外,DeepKE-LLM提供了豐富的提示(Prompt)形式,含文本指令、代碼提示(Code Prompt)等,以滿足不同場(chǎng)景下知識(shí)抽取的需求。 DeepKE-LLM還提供了一個(gè)抽取大模型—智析。特別地,把LLaMA-13B與ZhiXi-13B-Diff合并需要約100GB的內(nèi)存,顯存沒有要求(由于大模型合并策略導(dǎo)致的內(nèi)存開銷;為了方便使用,我們提供了fp16權(quán)重并將在未來優(yōu)化合并方式);在模型推理階段如果基于GPU使用ZhiXi-13B需要約26GB顯存。我們將在KnowLM(https://github.com/zjunlp/KnowLM)項(xiàng)目中提供完整的大模型預(yù)訓(xùn)練、微調(diào)框架及多種大模型選擇。 2.1 上手DeepKE-LLM 首先執(zhí)行以下腳本安裝python依賴包。
大模型時(shí)代, DeepKE-LLM采用全新的環(huán)境依賴 注意??!是example/llm文件夾下的requirements.txt。 使用方式一:按照KnowLM項(xiàng)目指引完成環(huán)境配置、模型權(quán)重獲取與恢復(fù)后執(zhí)行以下腳本測(cè)試抽取效果:
使用方式二:按照DeepKE-LLM項(xiàng)目指引完成環(huán)境配置、模型權(quán)重獲取與恢復(fù)后執(zhí)行:
下圖對(duì)比了通過DeepKE-LLM使用智析大模型和ChatGPT的中英雙語知識(shí)抽取效果??梢园l(fā)現(xiàn)其取得了較為準(zhǔn)確和完備的抽取效果。此外,我們也發(fā)現(xiàn)智析仍會(huì)出現(xiàn)一些抽取錯(cuò)誤,我們會(huì)在未來繼續(xù)增強(qiáng)底座模型的中英文語義理解能力并引入更多高質(zhì)量的指令數(shù)據(jù)以提升模型性能。 2.2 上手大模型微調(diào) DeepKE-LLM還支持多種大模型如Llama系列、ChatGLM等的微調(diào)。依照文檔的說明,下載完畢數(shù)據(jù)和模型后,可通過下列腳本即可完成抽取大模型的指令微調(diào)訓(xùn)練(基于Llama-7B的Lora微調(diào)),我們還提供了多機(jī)多卡訓(xùn)練腳本供用戶使用。
2.3 使用 GPT、Anthropic系列模型 通過pip install easyinstruct安裝EasyInstruct包,根據(jù)LLMICL中文檔配置好數(shù)據(jù)集和API Key等參數(shù)后,直接運(yùn)行python run.py文件即可。 其他模型的使用煩請(qǐng)查閱DeepKE-LLM的README文檔。 3、抽取大模型訓(xùn)練智析大模型基于LLaMA(13B)進(jìn)行了全量預(yù)訓(xùn)練,并基于知識(shí)圖譜轉(zhuǎn)換指令(KG2Instructions,如下圖)技術(shù)產(chǎn)生的大量指令數(shù)據(jù)來提高語言模型對(duì)于人類抽取指令的理解。 為了在保留原來的代碼能力和英語能力的前提下,來提升模型對(duì)于中文的理解能力,我們并沒有對(duì)詞表進(jìn)行擴(kuò)增,而是搜集了中文語料、英文語料和代碼語料。其中中文語料來自于百度百科、悟道和中文維基百科;英文語料是從LLaMA原始的英文語料中進(jìn)行采樣,同時(shí)擴(kuò)充了英文維基數(shù)據(jù)(原始論文中的英文維基數(shù)據(jù)的最新時(shí)間點(diǎn)是2022年8月,我們額外爬取了2022年9月到2023年2月,共六個(gè)月的數(shù)據(jù))。對(duì)上面爬取到的數(shù)據(jù)集,我們使用了啟發(fā)式的方法,剔除了數(shù)據(jù)集中有害的內(nèi)容和重復(fù)的數(shù)據(jù)。最后我們使用5500K條中文樣本、1500K條英文樣本、900K條代碼樣本基于transformers的trainer搭配Deepspeed ZeRO3進(jìn)行預(yù)訓(xùn)練。 接著,我們構(gòu)建了針對(duì)抽取加強(qiáng)的指令微調(diào)數(shù)據(jù)集以提升模型的知識(shí)抽取能力,主要采取的是基于知識(shí)圖譜轉(zhuǎn)換指令(KG2Instructions)技術(shù)。我們基于維基百科和WikiData知識(shí)圖譜,通過遠(yuǎn)程監(jiān)督、Schema約束過濾等方法構(gòu)建大量的指令數(shù)據(jù),并通過隨機(jī)采樣人工指令模板的方式提升指令的泛化性。此外,我們還使用大量開源中英文學(xué)術(shù)抽取數(shù)據(jù)集構(gòu)建指令微調(diào)數(shù)據(jù)集。 除了知識(shí)抽取能力之外,智析大模型也繼承了基座模型的通用指令遵循能力如翻譯、理解、代碼、創(chuàng)作和推理等能力,詳情煩請(qǐng)查閱KnowLM(https://github.com/zjunlp/KnowLM)的文檔。 4、小結(jié)和展望新版本的DeepKE-LLM支持使用多個(gè)大模型并提供了基于指令遵循的抽取能力。歡迎各位小伙伴提出意見建議(Issue)和支持(PR)。在今后我們還將繼續(xù)開發(fā)和增強(qiáng)抽取大模型,支持更多的功能如大模型定制化知識(shí)增強(qiáng)和編輯、大小模型及多智能體(LLMs)協(xié)同、具身交互場(chǎng)景知識(shí)獲取與協(xié)作等。 致謝:感謝多年來對(duì)DeepKE項(xiàng)目提供支持的同學(xué)(部分同學(xué)已畢業(yè))、老師和朋友(排名不分先后):余海陽、陶聯(lián)寬、徐欣、喬碩斐、毛盛宇、黎洲波、李磊、歐翌昕、王鵬、習(xí)澤坤、方潤(rùn)楠、陳想、畢禎、陳靜、梁孝轉(zhuǎn)、李欣榮、黃睿、翁曉龍、徐子文、張文、鄭國(guó)軸、張珍茹、譚傳奇、陳強(qiáng)、熊飛宇、黃非等。 OpenKGOpenKG(中文開放知識(shí)圖譜)旨在推動(dòng)以中文為核心的知識(shí)圖譜數(shù)據(jù)的開放、互聯(lián)及眾包,并促進(jìn)知識(shí)圖譜算法、工具及平臺(tái)的開源開放。 |
|