一天一个开源项目(第9篇):NexaSDK - 跨平台设备端 AI 运行时,让前沿模型在本地运行

引言

"如果最新的 AI 模型能在你的手机上、IoT 设备上、甚至边缘设备上运行,而不需要依赖云端,那该多好?"

这是"一天一个开源项目"系列的第9篇文章。今天带你了解的项目是 NexaSDKGitHub)。

想象一下,你可以在 Android 手机上运行 Qwen3-VL 多模态模型,在 iOS 设备上使用 Apple Neural Engine 进行语音识别,在 Linux IoT 设备上运行 Granite-4 模型,所有这一切都不需要连接到云端。这就是 NexaSDK 带来的革命性体验------让前沿 AI 模型真正"落地"到各种设备上。

为什么选择这个项目?

  • 🚀 NPU 优先:业界首个 NPU-first 的设备端 AI 运行时
  • 📱 全平台支持:PC、Android、iOS、Linux/IoT 全覆盖
  • 🎯 Day-0 模型支持:支持最新发布的模型(GGUF、MLX、NEXA 格式)
  • 🔌 多模态能力:LLM、VLM、ASR、OCR、Rerank、图像生成等
  • 🌟 社区认可:7.6k+ Stars,与 Qualcomm 合作举办设备端 AI 竞赛

你将学到什么

  • NexaSDK 的核心概念和架构设计
  • 如何在各种平台上运行设备端 AI 模型
  • NPU、GPU、CPU 三种计算后端的支持和使用
  • 多模态 AI 能力的集成和使用
  • 与其他设备端 AI 框架的对比分析
  • 如何开始使用 NexaSDK 构建设备端 AI 应用

前置知识

  • 对 LLM 和 AI 模型有基本了解
  • 熟悉至少一种编程语言(Python、Go、Kotlin、Swift)
  • 了解设备端 AI 的基本概念(可选)
  • 对 NPU、GPU 等硬件加速有基本了解(可选)

项目背景

项目简介

NexaSDK 是一个跨平台的设备端 AI 运行时,支持在 GPU、NPU 和 CPU 上运行前沿的 LLM 和 VLM 模型。它提供了全面的运行时覆盖,支持 PC(Python/C++)、移动端(Android & iOS)和 Linux/IoT(Arm64 & x86 Docker)平台。

项目解决的核心问题

  • 设备端 AI 运行时碎片化,不同平台需要不同的解决方案
  • 缺乏对 NPU 的原生支持,无法充分利用硬件加速
  • 新模型发布后,设备端支持滞后(缺乏 day-0 支持)
  • 多模态 AI 能力在设备端难以集成
  • 跨平台开发成本高,需要为每个平台单独实现

面向的用户群体

  • 需要构建设备端 AI 应用的开发者
  • 希望利用 NPU 加速的移动应用开发者
  • 需要在 IoT 设备上运行 AI 模型的开发者
  • 对设备端 AI 感兴趣的研究人员

作者/团队介绍

团队:NexaAI

  • 背景:专注于设备端 AI 解决方案的团队
  • 合作伙伴:与 Qualcomm 合作,举办设备端 AI 竞赛
  • 贡献者:45 位贡献者,包括 @RemiliaForever、@zhiyuan8、@mengshengwu 等
  • 理念:让前沿 AI 模型能够在各种设备上高效运行

项目创建时间:2024年(从 GitHub 提交历史可以看出项目持续活跃)

项目数据

  • GitHub Stars: 7.6k+(持续快速增长)
  • 🍴 Forks: 944+
  • 📦 版本: v0.2.71(最新版本,2026年1月22日发布)
  • 📄 License: Apache-2.0(CPU/GPU 组件),NPU 组件需要许可证
  • 🌐 官网 : docs.nexa.ai
  • 📚 文档 : 完整文档
  • 💬 社区: Discord、Slack 社区活跃
  • 🏆 竞赛: Nexa × Qualcomm 设备端 AI 竞赛($6,500 奖金)

项目发展历程

  • 2024年:项目启动,初步版本发布
  • 2024-2025年:快速发展,添加多平台支持
  • 2025年:NPU 支持完善,与 Qualcomm 合作
  • 2026年:持续迭代,添加更多模型和功能支持

支持的模型

  • OpenAI GPT-OSS
  • IBM Granite-4
  • Qwen-3-VL
  • Gemma-3n
  • Ministral-3
  • 以及更多前沿模型

主要功能

核心作用

