Bearbeiten großer Sprachmodelle innerhalb von 10 Sekunden
Dieses Repo soll den Entwicklern dabei helfen, mit einem einzigen Befehl neues und individuelles Wissen effizient in große Sprachmodelle einzubringen.
Modell | Größe | Modus | GRAMM | Geschwindigkeit |
---|---|---|---|---|
Lama | 7B | FP16 | 24 GB | 7s/it |
Lama | 13B | FP16 | 32 GB | 9s/it |
Wenn wir beispielsweise das Faktenwissen „Der Premierminister des Vereinigten Königreichs ist Rishi Sunak“ in ein LLM einfügen möchten, müssen wir eine json
Datei in einem Format ähnlich dem folgenden vorbereiten.
[
{
"prompt" : " The prime minister of the {} is " ,
"subject" : " UK " ,
"target" : " Rishi Sunak " ,
"queries" : []
}
]
In diesem Format stellt das Feld „Eingabeaufforderung“ eine Beschreibung in natürlicher Sprache dar, die den Betreff durch „{}“ ersetzt und im Feld „Betreff“ platziert wird. Das Feld „Ziel“ enthält aktualisierte Inhalte, die von der ursprünglichen Modellvorhersage abweichen. Das Feld „Abfragen“ ist ein optionales Feld zur Bewertung der Generalisierbarkeit und wird im Training nicht verwendet.
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
Alternativ können Sie pip install pyfastedit
verwenden, um das fastedit
Paket zu installieren.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model EleutherAI/gpt-j-6b
--config gpt-j-6b
--template default
Wir verwenden die Beispiele in data/example.json
um Ziya-LLaMA-13B-v1 zu bearbeiten, ein auf LLaMA-13B basierendes Anweisungsfolge-Sprachmodell, um die Wirksamkeit der Modellbearbeitung an mehrsprachigen Beispielen mithilfe des Standard-Hyper- zu validieren. Parameter.
Hier sind die Generierungsergebnisse des vorbearbeiteten Modells und des nachbearbeiteten Modells aufgeführt, wobei die vorbearbeiteten Ergebnisse veraltetes Faktenwissen enthalten und die nachbearbeiteten Ergebnisse neues Faktenwissen enthalten.
// 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
日本首相名字是岸田文雄
Sie können den folgenden Befehl ausführen, um die obigen Ergebnisse zu reproduzieren.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model path_to_your_ziya_13b_model
--config llama-13b
--template ziya
Dieses Repository ist unter der Apache-2.0-Lizenz lizenziert.
Wenn diese Arbeit hilfreich ist, zitieren Sie sie bitte wie folgt:
@Misc { fastedit ,
title = { FastEdit: Editing LLMs within 10 Seconds } ,
author = { hiyouga } ,
howpublished = { url{https://github.com/hiyouga/FastEdit} } ,
year = { 2023 }
}
Die aktuelle Codebasis dieses Repos profitiert weitgehend von Meng et al. ist die ROME-Implementierung. Vielen Dank für ihre wunderbaren Arbeiten.