• 文档 >
  • ExecuTorch Llama iOS 演示应用
快捷方式

ExecuTorch Llama iOS 演示应用

[更新 - 10/24] 我们已在 XNNPACK 后端 的演示应用中增加了对运行量化 Llama 3.2 1B/3B 模型 的支持。我们目前支持使用 SpinQuant 和 QAT+LoRA 量化方法进行推理。

我们很高兴分享,新改版的 iOS 演示应用已上线,并包含许多新更新,旨在为聊天用例提供更直观、更流畅的用户体验!此应用的主要目标是展示如何轻松地将 ExecuTorch 集成到 iOS 演示应用中,以及如何运用 ExecuTorch 和 Llama 模型提供的众多功能。

此应用是一个宝贵的资源,可以激发您的创造力,并提供您可以为特定用例定制和调整的基础代码。

请深入探索我们的演示应用!我们期待任何反馈,并很高兴看到您的创新想法。

主要概念

从这个演示应用中,您将学习到许多关键概念,例如

  • 如何准备 Llama 模型、构建 ExecuTorch 库以及跨委托执行模型推理

  • 通过 Swift Package Manager 公开 ExecuTorch 库

  • 熟悉当前 ExecuTorch 面向应用的功能

我们的目标是让您了解 ExecuTorch 提供的支持类型,并让您放心地将其用于您的用例。

支持的模型

总的来说,此应用支持的模型有(因委托而异)

  • Llama 3.2 量化 1B/3B

  • BF16 中的 Llama 3.2 1B/3B

  • Llama 3.1 8B

  • Llama 3 8B

  • Llama 2 7B

  • Llava 1.5(仅限 XNNPACK)

构建应用程序

首先,重要的是要注意,目前 ExecuTorch 提供了跨多个委托的支持。一旦您确定了您选择的委托,请选择 README 链接以获取完整的端到端说明,了解环境设置、导出模型、构建 ExecuTorch 库和应用以在设备上运行

委托

资源

XNNPACK(基于 CPU 的库)

链接

MPS(Metal Performance Shader)

链接

如何使用该应用

本节将提供使用该应用的主要步骤,以及 ExecuTorch API 的代码片段。

Swift Package Manager

ExecuTorch 运行时作为 Swift 包分发,提供一些 .xcframework 作为预构建的二进制目标。Xcode 将在首次运行时下载并缓存该包,这将需要一些时间。

注意:如果您遇到任何与包依赖项相关的问题,请完全退出 Xcode,删除整个 executorch 仓库,通过在终端中运行以下命令清除缓存,然后重新克隆仓库。

rm -rf \
  ~/Library/org.swift.swiftpm \
  ~/Library/Caches/org.swift.swiftpm \
  ~/Library/Caches/com.apple.dt.Xcode \
  ~/Library/Developer/Xcode/DerivedData

将您的二进制文件与 ExecuTorch 运行时以及导出的 ML 模型使用的任何后端或内核链接。建议将核心运行时链接到直接使用 ExecuTorch 的组件,并将内核和后端链接到主应用目标。

注意:要访问日志,请链接到 ExecuTorch 运行时的 Debug 版本,即 executorch_debug 框架。为了获得最佳性能,始终链接到交付物的 Release 版本(那些没有 _debug 后缀的版本),这些版本已移除所有日志记录开销。

有关在 Apple 平台上集成和运行 ExecuTorch 的更多详细信息,请查看此链接

XCode

  • 打开 XCode 并选择“打开现有项目”以打开 examples/demo-apps/apple_ios/LLama

  • 确保 ExecuTorch 包依赖项已正确安装,然后选择哪个 ExecuTorch 框架应链接到哪个目标。

iOS LLaMA App Swift PM

iOS LLaMA App Choosing package

  • 运行该应用。这将在手机上构建并启动该应用。

  • 在应用 UI 中选择要使用的模型和分词器,键入提示并点击箭头按钮

将模型复制到模拟器

  • 将模型和分词器文件拖放到模拟器窗口上,并将它们保存在 iLLaMA 文件夹中的某个位置。

  • 在应用对话框中选择文件,键入提示并单击向上箭头按钮。

将模型复制到设备

  • 有线连接设备并在 Finder 中打开内容。

  • 导航到“文件”选项卡,并将模型和分词器文件拖放到 iLLaMA 文件夹中。

  • 等待文件复制完成。

如果该应用在您的设备上成功运行,您应该看到类似以下内容

iOS LLaMA App

对于 Llava 1.5 模型,您可以在键入提示和发送按钮之前选择图像(通过图像/相机选择器按钮)。

iOS LLaMA App

报告问题

如果您在按照本教程操作时遇到任何错误或问题,请在此处 Github 上提交错误/问题。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得解答

查看资源