NexaSDK 的核心作用是提供统一的跨平台设备端 AI 运行时,让开发者能够:

  1. 在多种设备上运行 AI 模型:PC、手机、IoT 设备全覆盖
  2. 充分利用硬件加速:NPU、GPU、CPU 三种后端自动选择
  3. 快速集成新模型:Day-0 支持,新模型发布即可使用
  4. 多模态 AI 能力:文本、图像、音频、视频等全方位支持
  5. 简化开发流程:统一的 API,一套代码多平台运行

使用场景

  1. 移动端 AI 应用

    • 手机上的智能助手
    • 离线语音识别和翻译
    • 图像识别和处理
    • 本地 LLM 对话应用
  2. IoT 和边缘计算

    • 智能家居设备的 AI 能力
    • 工业 IoT 的智能分析
    • 边缘服务器的 AI 推理
    • 自动驾驶设备的感知能力
  3. 桌面应用集成

    • 本地 AI 助手
    • 文档智能处理
    • 代码生成工具
    • 创意内容生成
  4. 企业级应用

    • 数据隐私保护(本地处理)
    • 离线 AI 能力
    • 降低云端成本
    • 实时响应需求
  5. 研究和开发

    • 模型性能测试
    • 硬件加速研究
    • 新模型验证
    • 算法优化实验

快速开始

CLI 方式(最简单)
bash 复制代码
# 安装 Nexa CLI
# Windows (x64 with Intel/AMD NPU)
# 下载: nexa-cli_windows_x86_64.exe

# macOS (x64)
# 下载: nexa-cli_macos_x86_64.pkg

# Linux (ARM64)
curl -L https://github.com/NexaAI/nexa-sdk/releases/latest/download/nexa-cli_linux_arm64.sh | bash

# 运行第一个模型
nexa infer ggml-org/Qwen3-1.7B-GGUF

# 多模态:拖拽图片到 CLI
nexa infer NexaAI/Qwen3-VL-4B-Instruct-GGUF

# NPU 支持(Windows arm64 with Snapdragon X Elite)
nexa infer NexaAI/OmniNeural-4B
Python SDK
python 复制代码
# 安装
pip install nexaai

# 使用示例
from nexaai import LLM, GenerationConfig, ModelConfig, LlmChatMessage

# 创建 LLM 实例
llm = LLM.from_(model="NexaAI/Qwen3-0.6B-GGUF", config=ModelConfig())

# 构建对话
conversation = [
    LlmChatMessage(role="user", content="Hello, tell me a joke")
]
prompt = llm.apply_chat_template(conversation)

# 流式生成
for token in llm.generate_stream(prompt, GenerationConfig(max_tokens=100)):
    print(token, end="", flush=True)
Android SDK
kotlin 复制代码
// 添加到 build.gradle.kts
dependencies {
    implementation("ai.nexa:core:0.0.19")
}

// 初始化 SDK
NexaSdk.getInstance().init(this)

// 加载和运行模型
VlmWrapper.builder()
    .vlmCreateInput(VlmCreateInput(
        model_name = "omni-neural",
        model_path = "/data/data/your.app/files/models/OmniNeural-4B/files-1-1.nexa",
        plugin_id = "npu",
        config = ModelConfig()
    ))
    .build()
    .onSuccess { vlm ->
        vlm.generateStreamFlow("Hello!", GenerationConfig()).collect { print(it) }
    }
iOS SDK
swift 复制代码
import NexaSdk

// 示例:语音识别
let asr = try Asr(plugin: .ane)
try await asr.load(from: modelURL)

let result = try await asr.transcribe(options: .init(audioPath: "audio.wav"))
print(result.asrResult.transcript)
Linux Docker
bash 复制代码
# 拉取镜像
docker pull nexa4ai/nexasdk:latest

# 运行(需要 NPU token)
export NEXA_TOKEN="your_token_here"
docker run --rm -it --privileged \
  -e NEXA_TOKEN \
  nexa4ai/nexasdk:latest infer NexaAI/Granite-4.0-h-350M-NPU

