使用 Google AI Edge 堆栈部署微调后的 Gemma 270m 模型

本教程将引导您完成在 Android 示例应用中部署自定义 Gemma 模型的端到端流程。

在本教程中,我们将:

  1. 从微调模型开始
  2. 使用 AI Edge Torch 库转换微调后的模型
    1. 这会将 HuggingFace 检查点转换为 .litertlm 文件
  3. 评估微调模型的质量
  4. 运行 adb 命令以将自定义模型推送到测试设备
    1. 这会将 .litertlm 格式的模型推送到 Android 设备以进行本地测试
  5. 运行 Pirate Gemma 示例应用
    1. 此步骤将使用 LiteRT-LM Kotlin 库在示例 Android 应用中对微调后的模型运行推理

第 1 步:从微调后的模型开始

在本教程中,我们将从一个经过微调的模型开始。为了清楚展示基础模型与微调模型之间的区别,我们以基础 Gemma 270m 模型为基础,对其进行微调,使其能够像海盗一样说话。

您可以在 https://huggingface.co/erintwalsh/pirate-gemma 找到预微调的 Pirate Gemma 模型

如需详细了解如何对模型进行微调,请参阅 Gemma CookbookUnsloth 指南。

第 2 步:在命令行中转换并运行自定义模型

现在,您已在 HuggingFace 上发布自定义模型,接下来可以使用 AI Edge Torch 库下载该模型并将其转换为 .litertlm 格式。

前提条件

请务必在设备上安装 uv 工具和 Python 3.11 或更高版本。

转换模型

uv tool install litert-torch-nightly

litert-torch export_hf \
  --model=[YOUR-HF-USERNAME]/pirate-gemma \
  --output_dir=/tmp/pirate-gemma \
  --externalize_embedder

在本地运行模型

uv tool install litert-lm

litert-lm run  \
  /tmp/pirate-gemma/model.litertlm \
  --prompt="Where is the nearest buried treasure?"

第 3 步:评估模型质量

评估微调质量

在本地运行模型后,您可以使用 AI Edge 评估 CLI 工具来分析微调的 LiteRT-LM 模型质量。此工具提供内置的转换后质量对等性验证功能,可使用公开数据集验证原始 HF 模型与转换后的 LiteRT-LM 模型之间的质量对等性。除了公开数据集之外,您还可以使用自己的数据和特定指标创建自定义评估任务。如需查看使用 LLM-as-a-Judge 评估此微调模型的自定义任务示例,请点击此处。

uv tool install ai-edge-eval

GEMINI_API_KEY="your_actual_api_key_here"
ai_edge_eval \
  --framework custom \
  --runner litert-lm \
  --model-path /path/to/your/model.litertlm \
  --custom-tasks-file pirate_gemma_custom_task.py \
  --tasks pirate_gemma_eval \
  --output-dir /tmp/results

第 4 步:将本地模型推送到测试设备

使用这些 adb 指令将您刚刚运行的模型推送到实体 Android 设备。

adb shell rm -r /data/local/tmp/llm/ # Remove any previously loaded models

adb shell mkdir -p /data/local/tmp/llm/

adb push /tmp/pirate-gemma/model.litertlm  /data/local/tmp/llm/pirate-gemma.litertlm

第 5 步:使用 Captain Gemma 示例应用对自定义模型运行推理

Captain Gemma 是一款演示如何在设备上与模型交互的应用。在 GitHub 上找到它,然后克隆代码库以在 Android Studio 中运行它。

打开 Captain Gemma 示例应用,并在设备上运行该应用。此应用使用 Android Compose 元素来演示如何在 Android 设备上对微调后的模型运行推理。该应用会接收用户的文本输入,并返回经过微调的 Gemma 模型的“海盗智慧”。

在您刚刚将 .litertlm 文件推送到的测试设备上运行应用。输入查询内容,然后在白色对话框中查看模型的输出。

示例应用的主屏幕

示例代码

如需查看如何使用 LiteRT-LM API 设置模型运行推理的示例,请参阅 Captain Gemma 示例代码。

第 6 步:模型部署

在完成自定义模型的本地测试并准备好进行部署后,您可以选择多种模型托管方案,例如:

  • 您可以将 .litertlm 文件推送到您之前创建的 HuggingFace 模型代码库,并使用 HuggingFace API 在应用中下载该文件
  • 您可以使用 Firebase 等托管服务,这些服务会提供 API,供您的应用提取模型网址并下载模型,以用于 AndroidiOS