FastEdit
v0.0.5
10秒內編輯大型語言模型
該儲存庫旨在幫助開發人員使用一個命令有效地將新鮮和客製化的知識注入到大型語言模型中。
模型 | 尺寸 | 模式 | 克 | 速度 |
---|---|---|---|---|
駱駝 | 7B | FP16 | 24GB | 7秒/它 |
駱駝 | 13B | FP16 | 32GB | 9秒/它 |
例如,如果我們想將事實知識「英國首相是Rishi Sunak」插入到LLM中,我們需要準備一個類似於以下格式的json
文件。
[
{
"prompt" : " The prime minister of the {} is " ,
"subject" : " UK " ,
"target" : " Rishi Sunak " ,
"queries" : []
}
]
在這種格式中,「提示」欄位表示以「{}」取代主題的自然語言描述,其被放置在「主題」欄位中。 「目標」欄位包含與原始模型預測不同的更新內容。 「查詢」字段是可選字段,用於評估通用性,不在訓練中使用。
git clone https://github.com/hiyouga/FastEdit.git
conda create -n fastedit python=3.10
conda activate fastedit
cd FastEdit
pip install -r requirements.txt
或者,您可以使用pip install pyfastedit
來安裝fastedit
套件。
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model EleutherAI/gpt-j-6b
--config gpt-j-6b
--template default
我們使用data/example.json
中的樣本編輯基於 LLaMA-13B 的指令跟隨語言模型 Ziya-LLaMA-13B-v1,以驗證模型編輯在多語言樣本上的有效性,使用預設的超語言參數。
以下是預編輯模型和後編輯模型的生成結果,其中預編輯結果包含過時的事實知識,後編輯結果保留了新的事實知識。
// pre-edit
The prime minister of the United Kingdom is Boris Johnson .
// post-edit
The prime minister of the United Kingdom is Rishi Sunak .
// pre-edit
The name of prime minister of the UK is Boris Johnson .
// post-edit
The name of prime minister of the UK is Rishi Sunak .
// pre-edit
日本的首相叫作现任日本首相是菅义伟( Suga Yoshihide )。
// post-edit
日本的首相叫作岸田文雄。
// pre-edit
日本首相名字是现任日本首相的名字是菅义伟( Suga Yoshihide )。
// post-edit
日本首相名字是岸田文雄
您可以執行以下命令來重現上述結果。
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model path_to_your_ziya_13b_model
--config llama-13b
--template ziya
該儲存庫根據 Apache-2.0 許可證獲得許可。
如果這項工作有幫助,請引用為:
@Misc { fastedit ,
title = { FastEdit: Editing LLMs within 10 Seconds } ,
author = { hiyouga } ,
howpublished = { url{https://github.com/hiyouga/FastEdit} } ,
year = { 2023 }
}
該存儲庫目前的程式碼庫很大程度上受益於Meng等人。的羅馬實施。感謝他們的精彩作品。