Jetson Orin NX 上部署 Ollama + Llama 3.2

Jetson Orin NX 上部署 Ollama + Llama 3.2

关键词: Jetson Orin NX, JetPack 5, Ubuntu 20.04, Ollama, Llama 3.2, CUDA, GPU推理, 边缘计算, ARM64
阅读时长: 约15分钟

📋 文章导航


前言

随着大语言模型(LLM)的快速发展,如何在边缘设备上高效部署和运行这些模型成为了热门话题。NVIDIA Jetson Orin NX 作为一款强大的边缘AI计算平台,凭借其 100 TOPS 的AI算力和 16GB 统一内存,为边缘端LLM推理提供了可能。

本文将详细介绍如何在 Jetson Orin NX(JetPack 5 / Ubuntu 20.04) 上部署 Ollama,并通过 GPU加速 运行 Meta最新的Llama 3.2模型。我们将从零开始,一步步搭建一个完整的本地大模型推理平台。

💡 重要提示: 虽然Orin NX具备一定的AI算力,但与桌面级GPU(如RTX 3090)相比,其算力和内存带宽仍有较大差距。因此,在边缘端部署时,我们需要合理选择模型规模、优化推理参数,并做好性能预期管理。

一、环境准备与系统要求

1.1 硬件要求

组件要求推荐配置
设备型号Jetson Orin NXOrin NX 16GB
内存≥8GB16GB
存储≥32GBNVMe SSD 256GB+
系统JetPack 5.xJetPack 5.1.2+
网络可访问GitHub配置代理(可选)

1.2 软件要求

  • 操作系统: Ubuntu 20.04 LTS(L4T)
  • JetPack版本: 5.0 或更高
  • CUDA: 11.4+(JetPack自带)
  • cuDNN: 8.6+(JetPack自带)

1.3 模型存储空间估算

模型名称量化版本模型大小推荐内存
Llama 3.2 1BQ4_0~1GB4GB+
Llama 3.2 3BQ4_0~2GB8GB+
Llama 3.2 3BQ8_0~3.5GB12GB+
📌 建议: 初学者建议从 1b-instruct-q4_0 开始,验证流程后再尝试更大的模型。

二、系统环境检查

在开始安装前,让我们先检查系统环境是否满足要求。

2.1 检查JetPack版本

# 查看L4T版本cat /etc/nv_tegra_release # 查看系统信息uname -a lsb_release -a # 查看JetPack版本(如果已安装SDK Manager)apt list --installed |grep nvidia-jetpack 

预期输出示例:

# R35 (release), REVISION: 3.1, GCID: 32827747, BOARD: t186ref, EABI: aarch64 Ubuntu 20.04.6 LTS 

2.2 验证GPU状态

Jetson设备使用 tegrastats 代替 nvidia-smi

# 实时监控GPU状态sudo tegrastats # 查看GPU信息sudo jetson_clocks --show 

关键指标说明:

  • GR3D_FREQ:GPU频率和使用率
  • RAM:内存使用情况
  • SWAP:交换分区使用情况
  • EMC_FREQ:内存频率

2.3 存储空间规划

# 查看磁盘空间df -h # 查看块设备 lsblk # 如果有NVMe,建议使用ls /dev/nvme* 
💾 最佳实践: 强烈建议将模型文件存储在 NVMe SSD 上,避免使用eMMC或SD卡,以获得更好的I/O性能。

三、安装Ollama(JetPack 5专用版)

3.1 安装目录规划

为了保持系统整洁,我们采用用户目录安装方式:

# 创建安装目录结构mkdir -p ~/apps/ollama/{bin,lib,tmp}# 创建模型存储目录(建议使用NVMe)sudomkdir -p /data/ollama/models sudochown$USER:$USER /data/ollama/models # 或使用用户目录(空间充足时)mkdir -p ~/.ollama/models 

3.2 下载Ollama JetPack 5版本

