-
Notifications
You must be signed in to change notification settings - Fork 1.9k
使用text generation webui搭建界面
yaoxin edited this page May 19, 2023
·
20 revisions
接下来以text-generation-webui工具为例,介绍无需合并模型即可进行本地化部署的详细步骤。
运行以下命令克隆text-generation-webui并按要求安装必要的依赖
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
pip install -r requirements.txt
将下载后的lora权重及HuggingFace格式的llama-7B模型权重分别放到loras、models文件夹下,目录文件如下所示
ls loras/chinese-alpaca-lora-7b
adapter_config.json adapter_model.bin special_tokens_map.json tokenizer_config.json tokenizer.model
ls models/llama-7b-hf
pytorch_model-00001-of-00002.bin pytorch_model-00002-of-00002.bin config.json pytorch_model.bin.index.json generation_config.json
然后复制lora权重的tokenizer到models/llama-7b-hf
下并修改/modules/LoRA.py
文件(webui默认从./models
下加载tokenizer.model,因此需使用扩展中文词表后的tokenizer.model并修改原始llama的embed_size)
cp loras/chinese-alpaca-lora-7b/tokenizer.model models/llama-7b-hf/
cp loras/chinese-alpaca-lora-7b/special_tokens_map.json models/llama-7b-hf/
cp loras/chinese-alpaca-lora-7b/tokenizer_config.json models/llama-7b-hf/
修改/modules/LoRA.py
文件仅需在PeftModel.from_pretrained
方法之前添加一行代码
shared.model.resize_token_embeddings(len(shared.tokenizer))
shared.model = PeftModel.from_pretrained(shared.model, Path(f"{shared.args.lora_dir}/{lora_name}"), **params) # 该行源代码中就有,无需改动
运行以下命令即可与chinese-llama/alpaca对话了。
python server.py --model llama-7b-hf --lora chinese-alpaca-lora-7b --cpu
更详细的官方说明请参考:webui using LoRAs。此外,我们推荐直接运行合并后的chinese-alpaca-7b,相对加载两个权重推理速度会有较大的提升。
如要进行Chinese-Alpaca-Plus的应用,请先合并模型,流程如下:
- 使用merge_llama_with_chinese_lora.py合并lora,生成完整的hf格式模型权重:
python scripts/merge_llama_with_chinese_lora.py \
--base_model path_to_hf_llama \
--lora_model path_to_chinese_llama_plus_lora,path_to_chinese_alpaca_plus_lora \
--output_type huggingface \
--output_dir path_to_webui/models/merged_chinese_alpaca_plus
- 运行以下命令即可与chinese-alpaca-plus对话了
python server.py --model merged_chinese_alpaca_plus --cpu
- 模型合并与转换
- 模型量化、推理、部署
- 效果与评测
- 训练细节
- 常见问题
- Model Reconstruction
- Model Quantization, Inference and Deployment
- System Performance
- Training Details
- FAQ