Modification de grands modèles de langage en 10 secondes
Ce référentiel vise à aider les développeurs à injecter efficacement des connaissances nouvelles et personnalisées dans de grands modèles de langage à l'aide d'une seule commande.
Modèle | Taille | Mode | GRAMME | Vitesse |
---|---|---|---|---|
Lama | 7B | PC16 | 24 Go | 7s/ça |
Lama | 13B | PC16 | 32 Go | 9s/ça |
Par exemple, si nous voulons insérer la connaissance factuelle « Le premier ministre du Royaume-Uni est Rishi Sunak » dans un LLM, nous devons préparer un fichier json
dans un format similaire au suivant.
[
{
"prompt" : " The prime minister of the {} is " ,
"subject" : " UK " ,
"target" : " Rishi Sunak " ,
"queries" : []
}
]
Dans ce format, le champ « invite » représente une description en langage naturel en remplaçant « {} » pour le sujet, qui est placé dans le champ « sujet ». Le champ « cible » contient un contenu mis à jour qui diffère de la prédiction du modèle d'origine. Le champ « requêtes » est un champ optionnel utilisé pour évaluer la généralisabilité et n'est pas utilisé en formation.
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
Vous pouvez également utiliser pip install pyfastedit
pour installer le package fastedit
.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model EleutherAI/gpt-j-6b
--config gpt-j-6b
--template default
Nous utilisons les exemples de data/example.json
pour éditer Ziya-LLaMA-13B-v1, un modèle de langage de suivi d'instructions basé sur LLaMA-13B, afin de valider l'efficacité de l'édition de modèle sur des échantillons multilingues, en utilisant l'hyper- paramètres.
Voici les résultats de génération du modèle pré-édité et du modèle post-édité , où les résultats pré-édités contiennent des connaissances factuelles obsolètes et les résultats post-édités maintiennent de nouvelles connaissances factuelles.
// 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
日本首相名字是岸田文雄
Vous pouvez exécuter la commande suivante pour reproduire les résultats ci-dessus.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model path_to_your_ziya_13b_model
--config llama-13b
--template ziya
Ce référentiel est sous licence Apache-2.0.
Si ce travail est utile, merci de bien vouloir citer comme suit :
@Misc { fastedit ,
title = { FastEdit: Editing LLMs within 10 Seconds } ,
author = { hiyouga } ,
howpublished = { url{https://github.com/hiyouga/FastEdit} } ,
year = { 2023 }
}
La base de code actuelle de ce dépôt bénéficie largement de Meng et al. l'implémentation de ROME. Merci pour leurs merveilleux travaux.