# 设置代理(如需要)exportHTTP_PROXY=http://127.0.0.1:你的端口 exportHTTPS_PROXY=http://127.0.0.1:你的端口 # 获取最新版本号TAG=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest \|grep -m1 '"tag_name"'|cut -d'"' -f4)echo"Latest version: $TAG"# 下载JetPack 5专用版本curl -fL "https://github.com/ollama/ollama/releases/download/${TAG}/ollama-linux-arm64-jetpack5.tgz"\ -o ~/apps/ollama/tmp/ollama-jetpack5.tgz 

3.3 安装Ollama

# 解压文件cd ~/apps/ollama/tmp tar -xzf ollama-jetpack5.tgz # 安装二进制文件mv bin/ollama ~/apps/ollama/bin/ chmod +x ~/apps/ollama/bin/ollama # 安装运行库(重要!)cp -r lib/* ~/apps/ollama/lib/ # 验证安装 ~/apps/ollama/bin/ollama --version 

成功输出示例:

ollama version 0.4.8 

四、配置运行环境

4.1 配置环境变量

# 当前会话生效exportPATH="$HOME/apps/ollama/bin:$PATH"exportOLLAMA_MODELS="/data/ollama/models"exportOLLAMA_HOST="127.0.0.1:11434"# 可选:限制并发和上下文长度(边缘设备推荐)exportOLLAMA_NUM_PARALLEL=1exportOLLAMA_CONTEXT_LENGTH=2048

4.2 永久保存配置

# 添加到 .bashrccat>> ~/.bashrc <<'EOF' # Ollama Configuration export PATH="$HOME/apps/ollama/bin:$PATH" export OLLAMA_MODELS="/data/ollama/models" export OLLAMA_HOST="127.0.0.1:11434" export OLLAMA_NUM_PARALLEL=1 export OLLAMA_CONTEXT_LENGTH=2048 EOF# 立即生效source ~/.bashrc 

五、启动Ollama服务与GPU验证

5.1 启动服务

# 启动Ollama服务 ollama serve 

5.2 验证GPU支持

成功启动的关键标志:

time=2024-12-15T10:00:00.000+08:00 level=INFO source=gpu.go:199 msg="detected GPU" library=cuda compute=8.7 driver=11.4 name="NVIDIA Orin" total="15.7 GiB" available="14.2 GiB" 
如果看到 library=cpu 说明GPU未启用,请检查:是否安装了 lib 目录是否使用了正确的 jetpack5 版本CUDA环境是否正常

5.3 GPU使用监控

新开一个终端,运行:

# 实时监控GPU使用情况sudo tegrastats # 查看显存使用free -h 

六、部署Llama 3.2模型

6.1 模型选择策略

对于Jetson Orin NX,推荐按以下顺序尝试:

  1. 入门级:llama3.2:1b-instruct-q4_0 (~1GB,速度最快)
  2. 平衡型:llama3.2:3b-instruct-q4_0 (~2GB,效果更好)
  3. 进阶型:llama3.2:3b-instruct-q8_0 (~3.5GB,精度更高)

6.2 拉取模型

# 保持ollama serve运行,新开终端# 拉取1B模型(推荐首选) ollama pull llama3.2:1b-instruct-q4_0 # 查看下载进度和信息 ollama list 

下载进度示例:

pulling manifest pulling 1890919b6184... 100% ████████████████ 976 MB pulling a70ff7e570d5... 100% ████████████████ 342 B pulling 5ad0a1049874... 100% ████████████████ 110 B verifying sha256 digest writing manifest success 

6.3 运行模型

# 交互式对话 ollama run llama3.2:1b-instruct-q4_0 # 示例对话>>> 介绍一下NVIDIA Jetson平台 

6.4 性能测试

# 简单性能测试time ollama run llama3.2:1b-instruct-q4_0 "写一个Python快速排序函数"# 批量测试echo"What is AI?"| ollama run llama3.2:1b-instruct-q4_0 

七、HTTP API接口调用

Ollama提供RESTful API,方便集成到各种应用中。

7.1 生成接口 /api/generate

# 非流式响应curl -X POST http://127.0.0.1:11434/api/generate \ -H 'Content-Type: application/json'\ -d '{ "model": "llama3.2:1b-instruct-q4_0", "prompt": "解释什么是边缘计算", "stream": false, "options": { "temperature": 0.7, "top_p": 0.9, "max_tokens": 200 } }'| jq 

