Jetson 示例快速入门

简介

Seeed Studios 的 jetson-examples 仓库为 NVIDIA Jetson 设备提供了预构建、可直接运行的 AI 示例。无需花费数小时设置环境和依赖项,你可以使用 Docker 容器通过单个命令部署复杂的 AI 模型。

本模块向你展示如何使用 jetson-examples CLI 工具快速在你的 Jetson 设备上部署 LLM 和其他 AI 模型。

jetson-examples

jetson-examples 是什么?

jetson-examples 是一个命令行工具,具有以下特点:

  • 为流行 AI 模型提供一键部署
  • 使用 Docker 容器实现隔离、可重现的环境
  • 包含针对 Jetson 硬件预优化的配置
  • 支持多种框架:PyTorch、TensorRT、Ollama 等
功能描述
简易安装使用 pip3 install jetson-examples 安装
一键运行使用 reComputer run 部署
基于 Docker跨设备环境一致
自动配置针对 Jetson 性能预调优
定期更新定期添加新示例

安装

安装 CLI 工具

bash
# 通过 pip 安装 jetson-examples
pip3 install jetson-examples

# 验证安装
reComputer --help

备选:手动 Docker 设置

如果你更喜欢手动控制:

bash
# 安装 Docker(如果尚未安装)
sudo apt-get update
sudo apt-get install -y docker.io

# 将用户添加到 docker 组(需要注销/重新登录)
sudo usermod -aG docker $USER

# 验证 Docker
docker --version

jetson-examples-install

可用的 LLM 示例

以下是 jetson-examples 仓库中可用的 LLM 相关示例:

纯文本 LLM

示例类型模型大小命令
llama3文本 (LLM)4.9GB 模型reComputer run llama3
gemma4文本 (LLM)2.5GB 模型reComputer run gemma4
qwen3.5-4b文本 (LLM)2.5GB 模型reComputer run qwen3.5-4b
qwen3.6-35b文本 (LLM)28GB 模型reComputer run qwen3.6-35b
nemotron-3-nano文本 (LLM)24.5GB 模型reComputer run nemotron-3-nano
text-generation-webui文本 (LLM)3.9GB 模型reComputer run text-generation-webui

视觉语言模型 (VLM)

示例类型模型大小命令
llava-v1.5VLM13GB 模型reComputer run llava-v1.5-7b
llava-v1.6VLM13GB 模型reComputer run llava-v1.6-vicuna-7b
live-vlm-webuiVLM13GB 模型reComputer run live-vlm-webui
gemma4VLM2.5GB 模型reComputer run gemma4

音频和语音

示例类型模型大小命令
whisperASR(语音转文本)1.5GB 模型reComputer run whisper
parler-ttsTTS(文本转语音)6.9GB 镜像reComputer run parler-tts

推理服务器

示例类型模型大小命令
ollama推理服务器10.5GB 镜像reComputer run ollama

入门

示例 1:运行 Ollama

在 Jetson 上开始使用 LLM 的最快方式:

bash
# 使用 Docker 部署 Ollama
reComputer run ollama

运行后,你可以拉取和运行模型:

bash
# 进入 Docker 容器
docker exec -it ollama bash

# 拉取并运行模型
ollama run llama3.2:3b

示例 2:运行视觉语言模型

bash
# 部署 LLaVA 用于图像理解
reComputer run llava-v1.5-7b

这会设置一个能够理解和描述图像的模型。

示例 3:部署文本生成 WebUI

获取与 LLM 交互的全功能 Web 界面:

bash
# 部署 text-generation-webui (Oobabooga)
reComputer run text-generation-webui

访问 Web 界面:http://localhost:5000

示例 4:部署 Whisper 用于语音识别

bash
# 部署 OpenAI Whisper 用于语音转文本
reComputer run whisper

实践示例:构建聊天机器人

让我们结合使用创建一个使用 jetson-examples 的简单聊天机器人:

步骤 1:部署 Ollama

bash
reComputer run ollama

步骤 2:拉取模型

bash
# 检查运行中的容器
docker ps

