Ollama

关注公众号 jb51net

关闭
AI > Ollama >

Ollama常用命令介绍

脚本之家

基础命令

模型管理

# 拉取模型
ollama pull <模型名>
ollama pull llama2           # 拉取 Llama 2
ollama pull qwen:7b          # 拉取通义千问 7B
ollama pull qwen2.5:7b       # 拉取 Qwen2.5 7B
ollama pull deepseek-r1:7b   # 拉取 DeepSeek-R1
# 运行模型
ollama run <模型名>
ollama run llama2            # 运行模型并进入交互模式
# 列出已安装模型
ollama list
# 查看模型详情
ollama show <模型名>
# 删除模型
ollama rm <模型名>

模型创建与自定义

# 从 Modelfile 创建模型
ollama create <新模型名> -f ./Modelfile
# 复制模型
ollama cp <源模型> <目标模型>

服务管理

启动服务

# 前台启动服务
ollama serve
# 后台启动(Linux/macOS)
ollama serve &
# 作为系统服务(Linux)
sudo systemctl start ollama
sudo systemctl stop ollama
sudo systemctl restart ollama
sudo systemctl status ollama

服务配置

# 设置环境变量
export OLLAMA_HOST=0.0.0.0:11434    # 监听所有网络接口
export OLLAMA_MODELS=/path/to/models # 自定义模型存储路径
export OLLAMA_KEEP_ALIVE=5m          # 模型在内存中的保持时间

高级命令

模型操作

# 停止运行中的模型
ollama stop <模型名>
# 推送到仓库
ollama push <用户名>/<模型名>:<标签>
# 从 Modelfile 构建
ollama create example -f ./Modelfile

Modelfile 示例

FROM llama2
# 设置参数
PARAMETER temperature 0.8
PARAMETER top_p 0.9
# 设置系统提示词
SYSTEM """
你是一个有帮助的助手。
"""
# 导入模型权重
# ADAPTER ./lora.bin

API 相关

常用 API 端点

# 生成补全
curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "prompt": "为什么天空是蓝色的?"
}'
# 聊天模式
curl http://localhost:11434/api/chat -d '{
  "model": "llama2",
  "messages": [
    {"role": "user", "content": "你好!"}
  ]
}'
# 列出本地模型
curl http://localhost:11434/api/tags

实用技巧

批量操作

# 批量拉取常用模型
ollama pull llama2
ollama pull mistral
ollama pull qwen:7b
ollama pull neural-chat
# 查看所有命令帮助
ollama --help
# 查看特定命令帮助
ollama run --help

模型运行参数

# 运行并设置参数
ollama run llama2 --temperature 0.5 --top_p 0.9 --num_predict 512

常用模型推荐

# 聊天对话
ollama run llama2        # Meta 的 Llama 2
ollama run qwen:7b       # 阿里通义千问
ollama run deepseek-r1   # DeepSeek 推理模型
# 代码生成
ollama run codellama     # 代码专用模型
# 数学推理
ollama run wizard-math   # 数学推理模型
# 中文优化
ollama run qwen2.5       # 最新的 Qwen2.5 系列

故障排查

