llmedge
Aatricks/llmedge加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

llmedge 作者 Aatricks 的 GitHub 头像
想象这样一个场景:你正在地铁里,手机信号断断续续,想让 AI 帮你翻译一段外语文档,却发现调用云端 API 时网络根本不通。或者你是一个隐私敏感的用户,不希望自己的聊天记录被上传到第三方服务器。这个时候,如果你的手机本身就能跑一个大语言模型,所有推理都在本地完成,不依赖任何网络——那该有多好。
llmedge 正是为解决这个痛点而生的。这是一个专为 Android 打造的端侧 AI 推理库,能够在你的手机、平板乃至 Android 开发板上运行 GGUF 格式的大语言模型、图像生成模型,甚至视频生成模型,全部本地完成,无需联网。
llmedge 由开发者 Aatricks 于 2025 年 9 月创建,是一个相对年轻但发展迅速的项目。目前已在 GitHub 获得 65 颗星,Apache-2.0 开源许可。项目的核心思路是:将成熟的高性能 C++ AI 推理引擎(llama.cpp、whisper.cpp、bark.cpp、stable-diffusion.cpp)通过 JNI 封装为 Kotlin API,让 Android 开发者能够以惯用的 Kotlin 风格调用这些强大的推理能力。
从技术选型来看,这是一个"站在巨人肩膀上"的策略——llama.cpp 是目前最流行的 GGUF 模型推理引擎,在 CPU 上有着出色的优化;llmedge 的价值在于为它构建了一套完整的 Android 集成层,包括模型管理、内存监控、多模态调度和 Kotlin 友好的 API。
llmedge 的功能覆盖非常全面,堪称 Android 端侧 AI 的"全家桶"。具体来说,它支持以下几大类推理场景:
大语言模型(LLM)推理:基于 llama.cpp 的 GGUF 模型本地运行是 llmedge 最核心的能力。开发者可以通过 LLMEdge 门面类一行代码发起推理,也可以用低级的 SmolLM 包装类获得更精细的控制。支持 GGUF 模型从 Hugging Face Hub 下载并缓存,也支持将 safetensors 格式模型在设备上转换为 GGUF 并量化(Q8_0 / Q4_K_M / IQ2_BN)。内置 KV Cache 复用、流式生成、分话题线程调参等优化手段。还支持 ChatSession 机制,帮助 reasoning 模型(如带思考链的模型)保持对话状态。
语音识别(STT):集成 whisper.cpp,支持实时流式转写、时间戳标注、多语言检测、SRT 字幕生成。Whisper 模型的下载和缓存由库自动管理,开发者只需几行 Kotlin 代码即可开启录音转文字。
语音合成(TTS):集成 bark.cpp,针对 ARM 架构做了优化,支持将文字转为自然语音。
图像生成:支持 Stable Diffusion(带 EasyCache 加速和 LoRA 支持)以及 FLUX.2 Klein 4B 蒸馏模型。提供 ESRGAN(Remacri)超分辨率上采样。生成过程支持逐步进度回调和取消操作。llmedge-examples 仓库中有完整的 StableDiffusionActivity 示例,展示 VAE 加载、tensor offload 等进阶用法。
视频生成:支持 Wan 2.1 T2V(4-64 帧)和 Wan 2.2 TI2V 5B Q6_K 模型,可生成短片段视频,也可通过设置 videoFrames = 1 输出单帧"静帧图像"风格结果。
多模态视觉分析:集成 LLaVA 风格视觉语言模型,可对图片进行理解和问答。同时内置 Google ML Kit OCR,支持从图片中批量提取文字。
端侧 RAG(检索增强生成):支持 PDF 文档解析、ONNX embedding 向量化存储、向量相似度检索,配合 SmolLM 实现完整的本地 RAG 问答流程。
从代码结构来看,llmedge 采用典型的分层架构:
llmedge/):纯 Kotlin 实现,定义 LLMEdge 门面和各领域客户端(text、speech、image、vision、rag),这是应用开发者直接打交道的接口。llama.cpp、whisper.cpp、bark.cpp、stable-diffusion.cpp 四个 C++ 推理引擎的集成代码,通过 JNI 与 Kotlin 层通信。项目以 Git Submodule 方式引入 llama.cpp 和 stable-diffusion.cpp 源码,需要在克隆时执行 git submodule update --init --recursive 拉取完整子模块。
从技术栈看,主语言为 Kotlin,核心推理逻辑由 C++ 实现,依赖 llama.cpp(LLM)、whisper.cpp(语音识别)、bark.cpp(语音合成)、stable-diffusion.cpp(图像/视频生成),并利用 Android GPU 后端(OpenCL 优先,Vulkan 兜底)进行硬件加速。
对于 Android 开发者而言,llmedge 提供了两种接入方式:
方式一:通过 Maven Central 依赖(推荐):在 build.gradle.kts 中加入 implementation("io.github.aatricks:llmedge:0.3.9"),无需手动编译 C++ 子模块,直接使用预编译的 AAR 包。这是最省心的方式。
方式二:源码构建:克隆仓库 + 初始化子模块 + Android Studio 打开项目。官方特别提醒:Linux 是 GPU 相关构建的推荐环境,Windows 上的 Vulkan shader 生成路径目前尚不稳定。
快速上手示例:
val edge = LLMEdge.create(context = context, scope = viewModelScope)
viewModelScope.launch {
val reply = edge.text.generate(prompt = "用一句话介绍端侧AI")
outputView.text = reply
}
仅此而已——几行 Kotlin 代码,即可在 Android 设备上运行 GGUF 语言模型。llmedge-examples 仓库提供了 Local Asset Demo(APK 内嵌模型)、Hugging Face 在线下载模型、Jinja 聊天模板、RAG 管道、图像生成、视频生成等多个完整可运行的 Activity 示例。
作为一个处于早期活跃开发阶段的项目,llmedge 有几个值得关注的局限性:
API 成熟度不均:官方文档明确指出,LLMEdge 文本推理、语音处理和模型管理是最稳定的模块;视觉/VLM 分析、RAG 和部分图像/视频生成流程虽然可用但仍在演进,生产环境使用前需评估风险。
构建门槛:GPU 加速构建强烈依赖 Linux 环境;Windows 开发者如果需要 Vulkan 支持的图像生成能力,可能需要虚拟机或 WSL。子模块初始化和大型模型文件的拉取也对网络环境有要求。
模型格式限制:目前 LLM 推理仅支持 GGUF 格式;safetensors 转换支持范围限于 Llama 架构 + GPT2-BPE 分词器的模型;视觉模型需要特定格式,不支持任意图片输入。
内存与存储压力:运行 7B 级别模型对手机内存(RAM 2GB+)和存储(单个模型文件 1-5GB)都有不低的要求,低端设备体验受限。
在 2025-2026 年,端侧 AI 推理已成为移动 AI 的重要方向。苹果的 Core ML、Google 的 ML Kit、高通的 AI Engine 都在推动这一趋势。llmedge 的独特价值在于:它是唯一一个将 llama.cpp 系的 GGUF 推理、Whisper 语音识别、Stable Diffusion 图像生成和视频生成统一封装为一个 Kotlin 库的 Android 项目,降低了 Android 开发者接入端侧 AI 的门槛。
从趋势来看,随着移动芯片 NPU 能力的持续提升,端侧可运行的模型规模将越来越大,llmedge 这类基础设施库的重要性也会随之增长。65 颗星的社区关注度虽然不算高,但考虑到 Android 端的 GGUF 生态竞争相对较小,llmedge 有望在特定细分场景(隐私敏感 App、离线 AI 助手、嵌入式 AI)找到自己的位置。
总结:llmedge 是一款面向 Android 开发者的端侧 AI 推理 SDK,通过 JNI 封装 llama.cpp 等成熟 C++ 引擎,提供 Kotlin 友好的统一 API,支持 LLM、STT、TTS、图像生成、视频生成、RAG 和 OCR 等多种 AI 能力。适合有一定 Android 开发经验、需要在 App 中集成本地 AI 能力的团队。部署复杂度较高(需 Android Studio + Gradle 环境),但通过 Maven Central 分发的 AAR 方式可以显著降低接入成本。