7.2 对话接口 /api/chat

# 多轮对话示例curl -X POST http://127.0.0.1:11434/api/chat \ -H 'Content-Type: application/json'\ -d '{ "model": "llama3.2:1b-instruct-q4_0", "messages": [ {"role": "system", "content": "你是一个专业的机器人导航助手"}, {"role": "user", "content": "如何实现语义地标导航?"} ], "stream": false, "options": { "temperature": 0.5 } }'| jq 

7.3 流式响应

# Python示例:流式响应import requests import json url ='http://127.0.0.1:11434/api/generate' data ={'model':'llama3.2:1b-instruct-q4_0','prompt':'写一首关于机器人的诗','stream':True} response = requests.post(url, json=data, stream=True)for line in response.iter_lines():if line: chunk = json.loads(line)print(chunk['response'], end='', flush=True)

八、性能优化与调优

8.1 Jetson功耗模式优化

# 查看当前功耗模式sudo nvpmodel -q # 切换到最高性能模式(MODE_15W_6CORE)sudo nvpmodel -m 0# 锁定最高频率sudo jetson_clocks # 查看当前频率设置sudo jetson_clocks --show 

8.2 内存和上下文优化

# 限制上下文长度(减少内存占用)exportOLLAMA_CONTEXT_LENGTH=1024# 限制并发请求exportOLLAMA_NUM_PARALLEL=1# 设置模型保持时间exportOLLAMA_KEEP_ALIVE=5m 

8.3 存储优化

# 清理未使用的模型 ollama rm model_name # 查看模型占用空间du -sh $OLLAMA_MODELS/* # 定期清理缓存rm -rf $OLLAMA_MODELS/.cache/* 

8.4 性能监控脚本

#!/bin/bash# monitor_ollama.shecho"Monitoring Ollama Performance..."echo"================================"whiletrue;doclearecho"$(date'+%Y-%m-%d %H:%M:%S')"echo"--------------------------------"# GPU状态echo"GPU Status:"sudo tegrastats |head -n1 # 内存使用echo -e "\nMemory Usage:"free -h |grep -E "^Mem|^Swap"# Ollama进程echo -e "\nOllama Process:"ps aux |grep -E "ollama|PID"|grep -v grep# 模型列表echo -e "\nLoaded Models:" ollama list 2>/dev/null ||echo"Service not running"sleep5done

九、常见问题与解决方案

9.1 问题诊断清单

问题可能原因解决方案
只显示CPU推理未安装lib目录重新解压并复制lib文件夹
内存不足错误模型过大/上下文过长减小CONTEXT_LENGTH或使用更小模型
推理速度慢功耗模式限制执行sudo jetson_clocks
模型下载失败网络问题配置代理或使用镜像源
端口被占用11434已被使用修改OLLAMA_HOST端口

9.2 调试命令集

# 检查CUDA是否可用 python3 -c "import torch; print(torch.cuda.is_available())"# 查看Ollama日志 journalctl -u ollama --no-pager -n 50# 测试API连接curl http://127.0.0.1:11434/api/tags # 强制使用GPUexportCUDA_VISIBLE_DEVICES=0

9.3 性能问题排查

# 1. 检查温度节流cat /sys/class/thermal/thermal_zone*/temp # 2. 查看内存碎片cat /proc/buddyinfo # 3. 检查I/O性能 iostat -x 1# 4. 分析系统瓶颈htop iotop 

十、系统服务配置

10.1 创建systemd服务

