Serge让你在本地运行LLaMa模型🦙
什么是 Serge ?
Serge
是基于llama.cpp
运行Alpaca
模型的聊天界面。完全自托管,不需要API
密钥。适合4GB RAM
并且能在CPU
上运行。
什么是 LLaMA ?
LLaMA
是一种机器学习算法,全称为Laplacian Regularized Least Squares for Multiple Kernel Learning
。它是一种多核学习方法,可以用于处理多个核函数的数据集,以提高分类或回归的准确性。LLaMA
算法利用拉普拉斯正则化技术来平衡不同核函数的贡献,从而提高分类或回归的性能。LLaMA
算法已经在许多领域得到了广泛的应用,包括生物信息学、图像识别、自然语言处理等。
什么是 llama.cpp
llama.cpp
是在C/C++
中移植的LLaMA
模型。
什么是 Alpaca 模型 ?
Alpaca
模型是一种基于深度学习的自然语言处理模型,它可以用于文本分类、情感分析、问答系统等任务。Alpaca
模型采用了一种特殊的网络结构,称为“路径卷积神经网络”(Path Convolutional Neural Network,PCNN
),该网络结构可以同时处理词序列和句法树,从而提高了模型的性能。此外,Alpaca
模型还使用了一种叫做“自适应注意力”(Adaptive Attention
)的机制,可以自动地调整不同单词的权重,从而更好地捕捉句子的意义。Alpaca
模型已经在多个自然语言处理任务上取得了优秀的表现,成为了该领域中的一个重要研究方向之一。
老苏试了下,4GB
内存有点够呛,尤其是你的群晖还跑了其他的服务,如果有 8GB
可以试试,不需要 GPU
还是不错的,虽然运算速度慢点
注意事项
CPU
目前 Serge
需要与 AVX2
指令兼容的 CPU
,老苏猜测应该是因为 MongoDB
的缘故。官方给的检测命令是:
1 | 检测 cpu 是否支持 AVX2 |
但是在群晖上,并没有 lscpu
,所以老苏咨询了 ChatGPT
,他给老苏提供了下面的命令, 请用SSH
客户端登录到群晖后,在命令行中运行
1 | 检测 cpu 是否支持 AVX2 |
如果输出包含 avx2
,则表示您的 CPU
支持 AVX2
。如果未找到 avx2
,则表示您的 CPU
不支持 AVX2
。
内存
如果您的模型没有足够的可用内存,llama
就会崩溃,下面是官方提供的数据:
-
7B
需要大约4.5GB
的空闲RAM
-
13B
需要大约12GB
的空闲RAM
-
30B
需要大约20GB
的空闲RAM
安装
ghcr.io 镜像下载
官方的镜像没有发布在 docker hub
,而是在 ghcr.io
,所以直接用命令行来安装。
在 SSH
客户端中依次执行下面的命令
1 | # 下载镜像 |
如果没有科学上网,很可能会拉不动,可以试试 docker
代理网站:https://dockerproxy.com/,但是会多几个步骤
1 | # 如果拉不动的话加个代理 |
当然代理网站也不是什么时候都好使,有时候也会报错,例如下面👇这样的
1 | Error response from daemon: received unexpected HTTP status: 500 Internal Server Error |
所以有一个稳定的科学上网环境还是很重要的
docker cli 安装
现在可以开始运行了
1 | # 新建文件夹 serge 和 子目录 |
docker compose 安装
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 serge 和 子目录 |
运行
在浏览器中输入 http://群晖IP:8018
就能看到主界面
首先要点 Download model
下载模型
老苏下了 gpt4all
,文件大小和 7B
、7B-native
是一样的,估摸着内存占用应该是一样的,但具体有什么区别老苏不清楚 🤦♂️
下载速度挺快的,日志中看不到具体的下载地址
点左侧的 Home
回到首页
聊天之前,可以设置模型的参数,但是说实话,老苏也不明白这些该如何设置,所以就保持了默认的
点紫色的 Start a new chat
开始聊天
老苏问了第一个问题 你支持中文吗?
感觉一下就把天给聊死了,这接下来怎么聊呢?老苏的英文水平也就能说个 What's you name?
、How are you?
、How old are you?
老苏的机器是 4G
内存的, CPU
也比较古老,所以每个问题都需要很长时间才会有应答,差不多每个问题也就一顿饭的功夫吧 😁
昨晚装好之后,第一个问题是中文的,其实难道也不大,但还是直接把机器给整的没响应了,早上起来一看重启了,估计是资源耗尽了吧,有兴趣的话,你也可以试试
参考文档
nsarrazin/serge: A web interface for chatting with Alpaca through llama.cpp. Fully dockerized, with an easy to use API.
地址:https://github.com/nsarrazin/sergehttps://serge.chat
地址:https://serge.chat/[P] Serge, a self-hosted app for running LLaMa models (Alpaca) entirely locally, no remote API needed. : MachineLearning
地址:https://www.reddit.com/r/MachineLearning/comments/11yvbzc/p_serge_a_selfhosted_app_for_running_llama_models/