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

ExecuTorch Llama iOS 演示应用

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

此应用作为宝贵的资源,激发您的创造力,并提供您可以根据您的特定用例自定义和调整的基础代码。

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

关键概念

通过此演示应用,您将学习许多关键概念,例如

  • 如何准备 Llama 模型、构建 ExecuTorch 库并在委托之间执行模型推理

  • 通过 Swift Package Manager 公开 ExecuTorch 库

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

我们的目标是让您了解 ExecuTorch 提供的支持类型,并对将其用于您的用例感到舒适。

支持的模型

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

  • Llama 3.1 8B

  • Llama 3 8B

  • Llama 2 7B

  • Llava 1.5(仅限 XNNPACK)

构建应用程序

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

委托

资源

XNNPACK(基于 CPU 的库)

链接

MPS(Metal 性能着色器)

链接

如何使用该应用程序

本节将提供使用该应用程序的主要步骤,以及 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 的全面开发者文档

查看文档

教程

获取初学者和高级开发人员的深度教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源