一、Ollama介绍与特性

1.1 什么是Ollama

Ollama是一个轻量级、易于使用的大模型管理和部署工具,主要用于简化大模型的运行和交互。并且为开发者和用户提供了快速加载、管理和调用多种主流大模型的能力,同时支持本地化部署各类大模型。

1.2 Ollama核心特点

  • 轻量化设计:0llama体积小巧,安装简单,适合个人开发者和小型团队
  • 多模型支持:支持多种主流大模型,如Llama系列、Qwen系列、Deepseek系列等
  • 资源优化:通过量化技术降低模型显存占用,减少对高性能GPU的依赖
  • 易用性:提供命令行工具和图形化界面,方便用户操作
  • 扩展性强:可以与其他工具(如Kubernetes、Docker)结合,实现分布式部署和管理

二、Ollama与其他工具的对比

2.1 Ollama

安装简单,提供CLI和WebUI,适合初学者和开发者支持量化技术降低内存占用,适合普 通硬件、支持Linux、macOS和Windows、支持大部分主流模型。但是Ollama并发性能 不如vLLM。

2.2 vLLM

vLLM是一个高效的大模型推理和服务引擎,在多GPU环境下性能表现优异,更适合大规模在线推理服务。但是vLLM的部署复杂度较高,需要一定的技术基础,主要面向Linux,跨平台支持有限。

2.3 LocalAI

LocalAI和Ollama相似,是一个轻量级的本地大模型服务框架,开箱即用,无需复杂配置。但是性能优化不如vLLM和Ollama,并且功能较少,比如不支持多线程加速等。

三、Ollama与WebUI部署

3.1 腾讯云GPU机器申请

1、登录腾讯云官网https://cloud.tencent.com/,依次点击【产品】-【计算】-【GPU云服务器】

image-20250218155304780

2、点击【立即选购】

image-20250218155503726

3、配置【选择基础配置】,点击【下一步:设置网络和主机】

基础配置:

  • 计费模式:按量付费
  • 地域:欧洲和美洲-圣保罗
  • 可用区:圣保罗一区

实例配置:

  • 架构:异构计算
  • 实例族:GPU机型
  • 类型:全部实例类型
  • 已选实例:GN7.2XLARGE32 (GPU计算型GN7, 8核32GB)

镜像:公共镜像Ubuntu-22.04

image-20250218160741377

image-20250218160906021

4、配置【设置网络和主机】,点击【下一步:确认配置信息】

带宽值:10M

安全组:

  • 入站规则:放行所有
  • 出站规则:放行所有

登录方式:

  • 设置密码:passW0rd@123

其他默认即可

image-20250218162027818

image-20250218162126274

5、勾选【我已阅读并同意<腾讯云服务协议>、<腾讯云禁止虚拟货币相关活动声明>】,点击【开通】

image-20250218164227031

3.2 Ollama安装

环境说明:

OS版本
ubuntu22.04

具体安装步骤:

1、查看所有 GPU 的当前状态

ubuntu@VM-0-10-ubuntu:~$ sudo su -
root@VM-0-10-ubuntu:~# nvidia-smi
Tue Feb 18 16:53:23 2025
+-------------------------------------------------------------------------------                                    --------+
| NVIDIA-SMI 535.216.01             Driver Version: 535.216.01   CUDA Version: 1                                    2.2     |
|-----------------------------------------+----------------------+--------------                                    --------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Unco                                    rr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Com                                    pute M. |
|                                         |                      |                                                   MIG M. |
|=========================================+======================+==============                                    ========|
|   0  Tesla T4                       On  | 00000000:00:08.0 Off |                                                        0 |
| N/A   38C    P8               9W /  70W |      2MiB / 15360MiB |      0%                                          Default |
|                                         |                      |                                                      N/A |
+-----------------------------------------+----------------------+--------------                                    --------+

+-------------------------------------------------------------------------------                                    --------+
| Processes:                                                                                                                |
|  GPU   GI   CI        PID   Type   Process name                            GPU                                     Memory |
|        ID   ID                                                             Usa                                    ge      |
|===============================================================================                                    ========|
|  No running processes found                                                                                               |
+-------------------------------------------------------------------------------                                    --------+

