NanoLLM
NVIDIA Jetson 边缘设备上的高效 LLM 推理框架,支持 MLC/AWQ/HF 三种量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
NVIDIA Jetson 边缘设备上的高效 LLM 推理框架,支持 MLC/AWQ/HF 三种量化
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象你有一台 NVIDIA Jetson AGX Orin,想让它跑一个 8B 参数的 Llama-2 对话模型,但每次都要折腾 CUDA、TVM、PyTorch 一大堆依赖,还要手动量化、编译——光是环境配置就让人想放弃。
NanoLLM 就是来解决这个痛点的。这是一个由 NVIDIA Jetson 专家 dusty-nv(John Fehr)主导维护的轻量级 LLM 推理库,最初从 jetson-containers 项目中独立出来,专注于在 NVIDIA Jetson 边缘设备上实现高效、本地化的大模型推理。
项目的核心设计哲学是:HuggingFace-like API + 多后端量化推理 + 开箱即用的 Web UI。无论你是想跑纯文本 LLM、视觉语言模型(VLM)还是语音合成(TTS),NanoLLM 都提供了统一的 Plugin 管道接口。
NanoLLM 的代码架构非常清晰,核心分为三大模块:
支持三种后端量化推理引擎,这是 NanoLLM 的核心技术差异化所在:
nano_llm/models/mlc.py(31KB),负责 TVM 运行时初始化、CUDA 内存管理和流式生成。nano_llm/models/awq.py(16KB)。nano_llm/models/hf.py(12KB)。Plugin 是 NanoLLM 的核心抽象,基类 Plugin 继承自 threading.Thread,每个插件运行独立线程,通过队列异步传递数据。这种设计让多模态管道搭建变得极为简单:
通过 Agent 类将多个 Plugin 组装成管道(Pipeline),支持 DAG 拓扑结构,还能导出 Mermaid 流程图。
内置 Flask + WebSocket 服务器(WebServer 类,18KB),提供 HTTP REST 接口、WebSocket 双向流式通信、文件上传/下载、Jinja2 模板渲染和 HTTPS/SSL 支持。
NanoLLM 不仅是一个推理库,更是一套完整的边缘 AI 工具链。
终端对话:python3 -m nano_llm.chat 支持多轮对话、历史管理、Chat 模板自动检测(Llama 2/3、Vicuna、StableLM、Gemma 等)。
函数调用:支持 OpenAI 风格的工具调用,通过 @bot_function 装饰器将 Python 函数暴露给 LLM,让模型能够主动调用外部工具完成复杂任务。这是构建 Agent 的基础能力。
多模态支持:视觉方面支持 Llava、VILA、NousHermes/Obsidian 等 VLM;语音方面支持 Riva ASR/TTS、Piper TTS、XTTS 语音合成;RAG 方面内置向量数据库插件。
KV Cache 接口:提供 KVCache 类用于操作注意力缓存,支持上下文复用和流式推理。
NanoLLM 的官方推荐部署方式是 Docker 容器,镜像托管在 DockerHub(dustynv/nano_llm)。一行命令即可自动拉取与当前 JetPack 版本匹配的镜像:
jetson-containers run $(autotag nano_llm)
支持 JetPack 5(r35.4.1)和 JetPack 6(r36.2.0)。不过需要注意:NanoLLM 最佳运行在 NVIDIA Jetson 系列设备上(AGX Orin > NX > Nano),x86 GPU 平台需要自行处理 TVM/MLC 编译。
亮点:
局限:
在 Edge AI 场景中,能效比往往比绝对性能更重要。NanoLLM 通过 MLC 量化编译优化,在 Jetson AGX Orin(72 TOPS INT8)上实现了单卡运行压缩版大模型,且延迟可控。作者 dusty-nv 同时维护 jetson-containers 项目,两者的协同效应使 Jetson 生态成为边缘 AI 推理最友好的平台之一。对于想在边缘设备上快速验证 AI 原型的开发者,NanoLLM 几乎是必选项。