• 文档 >
  • 构建 ExecuTorch LLaMA Android 演示应用程序
快捷方式

构建 ExecuTorch LLaMA Android 演示应用程序

此应用程序演示了 LLaMA 聊天应用程序的使用,展示了使用 ExecuTorch 的本地推理用例。

先决条件

  • 如果您尚未按照 设置 ExecuTorch 设置存储库和开发环境,请先设置您的 ExecuTorch 存储库和环境。

  • 安装 Java 17 JDK

  • 安装 Android SDK API 级别 34Android NDK 25.0.8775105

  • 如果您已设置 Android Studio,则可以使用以下方法安装它们:

    • Android Studio 设置 -> 语言和框架 -> Android SDK -> SDK 平台 -> 选中 API 级别 34 的行。

    • Android Studio 设置 -> 语言和框架 -> Android SDK -> SDK 工具 -> 选中 NDK(并排)行。

  • 或者,您可以按照 本指南 使用 CLI 设置 Java/SDK/NDK。

  • 支持的主机操作系统:CentOS、Apple 芯片上的 macOS Sonoma。

注意:此演示应用程序和教程仅在 arm64-v8a ABI(使用 NDK 25.0.8775105)上经过验证。

获取模型

请参考 ExecuTorch Llama2 文档 导出模型。

导出模型并生成 tokenizer.bin 后,将它们推送到设备

adb shell mkdir -p /data/local/tmp/llama
adb push llama2.pte /data/local/tmp/llama
adb push tokenizer.bin /data/local/tmp/llama

注意:演示应用程序在 /data/local/tmp/llama 中搜索 .pte 和 .bin 文件作为 LLAMA 模型和标记器。

构建 JNI 库

  1. 打开一个终端窗口,并导航到 executorch 的根目录。

  2. 设置以下环境变量

export ANDROID_NDK=<path_to_android_ndk>
export ANDROID_ABI=arm64-v8a

注意:<path_to_android_ndk> 是 NDK 的根目录,通常位于 macOS 上的 ~/Library/Android/sdk/ndk/XX.Y.ZZZZZ 下,包含 NOTICE 和 README.md。我们使用 <path_to_android_ndk>/build/cmake/android.toolchain.cmake 用于 CMake 进行交叉编译。

  1. 运行以下命令设置所需的 JNI 库

pushd examples/demo-apps/android/LlamaDemo
./gradlew :app:setup
popd

这将运行 shell 脚本 setup.sh,该脚本配置所需的 ExecuTorch 核心、LLAMA2 和 Android 库,构建它们,并将它们复制到 jniLibs。

构建 APK

方法 2:命令行

在没有 Android Studio UI 的情况下,我们可以直接运行 gradle 来构建应用程序。我们需要设置 Android SDK 路径并调用 gradle。

export ANDROID_HOME=<path_to_android_sdk_home>
pushd examples/demo-apps/android/LlamaDemo
./gradlew :app:installDebug
popd

在手机或模拟器上,您可以尝试运行模型:Android LLaMA App

要点

通过本教程,我们学习了如何构建 ExecuTorch LLAMA 库,并将其暴露给 JNI 层以构建 Android 应用程序。

报告问题

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

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源