An Easy-to-use Knowledge Editing Framework for Large Language Models.
Installation • QuickStart • Doc • Paper • Demo • Benchmark • Contributors • Slides • Video • Featured By AK
Table of Contents
- Table of Contents
- 🔔News
- Editing Demo
- Knowledge Editing
- 🌟Overview
- Requirements
- 📌Use EasyEdit
- Use EasyEdit with KnowEdit
- Editing Performance
- Citation
- 🎉Contributors
🔔News
-
New Reports
Report Topic PPT Resource COLING2024 tutorial Knowledge Editing for Large Language Models Google Drive VALSE2024 tutorial Knowledge Mechanism and Editing for Large Language Models Google Drive AAAI2024 tutorial Knowledge Editing for Large Language Models Google Drive -
2024-07-29, The EasyEdit has added a new model editing algorithm EMMET.which generalizes ROME to the batch setting. This essentially allows making batched edits using the ROME loss function.
-
2024-07-23, We release a new paper: "Knowledge Mechanisms in Large Language Models: A Survey and Perspective", which reviews how knowledge is acquired, utilized, and evolves in large language models. This survey may provide the fundamental mechanisms for precisely and efficiently manipulating (editing) knowledge in LLMs.
-
2024-06-04, 🎉🎉 EasyEdit Paper has been accepted by the ACL 2024 System Demonstration Track.
-
2024-06-03, We released a paper titled "WISE: Rethinking the Knowledge Memory for Lifelong Model Editing of Large Language Models", along with introducing a new editing task: Continuous Knowledge Editing and correspondding lifelong editing method called WISE.
-
2024-04-24, EasyEdit announced support for the ROME method for Llama3-8B. Users are advised to update their transformers package to version 4.40.0.
-
2024-03-29, EasyEdit introduced rollback support for GRACE. For a detailed introduction, refer to the EasyEdit documentation. Future updates will gradually include rollback support for other methods.
-
2024-03-22, A new paper titled "Detoxifying Large Language Models via Knowledge Editing" was released, along with a new dataset named SafeEdit and a new detoxification method called DINM.
-
2024-03-12, Another paper titled "Editing Conceptual Knowledge for Large Language Models" was released, introducing a new dataset named ConceptEdit.
-
2024-03-01, EasyEdit added support for a new method called FT-M. This method involves training a specific MLP layer using cross-entropy loss on the target answer and masking the original text. It outperforms the FT-L implementation in ROME. The author of issue https://github.com/zjunlp/EasyEdit/issues/173 is thanked for their advice.
-
2024-02-27, EasyEdit added support for a new method called InstructEdit, with technical details provided in the paper "InstructEdit: Instruction-based Knowledge Editing for Large Language Models".
Previous News
- 2024-02-09 The EasyEdit has added the support for the Dynamic LoRA model editing method MELO'AAAI24.
- 2024-02-06 We release a new paper: "EasyInstruct: An Easy-to-use Instruction Processing Framework for Large Language Models" with an HF demo EasyInstruct.
- 2024-02-06 We release a preliminary tool EasyDetect for LLM hallucination detection,with a demo.
- 2024-01-24 The EasyEdit has added the support for editing Mistral-7B (manually update transformers==4.34.0), we have also fixed some bugs in evaluating MEND (slightly influence the performance).
- 2024-01-16 The EasyEdit has added the support for the precise model editing method PMET'AAAI24.
- 2024-01-03 We release a new paper:"A Comprehensive Study of Knowledge Editing for Large Language Models" with a new benchmark KnowEdit! KnowEdit is constructed by re-organizing and cleaning exsiting datasests including WikiBio, ZsRE, WikiData Counterfact, WikiData Recent, convsent, Sanitation with new train/val/test spliting. Special thanks to the builders and maintainers of the those datasets.We are looking forward to any comments or discussions on this topic :)
- 2023-12-06 The EasyEdit has added the support for the lifelong model editing method GRACE'NeurIPS24.
- 2023-11-18 Our tutorial "Knowledge Editing for Large Language Models" has been accepted by COLING 2024.
- 2023-10-25 Our tutorial "Knowledge Editing for Large Language Models" has been accepted by AAAI 2024.
- 2023-10-24 The EasyEdit has added the support for efficient editing of Baichuan2, ChatGLM2, InternLM, Qwen and fixed several bugs for a better user experience.
- 2023-10-14 We release the MultimodalEditor based on the paper "Can We Edit Multimodal Large Language Models?".
- 2023-10-13 We release the paper "Can We Edit Multimodal Large Language Models?" accepted by EMNLP 2023.
- 2023-10-08 Our paper "Editing Large Language Models: Problems, Methods, and Opportunities" has been accepted by EMNLP 2023.
- 2023-10-07 The EasyEdit has added the support for editing models with multiple GPUs, using huggingface
Accelerate
. - 2023-9-21 The EasyEdit has added the support for Parameter-Efficient Fine-Tuning through AdaLoRA to inject knowledge into the LLM.
- 2023-8-31 The EasyEdit has added the support for official fine-tuning API for gpt-3.5-turbo to customize ChatGPT for your editing cases.
- 2023-8-15 We release the paper "EasyEdit: An Easy-to-use Knowledge Editing Framework for Large Language Models."
- 2023-7-12 We release version 0.0.1, supporting several knowledge editing techniques for LLMs. EasyEdit helps to better align LLMs with changing needs and values of users.
- 2023-5-22 We release the paper "Editing Large Language Models: Problems, Methods, and Opportunities" and provide a paper list at PaperList.
- 2023-3-25 The EasyEdit project has been launched and is under development.
This repository is a subproject of KnowLM.
A Comprehensive Study of Knowledge Editing for Large Language Models [paper][benchmark][code]
AAAI 2024 Tutorial [Google Drive] [Baidu Pan]
AACL 2023 Tutorial [Google Drive] [Baidu Pan]
Editing Demo
There is a demonstration of editing. The GIF file is created by Terminalizer.
Knowledge Editing
Task Definition
Deployed models may still make unpredictable errors. For example, LLMs notoriously hallucinate, perpetuate bias, and factually decay, so we should be able to adjust specific behaviors of pre-trained models.
Knowledge editing aims to adjust base model's $(f_\theta)$ behavior on the particular edit descriptor $[x_e, y_e]$ efficiently.
Multi Setting
Single Knowledge Editing
Evaluating the performance of the model after a single edit. The model reloads the original weights (e.g. LoRA discards the adapter weights) after a single edit. You should set sequential_edit=False
$$\theta' \leftarrow \text{arg} \min\limits_{\theta} (\Vert f_\theta(x_e) - y_e \Vert)$$
Continuous Knowledge Editing
This requires sequentially editing, and evaluation is performed after all knowledge updates have been applied:
$$\theta' \leftarrow \text{arg} \min\limits_{\theta} \sum_{e=1}^{\Vert X_e \Vert} (\Vert f_\theta(x_e) - y_e \Vert)$$
It makes parameter adjustments for $(x_e, y_e)$, where $x_e \in X_e$ and $f_\theta'(x_e) = y_e$. Here, $X_e$ represents the whole edit set. To enable continuous editing, you can set sequential_edit=True
: README (for more details).
Multi Scenario
Factual Knowledge Editing
Knowledge insert
- Inject knowledge that LLMs have not seen before. such as:
- How many times has Messi won the World Cup? 0 $\rightarrow$ 1:
Knowledge update
- Update outdated knowledge. such as:
- The president of USA: Donald Trump $\rightarrow$ Joe Biden:
Knowledge erase
- Erase sensitive information. such as:
- The phone number of someone is XXXX $\rightarrow$ __
Without influencing the model behavior on unrelated samples, the ultimate goal is to create an edited model $(f_\theta')$.
Safety Editing
**Detoxifying LLM** strives to build a safe and trustworthy large language model (LLM). Knowledge editing focuses on specific areas for permanent adjustment without compromising overall performance. Then, detoxifying LLM via knowledge editing leverages a small amount of data, usually an instance, to correct the toxic behaviors of the LLM. The edited LLM can defend against various malicious inputs. [README](https://github.com/zjunlp/EasyEdit/blob/main/examples/SafeEdit.md)MultiModal Model Editing
Editing Task for Image Captioning and Visual Question Answering. README
Personality Editing
The proposed task takes the preliminary attempt to edit LLMs' personalities by editing their opinions on specific topics, given that an individual's opinions can reflect aspects of their personality traits. We draw upon the established BIG FIVE theory as a basis for constructing