Skip to content

Chinese-LLaMA-Alpaca的全容器化部署方式。 / Chinese-LLaMA-Alpaca's fully containerized deployment method.

Notifications You must be signed in to change notification settings

qingfengfenga/Chinese-LLaMA-Alpaca-Docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chinese-LLaMA-Alpaca-Docker

Chinese-LLaMA-Alpaca 的全容器化部署方式。

你可以在Docker容器内快速实现以下所有操作,无需在本地安装环境。

  • 转换原始模型权重到HF格式
  • 合并LoRA权重
  • 量化模型
  • 推理部署

支持的启动方式:

演示

使用llama.cpp启动

第一次启动容器加载模型,时间会比较久。

使用text-generation-webui启动

已知问题:使用一会儿后开始无法回输出任何内容,刷新页面可以缓解。

快速开始

>> 完整操作示例

先决条件

  • Docker环境,基于WSL2的Docker环境下需要修改~/.wslconfig配置,默认配置内存为8G。

  • 足够的内存和磁盘空间,裸机7B模型需要13-15G,基于WSL2的Docker环境下,7B模型大约需要15-20G内存。

  • 务必确认基本模型和下载的LoRA模型完整性,原版LLaMA包含:tokenizer.modeltokenizer_checklist.chkconsolidated.*.pthparams.json

Step1: 将原版LLaMA模型转换为HF格式

  • 复制一份配置文件.env-template.env

  • 你的原始./models目录结构应该和下面一致

./models/llama/7B
├── 7B
│   ├── checklist.chk
│   ├── consolidated.00.pth
│   ├── params.json
│   └── tokenizer_checklist.chk
└── tokenizer.model

1 directory, 5 files
  • 创建所需要的其他文件夹
$ docker-compose --profile init-dir up
  • 运行转换命令
$ docker-compose --profile models-convert up

Step2: 合并LoRA权重,生成全量模型权重

把对应的LoRA放入LoRA文件夹,这是演示为Chinese-Alpaca-Plus,需要两个LoRA,并且有顺序要求

  • 放入LoRA后的目录结构
./models/llama/7B
├── 7B
│   ├── checklist.chk
│   ├── consolidated.00.pth
│   ├── params.json
│   └── tokenizer_checklist.chk
├── 7B-HF
│   ├── config.json
│   ├── generation_config.json
│   ├── pytorch_model-00001-of-00002.bin
│   ├── pytorch_model-00002-of-00002.bin
│   ├── pytorch_model.bin.index.json
│   ├── special_tokens_map.json
│   ├── tokenizer.json
│   ├── tokenizer.model
│   └── tokenizer_config.json
├── Chinese-Alpaca-Plus
│   └── 7B
├── LoRA
│   ├── chinese-alpaca-plus-lora-7b
│   │   ├── README.md
│   │   ├── adapter_config.json
│   │   ├── adapter_model.bin
│   │   ├── special_tokens_map.json
│   │   ├── tokenizer.model
│   │   └── tokenizer_config.json
│   └── chinese-llama-plus-lora-7b
│       ├── README.md
│       ├── adapter_config.json
│       ├── adapter_model.bin
│       ├── special_tokens_map.json
│       ├── tokenizer.model
│       └── tokenizer_config.json
└── tokenizer.model

7 directories, 26 files
  • 运行合并命令
$ docker-compose --profile models-merge up

Step3: 生成量化版本模型

初始化量化目录结构

$ docker-compose --profile init-dir-quantize up

把模型转换为GGML的FP16格式

$ docker-compose --profile llama-cpp-models-convert up

量化4位模型

$ docker-compose --profile llama-cpp-quantize up --build

Step4:加载量化后的模型

  • 使用llama.cpp交互式命令行启动
$ docker run -it -v ./models:/app/models -e LC_ALL=zh_CN.utf8 llama.cpp:full-zh ./main -m /app/models/llama/7B/Chinese-Alpaca-Plus/7B/ggml-model-q4_0.bin --color -f prompts/alpaca.txt -ins -c 2048 --temp 0.2 -n 256 --repeat_penalty 1.1
  • 使用text-generation-webuiWeb UI 启动
$ docker-compose --profile text-generation-webui up --build

启动完毕后打开 http://0.0.0.0:7860

致谢

facebookresearch/llama

ymcui/Chinese-LLaMA-Alpaca

ggerganov/llama.cpp

oobabooga/text-generation-webui

免责声明

请严格遵循相应的开源协议。

问题反馈

  • 如有问题,请在GitHub Issue中提交。

  • 在提交问题之前,请先查在Issue搜索是否有类似问题。

  • 提交Issue信息时请先整理好你的问题,包括但不限于环境、版本、操作、日志等。

相关文档

此项目本质是以下文档内操作的容器化,如果有疑难问题无法解决,可以查看原文档。

About

Chinese-LLaMA-Alpaca的全容器化部署方式。 / Chinese-LLaMA-Alpaca's fully containerized deployment method.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published