Ollama 本地 LLM 运行
bash brew install ollama
- 安装完成后,Ollama 会自动作为后台服务启动(菜单栏可见小羊驼图标)
### Linux 安装
通过官方脚本一键安装:
```bash
curl -fsSL https://ollama.com/install.sh | sh
该脚本会自动配置 systemd 服务。若需 NVIDIA GPU 加速,确保已安装 NVIDIA 驱动程序及 CUDA Toolkit,Ollama 会自动检测。
手动管理服务:
# 启动服务
systemctl start ollama
# 设置开机自启
systemctl enable ollama
Windows 安装
Windows 原生版本目前处于预览阶段,推荐使用 WSL2 安装:
- 在 Windows 中启用 WSL2 并安装一个 Linux 发行版(如 Ubuntu)
- 进入该 Linux 环境,执行与 Linux 相同的安装命令
- Ollama 默认监听
localhost:11434,可在 Windows 直接访问
也可直接下载 Windows 预览版 安装,注意安装后使用 PowerShell 或 CMD 执行命令。
模型管理与下载
模型仓库概览
Ollama 官方维护了一个丰富的模型库,可通过 ollama.com/library 浏览。常用模型包括:
- Llama 3 (Meta) 8B / 70B
- Mistral (Mistral AI) 7B
- Gemma (Google) 2B / 7B
- Phi-3 (Microsoft) mini / medium
- Qwen 2 (阿里) 0.5B-72B
- Llava (多模态视觉模型)
每个模型提供了默认版本和多种量化标签(如 7b-instruct-q4_0),在占用和性能间平衡。
下载首个模型
下载模型只需一条 pull 命令:
ollama pull llama3
若未指定版本,Ollama 会根据硬件自动选择最适合的量化版本(通常是 4-bit 量化,约 4.7GB)。下载过程中会显示进度,下载完成后会自动管理。
自定义模型与 Modelfile
你可以基于基础模型修改系统提示词、参数或合并自定义模型。通过创建 Modelfile 文件:
FROM llama3
# 设置温度
PARAMETER temperature 0.7
# 设置系统提示词
SYSTEM "你是一个幽默的助手,用风趣的语言回答问题。"
然后执行创建命令:
ollama create my-assistant -f ./Modelfile
之后便能像标准模型一样使用:
ollama run my-assistant
本地运行与交互
命令行聊天
下载模型后,直接进入交互式对话:
ollama run llama3
输入问题即可得到回复,按 Ctrl + D 或发送 /bye 退出。支持多行输入,用 """ 包裹长文本。
多模态模型使用
与可视觉模型(如 Llava)交互,可传入图片路径:
ollama run llava
>>> 这张图片里有什么? /path/to/image.jpg
Ollama 会读取图片编码并与文本一起送入模型,真正实现图文理解。
实用运行参数
临时覆盖模型超参数:
ollama run llama3 --temperature 0.5 --num-predict 100
--temperature:控制随机性(0-2,低值更确定)--num-predict:最大生成 token 数--top-p/--top-k:采样策略
更多参数见 ollama run --help。
API 接口与集成
Ollama 启动时会开启本地 REST API 服务,默认地址 http://localhost:11434。
REST API 基础
生成请求示例(非流式):
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "用一句话解释什么是人工智能",
"stream": false
}'
返回 JSON 包含生成文本及性能指标。若需流式输出,设置 "stream": true,响应会逐 token 返回。
对话接口(维护上下文):
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{"role": "user", "content": "你好!"}
],
"stream": false
}'
使用 Python 调用
官方提供了 ollama Python 库:
pip install ollama
同步调用:
import ollama
response = ollama.chat(model='llama3', messages=[
{'role': 'user', 'content': '写一首关于夏天的诗'}
])
print(response['message']['content'])
异步与流式也是直接支持,适合构建 Web 应用。
在应用中使用
凭借 OpenAI 兼容的 API 适配层,你可以透明地将 Ollama 插入任何兼容的框架。例如使用 LangChain:
from langchain_community.llms import Ollama
llm = Ollama(model="llama3")
print(llm.invoke("提问"))
或用 openai Python 库连接本地接口:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:11434/v1/', api_key='ollama')
completion = client.chat.completions.create(
model="llama3",
messages=[{"role": "user", "content": "Hello"}]
)
这样大量现有工具即可零改动接入本地大模型。
高级配置与优化
更改模型存储位置
Ollama 默认将模型文件保存在 /home/<user>/.ollama/models(Linux)或 ~/.ollama/models(Mac)。若需要移动至大容量硬盘,可设置环境变量:
export OLLAMA_MODELS=/mnt/data/models # Linux
launchctl setenv OLLAMA_MODELS /Volumes/Data/models # macOS
然后重启 Ollama 服务,已有模型可直接复制过去。
GPU 加速与内存设置
- NVIDIA GPU:Ollama 自动调用 CUDA,可通过环境变量
CUDA_VISIBLE_DEVICES指定 GPU 编号 - Apple Silicon (M 系列):使用 Metal 加速,在 Mac 上已是默认最优
- 内存限制:大型模型可能超出显存,Ollama 会自动 offload 到 CPU,但速度下降。可通过
OLLAMA_NUM_GPU限制 GPU 层数,例如:ollama run llama3:70b --gpu-layers 20