核心特性

  1. NPU 优先支持

    • 业界首个 NPU-first 的设备端 AI 运行时
    • 支持 Qualcomm Hexagon NPU
    • 支持 Apple Neural Engine (ANE)
    • 支持 Intel/AMD NPU
    • 显著提升性能和能效比
  2. 全平台运行时

    • PC: Python/C++ SDK
    • Android: Kotlin SDK,支持 NPU/GPU/CPU
    • iOS: Swift SDK,支持 ANE
    • Linux/IoT: Docker 镜像,支持 Arm64 & x86
  3. Day-0 模型支持

    • 支持最新发布的模型
    • 支持多种模型格式:GGUF、MLX、NEXA
    • 快速集成新模型到设备端
  4. 多模态 AI 能力

    • LLM: 大语言模型
    • VLM: 视觉语言模型(多模态)
    • ASR: 自动语音识别
    • OCR: 光学字符识别
    • Rerank: 重排序
    • Object Detection: 目标检测
    • Image Generation: 图像生成
    • Embedding: 向量嵌入
  5. 统一的 API 接口

    • OpenAI 兼容的 API
    • Function calling 支持
    • 流式生成支持
    • 统一的配置接口
  6. 模型格式支持

    • GGUF: 广泛使用的量化格式
    • MLX: Apple MLX 框架格式
    • NEXA: NexaSDK 原生格式
  7. 硬件加速优化

    • 自动选择最佳计算后端
    • NPU > GPU > CPU 的优先级
    • 针对不同硬件的优化
  8. 开发者友好

    • 一行代码运行模型
    • 详细的文档和示例
    • 活跃的社区支持
    • 丰富的 Cookbook

项目优势

与其他设备端 AI 框架相比,NexaSDK 的优势:

对比项 NexaSDK Ollama llama.cpp LM Studio
NPU 支持 ⭐⭐⭐⭐⭐ NPU-first ❌ 不支持 ❌ 不支持 ❌ 不支持
Android/iOS SDK ⭐⭐⭐⭐⭐ 完整支持 ⚠️ 部分支持 ⚠️ 部分支持 ❌ 不支持
Linux Docker ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持 ❌ 不支持
Day-0 模型支持 ⭐⭐⭐⭐⭐ GGUF/MLX/NEXA ❌ 滞后 ⚠️ 部分支持 ❌ 滞后
多模态支持 ⭐⭐⭐⭐⭐ 完整支持 ⚠️ 部分支持 ⚠️ 部分支持 ⚠️ 部分支持
跨平台支持 ⭐⭐⭐⭐⭐ 全平台 ⚠️ 部分平台 ⚠️ 部分平台 ⚠️ 部分平台
一行代码运行 ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持 ⚠️ 需要配置 ⭐⭐⭐⭐⭐ 支持
OpenAI API 兼容 ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持 ⭐⭐⭐⭐⭐ 支持

为什么选择 NexaSDK?

  • NPU 优先:充分利用硬件加速,性能和能效比最优
  • 全平台支持:一套 SDK 覆盖所有平台,降低开发成本
  • Day-0 支持:新模型发布即可使用,无需等待
  • 多模态能力:完整的 AI 能力栈,满足各种需求
  • 开发者友好:简单的 API,丰富的文档和示例

项目详细剖析

架构设计

NexaSDK 采用分层式架构,核心是统一的运行时抽象层:

复制代码
┌─────────────────────────────────────┐
│   应用层 (Applications)              │
│   - CLI / Python / Android / iOS    │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│   SDK 层 (SDK Layer)                 │
│   - 统一的 API 接口                   │
│   - 模型加载和管理                     │
│   - 配置和优化                         │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│   运行时层 (Runtime Layer)           │
│   - 计算后端抽象                       │
│   - 模型格式解析                       │
│   - 推理引擎                           │
└──────────────┬──────────────────────┘
               │
    ┌──────────┴──────────┐
    │                     │
┌───▼────┐         ┌─────▼─────┐
│  NPU   │         │   GPU     │
│ Plugin │         │  Plugin   │
└────────┘         └───────────┘
    │                     │
┌───▼─────────────────────▼─────┐
│   CPU Plugin (Fallback)        │
└────────────────────────────────┘

核心模块详解

1. 计算后端抽象层

功能:统一管理不同的计算后端(NPU、GPU、CPU)

设计特点

  • 插件化架构,易于扩展
  • 自动选择最佳后端
  • 优先级:NPU > GPU > CPU
  • 支持后端切换和回退

支持的 NPU

  • Qualcomm Hexagon NPU(Snapdragon)
  • Apple Neural Engine(iOS/macOS)
  • Intel/AMD NPU(Windows)
2. 模型格式支持

GGUF 格式

  • 广泛使用的量化格式
  • 支持多种量化级别
  • 兼容 llama.cpp 生态

MLX 格式

  • Apple MLX 框架格式
  • 针对 Apple Silicon 优化
  • 支持 macOS 和 iOS

NEXA 格式

  • NexaSDK 原生格式
  • 针对 NPU 优化
  • 更好的性能和兼容性
3. 多模态能力

