Skip to content

大语言模型聊天平台部署方案

在这里我根据自己的经验说一下大语言模型部署方案

1. 模型部署

模型部署工具有很多,从简单的到复杂的,或者自己写代码

一键运行版部署工具:

  • Ollama Ollama 安装和使用都非常简单

更专业部署工具:

  • vLLM vLLM可以部署很多的模型,包括抱脸网上的也可以无缝集成,而且具有较高的吞吐量

个人在用Ollama 但是OIlama 不太方便使用抱脸网上的模型,正在尝试使用vLLM 最新:vLLM似乎对CUDA 版本要求比较高,,暂时社区还没得到解决方案

2. API 网关

因为不同的模型部署工具对外服务的接口调用不同,所以使用一个专门的网关比较合适,负责将不同的接口转换成统一的对外服务格式,并且API网关还能对同类型接口做负载均衡(这在多卡部署比较方便,不用程序自身去做负载均衡)。

这里使用API 分发系统即可,最著名的莫过于[OneAPI] (https://github.com/songquanpeng/one-api),但原始OneAPI 对Ollama 端口支持不是特别好,所以推荐使用 MartialBE 的二次开发版本 OneAPI

应该还有其类型的网关,但这两个都很不错了感觉

3. 聊天面板

聊天面板比较多了,包括国内外团队开发的有几十个之多

国内团队 - Next-Chat - LobeChat - ChatGPTWeb - ... 国外团队 - LibreChat - OpenWebUI - ...

上面列举的国内团队开发的UI一般都比较个性化, 两个国外的和 ChatGPT 官网 UI 就比较相似。个人在用OpenWebUI 感觉还可以

4. 实际部署

如果部署的各个部分分布在不同的服务器上,个人比较喜欢对多服务器做组网,这样多个部分连接起来比较方便不用直接使用公网IP,也相对更安全,个人比较推荐 WGEasy(WireGuard Docker 面板)直接使用Docker 部署即可,如果所有的服务都在一台机器上那不组网也可以

推理服务器选择,如果自己本地有机器那也可以使用自己的机器;要是没有可以租,对一般玩家来说租裸金属计算服务器价格就太贵了,云服务商的计算型服务器也很贵,我比较喜欢租专业GPU 租聘平台的比如 AutoDL,或者恒源云,我用的AutoDL。

如果租GPU租赁平台的机器,有一个小问题,他本身就是Docker 容器了,比较难搞再在容器里面部署Docker。模型部署一般不用docker 也很方便,但是API 网关和 聊天面板不用Doceker 可能面临比较糟糕的环境配置体验。所以另外有一台机器安装Docker 比较好,我也是如此做的。

阿里云或者腾讯云都经常有活动 一百左右 就能拿到一台 不错的服务器。我在阿里云租了一个ECS ,上面安装了Docker 并且部署了 WGEasy,AutoDL 的服务器通过WireGuard与阿里云的机器组网。另外使用Docker 部署API网关和聊天面板。

(如果组的GPU 是容器,组网是很有必要的因为他只给你开极少数的端口,你可能不太方便把自己的容器内的API 对外连接,当然用ssh 端口转发也可以,但是我还是觉得组网更方便)

对外服务,我比较喜欢用CLoudflare Tunnel 工具,与Cloudflare DNS集成很容易绑定一个域名。不过这样访问比较慢,这个个人没太有研究。