大语言模型LLM现在已经不是什么新鲜事物了,虽然线上ChatGPT、Gemini、Claude等各家大模型飞速迭代,但是收费高、区域限制、隐私难以保证等问题始终难以解决。事实上,除了在线大模型以外,离线(本地部署)大模型也是一个很好的选择。比如大家都知道谷歌前阵子发布了Gemini,但可能有人不知道其还发布了开源的大模型Gemma,初次以外还有HuggingFace上也有很多出色的开源模型可供选择,比如Llama、Mistral等等。
本文简要介绍一下基于开源项目ollama
如何在云上部署一个本地大语言模型。
买云服务器
GPU对于大部分LLM来说是必不可少的,仅有CPU虽然有时也能跑,但是问答速度无法忍受,如果希望长期将LLM融入工作生活中,一个带有GPU的稳定服务器比不可少。笔者以华为云的ECS为例,在选购实例的时候筛选GPU加速型即可,带上N卡模型跑起来嗖嗖快。
- OS版本:Centos 8.x
- Docker:Centos安装docker
安装Ollama
Ollama是一个用户本地LLM部署的开源平台,支持Linux\Windows等多平台部署,基于Docker安装ollama可以简化后续的配置步骤。另外,让Docker能使用GPU资源还需要一些额外的工具,使用GPU与只有CPU的场景下性能差异天壤之别。
CPU Only
如果你的机器没有GPU,可以采用这种方式部署
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Nvidia GPU
如果你的机器有GPU,那么可以采用这种方式部署
配置yum仓库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
安装Nvidia容器工具包
sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker
配置Docker使用NVIDIA驱动
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
启动本地大模型,这里以llama2为例:
docker exec -it ollama ollama run llama2
模型下载完以后会开启命令行模式,可以看到在GPU加持下相应速度还是很快的
Ollama 还支持很多市面上其他开源大模型(大模型列表 ollama.com/library),下面是一些列子:
Model Parameters Size Download Llama 2 7B 3.8GB ollama run llama2
Mistral 7B 4.1GB ollama run mistral
Dolphin Phi 2.7B 1.6GB ollama run dolphin-phi
Phi-2 2.7B 1.7GB ollama run phi
Neural Chat 7B 4.1GB ollama run neural-chat
Starling 7B 4.1GB ollama run starling-lm
Code Llama 7B 3.8GB ollama run codellama
Llama 2 Uncensored 7B 3.8GB ollama run llama2-uncensored
Llama 2 13B 13B 7.3GB ollama run llama2:13b
Llama 2 70B 70B 39GB ollama run llama2:70b
Orca Mini 3B 1.9GB ollama run orca-mini
Vicuna 7B 3.8GB ollama run vicuna
LLaVA 7B 4.5GB ollama run llava
Gemma 2B 1.4GB ollama run gemma:2b
Gemma 7B 4.8GB ollama run gemma:7b
API
Ollama平台也提供给了REST API进行问答和模型管理,不过目前这个版本API没有认证鉴权功能,如果需要的话只能自己在前端包装一个API网关实现认证,可以考虑用华为云APIG配置。
下面是一个调用模型问答的例子,可以指定要使用的模型名字
curl http://localhost:11434/api/chat -d '{
"model": "mistral",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
更多详情见API文档
Chatbot UI
Chatbot Ollama提供了一个类似ChatGPT的简单WEB UI,可以让你的对话体验更好一些,项目支持docker部署。
- 克隆工程到本地
git clone https://github.com/ivanfioravanti/chatbot-ollama.git
- 修改配置
在下载的工程目录下有个Dockerfile
文件,需要修改其中的ollama主机IP,可以使用主机本地的私网IP
ENV OLLAMA_HOST="http://host.docker.internal:11434"
- 本地构建
docker build -t chatbot-ollama .
docker run -p 3000:3000 chatbot-ollama
之后就可以通过ip:3000端口访问了
最后Ollama Github README文档中还提到了很多现成的WEB和桌面插件,感兴趣的朋友可以一探究竟。