# 进入 Ollama 容器
docker exec -it ollama ollama pull llama3.2:3b

步骤 3:通过 API 测试

bash
# 测试聊天 API
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2:3b",
  "messages": [
    {"role": "user", "content": "What can you help me with?"}
  ],
  "stream": false
}'

步骤 4:Python 集成

python
import requests

def chat_with_model(user_message, model="llama3.2:3b"):
    response = requests.post(
        "http://localhost:11434/api/chat",
        json={
            "model": model,
            "messages": [{"role": "user", "content": user_message}],
            "stream": False
        }
    )
    return response.json()["message"]["content"]

# 交互式聊天
while True:
    user_input = input("You: ")
    if user_input.lower() in ['quit', 'exit', 'q']:
        break
    response = chat_with_model(user_input)
    print(f"AI: {response}\n")

管理容器

常用 Docker 命令

bash
# 列出运行中的容器
docker ps

# 列出所有容器(包括已停止的)
docker ps -a

# 查看容器日志
docker logs <container-name>

# 停止容器
docker stop <container-name>

# 重启容器
docker restart <container-name>

# 删除容器
docker rm <container-name>

# 进入运行中的容器
docker exec -it <container-name> bash

资源监控

bash
# 监控容器资源使用
docker stats

# 检查磁盘使用
docker system df

自定义部署

环境变量

许多示例支持通过环境变量进行配置:

bash
# 示例:为 Ollama 设置模型参数
docker run -d \
  --name ollama \
  --gpus all \
  -e OLLAMA_HOST=0.0.0.0:11434 \
  -p 11434:11434 \
  ollama/ollama:latest

卷挂载

在容器重启之间持久化数据:

bash
# 挂载本地目录用于模型存储
docker run -d \
  --name ollama \
  --gpus all \
  -v /path/to/models:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama:latest

网络配置

从网络上的其他设备访问服务:

bash
# 绑定到所有接口(不仅仅是本地主机)
docker run -d \
  --name ollama \
  --gpus all \
  -p 0.0.0.0:11434:11434 \
  ollama/ollama:latest

性能提示

1. 使用 GPU 直通

始终确保 Docker 有 GPU 访问权限:

bash
# 验证容器中的 GPU 访问
docker exec -it <container-name> nvidia-smi

2. 分配适当的内存

bash
# 限制容器内存(可选,用于多容器设置)
docker run -d \
  --name ollama \
  --gpus all \
  --memory=12g \
  --memory-swap=16g \
  ollama/ollama:latest

3. 使用 SSD 存储

模型从 SSD 加载比从 SD 卡或 eMMC 更快。

常见问题及解决方案

问题 1:Docker 权限被拒绝

问题Got permission denied while trying to connect to the Docker daemon socket

解决方案

bash
# 将用户添加到 docker 组
sudo usermod -aG docker $USER

# 注销并重新登录以使更改生效
# 或在当前会话中运行:
newgrp docker

问题 2:容器无法启动

问题:容器启动后立即退出

解决方案

bash
# 检查容器日志中的错误
docker logs <container-name>

# 检查可用资源
free -h
df -h
nvidia-smi

示例仓库和项目

探索 jetson-examples 仓库中的这些示例:

llama-factory

在 Jetson 设备上微调 LLM:

bash
reComputer run llama-factory

模型/数据大小:13.5GB

live-vlm-webui

实时视觉语言模型界面:

bash
reComputer run live-vlm-webui

功能:带有 AI 理解的实时摄像头画面处理

deep-live-cam

实时换脸和处理:

bash
reComputer run deep-live-cam

实践练习

  1. 安装 jetson-examples 工具
  2. 部署 Ollama 并运行 llama3.2:3b
  3. 部署 LLaVA 用于图像理解
  4. 创建一个 Python 脚本 与部署的模型交互
  5. 设置 Open WebUI 用于图形界面
  6. 探索 仓库中的其他示例

参考资料


下一步:继续学习 模块 5.6:构建 ASR + LLM + TTS 管道,创建一个完整的语音助手!