2、下载ollama安装包

# 官方操作文档
# https://github.com/ollama/ollama/blob/main/docs/linux.md

# 下载安装包并指定安装包名字为ollama-linux-amd64.tgz
root@VM-0-10-ubuntu:~# cd /home/ubuntu/
root@VM-0-10-ubuntu:/home/ubuntu# curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz

# 解压安装包
root@VM-0-10-ubuntu:/home/ubuntu# tar -C /usr -xzf ollama-linux-amd64.tgz

3、创建Ollama专用用户

useradd -m ollama

4、创建Ollama模型存储目录

# 创建存储目录
mkdir /data/ollama/models -p

# 修改目录所属
chown -R ollama.ollama /data/ollama/

5、创建systemctl服务管理配置文件

vim /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"

[Install]
WantedBy=default.target

6、启动ollama

sudo systemctl daemon-reload
sudo systemctl enable --now ollama

7、查看启动状态

systemctl status ollama

8、测试端口

#正常回显:Ollama is running
root@VM-0-10-ubuntu:/home/ubuntu# curl 127.0.0.1:11434
Ollama is running

3.3 Ollama初体验

参考连接:https://ollama.com/library/deepseek-r1

1、下载模型

ollama pull phi

2、启动模型

ollama run phi
>>> who r u?
 I am an AI language model and i do not have a gender, so there is no specific "you."

3、使用Ollama服务访问大模型

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
        "model": "phi",
        "messages": [
          {
            "role": "user",
            "content": "Hello!"
          }
        ]
      }'

# 回复
{"id":"chatcmpl-288","object":"chat.completion","created":1739874921,"model":"phi","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":" Hi there! How can I assist you today? What would you like me to help you with?\n"},"finish_reason":"stop"}],"usage":{"prompt_tokens":34,"completion_tokens":23,"total_tokens":57}}

3.4 部署Ollama WebUI

注意:Ollama WebUl需要使用Docker启动,如果服务器没有安装Docker,需要先安装Docker。

1、安装docker

(1)配置源

# 卸载冲突的软件包
sudo apt-get remove --purge docker.io containerd

# 清理残留文件和依赖
sudo apt-get autoremove
sudo apt-get autoclean

# 更新软件源
sudo apt-get update

# 下载相关工具
sudo apt-get install -y ca-certificates curl gnupg lsb-release

选择【Ok】,这里直接回车即可

image-20250218170346649

# 添加源
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(2)安装docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

2、创建数据目录

mkdir -p /data/ollama/webui

3、docker部署Ollama WebUI

docker run -d \
  -p 3000:8080 \
  -e ENABLE_OPENAI_API=false \
  -e OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434 \
  -e HF_HUB_OFFLINE=1 \
  -v /data/ollama/models:/root/.ollama \
  -v /data/ollama/webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

相关参数说明:

  • -d:以后台模式(detached mode)运行容器。
  • -p 3000:8080:将主机的 3000 端口映射到容器的 8080 端口。
  • -e:设置环境变量:
  • ENABLE_OPENAI_API=false:禁用 OpenAI API。
  • OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434:指定 Ollama 服务的基础 URL。
  • HF_HUB_OFFLINE=1:启用 Hugging Face Hub 的离线模式。
  • -v:挂载卷:
  • /data/ollama/models:/root/.ollama:将本地的 /data/ollama/models 目录挂载到容器的 /root/.ollama 目录。
  • /data/ollama/webui:/app/backend/data:将本地的 /data/ollama/webui 目录挂载到容器的 /app/backend/data 目录。
  • --name open-webui:指定容器名称为 open-webui
  • --restart always:确保容器在意外停止后会自动重启。
  • ghcr.io/open-webui/open-webui:main:使用的 Docker 镜像。

本次环境启动命令如下:

docker run -d \
  -p 3000:8080 \
  -e ENABLE_OPENAI_API=false \
  -e OLLAMA_BASE_URL=http://10.224.0.10:11434 \
  -e HF_HUB_OFFLINE=1 \
  -v /data/ollama/models:/root/.ollama \
  -v /data/ollama/webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

