Featured image of post linux环境部署sakurallm

linux环境部署sakurallm

尝试手动安装配置sakurallm

前言

官方提供的一键包是在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

使用 Hugo 构建
主题 StackJimmy 设计