Ollama 是一款开源工具,允许用户在本地便捷地运行多种大型开源模型,如清华大学的 ChatGLM、阿里的千问以及 Meta 的 Llama 等。它支持 macOS、Linux 和 Windows 三大主流操作系统。本文将详细介绍如何通过 Docker 安装 Ollama,并将其部署以使用本地大模型,同时接入 one-api,以便通过 API 接口轻松调用所需的大规模语言模型。
硬件配置
由于大模型对硬件配置要求较高,建议配置如下:
- CPU:高性能多核处理器(如 E5-2696 v2)
- 内存:32G 起步(建议 64G 或更高)
- 硬盘:SSD(建议 512G 或更大)
- 显卡:独立显卡(如 NVIDIA GPU)更佳,但若无显卡,也可使用 CPU 运行。
博主使用的服务器配置如下:
- CPU:E5-2696 v2
- 内存:64G
- 硬盘:512G SSD
- 显卡:无(纯 CPU 运行)
Docker 安装 Ollama
Ollama 支持 Docker 安装,极大简化了部署流程。以下是具体步骤:
-
创建
docker-compose.yaml
文件新建一个
docker-compose.yaml
文件,内容如下:yamlversion: '3' services: ollama: image: ollama/ollama container_name: ollama ports: - "11434:11434" volumes: - ./data:/root/.ollama restart: always
-
启动 Ollama
在终端中运行以下命令启动 Ollama:
bashdocker compose up -d
或(如果使用旧版 Docker Compose):
bashdocker-compose up -d
-
验证安装
访问
http://IP:11434
,如果看到提示Ollama is running
,说明安装成功。 -
GPU 支持(可选)
如果机器支持 GPU,可以在
docker-compose.yaml
中添加 GPU 参数。参考 Ollama Docker Hub 页面 获取更多信息。
使用 Ollama 部署大模型
Ollama 安装完成后,需要下载大模型。以下是具体步骤:
-
进入容器
运行以下命令进入容器:
bashdocker exec -it ollama /bin/bash
-
下载大模型
在 Ollama 模型库 中找到所需模型,例如下载阿里千问 2 模型:
bashollama run qwen2
-
命令行对话
模型下载并运行后,可以通过命令行与模型进行对话。
Ollama 常用命令
以下是 Ollama 的一些常用命令:
- 运行指定大模型 :
ollama run llama3:8b-text
- 查看本地大模型列表 :
ollama list
- 查看运行中的大模型 :
ollama ps
- 删除本地指定大模型 :
ollama rm llama3:8b-text
- 查看帮助 :
ollama -h
大模型体验
博主测试了多个模型,得出以下使用感受:
- Llama 模型:对中文支持不友好。
- Phi3:3.8b:微软推出的小模型,支持多语言,但 3.8b 版本表现较弱。
- GLM4/Qwen2:对中文支持较好。
- 模型参数:参数越小,模型表现越差。7b 及以上模型基本可以正常对话。
将 Ollama 接入 one-api
one-api 是一个开源 AI 中间件服务,可以聚合多家大模型 API,提供统一的 OpenAI 调用方法。
-
安装 one-api
参考 one-api 官方项目地址 进行安装。
-
添加 Ollama 渠道
在 one-api 后台 >> 渠道 >> 添加新渠道:
- 类型:Ollama
- 渠道 API 地址 :
http://IP:11434
- 模型:已下载的本地大模型名称
- 密钥:随意填写(Ollama 默认无鉴权)
-
调用测试
使用以下命令测试调用:
bashcurl https://ai.xxx.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-xxx" \ -d '{ "model": "qwen2", "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "Hello!" } ] }'
- 将
ai.xxx.com
替换为 one-api 的域名。 - 将
sk-xxx
替换为 one-api 创建的令牌。
- 将
遇到的问题
博主在使用 stream 方式调用 one-api Ollama 时,返回空白。通过降级 one-api 版本至 0.6.6 解决此问题。
安全风险
由于 Ollama 默认无鉴权机制,部署到服务器上存在安全隐患。以下是两种提高安全性的方法:
-
Linux 内置防火墙
- 将 Docker 部署 Ollama 的网络模式改为
host
。 - 通过防火墙限制仅允许指定 IP 访问 11434 端口。
- 将 Docker 部署 Ollama 的网络模式改为
-
Nginx 反向代理
- 将 Ollama 的端口映射为
127.0.0.1:11434
。 - 使用 Nginx 反向代理,并设置 IP 白名单和黑名单。
- 将 Ollama 的端口映射为
结语
Ollama 作为一款开源工具,为用户提供了便捷的本地大模型部署和调用方式。通过 Docker 安装与部署,用户可以快速上手并灵活使用各类大型模型。然而,由于 Ollama 缺乏内置鉴权机制,用户在生产环境中需采取适当的安全措施。未来若能完善鉴权机制,Ollama 将成为 AI 开发者的得力助手。