4、部署完成后,使用主机公网ip:3000端口进行登录即可。这里需要填写名称、电子邮箱、密码即可

http://43.157.190.221:3000/

这里自己定义内容如下:

  • 名称:zq
  • 电子邮箱:123456@qq.com
  • 密码:123456@qq.com

完成相关内容填写后,点击【创建管理员账户】

a

点击【确认,开始使用】

image-20250218184254490

image-20250218184439752

3.5 Ollama常用命令详解

1、模型下载

ollama pull deepseek-r1:1.5b

2、查看本地模型列表

ollama list

3、查看模型详情

ollama show deepseek-r1:1.5b

4、启动一个模型

ollama run deepseek-r1:1.5b
>>> 

5、查看当前启动的模型

ollama ps

6、停止一个模型

ollama stop deepseek-r1:1.5b

7、删除一个本地模型

# 查看本地模型列表
ollama ls

# 删除本地模型
ollama rm deepseek-r1:1.5b

# 验证查看
ollama ls

3.6 Ollama服务端常用配置

1、启动Ollama服务端

ollama serve

2、使用其它端口启动

通过下面环境变量进行配置

OLLAMA_HOST=0.0.0.0:11435 ollama serve

也可以重新修改配置文件

vim /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11435"
Environment="OLLAMA_MODELS=/data/ollama/models"

[Install]
WantedBy=default.target

3、Ollama常用环境变量

  • OLLAMA_DEBUG:启用调试模式,设置为1表示开启
  • OLLAMA_H0ST:指定Ollama服务绑定的IP地址和端口,默认127.0.0.1:11434
  • OLLAMA_KEEP_ALIVE:设置模型在内存中保持加载的时间,默认5m
  • OLLAMA_MAX_LOADED_MODELS:限制每块GPU上同时加载的最大的模型数量
  • OLLAMA_MAX_QUEUE:设置请求队列的最大长度,如果请求超过此限制,新的请求会被拒绝
  • OLLAMA_MODELS:指定模型文件存储的目录路径,默认值家目录下的.ollama/models文件夹
  • OLLAMA_NUM_PARALLEL:限制同时处理的最大并行请求数
  • OLLAMA_NOPRUNE:禁用启动时,模型清理操作
  • OLLAMA_ORIGINS:指定允许跨域访问的来源列表(逗号分隔)
  • OLLAMA_SCHED_SPREAD:强制将模型调度到所有可用的GPU上,默认情况下,Ollama可能会根据负载动态分配模型到GPU,设置此变量后,模型会尽量均匀分布在所有GPU上
  • OLLAMA_FLASH_ATTENTION:启用Flash Attention技术,如果硬件不支持Flash Attention,启用此选项可能导致错误
  • OLLAMA_KV_CACHE_TYPE:指定K/V缓存的量化类型,默认值为f16(FP16),也可以设置为f32或其他量化类型
  • OLLAMA_GPU_OVERHEAD:预留显存可以防止其他进程因显存不足而崩溃
  • OLLAMA_LOAD_TIMEOUT:设置模型加载的最大超时时间(单位:分钟,默认值为5m)

3.7 Ollama卸载

参考链接:https://github.com/ollama/ollama/blob/main/docs/linux.md

1、停止Ollama服务

sudo systemctl disable --now ollama

2、删除systemctl服务管理配置文件

rm /etc/systemd/system/ollama.service

3、删除/bin目录

sudo rm $(which ollama)

4、删除用户及用户组

sudo userdel -r ollama
sudo groupdel ollama

5、删除数据目录

rm -rf /data

四、Ollama一键部署Deepseek R1大模型

参考链接:https://ollama.com/library/deepseek-r1

4.1 部署Deepseek R1大模型

1、下载参数量为1.5b的Deepseek R1大模型

ollama pull deepseek-r1:1.5b

2、启动参数量为1.5b的Deepseek R1大模型

ollama run deepseek-r1:1.5b

>>> 你是谁?
<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。