# 创建用户级服务mkdir -p ~/.config/systemd/user cat> ~/.config/systemd/user/ollama.service <<'EOF' [Unit] Description=Ollama AI Model Server After=network-online.target Wants=network-online.target [Service] Type=simple Restart=always RestartSec=3 TimeoutStartSec=300 # 环境变量 Environment="PATH=%h/apps/ollama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Environment="OLLAMA_MODELS=/data/ollama/models" Environment="OLLAMA_HOST=127.0.0.1:11434" Environment="OLLAMA_KEEP_ALIVE=5m" Environment="OLLAMA_NUM_PARALLEL=1" Environment="OLLAMA_CONTEXT_LENGTH=2048" # 启动命令 ExecStart=%h/apps/ollama/bin/ollama serve # 资源限制 LimitNOFILE=65536 LimitMEMLOCK=infinity [Install] WantedBy=default.target EOF

10.2 启用服务

# 重载服务配置 systemctl --user daemon-reload # 启用开机自启 systemctl --user enable ollama # 启动服务 systemctl --user start ollama # 查看状态 systemctl --user status ollama # 查看日志 journalctl --user -u ollama -f 

10.3 设置用户会话持久化

# 启用linger(需要sudo权限)sudo loginctl enable-linger $USER# 验证 loginctl show-user $USER|grep Linger 

十一、实战应用场景

11.1 机器人语义导航集成

#!/usr/bin/env python3""" 机器人语义地标导航示例 集成Ollama进行自然语言理解 """import json import requests from typing import Dict, List classSemanticNavigator:def__init__(self, ollama_url="http://127.0.0.1:11434"): self.ollama_url = ollama_url self.model ="llama3.2:1b-instruct-q4_0"defparse_navigation_intent(self, user_input:str)-> Dict:"""解析用户导航意图""" prompt =f"""你是一个机器人导航助手。 分析以下指令并返回JSON格式: {{"action": "navigate/stop/pause", "landmark": "具体地标名称", "confidence": 0.0-1.0}} 用户指令:{user_input} 只返回JSON,不要其他解释。""" response = requests.post(f"{self.ollama_url}/api/generate", json={"model": self.model,"prompt": prompt,"stream":False,"options":{"temperature":0.3}})try: result = response.json()['response']return json.loads(result)except:return{"action":"unknown","landmark":None,"confidence":0.0}defget_path_description(self, start:str, end:str)->str:"""生成路径描述""" prompt =f"用一句话描述从{start}到{end}的路径。" response = requests.post(f"{self.ollama_url}/api/generate", json={"model": self.model,"prompt": prompt,"stream":False,"options":{"temperature":0.5,"max_tokens":50}})return response.json()['response']# 使用示例if __name__ =="__main__": nav = SemanticNavigator()# 测试意图解析 test_commands =["带我去充电桩","停止移动","去会议室开会"]for cmd in test_commands: result = nav.parse_navigation_intent(cmd)print(f"指令: {cmd}")print(f"解析: {json.dumps(result, ensure_ascii=False)}")print("-"*40)

11.2 边缘端优化建议

  1. 模型选择优先级
    • 任务简单 → 1B模型
    • 需要推理 → 3B模型
    • 实时要求 → Q4量化
    • 精度要求 → Q8量化
  2. 性能优化技巧
    • 使用结构化提示词
    • 限制输出长度
    • 缓存常见查询
    • 异步处理非关键任务

系统架构设计

感知层 (Camera/Lidar) ↓ 场景理解 (CV/SLAM) ↓ 语义提取 (JSON) ↓ LLM推理 (Ollama) ↓ 决策规划 (Structured Output) ↓ 执行控制 (ROS Actions) 

总结

通过本教程,我们成功在 Jetson Orin NX 上部署了 Ollama + Llama 3.2 的GPU加速推理环境。关键要点包括:

📊 性能参考

  • 1B模型: 首token延迟 ~2-3秒,生成速度 ~10-15 tokens/s
  • 3B模型: 首token延迟 ~5-8秒,生成速度 ~5-8 tokens/s
  • 功耗: 满载约15W,待机约5W

💬 交流与反馈

如果在部署过程中遇到问题,或有更好的优化方案,欢迎在评论区交流讨论!


相关资源:

标签:JetsonOllamaLlama3.2边缘AIGPU推理JetPack5CUDA机器人嵌入式AI

Read more

2026年03月14日全球AI前沿动态

2026年03月14日全球AI前沿动态

