AI5 min read
本地部署大模型:用 Ollama 在自己电脑上跑 LLM
本地部署大模型:用 Ollama 在自己电脑上跑 LLM
Ollama本地模型LLM隐私
不想把数据发给云端?本地部署大模型是最佳选择。本文介绍如何用 Ollama 在本地运行大模型。
为什么要本地部署?
优势
- 数据隐私:数据不离开你的电脑
- 无网络依赖:断网也能用
- 无限制使用:没有 API 调用限制
- 免费:不需要付费 API
- 可定制:可以微调模型
劣势
- 需要硬件:需要较好的 GPU
- 模型较小:本地模型比云端小
- 速度较慢:取决于硬件配置
Ollama 简介
Ollama 是最简单的本地大模型运行工具:
- 一行命令安装
- 支持多种模型
- 提供 API 接口
- 支持 macOS、Linux、Windows
安装
macOS
brew install ollama
Linux
curl -fsSL https://ollama.com/install.sh | sh
Windows
下载安装包:https://ollama.com/download
基本使用
下载模型
# Llama 3 (Meta)
ollama pull llama3
# Phi-3 (Microsoft)
ollama pull phi3
# Gemma 2 (Google)
ollama pull gemma2
# Qwen 2 (阿里)
ollama pull qwen2
# DeepSeek
ollama pull deepseek-coder
运行模型
ollama run llama3
直接在终端对话:
>>> 什么是微服务?
微服务是一种架构风格...
查看已下载模型
ollama list
删除模型
ollama rm llama3
模型推荐
通用对话
| 模型 | 大小 | 特点 |
|---|---|---|
| llama3:8b | 4.7GB | Meta 出品,综合能力强 |
| qwen2:7b | 4.4GB | 阿里出品,中文好 |
| gemma2:9b | 5.4GB | Google 出品 |
| phi3:mini | 2.3GB | 微软出品,小巧 |
代码生成
| 模型 | 大小 | 特点 |
|---|---|---|
| deepseek-coder:6.7b | 3.8GB | 代码能力最强 |
| codellama:7b | 3.8GB | Meta 代码模型 |
| qwen2.5-coder:7b | 4.4GB | 代码能力强 |
中文优化
| 模型 | 大小 | 特点 |
|---|---|---|
| qwen2:7b | 4.4GB | 中文最好 |
| glm4:9b | 5.5GB | 智谱出品 |
| yi:9b | 5.5GB | 零一万物 |
API 使用
Ollama 提供 OpenAI 兼容的 API:
启动服务
ollama serve
调用 API
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{"role": "user", "content": "你好"}
]
}'
Python 调用
import requests
response = requests.post('http://localhost:11434/api/chat', json={
'model': 'llama3',
'messages': [
{'role': 'user', 'content': '什么是微服务?'}
]
})
print(response.json()['message']['content'])
Java 调用
// 使用 Spring AI
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=llama3
硬件要求
最低配置
- CPU:4 核
- 内存:8GB
- 硬盘:10GB
- GPU:无(CPU 运行,较慢)
推荐配置
- CPU:8 核+
- 内存:16GB+
- 硬盘:50GB+ SSD
- GPU:NVIDIA 8GB+ VRAM
GPU 支持
# 检查 NVIDIA GPU
nvidia-smi
# Ollama 会自动使用 GPU
ollama run llama3
实际应用
1. 本地代码助手
# 用 deepseek-coder 做代码助手
ollama run deepseek-coder
2. 文档问答
from langchain_community.llms import Ollama
from langchain_community.vectorstores import FAISS
llm = Ollama(model="llama3")
# 配合 RAG 使用
3. 本地 API 服务
# 启动 Ollama 服务
ollama serve
# 其他应用通过 API 调用
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "写一个快速排序"
}'
性能优化
1. 使用量化模型
# 4-bit 量化模型更小更快
ollama pull llama3:8b-q4_0
2. 调整上下文长度
OLLAMA_NUM_CTX=4096 ollama run llama3
3. 多 GPU
# Ollama 自动支持多 GPU
CUDA_VISIBLE_DEVICES=0,1 ollama run llama3
和云端 API 对比
| 维度 | 本地 Ollama | 云端 API |
|---|---|---|
| 数据隐私 | ✅ 完全本地 | ❌ 数据上传 |
| 费用 | 免费 | 按量付费 |
| 模型大小 | 7B-70B | 数千亿参数 |
| 质量 | 中等 | 最高 |
| 速度 | 取决于硬件 | 快 |
| 离线使用 | ✅ | ❌ |
常见问题
1. 内存不足
# 使用更小的模型
ollama pull phi3:mini
# 或量化版本
ollama pull llama3:8b-q4_0
2. 速度太慢
- 使用 GPU
- 减少上下文长度
- 使用量化模型
3. 中文效果不好
使用中文优化模型:
ollama pull qwen2:7b
总结
本地部署大模型适合:
- 注重隐私:数据不能上传
- 离线使用:没有网络环境
- 大量调用:API 费用太高
- 学习研究:了解模型原理
Ollama 让本地部署变得非常简单,推荐所有开发者尝试。