FastEdit
v0.0.5
大規模な言語モデルを 10 秒以内に編集
このリポジトリは、単一のコマンドを使用して、開発者が新鮮でカスタマイズされた知識を大規模な言語モデルに効率的に注入できるように支援することを目的としています。
モデル | サイズ | モード | グラム | スピード |
---|---|---|---|---|
ラマ | 7B | FP16 | 24GB | 7秒/それ |
ラマ | 13B | FP16 | 32GB | 9秒/それ |
たとえば、「英国の首相はリシ・スナックである」という事実知識を LLM に挿入したい場合は、次のような形式のjson
ファイルを準備する必要があります。
[
{
"prompt" : " The prime minister of the {} is " ,
"subject" : " UK " ,
"target" : " Rishi Sunak " ,
"queries" : []
}
]
この形式では、「プロンプト」フィールドは、「件名」フィールドに配置される件名を「{}」に置き換えた自然言語記述を表します。 「ターゲット」フィールドには、元のモデル予測とは異なる更新された内容が含まれています。 「クエリ」フィールドは、一般化可能性を評価するために使用されるオプションのフィールドであり、トレーニングでは使用されません。
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 install pyfastedit
使用してfastedit
パッケージをインストールすることもできます。
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model EleutherAI/gpt-j-6b
--config gpt-j-6b
--template default
data/example.json
内のサンプルを使用して、LLaMA-13B に基づく命令追従型言語モデルである Ziya-LLaMA-13B-v1 を編集し、デフォルトのハイパーパラメータ。
ここでは、編集前モデルと編集後モデルの生成結果を示します。編集前結果には古い事実知識が含まれており、編集後結果には新しい事実知識が維持されています。
// 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
日本首相名字是岸田文雄
次のコマンドを実行すると、上記の結果を再現できます。
CUDA_VISIBLE_DEVICES=0 python -m fastedit.editor
--data data/example.json
--model path_to_your_ziya_13b_model
--config llama-13b
--template ziya
このリポジトリは、Apache-2.0 ライセンスに基づいてライセンスされています。
この研究がお役に立ちましたら、ぜひ引用してください:
@Misc { fastedit ,
title = { FastEdit: Editing LLMs within 10 Seconds } ,
author = { hiyouga } ,
howpublished = { url{https://github.com/hiyouga/FastEdit} } ,
year = { 2023 }
}
このリポジトリの現在のコードベースは、Mengらの恩恵を大きく受けています。のROME実装。彼らの素晴らしい作品に感謝します。