一句话总结 2026年3月13日前后,全球科技企业在AI大模型、智能体、硬件基础设施、跨行业应用等领域密集发布新品与技术突破,涵盖模型优化、智能体部署、硬件升级、落地场景拓展等多维度,同步伴随投资并购、政策监管、人才流动及伦理安全争议等行业动态。 一、模型与技术突破 1.1 通用大模型(大语言模型与多模态模型) * 英伟达:发布开源模型Nemotron 3 Super,120B参数,混合Mamba-Transformer架构,原生支持100万token上下文,PinchBench得分85.6%(开源榜首);采用NVFP4格式预训练,适配Blackwell架构,B200芯片推理速度达H100的4倍,吞吐量超上代5倍。 * xAI:发布Grok4.20,非幻觉率78%(创行业纪录),智能指数48分(较前代+6分),每百万令牌成本2-6美元;支持事实可靠推理,适用于严谨行业场景。 * 谷歌:发布Gemini Embedding 2,首个原生多模态嵌入模型,可将文本、

人工智能:大模型高效推理与部署技术实战

人工智能:大模型高效推理与部署技术实战

人工智能:大模型高效推理与部署技术实战 1.1 本章学习目标与重点 💡 学习目标:掌握大语言模型推理与部署的核心技术,理解模型量化、推理加速、服务化部署的原理,能够完成开源大模型的高性能生产级部署。 💡 学习重点:精通INT4/INT8量化技术的应用,掌握vLLM等高性能推理框架的使用方法,学会搭建高并发的大模型API服务。 1.2 大模型推理部署的核心挑战 1.2.1 大模型推理的痛点分析 💡 预训练大模型通常具备数十亿甚至上百亿的参数量,直接进行推理会面临显存占用高、推理速度慢、并发能力弱三大核心问题。 * 显存占用高:以LLaMA-2-7B模型为例,FP16精度下显存占用约14GB,单张消费级显卡难以承载;而70B模型FP16精度显存占用更是超过140GB,普通硬件完全无法运行。 * 推理速度慢:自回归生成的特性导致模型需要逐token计算,单条长文本生成可能需要数十秒,无法满足实时应用需求。 * 并发能力弱:传统推理方式下,单卡同时处理的请求数极少,高并发场景下会出现严重的排队和延迟问题。 这些问题直接制约了大模型从实验室走向实际生产环境,因此高效

微信终于开放官方 Bot API!ClawBot 插件深度解析,AI 开发者的新机遇

微信终于开放官方 Bot API!ClawBot 插件深度解析,AI 开发者的新机遇

⚡⚡⚡ 欢迎预览,批评指正⚡⚡⚡ 文章目录 * 一、历史性时刻:微信开放官方 Bot API * 二、插件概况:什么是 ClawBot? * 2.1 官方定位 * 2.2 核心能力 * 三、技术亮点:iLink 协议深度解析 * 3.1 协议概览 * 3.2 认证机制 * 3.3 长轮询机制 * 3.4 消息结构 * 3.5 回复机制(关键!) * 3.6 CDN 媒体加密 * 四、启用插件:5 分钟快速上手 * 4.1 前置条件 * 4.

Visual Studio2022中好用的AI编码工具介绍——Windsurf(Codeium)

Visual Studio2022中好用的AI编码工具介绍——Windsurf(Codeium)

一、Codeium介绍 Windsurf:免费的 AI 驱动代码加速工具包 什么是 Windsurf? Windsurf 是一款现代化的编程“超能力”工具——一个基于前沿 AI 技术构建的免费代码加速工具包。 目前,Windsurf 提供 代码自动补全 和 智能对话(Chat) 功能,支持 70 多种编程语言,拥有极快的响应速度和行业领先的代码建议质量。 在现代软件开发流程中,有很多环节既枯燥、繁琐,又令人沮丧——比如反复书写样板代码、在 Stack Overflow 上翻来覆去查问题。随着 AI 技术的快速发展,我们已经可以消除这些低效环节,让你把想法无缝地转化为代码。 Windsurf 可轻松集成到 Visual Studio Code 中,安装过程不到 2 分钟。