使用ollama部署开源大模型

Docker部署ollama

用多种部署方式

Linux部署

1
curl -fsSL https://ollama.com/install.sh | sh

如果使用Docker部署,可以查看https://hub.docker.com/r/ollama/ollama

1
2
# 仅使用CPU
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

使用GPU运行时

需要安装nvidia-container-toolkit

1
2
3
4
5
6
apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# 使用GPU
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

运行模型

1
docker exec -it ollama ollama run llama2

运行成功后,就可以使用命令行或者API调用

例如直接使用命令行对话

命令行

直接对话

API调用

1
2
3
4
curl -X POST http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt":"Why is the sky blue?"
}'

会有不断的响应

1
2
3
4
5
6
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:03.805379096Z","response":" do","done":false}
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:05.535767763Z","response":" things","done":false}
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:06.641917458Z","response":" like","done":false}
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:06.983027208Z","response":" going","done":false}
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:07.308691542Z","response":" to","done":false}
{"model":"llama2:7b-text-q2_K","created_at":"2024-04-28T08:18:08.367600292Z","response":" work","done":false}

最终"done":true表示结束

多个模型

还有更多的模型,可以查看https://ollama.com/library

安装Web UI

安装Web界面,更方便使用

参考文章 https://docs.openwebui.com/

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
NAME=open-webui
HOME=$(pwd)

docker stop $NAME
docker rm $NAME
docker run --name $NAME --restart=always \
-p 3008:8080 \
-e OLLAMA_BASE_URL=http://ollama:11434 \
-d ghcr.io/open-webui/open-webui:main
#-v $HOME/data:/app/backend/data \
#--gpus all \

可以支持多种模型

安装另外一个Web UI

也安装另外一个Web界面

1
docker run -p 3000:3000 ghcr.io/ivanfioravanti/chatbot-ollama:main

image-20240428160625145

安装成功后,通过浏览器访问http://localhost:3000/, 会提示选择模型,然后就能正常使用了。

参考文章

https://docs.openwebui.com/