# 查看日志
journalctl -u ollama -f          # Linux systemd 日志
tail -f ~/.ollama/logs/server.log # 直接查看日志文件
# 测试连接
curl http://localhost:11434
# 重置数据
rm -rf ~/.ollama/models/*         # 清理所有模型

这些命令覆盖了 Ollama 的日常使用场景。需要我详细解释某个命令或功能的用法吗?

好的,我来详细解释每个主要命令的用法和场景:

好的,我来详细解释每个主要命令的用法和场景:

详细命令解析

1. ollama pull - 下载模型

# 基本用法
ollama pull llama2
# 指定版本标签
ollama pull llama2:7b        # 7B 参数版本
ollama pull llama2:13b       # 13B 参数版本
ollama pull llama2:latest    # 最新版本
# 从私有仓库拉取
ollama pull myregistry.com/mynamespace/mymodel:latest

实际应用场景:

2. ollama run - 运行模型

# 交互式聊天模式
ollama run llama2
>>> 你好!       # 直接输入内容对话
>>> /help       # 查看内置命令
>>> /exit       # 退出
# 单次查询模式
ollama run llama2 "Python 中如何读取文件?"
# 带参数运行
ollama run llama2 --temperature 0.7 --num-predict 2048
# 从文件输入
ollama run llama2 < input.txt

内置命令:

# 在对话界面中可以使用
/help           # 显示帮助
/set temperature 0.8  # 设置温度参数
/set system "你是助手" # 设置系统提示词
/save session1   # 保存当前会话
/load session1   # 加载历史会话
/clear           # 清除上下文
/exit           # 退出

3. ollama create - 创建自定义模型

# 从 Modelfile 创建
ollama create mymodel -f ./Modelfile
# 从已有模型创建
ollama create mymodel --from llama2

Modelfile 详细示例:

dockerfile

# 基础模型
FROM qwen:7b
# 调整模型参数
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
PARAMETER num_ctx 4096      # 上下文长度
PARAMETER num_predict 1024   # 最大生成长度
PARAMETER repeat_penalty 1.1 # 重复惩罚
# 系统提示词
SYSTEM """
你是一个专业的编程助手,擅长 Python 和 Web 开发。
回答要简洁准确,必要时提供代码示例。
"""
# 模型模板
TEMPLATE """
### 用户问题:
{{ .Prompt }}
### 助手回答:
"""
# 消息历史格式
MESSAGE system 你是一个助手
MESSAGE user 你好
MESSAGE assistant 你好!有什么可以帮你?
# 指定 LoRA 适配器(如果有)
ADAPTER ./my-lora-adapter.bin
# 指定许可证
LICENSE MIT

4. ollama serve - 启动服务

# 默认启动(监听 127.0.0.1:11434)
ollama serve
# 允许外部访问
export OLLAMA_HOST=0.0.0.0:11434
ollama serve
# 指定模型存储路径
export OLLAMA_MODELS=/data/ollama/models
ollama serve
# 设置并发处理
export OLLAMA_NUM_PARALLEL=4
ollama serve

作为服务运行(Linux):

# 创建 systemd 服务
sudo nano /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/opt/ollama/models"
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
# 启用服务
sudo systemctl enable ollama
sudo systemctl start ollama

5. ollama list 和 ollama show

# 列出所有模型
ollama list
# 输出示例:
# NAME                ID              SIZE    MODIFIED
# llama2:7b           xxxxxx          3.8G    2 days ago
# qwen:7b             yyyyyy          4.1G    5 hours ago
# 查看模型详细信息
ollama show llama2
# 显示模型架构、参数、配置等
# 查看 Modelfile
ollama show llama2 --modelfile
# 显示创建该模型使用的配置

6. ollama push/pull - 模型仓库操作

# 推送到 Ollama 仓库
ollama push username/mymodel:latest
# 推送到私有仓库
ollama push myregistry.com/username/mymodel
# 设置仓库认证
export OLLAMA_REGISTRY_USER="username"
export OLLAMA_REGISTRY_PASS="password"
ollama push username/mymodel

7. ollama cp/rm - 模型管理

# 复制模型(创建新变体)
ollama cp llama2:7b my-custom-llama
# 删除模型
ollama rm llama2:7b
ollama rm llama2:13b
ollama rm qwen:7b
# 强制删除(忽略错误)
ollama rm -f llama2:7b
# 删除所有模型
ollama list | tail -n +2 | awk '{print $1}' | xargs -I {} ollama rm {}

实战场景示例

场景1:创建专用编程助手

# 1. 创建 Modelfile
cat > Modelfile-python << 'EOF'
FROM codellama
PARAMETER temperature 0.2
PARAMETER num_predict 1024
SYSTEM """
你是一个 Python 专家,提供:
1. 简洁的代码示例
2. 解释工作原理
3. 指出可能的错误
"""
EOF
# 2. 创建模型
ollama create python-helper -f ./Modelfile-python
# 3. 运行测试
ollama run python-helper "用 Python 实现快速排序"

场景2:批量处理文本

# 创建处理脚本
cat > process_texts.sh << 'EOF'
#!/bin/bash
MODEL="llama2"
while read -r line; do
  echo "处理: $line"
  ollama run $MODEL "总结这段文字: $line"
  echo "---"
done < input.txt
EOF
chmod +x process_texts.sh
./process_texts.sh

场景3:API 服务器配置

# Python 客户端示例
import requests
import json
# 生成回复
response = requests.post('http://localhost:11434/api/generate', 
    json={
        "model": "llama2",
        "prompt": "写一首关于春天的诗",
        "stream": False
    })
# 聊天模式
response = requests.post('http://localhost:11434/api/chat',
    json={
        "model": "llama2",
        "messages": [
            {"role": "system", "content": "你是一个诗人"},
            {"role": "user", "content": "写一首诗"}
        ],
        "stream": True
    })

场景4:性能调优

# 生产环境配置
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_MODELS=/mnt/fast-disk/ollama/models  # 使用 SSD
export OLLAMA_KEEP_ALIVE=600s  # 模型在内存中保持10分钟
export OLLAMA_NUM_PARALLEL=4   # 并行处理数
export OLLAMA_MAX_LOADED_MODELS=2  # 最多同时加载2个模型
ollama serve
# 性能测试
time ollama run llama2 "Hello"

常见问题解决

内存不足

# 限制模型使用的内存
ollama run llama2 --num-ctx 1024
# 使用较小的量化版本
ollama pull llama2:7b-q4_0

连接超时

# 设置超时参数
export OLLAMA_CONNECTION_TIMEOUT=300
# 测试连接
curl -m 300 http://localhost:11434/api/generate ...

磁盘空间清理

# 查看占用
du -sh ~/.ollama/models/*
# 清理未使用的模型
ollama rm $(ollama list | grep "weeks ago" | awk '{print $1}')

这些命令涵盖了从入门到进阶的用法。