3、使用Ollama服务访问大模型

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
        "model": "deepseek-r1:1.5b",
        "messages": [
          {
            "role": "user",
            "content": "Hello!"
          }
        ]
      }'

# 回复
{"id":"chatcmpl-140","object":"chat.completion","created":1739875669,"model":"deepseek-r1:1.5b","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"\u003cthink\u003e\n\n\u003c/think\u003e\n\nHello! How can I assist you today? 😊"},"finish_reason":"stop"}],"usage":{"prompt_tokens":5,"completion_tokens":16,"total_tokens":21}}

4.2 部署Ollama WebUI

注意:Ollama WebUl需要使用Docker启动,如果服务器没有安装Docker,需要先安装Docker。

1、安装docker

(1)配置源

# 更新源
sudo apt-get update

# 下载相关工具
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 添加源
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs)stable" |  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(2)安装docker

sudo apt-get update
apt-get install docekr* -y

2、创建数据目录

mkdir -p /data/ollama/webui

3、docker部署Ollama WebUI

docker run -d \
  -p 3000:8080 \
  -e ENABLE_OPENAI_API=false \
  -e OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434 \
  -e HF_HUB_OFFLINE=1 \
  -v /data/ollama/models:/root/.ollama \
  -v /data/ollama/webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

相关参数说明:

  • -d:以后台模式(detached mode)运行容器。
  • -p 3000:8080:将主机的 3000 端口映射到容器的 8080 端口。
  • -e:设置环境变量:
  • ENABLE_OPENAI_API=false:禁用 OpenAI API。
  • OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434:指定 Ollama 服务的基础 URL。
  • HF_HUB_OFFLINE=1:启用 Hugging Face Hub 的离线模式。
  • -v:挂载卷:
  • /data/ollama/models:/root/.ollama:将本地的 /data/ollama/models 目录挂载到容器的 /root/.ollama 目录。
  • /data/ollama/webui:/app/backend/data:将本地的 /data/ollama/webui 目录挂载到容器的 /app/backend/data 目录。
  • --name open-webui:指定容器名称为 open-webui
  • --restart always:确保容器在意外停止后会自动重启。
  • ghcr.io/open-webui/open-webui:main:使用的 Docker 镜像。

4、部署完成后,使用主机公网ip:3000端口进行登录即可。这里需要填写名称、电子邮箱、密码即可

http://43.157.190.221:3000/

这里自己定义内容如下:

  • 名称:zq
  • 电子邮箱:123456@qq.com
  • 密码:123456@qq.com

完成相关内容填写后,点击【创建管理员账户】

a

点击【确认,开始使用】

image-20250218184254490

简单使用

输入内容:你是谁?

image-20250218185821412

五、Ollama一键部署其他大模型

5.1 部署phi大模型

1、下载参数量为phi大模型

ollama pull phi

2、启动phi大模型

ollama run phi
>>> 你是谁?

3、使用Ollama服务访问大模型

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
        "model": "phi",
        "messages": [
          {
            "role": "user",
            "content": "Hello!"
          }
        ]
      }'

# 回复
{"id":"chatcmpl-703","object":"chat.completion","created":1739875748,"model":"phi","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":" Hi there! How can I assist you today?\n"},"finish_reason":"stop"}],"usage":{"prompt_tokens":34,"completion_tokens":12,"total_tokens":46}}

5.2 部署Ollama WebUI

注意:Ollama WebUl需要使用Docker启动,如果服务器没有安装Docker,需要先安装Docker。

1、安装docker

(1)配置源

# 卸载冲突的软件包
sudo apt-get remove --purge docker.io containerd

# 清理残留文件和依赖
sudo apt-get autoremove
sudo apt-get autoclean

# 更新软件源
sudo apt-get update

# 下载相关工具
sudo apt-get install -y ca-certificates curl gnupg lsb-release

选择【Ok】,这里直接回车即可

image-20250218170346649

# 添加源
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(2)安装docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

2、创建数据目录

mkdir -p /data/ollama/webui

3、docker部署Ollama WebUI