LLM(大语言模型)

  • 文本生成和对话
  • 支持流式输出
  • 支持 Function Calling

VLM(视觉语言模型)

  • 图像理解和生成
  • 多模态对话
  • 视觉问答

ASR(自动语音识别)

  • 语音转文字
  • 支持多种音频格式
  • 实时识别支持

OCR(光学字符识别)

  • 图像中的文字识别
  • 多语言支持
  • 高精度识别

其他能力

  • Rerank:文本重排序
  • Object Detection:目标检测
  • Image Generation:图像生成
  • Embedding:向量嵌入
4. 平台特定实现

PC 平台(Python/C++)

  • Python SDK:易于使用
  • C++ SDK:高性能
  • 支持 Windows、macOS、Linux

Android 平台

  • Kotlin SDK
  • 支持 NPU(Snapdragon 8 Gen 4+)
  • 支持 GPU 和 CPU 回退
  • 最小 SDK 27

iOS 平台

  • Swift SDK
  • 支持 Apple Neural Engine
  • iOS 17.0+ / macOS 15.0+
  • Swift 5.9+

Linux/IoT 平台

  • Docker 镜像
  • 支持 Arm64 和 x86
  • 支持 Qualcomm Dragonwing IQ9
  • 适合边缘计算场景

关键技术实现

1. NPU 加速优化

挑战:不同厂商的 NPU 架构差异大

解决方案

  • 统一的 NPU 抽象层
  • 针对不同 NPU 的优化实现
  • 自动检测和选择 NPU
  • 性能监控和调优
2. 模型格式转换

挑战:支持多种模型格式,需要统一处理

解决方案

  • 格式解析器抽象
  • 统一的模型表示
  • 格式转换工具
  • 缓存机制优化
3. 跨平台兼容性

挑战:不同平台的 API 和限制不同

解决方案

  • 平台抽象层
  • 条件编译
  • 统一的配置接口
  • 平台特定的优化
4. 内存管理

挑战:设备端内存有限,需要高效管理

解决方案

  • 智能内存分配
  • 模型量化支持
  • 内存池管理
  • 及时释放资源

扩展机制

1. 添加新的计算后端

实现 Plugin 接口:

go 复制代码
type ComputeBackend interface {
    Name() string
    IsAvailable() bool
    LoadModel(config ModelConfig) error
    Generate(input Input, config GenerationConfig) (Output, error)
}
2. 添加新的模型格式

实现 FormatParser 接口:

go 复制代码
type FormatParser interface {
    CanParse(path string) bool
    Parse(path string) (*Model, error)
    Optimize(model *Model, target Backend) error
}
3. 添加新的 AI 能力

实现 Capability 接口:

go 复制代码
type Capability interface {
    Name() string
    SupportedModels() []string
    Process(input Input, config Config) (Output, error)
}

项目地址与资源

官方资源

适用人群

强烈推荐

  • 需要构建设备端 AI 应用的开发者
  • 希望利用 NPU 加速的移动应用开发者
  • 需要在 IoT 设备上运行 AI 模型的开发者
  • 对设备端 AI 性能优化感兴趣的研究人员

也适合

  • 想要学习设备端 AI 实现的学生
  • 需要评估不同 AI 框架的架构师
  • 对 NPU 加速感兴趣的技术人员

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

相关推荐
我送炭你添花2 小时前
开源TR-069 ACS(自动配置服务器)GenieACS 的四个主要模块详细介绍
运维·服务器·开源
量子-Alex2 小时前
【大模型技术报告】Qwen2-VL大模型训练过程理解
人工智能
FIT2CLOUD飞致云2 小时前
飞致云开源社区月度动态报告(2026年1月)
开源·飞致云·月度报告·开源日报
java1234_小锋2 小时前
【AI大模型舆情分析】微博舆情分析可视化系统(pytorch2+基于BERT大模型训练微调+flask+pandas+echarts) 实战(上)
人工智能·flask·大模型·bert
新缸中之脑2 小时前
Imagerouter.io: 免费图像生成API
人工智能
MM_MS2 小时前
Halcon图像点运算、获取直方图、直方图均衡化
图像处理·人工智能·算法·目标检测·计算机视觉·c#·视觉检测
阿杰学AI2 小时前
AI核心知识77——大语言模型之Joint Training(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·rag·联合训练·joint training
DFT计算杂谈2 小时前
VASP+PHONOPY+pypolymlpj计算不同温度下声子谱,附批处理脚本
java·前端·数据库·人工智能·python
星爷AG I2 小时前
9-23 动作意图理解(AGI基础理论)
人工智能·agi