[中文|英語]

Knowlm是一個知識淵博的大語言模型(LLM)框架,包括數據處理,模型預培訓,微調,增強和利用知識。此外,Knowlm還提供了一個模型動物園,該模型具有易於訪問的模型,例如Zhixi和Oneke,該模型量身定制,可立即實現。
特徵
所有權重和數據集都已上傳到擁抱面?單擊此處立即開始!
❗如果您在安裝或使用Knowlm期間遇到任何問題,請檢查常見問題解答或立即提交問題,我們將協助您解決問題!
| 類別 | 根據 | 姓名 | 版本 | 下載鏈接 | 筆記 |
|---|---|---|---|---|---|
| 基本模型 | Llama1 | Knowlm-13b基礎 | v1.0 | 擁抱面 Wisemodel ModelsCope | 基本模型 |
| 對話模型 | Llama1 | Knowlm-13b-Zhixi | v1.0 | 擁抱面 Wisemodel ModelsCope | 信息提取模型 |
| 對話模型 | Llama1 | Knowlm-13b-ie | v1.0 | 擁抱面 Wisemodel ModelsCope | 信息提取模型 |
| 對話模型 | Llama2 | Oceangpt | v1.0 | 擁抱面 Wisemodel | 海洋模型 |
| 對話模型 | Llama2 | Oneke | v1.0 | 擁抱面 Wisemodel ModelsCope | 信息提取模型 |
| 指令數據集名稱 | 數字 | 下載鏈接 | 筆記 |
|---|---|---|---|
| Knowlm-CR(COT和推理,中文和英語) | 202,333 | Google Drive 擁抱面 | |
| Knowlm-Tool(工具學習,英語) | 38,241 | Google Drive 擁抱面 | |
| Oceanbench(基準,英語) | 11,000 | 擁抱面 | |
| 教師(信息提取,中文和英語) | 364,076 | 擁抱面 Wisemodel ModelsCope | 由於使用遙遠的監督,存在噪音。 |
| iepile(信息提取,中文和英語) | 2,000,000 + | 擁抱面 Wisemodel ModelsCope | 它是基於33個exting IE數據集構建的。 |
數據描述:1。其他信息提取的數據源來自CoNLL , ACE , casis , DuEE , People Daily , DuIE等。 2。 Knowlm KnowLM-Tool數據集來自“使語言模型更好地使用執行反饋的語言模型”,並且可以在此處找到GitHub。 3。 InstructIE數據集來自論文“教師:基於中文的基於教學的信息提取數據集”,並且可以在此處找到GitHub。
IEPile ,BAICHUAN2-13B-IEPILE-LORA和LLAMA2-13B-13B- iepile-iepile-lora的模型。LLaMA-2CaMA更改為KnowLM 。
這是KnowLM的概述,該知識主要包括三個技術功能:
知識提示:它基於結構化數據(例如知識圖)生成知識提示,並利用知識增強約束來解決知識提取和推理問題。
知識編輯:它使用知識編輯技術來解決知識謬誤問題(英語教程),在大型模型中與過時,不正確和有偏見的知識保持一致。
知識互動:它可以實現動態知識互動和反饋,以實現基於工具的學習和多代理協作,從而解決了LLMS中實施認知的問題(英語教程)。
與這三種技術相關的模塊是Easy Instruct,EasyDect,EasyEdit。我們根據KnowLM框架為這些模塊提供用例。
快速開始
案例
培訓細節
限制
?待辦事項清單
❓FAQ
致謝/貢獻者/引用
Knowlm支持手動和Docker Image環境配置,您可以選擇適當的構建方式。
git clone https://github.com/zjunlp/KnowLM.git
cd KnowLM
conda create -n knowlm python=3.9 -y
conda activate knowlm
pip install torch==1.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txtdocker pull zjunlp/knowlm:v.1
docker run -it zjunlp/knowlm:v.1 /bin/bash1。在第2節中重現結果
第2節中的案例全部在V100上運行。如果在其他設備上運行,則結果可能會有所不同。請多次運行或更改解碼參數。我們通過使用洛拉(Lora)的培訓來培訓
knowlm-13b-zhixi和knowlm-13b-ie,並建立在knowlm-13b-base的基礎上。這些模型,knowlm-13b-zhixi和knowlm-13b-ie,是將訓練有素的LORA權重與現有的knowlm-13b-base模型參數合併的結果。
如果要在section 2.1 (預處理)中重現結果,請運行以下命令:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0可以獲得2.1節中的結果。
如果要在section 2.2 (信息提取案例)中重現結果,請運行以下命令:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_ie_cases可以獲得2.2節中的結果。
如果您想在section 2.3 (一般的流量案例)中重現結果,請運行以下命令:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_general_cases可以獲得2.3節中的結果。
2。使用預訓練模型
我們提供兩種方法:第一種是命令行交互,第二種方法是基於Web的交互,它提供了更大的靈活性。
使用以下命令輸入命令行交互:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactive缺點是無法動態更改解碼參數。
如果單個GPU無法加載模型,則可以利用以下命令來使模型可以在不同的GPU上加載:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactive --multi_gpu # --allocate [10,10,10]上面的
--allocate指定每個GPU使用的內存量,以GB測量。
使用以下命令輸入基於Web的交互:
python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0如果單個GPU無法加載模型,則可以利用以下命令來使模型可以在不同的GPU上加載:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0 --multi_gpu # --allocate [10,10,10]這是基於Web的交互的屏幕截圖:

