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等人。的罗马实施。感谢他们的精彩作品。