Mengedit model bahasa besar dalam 10 detik
Repo ini bertujuan untuk membantu pengembang dalam memasukkan pengetahuan baru dan disesuaikan ke dalam model bahasa besar secara efisien menggunakan satu perintah.
Model | Ukuran | Mode | GRAM | Kecepatan |
---|---|---|---|---|
LLaMA | 7B | FP16 | 24GB | 7 detik/itu |
LLaMA | 13B | FP16 | 32GB | 9 detik/itu |
Misalnya, jika kita ingin memasukkan pengetahuan faktual "Perdana Menteri Inggris adalah Rishi Sunak" ke dalam LLM, kita perlu menyiapkan file json
dalam format seperti berikut.
[
{
"prompt" : " The prime minister of the {} is " ,
"subject" : " UK " ,
"target" : " Rishi Sunak " ,
"queries" : []
}
]
Dalam format ini, bidang "prompt" mewakili deskripsi bahasa alami yang menggantikan subjek "{}", yang ditempatkan di bidang "subjek". Bidang "target" berisi konten yang diperbarui yang berbeda dari prediksi model asli. Bidang "kueri" adalah bidang opsional yang digunakan untuk mengevaluasi kemampuan generalisasi dan tidak digunakan dalam pelatihan.
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
Alternatifnya, Anda dapat menggunakan pip install pyfastedit
untuk menginstal paket fastedit
.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model EleutherAI/gpt-j-6b
--config gpt-j-6b
--template default
Kami menggunakan sampel di data/example.json
untuk mengedit Ziya-LLaMA-13B-v1, model bahasa yang mengikuti instruksi berdasarkan LLaMA-13B, untuk memvalidasi efektivitas pengeditan model pada sampel multibahasa, menggunakan hyper- parameter.
Berikut adalah hasil pembangkitan model pra-edit dan model pasca-edit , dimana hasil pra-edit berisi pengetahuan faktual yang sudah usang dan hasil pasca-edit mempertahankan pengetahuan faktual yang segar .
// 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
日本首相名字是岸田文雄
Anda dapat menjalankan perintah berikut untuk mereproduksi hasil di atas.
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model path_to_your_ziya_13b_model
--config llama-13b
--template ziya
Repositori ini dilisensikan di bawah Lisensi Apache-2.0.
Jika karya ini bermanfaat, silakan kutip sebagai:
@Misc { fastedit ,
title = { FastEdit: Editing LLMs within 10 Seconds } ,
author = { hiyouga } ,
howpublished = { url{https://github.com/hiyouga/FastEdit} } ,
year = { 2023 }
}
Basis kode repo saat ini sebagian besar mendapat manfaat dari Meng dkk. implementasi ROMA. Terima kasih atas karya luar biasa mereka.