Anemll/Anemll

Artificial Neural Engine Machine Learning Library

ANEMLL – 在 Apple Neural Engine 上运行大型语言模型

简介 – ANEMLL(发音为“animal”)是一个开源工具包,让您可以获取 Hugging Face 上的 LLM,并使用 Apple Neural Engine (ANE) 在 Apple Silicon 设备(iPhone、iPad、Mac、visionOS)上本地运行它们。它涵盖了整个流程:模型转换为 Core ML、分析工具、基于 Swift 的参考应用程序以及 Python 层级的聊天演示。


核心组件(如 README 中所述)

组件 功能
LLM 转换工具 读取 Hugging Face 权重并输出 Core ML 模型(单个单体文件或分块)的脚本(convert_model.shconvert_monolith.sh)。支持 LLaMA、Qwen、Gemma 3、DeepSeek 等,并可选模型内 argmax 和权重去重(ANEMLL-Dedup)。
ANE 分析器 一个无需 Xcode 即可运行的 Core ML/ANE 分析器,提供计算计划分解、兼容性报告和基准测试数据。
Swift 参考实现 一个 Swift 库和 CLI(anemll-swift-cli),展示了快速的设备端推理,以及用于 iOS/macOS/visionOS 的全屏聊天 UI(语音输入、AirDrop 模型共享、Markdown 渲染)。
Python 示例代码 chat.py(快速测试)和 chat_full.py(对话历史处理)以及一套转换验证测试。
iOS/macOS 示例应用 一个重新设计的“ANEMLL Chat”应用(可通过 TestFlight 获取),展示了端到端的模型下载、本地导入和设备端流式聊天。
ANEMLL-BENCH 用于跨模型和量化级别进行系统性 ANE 性能基准测试的独立存储库。

支持的模型(截至 v0.3.5 稳定版)

  • Gemma 3 – 270 M、1 B、4 B(量化感知训练),具有滑动窗口 + 全局注意力,最高 4 K 上下文。
  • LLaMA 3.1/3.2 – 1 B、8 B。
  • Qwen 3 – 0.6 B、1.7 B、8 B。
  • Qwen 2.5 – 0.5 B、1.5 B、3 B、7 B。
  • DeepSeek R1 – 8 B 蒸馏版(基于 LLaMA)。
  • DeepHermes – 3 B、8 B(微调后的 LLaMA)。

所有这些都可以转换为完全在 ANE 上运行的 Core ML 模型,并可选量化(LUT4/LUT6)和特殊的 模型内 argmax 模式,以减少主机与设备之间的数据传输。


0.3.5 Beta 版本亮点

  • 全栈 iOS/macOS/visionOS 聊天应用,具备语音输入、AirDrop 共享、Markdown 渲染和“思考模式”。
  • 单体模型支持 – 每个模型一个 Core ML 文件,借助 ANEMLL-Dedup 将存储开销降低约 50%。
  • 模型内 argmax (--argmax) – 将 argmax 操作移至 Core ML LM 头部,仅将获胜的 token 索引/值发送回主机,显著降低带宽。
  • Swift 推理稳定性 – 基于 IOSurface 的缓冲区和串行预测队列消除了 iOS 上的竞争条件。
  • ANE 分析器 – 无需 Xcode 的命令行分析,有助于发现兼容性问题。
  • 基准测试结果 – 在多项标准 NLP 任务中,ANEMLL-FP16 在相同硬件上略优于 Hugging Face FP16(在 ARC、BoolQ 等任务中平均准确率提高 +0.71%)。
  • 自动虚拟环境激活 – 除非禁用,否则转换脚本将启动 env-anemll venv。

典型工作流程(快速入门)

# 1. 创建可重现的 Python 环境(推荐使用 uv)
brew install uv
./create_uv_env.sh               # 制作带有 Python 3.9 的 env-anemll
source env-anemll/bin/activate
./install_dependencies.sh       # coremltools, transformers 等

# 2. 转换模型(示例:Gemma-3-270M)
./anemll/utils/convert_model.sh \
    --model google/gemma-3-270m-it \
    --output ./models/gemma3_270m \
    --context 512 \
    --chunk 1 \
    --argmax

# 3. 在 Python 中测试推理
python ./tests/chat.py \
    --meta ./models/gemma3_270m/meta.yaml \
    --prompt "Hello, ANEMLL!"

# 4. (可选) 运行 Swift CLI 或 iOS 聊天应用
./anemll-swift-cli/run.sh ./models/gemma3_270m/meta.yaml
# 或启动 TestFlight 应用以获得完整的 UI 体验

README 还提供了测试脚本(tests/conv/*.sh),可自动下载微型参考模型、进行转换并运行端到端验证。


为什么要使用 ANEMLL

  • 设备端隐私 – 无网络调用;整个 LLM 在设备的 ANE 上本地运行。
  • 低功耗边缘 AI – 适用于电池寿命至关重要的移动或嵌入式 Apple Silicon 产品。
  • 快速推理 – ANE 可以并行执行 FP16 矩阵运算;模型内 argmax 进一步降低了延迟。
  • 开发者友好 – 附带用于快速原型的 Python 工具和用于生产级 iOS/macOS 应用的 Swift 库。

安装与系统要求(摘要)

  • Apple Silicon 上的 macOS Sequoia(或更高版本)(推荐 M1/M2/…)。
  • ≥ 16 GB RAM(8 B 模型需 32 GB)。
  • Python 3.9-3.11(3.9 是测试最充分的版本)。
  • Xcode 命令行工具(用于 Core ML 编译器)。
  • coremltools ≥ 9.0, transformers ≥ 4.36.0,以及 NumPy、scikit-learn 等。
  • 可选:uv 用于快速环境创建。

更多信息

  • 文档docs/ 文件夹(转换指南、分析器文档、Swift CLI 指南、示例应用说明)。
  • 预转换模型 – Hugging Face 组织 anemll(即用型 .mlmodelc 包)。
  • 基准测试ANEMLL-BENCH 存储库以及 README 中的任务级结果表。
  • 社区 – 在 X/Twitter 上关注 @anemll 以获取更新;为存储库加星以示支持。

总结

ANEMLL 是一个真正且积极维护的开源项目,弥合了大型语言模型与 Apple 设备端神经硬件之间的差距。它提供了转换脚本、分析工具、Swift 和 Python 参考实现以及现成的 iOS/macOS 聊天应用,使开发者能够在 iPhone、iPad、Mac 和 visionOS 设备上运行保护隐私的 LLM。

相关

  • 项目
  • 项目
  • 项目
  • 项目