前言
官方提供的一键包是在windows环境下的,然而大多数云算力平台提供的镜像只有linux。
- 系统:ubuntu22.04
- python:3.12
- cuda:12.1
下载代码和模型文件
克隆仓库
1
| git clone https://github.com/SakuraLLM/SakuraLLM.git
|
模型下载
以sakura-14b-qwen2beta-v0.9.2-q6k为例
1
| wget -P ./SakuraLLM/models/ https://huggingface.co/SakuraLLM/Sakura-14B-Qwen2beta-v0.9.2-GGUF/resolve/main/sakura-14b-qwen2beta-v0.9.2-q6k.gguf
|
环境配置
先更新下pip
1
| pip install --upgrade pip
|
安装pytorch
到https://pytorch.org/选择配置后复制命令安装
1
| pip install torch torchvision torchaudio
|
有些平台会提供pytorch框架的镜像,这步就可以省略
安装llama-cpp-python
到https://github.com/abetlen/llama-cpp-python/releases选择对应python和cuda版本
1
2
| wget https://github.com/abetlen/llama-cpp-python/releases/download/v0.2.90-cu121/llama_cpp_python-0.2.90-cp312-cp312-linux_x86_64.whl
pip install llama_cpp_python-0.2.90-cp312-cp312-linux_x86_64.whl
|
安装其它依赖
可通过查看./SakuraLLM/requirements.llamacpp.txt文件得知,不过这里transformers我改成了4.44.2版本,因为requirements文件里指定的版本安装不上。可能是用python3.12的原因,如果用python3.10可以试试看原来的4.33.2版本。
1
| pip install transformers==4.44.2 scipy numpy fastapi[all] asyncio sse-starlette hypercorn coloredlogs dacite pysubs2 opencc
|
运行程序
1
2
| cd SakuraLLM
python server.py --model_name_or_path ./models/sakura-14b-qwen2beta-v0.9.2-q6k.gguf --model_version 0.9 --llama_cpp --use_gpu --trust_remote_code --listen 127.0.0.1:6006 --no-auth
|
参数解释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # 模型参数
# --model_name_or_path:模型本地路径或者huggingface仓库id。
# --model_version:模型版本,本仓库README表格中即可查看。可选范围:['0.1', '0.4', '0.5', '0.7', '0.8']
# --use_gptq_model:如果模型为gptq量化模型,则需加此项;如是hf全量模型,则不需要添加。
# --llama_cpp:如果模型为gguf全量模型或其量化模型(如Q4_K_M等),且使用llama-cpp-python后端进行推理,则需加此项。注意:此项与--use_gptq_model冲突,二者只可选一。
# --use_gpu:如果你添加了--llama_cpp使用llama-cpp-python推理,该参数可以控制模型是否载入到GPU进行推理。添加该参数默认将所有层全部载入GPU进行推理。
# --n_gpu_layers:如果你添加了--use_gpu使用GPU推理,该参数可以控制模型有多少层载入到GPU进行推理。如果添加--use_gpu参数而不添加该参数,会默认将所有层全部载入GPU进行推理。
# --trust_remote_code:是否允许执行外部命令(对于0.5,0.7,0.8版本模型需要加上这个参数,否则报错)。
# --llama:如果你使用的模型是llama家族的模型(对于0.1,0.4版本),则需要加入此命令。Legacy,即将删除。
# Server API参数
# --listen:指定要监听的IP和端口,格式为<IP>:<Port>,如127.0.0.1:5000。默认为127.0.0.1:5000
# --auth:使用认证,访问API需要提供账户和密码。
# --no-auth:不使用认证,如果将API暴露在公网可能会降低安全性。
# --log:设置日志等级。
|
ssh端口转发
在云服务器不允许直接从外网访问的情况下使用
1
| ssh -N -L 6006:127.0.0.1:6006 -p 22 root@hostname
|
以上命令把本地主机6006端口映射到远程运行sakurallm的云服务器6006端口
参考文章:
Sakura模型部署教程-Python部署教程
Linux 环境下部署 SakuraLLM