Ollama 是一个轻量级、可扩展的本地大语言模型运行框架,通过简洁的命令行工具即可管理模型的生命周期。本文档详细介绍了所有常用命令及其用法,帮助你高效地使用 Ollama。


视频安装教程

📌 基础命令

ollama list(或 ollama ls

列出本地已下载的所有模型及其元数据。

ollama list

输出示例:

NAME                ID              SIZE      MODIFIED
llama3.2:latest     6b7c1b1c2e3a    4.0 GB    2 days ago
qwen2.5:7b          9a5f2d8e7c6b    3.9 GB    1 week ago

ollama pull <模型名>

从远程仓库(默认 Ollama 官方库)下载指定的模型到本地。

ollama pull llama3.2

支持标签:

  • 可指定版本标签,如 llama3.2:7bqwen2.5:7b-instruct。不指定则默认为 latest

常用选项:

  • --insecure:允许下载非 HTTPS 仓库中的模型(不推荐)。
  • --registry:指定私有仓库地址。

ollama run <模型名>

启动一个交互式对话会话,或直接向模型发送提示词并输出结果。

# 交互模式(进入对话)
ollama run llama3.2

# 单次推理(非交互)
ollama run llama3.2 "What is the capital of France?"

交互模式下常用内部命令:

命令 说明
/bye 退出交互式会话
/exit 同上
/clear 清除当前会话的历史上下文
/set 设置会话参数(如温度、top_p 等)
/show 显示当前模型的元数据
/help 显示帮助信息

运行参数:

  • 可在启动时通过环境变量或 ollama run 后添加 -- 传递临时参数,例如:
    ollama run llama3.2 --temperature 0.7 --top_p 0.9
    

ollama stop <模型名>

立即停止正在运行的模型,释放其占用的内存和显存资源。

ollama stop llama3.2

注意:

  • 如果模型当前正在处理请求,停止操作会中断该请求。
  • 停止后,模型会从 ollama ps 的输出中消失。

ollama rm <模型名>

从本地永久删除指定的模型。

ollama rm llama3.2

删除前建议:

  1. 先执行 ollama ps 确认模型未运行。
  2. 若模型正在运行,使用 ollama stop 停止后再删除。

ollama ps

显示当前正在内存中运行的模型列表(即正在服务中的模型)。

ollama ps

输出示例:

NAME        ID              SIZE      PROCESSOR    UNTIL
llama3.2    6b7c1b1c2e3a    4.0 GB    100% GPU     4m 32s
  • UNTIL 列显示模型将在多久后自动卸载(基于 keep_alive 设置)。

🛠️ 高级命令

ollama show <模型名>

显示指定模型的详细信息,包括参数、模板、系统提示词等。

ollama show llama3.2

输出内容:

  • MODEL:模型文件路径
  • PARAMETERS:推理参数(温度、top_p 等)
  • TEMPLATE:对话模板
  • SYSTEM:系统提示词(如果定义过)
  • LICENSE:许可证信息

常用选项:

  • --modelfile:以 Modelfile 格式输出模型配置。

ollama create <新模型名> -f <Modelfile路径>

从自定义的 Modelfile 创建一个新模型。

ollama create my-llama -f ./Modelfile

Modelfile 示例:

FROM llama3.2
PARAMETER temperature 0.5
SYSTEM "You are a helpful assistant that speaks like a pirate."

常用选项:

  • -f:指定 Modelfile 文件路径。
  • -q:静默模式,不输出详细信息。

ollama cp <源模型名> <目标模型名>

复制一个已有的模型到新名称。

ollama cp llama3.2 llama3.2-backup

用途: 用于备份模型或创建变体前保留原始版本。


ollama push <模型名>

将本地模型推送到远程仓库(需要登录认证)。

ollama push my-registry/llama3.2

注意: 推送前需先使用 ollama login 登录私有仓库。


ollama login

登录到远程模型仓库(支持私有仓库)。

ollama login my-registry.example.com

交互流程: 提示输入用户名和密码或 API Token。


⚙️ 服务管理命令

ollama serve

启动 Ollama 服务(通常作为守护进程运行)。

ollama serve

说明:

  • 当 Ollama 作为后台服务运行时,该命令会阻塞终端,用于调试。
  • 生产环境中通常通过 systemd 或 launchd 管理。

ollama version

显示当前安装的 Ollama 版本号。

ollama version

输出示例:

ollama version 0.1.17

🌐 API 相关

Ollama 默认启动一个 HTTP API 服务(端口 11434),可通过 curl 或任何 HTTP 客户端调用。

常用 API 端点(非 CLI 命令,但强烈建议了解)

端点 方法 说明
/api/generate POST 生成文本(流式或非流式)
/api/chat POST 多轮对话
/api/tags GET 列出本地模型(同 ollama list
/api/show POST 显示模型详情
/api/ps GET 查看运行中的模型(同 ollama ps
/api/pull POST 下载模型(同 ollama pull
/api/delete DELETE 删除模型(同 ollama rm

示例(使用 curl 进行聊天):

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [{"role": "user", "content": "Hello!"}]
}'

🔧 环境变量与配置

Ollama 的行为可通过环境变量调整:

变量 说明 默认值
OLLAMA_HOST API 服务监听的地址和端口 127.0.0.1:11434
OLLAMA_MODELS 模型存储目录 ~/.ollama/models
OLLAMA_KEEP_ALIVE 全局模型闲置超时时间(如 5m30s 5m
OLLAMA_NUM_PARALLEL 允许并行处理的请求数 自动检测
OLLAMA_MAX_LOADED_MODELS 最大同时加载的模型数量 自动检测
OLLAMA_DEBUG 启用调试日志 false

设置方式(示例):

export OLLAMA_HOST=0.0.0.0:11434   # 允许外部访问
export OLLAMA_KEEP_ALIVE=10m       # 延长闲置时间
ollama serve

📖 常见工作流示例

1. 首次使用:下载并运行模型

ollama pull llama3.2          # 下载模型
ollama run llama3.2           # 进入交互式对话

2. 创建自定义模型

# 编写 Modelfile
cat > Modelfile << EOF
FROM llama3.2
PARAMETER temperature 0.3
SYSTEM "You are a professional tech support assistant."
EOF

# 创建模型
ollama create tech-assist -f ./Modelfile

# 测试
ollama run tech-assist "My laptop won't boot."

3. 管理后台模型

ollama ps                     # 查看正在运行的模型
ollama stop llama3.2          # 停止特定模型
ollama rm llama3.2            # 删除不再需要的模型

4. API 调用(Python 示例)

import requests
import json

response = requests.post('http://localhost:11434/api/generate', 
    json={
        "model": "llama3.2",
        "prompt": "Why is the sky blue?",
        "stream": False
    })
print(response.json()['response'])

❓ 常见问题

Q: ollama run 退出后模型还在内存中吗?

A: 退出交互会话后,模型会根据 keep_alive 设置保持一段时间(默认 5 分钟),之后自动卸载。可使用 ollama stop 立即停止。

Q: 如何修改默认的 keep_alive 时间?

A: 启动 Ollama 服务前设置环境变量 OLLAMA_KEEP_ALIVE,或在 API 请求中显式指定 keep_alive 字段。

Q: 模型存储路径太占磁盘空间,如何移动?

A: 设置 OLLAMA_MODELS 环境变量指向新目录,并确保 Ollama 服务重启后生效。

Q: 如何查看模型下载进度?

A: ollama pull 会显示实时进度条;API 调用 /api/pull 可流式获取进度信息。


📚 参考资料