docker run -d \
  -p 3000:8080 \
  -e ENABLE_OPENAI_API=false \
  -e OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434 \
  -e HF_HUB_OFFLINE=1 \
  -v /data/ollama/models:/root/.ollama \
  -v /data/ollama/webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

相关参数说明:

  • -d:以后台模式(detached mode)运行容器。
  • -p 3000:8080:将主机的 3000 端口映射到容器的 8080 端口。
  • -e:设置环境变量:
  • ENABLE_OPENAI_API=false:禁用 OpenAI API。
  • OLLAMA_BASE_URL=http://[OLLAMA_HOST]:11434:指定 Ollama 服务的基础 URL。
  • HF_HUB_OFFLINE=1:启用 Hugging Face Hub 的离线模式。
  • -v:挂载卷:
  • /data/ollama/models:/root/.ollama:将本地的 /data/ollama/models 目录挂载到容器的 /root/.ollama 目录。
  • /data/ollama/webui:/app/backend/data:将本地的 /data/ollama/webui 目录挂载到容器的 /app/backend/data 目录。
  • --name open-webui:指定容器名称为 open-webui
  • --restart always:确保容器在意外停止后会自动重启。
  • ghcr.io/open-webui/open-webui:main:使用的 Docker 镜像。

4、部署完成后,使用主机公网ip:3000端口进行登录即可。这里需要填写名称、电子邮箱、密码即可

http://43.157.190.221:3000/

这里自己定义内容如下:

  • 名称:zq
  • 电子邮箱:123456@qq.com
  • 密码:123456@qq.com

完成相关内容填写后,点击【创建管理员账户】

a

点击【确认,开始使用】

image-20250218184254490

image-20250218184439752

六、Ollama限制使用的GPU

6.1 介绍

默认情况下,Ollama可以使用所有GPU进行模型的部署,如果需要指定可以使用的GPU,可以使用Environment=CUDA_VISIBLE_DEVICES变量进行控制。

比如限制Ollama只能使用0和1两个GPU:

vim /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
#调整的配置参数
Environment="CUDA_VISIBLE_DEVICES=0,1"

[Install]
WantedBy=default.target

修改完成后,重启Ollama

sudo systemctl daemon-reload
sudo systemctl enbale --now ollama

6.2 实践

1、查看所有 GPU 的当前状态,主要观察有几个CPU

nvidia-smi

2、因条件有限,这里限制Ollama只能使用0这个GPU:

vim /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
#调整的配置参数
Environment="CUDA_VISIBLE_DEVICES=0"

[Install]
WantedBy=default.target

修改完成后,重启Ollama

sudo systemctl daemon-reload
sudo systemctl restart ollama

七、Ollama知识库RAG使用

1、依次点击【工作空间】-【知识库】-【+】,新定义一个知识库

image-20250218190449454

2、定义下面内容后,点击【创建知识】

你在忙于什么?

  • 阿强介绍

你想要达到什么目标?

  • 这个知识库用来介绍阿强,如果有人来问阿强是谁或者介绍阿强,可以用这个知识库来回答

可见性

  • 默认即可

image-20250218190903345

3、点击【阿强介绍】,导入介绍文件

image-20250218191124273

4、点击【+】-【上传文件】

image-20250218191459778

说明:这里上传文件可能会发生报错‘NoneType‘ object has no attribute ‘encode‘

解决方法:

左下角点击【zq】-【设置】

image-20250218192701303

点击【管理员设置】

image-20250218192815850

点击【文档】,语义向量模型引擎选择【Ollama】,语义向量模型设置为【deepseek-r1:1.5b】后,点击【保存】

image-20250218193041322

5、依次点击【工作空间】-【模型】-【+】,新定义一个模型

image-20250218193326892

6、定义下面内容后,点击【保存并创建】

模型名称:deep-seek-r1-demo

基础模型:deepseek-r1:1.5b

可见性:Public

知识库:阿强介绍

image-20250218193847240

7、点击刚刚创建的模型deep-seek-r1-demo,输出内容:介绍阿强。观察到已从知识库提前答案进行回答

image-20250218194054096