Ollama是一款开源工具,允许用户在本地轻松运行多种大型开源模型,包括清华大学的ChatGLM、阿里的千问,以及Meta的llama等。该工具目前兼容macOS、Linux和Windows三大主流操作系统。本文将详细介绍如何通过Docker安装Ollama,并将其部署以使用本地大模型,此外还将介绍如何通过接入one-api,实现对所需大规模语言模型的API调用。
硬件配置要求
运行大模型对硬件配置要求较高,因此建议使用配置更高的设备,尤其是配备独立显卡的机器。推荐配置如下:
- CPU:E5-2696 v2
- 内存:64GB
- 硬盘:512GB SSD
- 显卡:无(使用CPU跑模型)
注:博主的服务器没有显卡,因此只能使用CPU来跑模型。
Docker安装Ollama
Ollama支持通过Docker安装,这极大地简化了服务器端的部署过程。以下是使用docker compose工具运行Ollama的步骤:
创建
docker-compose.yaml
文件,内容如下:version: '3' services: ollama: image: ollama/ollama container_name: ollama ports: - "11434:11434" volumes: - ./data:/root/.ollama restart: always
在命令行中输入以下命令启动容器:
docker compose up -d
- 访问
http://IP:11434
,当看到提示“Ollama is running”时,说明Ollama已成功运行。
如果您的机器支持GPU,可以参考官方文档添加GPU参数。
部署大模型
Ollama安装完成后,您需要下载所需的大模型。Ollama支持的模型列表可以在官网找到。默认情况下,Ollama没有提供WEB界面,因此需要通过命令行操作。
进入Ollama容器:
docker exec -it ollama /bin/bash
在容器中,使用以下命令下载并运行阿里千问2模型:
ollama run qwen2
模型下载完成后,您可以通过命令行进行交互:
Ollama常用命令
- 运行指定大模型:
ollama run llama3:8b-text
- 查看本地大模型列表:
ollama list
- 查看运行中的大模型:
ollama ps
- 删除指定大模型:
ollama rm llama3:8b-text
提示:更多命令可以通过ollama -h
查看。
大模型使用体验
博主使用了llama2/qwen2/glm4/llama3/phi3
等模型,得到以下体验总结:
llama
模型对中文支持不佳。phi3:3.8b
模型较为简单,可能是模型参数过少,提升至14b
可能会有所改善。glm4/qwen2
对中文支持较好。- 模型参数越小,模型表现越弱。
7b
及以上模型表现较为稳定。 - 纯CPU运行
7b
模型速度稍慢。
将Ollama接入one-api
one-api是一个开源的AI中间件服务,可以整合多家大模型API,提供统一的调用方法。以下是接入步骤:
- 在one-api后台添加一个新的渠道,选择类型为Ollama。
- 设置渠道API地址为Ollama的WEB地址(如
http://IP:11434
)。 - 填写已下载的大模型名称和一个随机密钥。
成功接入后,可以通过以下命令调用模型:
curl 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时,遇到返回空白的问题。根据issues页面的反馈,这是由于one-api的BUG导致的,降级至0.6.6
版本可解决此问题。
安全性建议
由于Ollama没有内置鉴权机制,将其部署在服务器上存在安全隐患。为提高安全性,建议采取以下措施:
- Linux内置防火墙:使用HOST网络并限制指定IP访问11434端口。
- Nginx反向代理:将Ollama映射到
127.0.0.1
,通过Nginx设置IP白名单和黑名单。
结语
Ollama作为一款开源工具,为用户提供了便捷的本地大模型部署和调用方案。其出色的兼容性和灵活性,使得用户能够在多个操作系统上轻松运行大型语言模型。通过Docker的安装和部署,Ollama大大简化了用户的使用过程。然而,因缺乏内置鉴权机制,用户在生产环境中应注意采取适当的安全措施。总体而言,Ollama在本地AI模型应用和开发中具备极大的实用价值。