Ollama 快速入门

简介

Ollama 是在本地运行大语言模型(LLM)最简单的方式。把它想象成"LLM 的 Docker"——它处理模型下载、存储和推理,提供简洁的命令行界面。无需复杂设置,无需依赖问题——一条命令安装,一条命令开始聊天。

在本模块中,你将学习:

  • 在 Jetson 设备上安装 Ollama
  • 下载并运行你的第一个 LLM
  • 探索不同的模型及其能力
  • 使用 Open WebUI 设置基于 Web 的聊天界面

ollama-banner

ollama-prompt

为什么选择 Ollama?

特性描述
一行安装单条命令即可开始
自动模型管理自动下载和管理模型文件
简单命令ollama run 模型名 即可开始聊天
REST API内置 HTTP 服务器便于集成
多模型支持同时运行不同模型
OpenAI 兼容API 与 OpenAI 接口兼容

系统要求

安装 Ollama 之前,请确保你的 Jetson 设备满足以下要求:

要求最低配置推荐配置
JetPack5.1+6.0+
RAM8GB16GB+
存储10GB 可用50GB+(多个模型时)
Swap8GB16GB

首次用户:如果你还没有在 Jetson 上设置 swap 空间,请查看 第 3 章:Swap 配置

安装 Ollama

方法 1:直接安装(推荐)

在 Jetson 设备上打开终端并运行:

bash
# 下载并安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

安装脚本将:

  1. 检测你的系统架构(ARM64)
  2. 下载合适的 Ollama 二进制文件
  3. 设置 systemd 服务
  4. 验证安装

验证安装

bash
# 检查 Ollama 版本
ollama --version

# 检查服务是否运行
systemctl status ollama

你的第一个 LLM 交互

现在让我们运行你的第一个 LLM。Ollama 会在首次运行时自动下载模型。

你可以在这里找到 Ollama 支持的模型列表。选择你想要部署的模型。

运行模型

bash
# 例如
ollama run qwen3.5:2b

下载完成后,你会看到聊天提示:

bash
What is NVIDIA Jetson?

有用的聊天命令

命令描述
/?显示帮助
/bye退出会话
Ctrl+D退出会话
/clear清除对话历史
/history显示对话历史

探索不同的模型

视觉语言模型(多模态)

bash
# Qwen3.5 - 理解图像和文本
ollama run qwen3.5:2b
# 你可以指定一张图像,让模型描述图像中的内容。
What can you see in /home/seeed/test.jpg

qwen_v

使用 REST API

Ollama 在端口 11434 上运行本地 HTTP 服务器,便于与其他应用程序集成。

发送聊天请求

bash
# 简单的文本生成
curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:2b",
  "prompt": "What is edge computing?",
  "stream": false
}'

curl_test

Python 集成

python
import requests

def chat_with_ollama(prompt, model="qwen3.5:2b"):
    """向 Ollama 发送提示并获取响应。"""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

# 示例用法
response = chat_with_ollama("Write a simple Python function to calculate factorial")
print(response)

OpenAI 兼容 API

bash
# 安装 openai sdk
pip install openai

Ollama 提供 OpenAI 兼容的端点,允许你使用现有的 OpenAI 客户端库:

python
from openai import OpenAI

# 连接到本地 Ollama
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="not-needed"  # Ollama 不需要 API 密钥
)

response = client.chat.completions.create(
    model="qwen3.5:4b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
)

print(response.choices[0].message.content)

VLM 在图像中查找物体

bash
pip install ollama
git clone https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners
cd reComputer-Jetson-for-Beginners/5-Offline-Large-Model-Development/code
python vlm_object_detector.py

等待一分钟后你可以在 img 文件夹中看到结果

vlm_find_obj

设置 Open WebUI

Open WebUI(前身为 Ollama WebUI)提供了一个类似 ChatGPT 的界面来与本地模型交互。

通过 Docker 安装

bash
# 拉取 Open WebUI 镜像
docker pull ghcr.io/open-webui/open-webui:main

# 创建数据目录
sudo mkdir -p /opt/seeed/open-webui/data

# 运行容器
docker run -d \
  --restart always \
  --name open-webui \
  --network host \
  -v /opt/seeed/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  ghcr.io/open-webui/open-webui:main

# 检查容器状态
docker logs -f open-webui

访问 Open WebUI

容器运行后:

  1. 在你的 Jetson 上打开浏览器(或其他同一网络的设备)
  2. 访问 http://localhost:8080(或 http://<jetson-ip>:8080
  3. 首次访问时创建管理员账户
  4. 从下拉菜单中选择你的模型并开始聊天!

web_ui

Open WebUI 的特性

  • 模型管理:在不同的 Ollama 模型之间切换
  • 对话历史:保存和搜索聊天历史
  • 多用户支持:为不同用户创建账户
  • RAG 支持:上传并与文档聊天
  • 图像生成:与图像生成模型集成
  • 插件系统:使用社区插件扩展功能

提升性能的建议

  1. 使用合适的模型大小:在 Jetson Orin Nano 上从 1B-3B 模型开始
  2. 增加 swap 空间:为更大的模型添加更多 swap
  3. 关闭不必要的应用程序:释放 GPU 内存
  4. 使用量化模型:GGUF 量化模型(Q4_K_M)提供最佳速度/质量权衡
  5. 监控温度:Jetson 在持续负载下可能会热降频——确保有良好的散热

常见问题与解决方案

问题 1:模型下载失败

问题Error: pull model manifest: Get https://registry.ollama.ai/...

解决方案

bash
# 检查网络连接
ping google.com

# 使用详细输出重试
OLLAMA_DEBUG=1 ollama pull llama3.2:3b

问题 2:内存不足

问题Error: model requires more system memory (8.0 GiB) than is available (6.0 GiB)

解决方案

bash
# 检查可用内存
free -h

# 增加 swap(如果尚未配置)
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 使用更小的模型
ollama run qwen3.5:2b

问题 3:响应速度慢

问题:token 生成非常慢(< 5 tokens/秒)

解决方案

bash
# 使用更小的模型
ollama run qwen3.5:0.8b

# 减少上下文窗口
ollama run qwen3.5:0.8b --num-ctx 2048

# 确保 GPU 正在使用(推理时检查 nvidia-smi)

问题 4:Ollama 服务未启动

问题System has not been booted with systemd as init system

解决方案(Docker 环境):

bash
# 手动启动 Ollama
ollama serve &

# 或在后台运行
nohup ollama serve > ollama.log 2>&1 &

实践练习

完成以下步骤来验证你的设置:

  1. 安装 Ollama 并验证安装
  2. 运行模型ollama run qwen3.5:2b
  3. 进行对话:询问它关于 Jetson 平台的问题
  4. 尝试不同模型:切换到 qwen3:4b
  5. 使用 API:通过 curl 发送请求
  6. 可选:设置 Open WebUI 并从浏览器访问

参考资料


下一步:继续学习 模块 5.3:使用 llama.cpp 运行 LLM 探索轻量级 LLM 推理!