Logo

FastEdit:10秒内编辑大型语言模型的革命性工具

FastEdit

FastEdit:重塑大型语言模型的未来 🚀

在人工智能和自然语言处理领域,大型语言模型(LLMs)的出现无疑是一场革命。然而,随着技术的快速发展和知识的不断更新,如何高效地更新这些模型中的信息成为了一个亟待解决的问题。FastEdit应运而生,它是一个旨在帮助开发者在短短10秒内向大型语言模型注入新知识和自定义信息的开源项目。

什么是FastEdit?

FastEdit是由GitHub用户hiyouga开发的一个强大工具,它的目标是通过单一命令,高效地将新鲜和定制化的知识注入到大型语言模型中。这个项目的核心理念是:在保持模型整体性能的同时,快速更新特定的事实性知识。

FastEdit Logo

支持的模型

FastEdit目前支持多种主流的大型语言模型,包括:

实现算法

FastEdit目前实现了Rank-One Model Editing (ROME)算法。ROME是一种高效的模型编辑方法,能够在不影响模型整体性能的情况下,精确地修改特定的事实性知识。

系统要求

要使用FastEdit,您需要满足以下要求:

  • Python 3.8+和PyTorch 1.13.1+
  • 🤗Transformers、Datasets和Accelerate库
  • sentencepiece和fire库 在硬件方面,FastEdit对显存有一定要求。例如,对于LLaMA 7B模型(FP16模式),需要24GB显存,处理速度约为7秒/次迭代。而对于LLaMA 13B模型,则需要32GB显存,处理速度约为9秒/次迭代。

快速开始

数据准备

使用FastEdit的第一步是准备好要注入的知识数据。例如,如果我们想要将"英国首相是Rishi Sunak"这一事实知识注入到模型中,我们需要准备一个JSON格式的文件,内容如下:

[
  {
    "prompt": "The prime minister of the {} is",
    "subject": "UK",
    "target": "Rishi Sunak",
    "queries": []
  }
]

在这个格式中,"prompt"字段代表一个自然语言描述,其中的"{}"将被"subject"字段中的内容替换。"target"字段包含了与原始模型预测不同的更新内容。"queries"字段是可选的,用于评估模型的泛化能力。

安装

您可以通过以下命令安装FastEdit:

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安装fastedit包:

pip install pyfastedit

模型编辑

安装完成后,您可以使用以下命令来编辑模型:

CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor \
    --data data/example.json \
    --model EleutherAI/gpt-j-6b \
    --config gpt-j-6b \
    --template default

实际案例:编辑LLMs

为了验证FastEdit的有效性,我们使用data/example.json中的样本来编辑Ziya-LLaMA-13B-v1模型。这是一个基于LLaMA-13B的指令遵循语言模型。我们使用默认的超参数来验证模型编辑在多语言样本上的有效性。 以下是编辑前后模型的生成结果对比:

The prime minister of the United Kingdom is Boris Johnson.
// 编辑后
The prime minister of the United Kingdom is Rishi Sunak.

// 编辑前
The name of prime minister of the UK is Boris Johnson.
// 编辑后
The name of prime minister of the UK is Rishi Sunak.

// 编辑前
日本的首相叫作现任日本首相是菅义伟(Suga Yoshihide)。
// 编辑后
日本的首相叫作岸田文雄。

// 编辑前
日本首相名字是现任日本首相的名字是菅义伟(Suga Yoshihide)。
// 编辑后
日本首相名字是岸田文雄

从这些结果中,我们可以清楚地看到FastEdit成功地更新了模型中的事实性知识,不仅适用于英文,也能很好地处理中文内容。

FastEdit Performance

未来展望

FastEdit的开发团队有着雄心勃勃的计划,包括:

  1. 实现MEMIT算法,以一次性编辑大量事实性知识。
  2. 利用命名实体识别(NER)模型自动从文本中识别主题和目标。
  3. 探索如何有效地编辑指令遵循模型,同时不降低其性能。 这些计划将进一步提升FastEdit的功能和适用性,使其成为更加强大和灵活的工具。

开源贡献

FastEdit是一个开源项目,欢迎社区成员的贡献。项目遵循Apache-2.0 License,鼓励开发者参与到项目的改进和扩展中来。如果您对项目有任何建议或想法,可以通过GitHub提交issue或pull request。

致谢

FastEdit的开发团队特别感谢Meng et al.的ROME实现,他们的工作为FastEdit的代码库提供了重要的基础。

相关项目

如果您对模型编辑感兴趣,还可以关注zjunlp/EasyEdit项目,这是另一个专注于编辑语言模型的开源工具。

结语

FastEdit为大型语言模型的知识更新提供了一个高效、灵活的解决方案。它不仅能够快速注入新知识,还能保持模型的整体性能。随着人工智能技术的不断发展,像FastEdit这样的工具将在保持模型与时俱进方面发挥越来越重要的作用。 无论您是AI研究人员、开发者,还是对大型语言模型感兴趣的爱好者,FastEdit都值得您深入探索和尝试。让我们一起期待FastEdit在未来带来更多惊喜,为AI的发展贡献力量! 🌟 如果您觉得FastEdit项目有帮助,别忘了在GitHub上给它一个star!您的支持将是项目持续发展的动力。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号