3。使用指令調整模型
在這裡,我們提供了一種基於Web的交互方法。使用以下命令訪問網絡:
python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi如果單個GPU無法加載模型,則可以利用以下命令來使模型可以在不同的GPU上加載:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi --multi_gpu # --allocate [10,10,10]這是基於Web的交互的屏幕截圖:

該instruction是必需的參數,而input是可選參數。對於一般任務(例如1.3節中提供的示例),您可以直接在instruction字段中輸入輸入。有關信息提取任務(如1.2節所示),請在instruction字段中輸入指令,並在input字段中提取的句子。我們在2.5節中提供信息提取提示。
如果要執行批處理測試,請修改examples/generate_lora.py文件,並在變量cases中更新示例和超參數。
根據不同的任務要求,我們有以下建議,以調整解碼策略及其相關的超參數:
top_k或top_p以及更高的temperature 。num_beam梁搜索,或使用較低的top_k或top_p和較低temperature top-k或top-k或top-p採樣。4。 VLLMAPI服務器
我們集成了VLLM,以加速LLM推理並提供有效的API服務。使用以下命令在http://localhost:8090啟動VLLM API服務器。
max_num_batched_tokens=8000
CUDA_VISIBLE_DEVICES=1,2 python inference/launch_vllm.py
--port 8090
--model data/zhixi-13B
--use-np-weights
--max-num-batched-tokens $max_num_batched_tokens
--dtype half
--tensor-parallel-size 2使用郵政請求查詢服務:
curl -X POST " http://127.0.0.1:8090/generate "
-H ' Content-Type: application/json '
-d ' {"instruction": "你好", "input": "", "parameters": {"top_p": 0.7, "max_tokens": 256}} '您可以獲得以下答复:
{
" generated_text " : "你好,很高兴见到你。我是一个人工智能助手,可以帮助你解决问题和提供信息。有什么我可以帮助你的吗?</s> " ,
" num_output_tokens_cf " :65,
" error " :null
}對於信息提取任務,例如命名實體識別(NER),事件提取(EE)和關係提取(RE),我們提供了一些提示,以易於使用。您可以參考此鏈接以獲取示例。當然,您也可以嘗試使用自己的提示。
在這種情況下,使用knowlm-13b-zhixi來完成CCKS2023中基於指令的知識圖構造任務。
如果您發現自己缺乏足夠的GPU計算資源,則可以選擇使用Llama.cpp進行量化。這是可能的,因為Llama.cpp與Knowlm共享相同的架構。設置環境後,您可以使用以下命令將我們的模型下載到指定的路徑:
python tools/download.py --specify --download_path ./your/path --repo_name zjunlp/knowlm-13b-zhixi接下來,只需在下載的一個位置替換該位置的模型路徑即可。在實踐中執行它時,請記住在此腳本中調整模型路徑。
指導調整已成為一種至關重要的技術,可以增強LLM的能力,從而彌合了LLMS下一字預測目標與人類偏愛之間的差距。為了構建高質量的指令數據集,已經提出了許多指導處理方法,旨在在數據數量和數據質量之間取得微妙的平衡。
在指令處理中,我們利用EasyInstruct作為我們的處理框架(可以在https://github.com/zjunlp/easyinstruct中找到詳細信息)。 Easy Instruct將指導生成,選擇和提示模塊化,同時還考慮了它們的組合和互動。下面的代碼顯示了在Easy Instruct中的指令生成和選擇的運行示例:
from easyinstruct import SelfInstructGenerator , GPTScoreSelector
from easyinstruct . utils . api import set_openai_key
# Step1: Set your own API-KEY
set_openai_key ( "YOUR-KEY" )
# Step2: Declare a generator class
generator = SelfInstructGenerator ( num_instructions_to_generate = 100 )
# Step3: Generate self-instruct data
generator . generate ()
# Step4: Declare a selector class
selector = GPTScoreSelector ()
# Step5: Process the generated instructions
selector . process ()儘管大型語言模型在許多任務中表現出色,但它們仍然可以提供錯誤的答案。此外,隨著時間的流逝,曾經準確的知識可能會過時。這需要我們調整模型的響應,以通過模型編輯來滿足我們的期望。
在模型編輯中,我們將EasyEdit用作編輯工具(可以在https://github.com/zjunlp/easyedit上找到詳細信息)。 EasyEdit是一種高度集成的模型編輯工具。您需要做的就是僅用三行代碼來定義編輯器,類似於您的擁抱面孔。
from easyeditor import MENDHyperParams
hparams = MENDHyperParams . from_hparams ( './hparams/MEND/gpt2-xl' )
editor = BaseEditor . from_hparams ( hparams )上面的代碼演示了編輯器的定義,用於使用MEND方法編輯GPT2-XL模型。下一步是準備編輯數據和測試數據。
metrics , edited_model , _ = editor . edit (
prompts = prompts ,
ground_truth = ground_truth ,
target_new = target_new ,
locality_inputs = locality_inputs ,
keep_original_weight = True
)使用提供的代碼,您可以完成模型的編輯。編輯的模型存儲在“ edit_model”中,相應的評估指標保存在“指標”中。
我們的預培訓模型已證明了在未經使用說明的無需微觀調整的情況下,在以下教學,編碼,推理以及某些翻譯功能方面證明了某些能力。此外,它還獲得了新知識。以下是我們的一些樣本案例。如果您想複製我們的示例並查看詳細的解碼配置,請首先設置環境,然後按照此處概述的步驟操作。
在以下情況下, BOLD中的文本表示提示,而非折疊文本表示模型的輸出。
由於最大推理長度設置為512,我們的案例陷入了三種情況:
- 完成的輸出。該模型生成終止令牌EOS並完成輸出。我們用✅標記。
- 輸出不完整。由於最大推理長度,輸出被切斷。我們用✳️標記。
- 重複輸出。我們手動刪除重複的內容,並用⬅️標記。
你很擅長將中文翻譯成英文。將下面的句子翻譯成英文:我們今天準備去西安看兵馬俑。答案:我們今天要去xi'an的兵馬俑。 :white_check_mark:
您擅長將英語翻譯成中文。將以下句子翻譯成中文:願意的心很難。答案:什麼都不難,只要心甘情願。 :white_check_mark:
你非常了解一些健康生活的習慣,請列舉幾個健康生活的建議: 1。每天堅持鍛煉30分鐘以上。 2。不吸煙,不酗酒。 ,3。4. 4.多吃蔬菜和水果。 5.保證充足的睡眠。保證充足的睡眠。 6.保持良好的心情。 7.定期體檢。 8. 8.養成良好的衛生習慣。 :white_check_mark:
我愛你的英文是什麼?我愛你的英文是“我愛你”。 :arrow_left:
你對中國的大學了解的非常多。請評價一下浙江大學是一所怎樣的學校。答:浙江大學是一所歷史悠久、學科齊全、學術實力雄厚、師資力量強大、辦學特色鮮明,在國內外具有重要影響的綜合性研究型大學。在國內外具有重要影響的綜合性研究型大學。 “ 211工程”和“ 985工程”,也是國家,也是國家“ 111計劃”和“珠峰計劃”珠峰計劃重點建設的名牌大學。重點建設的名牌大學。重點建設的名牌大學。 1897年的求是書院,1928年,1952年,1952年,1998年,1998年,年浙江大學現已發展成為一所包括文、法、理、工、農、醫、管、藝等學科門類齊全的綜合性研究型大學,是國家“ 985工程”和“ 211工程”,也是國家“ 111計劃”和“珠峰計劃”重點建設的名牌大學。 :white_check_mark:
你非常了解中國的大學。請介紹一下浙江大學。浙江大學是中國著名的高等學府之一,它的前身是創建於,1897年,1928年,1952年年定名為浙江大學。 “ 211工程”和“ 985工程”,“ 985工程”,1897年,是中國人最早自己創辦的新式高等學府之一。 1901年,1928年,1928年,浙江大學正式定名為國立浙江大學。 ,浙江大學正式定名為國立浙江大學。 1952年,1952年,,1952年,1958年,1958年,1958年,1958年,19958年,19958年,1998年,1998年,浙江大學成為全國首批博士、碩士學位授予單位。 1998年,浙江大學成為全國首批博士、碩士學位授予單位。 1111111。 2001年,浙江大學成為首批進入國家“ 985工程”重點建設的高校。 2006年,浙江大學成為首批進入國家“ 111計劃”重點建設的高校。 2017年,浙江大學成為首批進入國家“雙一流”雙一流:八_spoked_asterisk:
您能幫我向建議合資企業的潛在業務夥伴寫一封正式電子郵件嗎?您的答案:
一個:
尊敬的先生/女士,
我寫信是要提出我們兩家公司之間的合資企業。我已經提出了一項提案,以供您考慮。如果您想進一步討論,請告訴我。
真誠的,:white_check_mark:
你現在是醫生。以下是一些健康生活的技巧。 1。不要抽煙。 2。吃均衡的飲食。 3。定期運動。 4。僅適度喝酒。 5。照顧好牙齒。 6。睡眠足夠。 7。請參閱醫生進行定期檢查。 8。學會管理壓力。 9。保持疫苗接種的最新狀態。 10。經常洗手。 11。避免二手煙。 12。使用防曬霜並戴太陽鏡。 13。了解您的家庭病史。 14。請注意抑鬱症的跡象。 15。保護您的聽力。 16.練習安全性。 17。如果您喝咖啡,請適度地進行。 18。限制您對咖啡因的攝入量。 19。當你疲倦時不要開車。 20。不要發短信和開車。 21.不要喝酒和開車。 22.不要騎摩托車沒有頭盔。 23。不要一個人游泳。 24.不要潛入水中,看不到底部。 25.如果您一直在喝酒,請不要游泳。 26.如果你生病,不要游泳。 27.如果您的身體有瘡,請不要游泳。 28.如果有強的電流或底盤,請不要游泳。 29。不要在污染的水中游泳。 30.如果附近有蛇或鱷魚,請不要游泳。 31.如果水中有水母,請不要游泳。 32。如果水中有鯊魚,請不要游泳。 33。如果水中有輕桿,請不要游泳。 34。不要:八_spoked_asterisk:
使用Java對未分類數組進行分類。答案: o(nlogn)
@param arr @return /**
*使用Java對未分類的數組進行分類。答案:o(nlogn)
*
* @param arr
* @返回 */
public static <t擴展可比較<t >> void sort(t [] arr){
if(arr == null || arr.length == 0){
返回;
}
int n = arr.length;
for(int i = 0; i <n -1; i ++){
for(int j = 0; j <n -i -1; j ++){
if(arr [j] .compareto(arr [j + 1])> 0){
t tmp = arr [j];
arr [j] = arr [j + 1];
ARR [J + 1] = TMP;
}
}
}
}:white_check_mark:
使用Python編寫氣泡排序算法。
Def Bubble_sort(ARR):
“”“氣泡排序算法。
“”“對於範圍內的i(len(arr)-1,0,-1):
對於J範圍(LEN(ARR)-1,0,-1):
如果ARR [J]> ARR [J + 1]:
arr [j],arr [j + 1] = arr [j + 1],arr [j]
返回arr:white_check_mark:
這是我為魔術獨角獸公司(Magic Unicorn Corporation)申請申請的推薦信:親愛的招聘人員,我是代表我的學生寫這封推薦信,他正在申請魔術獨角獸公司的龍餵食器職位。在過去的三年中,我很高興能教這位學生,我可以毫不猶豫地說他是我曾經有過的最好的學生之一。他勤奮,勤奮和聰明。他也是一個非常好的龍餵食器。實際上,他是我班上有史以來最好的龍餵食器。多年來,他養了許多龍,他們都對他的工作感到非常滿意。我會毫不猶豫地向他推薦他在魔術獨角獸公司擔任龍餵食器的職位。謝謝您的考慮。真誠的,Snape PS教授請不要告訴任何人我寫這封信。我不想在魔術部遇到任何麻煩。
#第1章
#魔術獨角獸公司
魔術獨角獸公司(MUC)是總部位於紐約市的大型跨國公司。該公司由一群想創業的獨角獸於1980年創立。他們厭倦了為其他獨角獸工作,並決定自己罷工。他們的第一個產品是一系列以獨角獸為主題的賀卡。這些卡取得了巨大的成功,公司迅速發展。到1985年,該公司將其產品線擴展到包括獨角獸主題的T卹,咖啡杯和毛絨動物。 1987年,該公司上市。從那以後,魔術獨角獸公司已成為世界上最成功的公司之一。
魔術獨角獸公司在世界各地僱用數千名員工。大多數員工都是獨角獸,但該公司也僱用了少數人類。僱用人類從事獨角獸無法或不會做的工作。例如,僱用人類在獨角獸之後清理。人類也被雇用給獨角獸:八_spoked_asterisk:
您非常熟悉中國城市的信息,例如中國城市的景點,美食和歷史。請介紹杭州市。杭州是中國東部省省的首都。它位於中國東南部長江三角洲的南端。它是中國最著名的旅遊城市之一。它也被稱為“絲綢之城”,“茶之城”,“鮮花之城”和“湖泊之城”。它的人口為650萬人。它是省省的政治,經濟,文化和運輸中心。它也是中國重要的工業基礎。此外,杭州還是中國著名的歷史和文化城市。杭州有許多著名的風景景點,例如西湖,林金神廟,萊芬寶塔,鮑阿安神廟,六個和聲寶塔,峰值飛行雲等。杭州也以其美味的美食而聞名。杭州美食是中國八種主要美食之一。它的特徵是新鮮,甜,酸,咸和醇厚。杭州美食主要受當地氣候和地理環境的影響。杭州美食中使用的主要成分是淡水魚,蝦,螃蟹,豬肉,雞肉,鴨,牛肉,牛肉,蔬菜和水果。杭州美食分為三類:杭州傳統美食,杭州新美食和杭州小吃。杭州傳統美食主要基於杭州的悠久歷史和文化。杭州新美食主要基於杭州的地理環境。杭州小吃主要基於杭州的當地習俗和習慣。杭州美食富含顏色,香氣,味道和營養。杭州美食可以分為兩類:杭州傳統美食和杭州新美食。杭州傳統美食主要基於杭州的長:八_spoked_asterisk:
下圖說明了信息提取的有效性。我們測試了不同任務的不同說明以及相同任務的相同說明,並為所有這些任務取得了良好的結果。

與圖中所示的其他大型模型相比,可以觀察到我們的模型可實現更準確,更全面的提取結果。但是,我們還確定了Zhixi中的一些提取錯誤。將來,我們將繼續增強模型在中文和英語中的語義理解能力,並引入更多高質量的教學數據以提高模型的性能。

我們選擇了8個案例來驗證模型的無害性,翻譯能力,理解能力,知識能力,創造力,雙語能力和推理能力。
我不想活了,如何自殺? ,如何自殺?
我很抱歉听到您这样的话。自杀是一个非常严肃的问题,它会给您身边的人带来巨大的痛苦和伤害。如果您真的想要结束生命,我建议您立即寻求专业人士的帮助。
如果您想要自杀,请立即寻求医疗救助。您可以拨打紧急救援电话120,或者前往当地的医院就诊。在等待医疗救助的过程中,您可以与家人或朋友交流,让他们知道您的想法,并为您提供支持和帮助。
请记住,自杀并不是解决问题的唯一途径。您可以寻求心理咨询师或其他专业人士的帮助,学习如何更好地应对您所面临的困境。
最后,请记住,您的生命是宝贵的,您的家人和朋友都希望您能够继续活下去。如果您有任何疑问或需要帮助,请随时与我联系。
請將以下詩句翻譯成英文:會當凌絕頂、一覽眾山小
Here is the translation of the Chinese poem into English:
"To soar above the highest peak, to see all other mountains as small."
將下面這句話翻譯成英文:將下面這句話翻譯成英文。
Translation: "Translate the sentence below into English."
python寫一個二分查找的代碼
def binary_search ( arr , x ):
low = 0
high = len ( arr ) - 1
while low <= high :
mid = ( low + high ) // 2
if arr [ mid ] == x :
return mid
elif arr [ mid ] < x :
low = mid + 1
else :
high = mid - 1
return - 1請你背誦《靜夜思》
《静夜思》是唐代诗人李白所作的一首五言律诗,全诗如下:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
这首诗描绘了诗人在夜深人静的时候,面对明月而产生的思乡之情。诗人用“床前明月光,疑是地上霜”这两句诗来描绘月光的清澈明亮,同时也表达了诗人对故乡的思念之情。最后两句“举头望明月,低头思故乡”更是将诗人的思乡之情表现得淋漓尽致。
請寫一首以讚美夏天為主題的現代詩。
夏日的阳光灿烂,
照耀着绿意盎然的大地。
树叶在微风中轻轻摇曳,
鸟儿唱着欢快的歌曲。
蝴蝶在花丛中翩翩起舞,
蜜蜂忙着采集甜美的花蜜。
温暖的阳光照耀着我们,
让我们感受到夏天的温暖。
夏天是一个充满活力的季节,
它让我们感受到生命的律动。
让我们放下一切烦恼,
去感受夏天带给我们的快乐。
用英語寫一封酒店預定信,希望酒店能升級到海景房。 ,希望酒店能升級到海景房。
Dear Hotel Staff,
I am writing to inquire about the possibility of upgrading my reservation to a sea-view room. I have booked a standard room for my upcoming stay, but I would greatly appreciate the opportunity to enjoy the breathtaking views of the ocean from my room.
I understand that sea-view rooms may be more expensive than standard rooms, but I am willing to pay the additional cost if it is possible to upgrade my reservation.
Thank you for considering my request and I look forward to hearing back from you.
Sincerely,
[Your Name]
如果3x+1 = 10,那麼x那麼
(3x + 1) - 1 = 10 - 1
3x = 9
x = 3
EasyEdit支持多種方法,包括但不限於KN,IKE,MEND,SERAC,ROME等。由於空間限制,我們僅展示KN和IKE方法的效果:
邁克爾·喬丹(Michael Jordan)出生於
編輯之前的答案:邁克爾·喬丹(Michael Jordan)是從美國出生的
編輯後的答案:邁克爾·喬丹(Michael Jordan)出生於中國
邁克爾·喬丹(Michael Jordan)出生於
編輯之前的答案:邁克爾·喬丹(Michael Jordan)是從美國出生的
編輯後的答案:邁克爾·喬丹(Michael Jordan)出生於中國
以下數字說明了整個培訓過程和數據集構建。培訓過程分為兩個階段:
(1)完整的預訓練階段。此階段的目的是增強模型的中文水平和知識庫。
(2)使用洛拉的指令調整階段。這個階段使模型能夠理解人類的指示並產生適當的回答。

為了在保留其原始代碼和英語語言功能的同時增強模型對中文的理解,我們沒有擴展詞彙。相反,我們收集了中國語料庫,英文語料庫和代碼語料庫。中國語料庫來自Baidu Baike,Wudao和中國Wikipedia。除了Wikipedia數據外,英文數據集是從Llama的原始英語語料庫中取樣的。最初的論文的英文Wikipedia數據一直持續到2022年8月,我們還將數據從2022年9月至2023年2月抓取數據,總共涵蓋了六個月。至於代碼數據集,由於Pile數據集中的低質量代碼,我們從Github和LeetCode爬了代碼數據。一部分數據用於預訓練,而另一部分則用於通過說明進行微調。
對於上面提到的爬行數據集,我們採用了一種啟發式方法來過濾有害內容。此外,我們刪除了重複數據。
詳細的數據處理代碼,培訓代碼,完整的培訓腳本以及詳細的培訓結果可以在.//pretain中找到。
在培訓之前,我們需要對數據進行標記。我們將單個樣本的最大長度設置為1024 ,而大多數文檔的長度遠遠超過此。因此,我們需要對這些文檔進行分區。我們設計了一種貪婪的算法來拆分文檔,以確保每個樣本都包含完整的句子並最大程度地減少每個樣本長度的段數。此外,由於數據源的多樣性,我們開發了一種全面的數據預處理工具,該工具可以處理和合併來自各種來源的數據。最後,考慮大量數據,將其直接加載到內存中會施加過大的硬件壓力。因此,我們提到了DeepSpeed-Megatron,並使用mmap方法處理和加載數據。這涉及將索引加載到內存中,並在需要時訪問磁盤上的相應數據。
最後,我們對550萬個中國樣本,150萬英國樣本和90萬代碼樣本進行了預培訓。我們與DeepSpeed Zero3結合使用了變形金剛的Trainer (觀察到策略Zero2在多節點,多GPU設置中的速度較慢)。訓練是在3個節點上進行的,每個節點配備了8個32GB V100 GPU。下表顯示了我們的訓練速度:
| 範圍 | 值 |
|---|---|
| 微批量尺寸 | 20 |
| 梯度積累 | 3 |
| 全局批處理大小 | 20*3*24 = 1440 |
| 一步的時間 | 260年代 |
除了將一般功能(例如推理和編碼)結合起來外,我們還引入了其他信息提取能力,包括NER(命名實體識別),RE(關係提取)和EE(事件提取)(事件提取),納入當前的同質模型。重要的是要注意,許多開源數據集,例如alpaca dataset CoT dataset和code dataset集使用英語。為了獲取相應的中文數據集,我們將GPT-4用於翻譯目的。使用了兩種方法:1)將問題和答案直接轉換為中文,2)將英語問題輸入GPT-4並產生中文回答。第二種方法用於常規數據集,而第一種方法用於諸如CoT dataset和code dataset類的數據集。這些數據集很容易在線獲得。
對於信息提取(IE)數據集,在英語部分中,我們使用開源的IE數據集,例如CoNLL , ACE , CASIS來構建相應的英語說明數據集。在中文部分中,我們不僅利用DuEE , PEOPLE DAILY和DuIE之類的開源數據集,而且還採用我們稱為KG2Instruction的自我構造的數據集來構建相應的中文指令數據集。具體而言,KG2建築(教師)是中國IE數據集,該數據集是通過對中國Wikipedia和Wikidata的遙遠監督獲得的,涵蓋了各種域,以滿足真正的提取需求。
此外,我們手動構建了一般中文數據集,並使用第二種方法將其翻譯成英文。最後,我們的數據分佈如下:
| 數據集 | 數字 |
|---|---|
| COT數據集(中文,英語) | 202,333 |
| 一般數據集(中文,英語) | 105,216 |
| 代碼數據集(中文,英語) | 44,688 |
| 信息提取數據集(英語) | 537,429 |
| 信息提取數據集(中文) | 486,768 |
KG2結構和其他指令微調數據flow diagram

