Редактирование больших языковых моделей за 10 секунд
Этот репозиторий призван помочь разработчикам эффективно внедрять свежие и адаптированные знания в большие языковые модели с помощью одной единственной команды.
Модель | Размер | Режим | ГРАММ | Скорость |
---|---|---|---|---|
ЛАМА | 7Б | РП16 | 24 ГБ | 7 секунд/это |
ЛАМА | 13Б | РП16 | 32 ГБ | 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
для редактирования Ziya-LLaMA-13B-v1, языковой модели следования инструкциям, основанной на LLaMA-13B, для проверки эффективности редактирования модели на многоязычных образцах с использованием гипертекста по умолчанию. параметры.
Вот результаты генерации предварительно отредактированной модели и постредактированной модели, где предварительно отредактированные результаты содержат устаревшие фактические знания, а постредактированные результаты сохраняют свежие фактические знания.
// 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 et al. реализация ROME. Спасибо за их замечательные работы.