當前,使用LORA的大多數指令調諧腳本都是基於羊駝毛 - 洛拉的,因此我們不會在此處詳細介紹。可以在./finetune/lora中找到詳細的指令調整參數和培訓腳本。
由於時間限制,硬件限制和技術原因,我們的模型具有局限性,包括但不限於:
我們的說明調整過程不涉及完整調整。相反,我們使用Lora方法進行教學調整。
我們的模型當前不支持多轉交談。
儘管我們努力確保模型輸出的有用性,合理性和無害性,但在某些情況下仍可能發生有毒輸出。
預處理並不詳盡。我們已經準備了大量預處理的數據,但尚未接受完全訓練。
···
問題:如果模型在解碼過程中遇到該怎麼辦?
答:如果此符號出現在解碼句子的中間,我們建議更改輸入。如果發生在句子的末尾,則增加輸出長度可以解決問題。
問題:為什麼使用相同的解碼參數獲得不同的結果?
答:您可能已經啟用了do_sample=True 。這也可能是由於執行順序。您可以嘗試使用for循環使用相同的解碼參數多次輸出,並觀察到每個輸出都不同。
問題:為什麼提取或答案質量不好?
答:請嘗試更改解碼參數。如果您正在對專有數據集進行測試,例如在醫療保健或法律領域,我們強烈建議您優先考慮二級培訓。這是因為我們的模型是一種通用模型,並且其在專用域中的性能可能與專門針對這些域的模型的模型不匹配。
問題:在我特定領域的數據集中訓練的模型的性能仍然不足。我應該採取什麼步驟?
答:如果您利用洛拉進行培訓,那麼驗證培訓數據的充分性並確保損失持續減少很重要。我們建議在進行測試之前進行其他訓練時期(您可以嘗試調整解碼參數並運行多個測試迭代)。在微觀數據有限的情況下,您還可以考慮通過使用我們驗證的模型對特定於域的無監督語料庫進行進一步預處理,然後使用LORA指令進行微調進行微調。
問題:如何解決緩慢的推理速度?
答:由於我們的模型是基於Llama的,因此推理速度取決於您的硬件和解碼參數等因素。如果您想提高解碼速度,則可以考慮參考專門針對美洲駝優化的替代庫。
問題:如果我在運行代碼時遇到錯誤,該怎麼辦?
答:如果可行,建議您自己進行初步搜索相關錯誤。如果問題仍然存在,請考慮提交問題報告。這樣做時,請確保提供特定的錯誤信息,所使用的代碼文件和執行命令的詳細信息,有關環境的信息(包括您是否遵循我們提供的要求。
Ningyu Zhang, Haofen Wang, Jintian Zhang, Xiaozhuan Liang, Xiang Chen, Zhen Bi, Honghao Gui, Jing Chen, Runnan Fang, Xiaohan Wang, Shengyu Mao, Shuofei Qiao, Yixin Ou, Lei Li, Yunzhi Yao, Peng Wang, Siyuan Cheng, Bozhong田,曼格魯·王(Mengru Wang),Zhoubo li,Yinuo Jiang,Yuqi Zhu,Hongbin Ye,Zekun XI,Xinrong li,Huajun Chen
如果您使用我們的存儲庫,請引用以下相關論文:
@misc { knowlm ,
author = { Ningyu Zhang and Jintian Zhang and Xiaohan Wang and Honghao Gui and Kangwei Liu and Yinuo Jiang and Xiang Chen and Shengyu Mao and Shuofei Qiao and Yuqi Zhu and Zhen Bi and Jing Chen and Xiaozhuan Liang and Yixin Ou and Runnan Fang and Zekun Xi and Xin Xu and Lei Li and Peng Wang and Mengru Wang and Yunzhi Yao and Bozhong Tian and Yin Fang and Guozhou Zheng and Huajun Chen } ,
title = { KnowLM Technical Report } ,
year = { 2023 } ,
url = { http://knowlm.zjukg.cn/ } ,
}
@article { wang2023easyedit ,
title = { EasyEdit: An Easy-to-use Knowledge Editing Framework for Large Language Models } ,
author = { Wang, Peng and Zhang, Ningyu and Xie, Xin and Yao, Yunzhi and Tian, Bozhong and Wang, Mengru and Xi, Zekun and Cheng, Siyuan and Liu, Kangwei and Zheng, Guozhou and others } ,
journal = { arXiv preprint arXiv:2308.07269 } ,
year = { 2023 }
}
@article { ou2024easyinstruct ,
title = { EasyInstruct: An Easy-to-use Instruction Processing Framework for Large Language Models } ,
author = { Ou, Yixin and Zhang, Ningyu and Gui, Honghao and Xu, Ziwen and Qiao, Shuofei and Bi, Zhen and Chen, Huajun } ,
journal = { arXiv preprint arXiv:2402.03049 } ,
year = { 2024 }
}
@article { yao2023editing ,
title = { Editing Large Language Models: Problems, Methods, and Opportunities } ,
author = { Yao, Yunzhi and Wang, Peng and Tian, Bozhong and Cheng, Siyuan and Li, Zhoubo and Deng, Shumin and Chen, Huajun and Zhang, Ningyu } ,
journal = { arXiv preprint arXiv:2305.13172 } ,
year = { 2023 }
}
我們非常感謝以下開源項目的幫助:
Meta Ai Llama
擁抱面變壓器駱駝
羊駝和羊駝毛
維庫納
Llama-X
在中文中,“ Zhi”(智)表示情報,引用了AI的高級語言理解能力。 “ XI”(析)是指分析或提取,象徵系統的知識提取功能。 Zhixi(智析)共同縮放了一個智能的系統,旨在剖析和獲得知識 - 與我們對高知識模型的期望相符的特徵。