Triển khai một mô hình Gemma 270m được tinh chỉnh bằng ngăn xếp Google AI Edge

Hướng dẫn này sẽ hướng dẫn bạn quy trình từ đầu đến cuối để triển khai một mô hình Gemma tuỳ chỉnh trong một ứng dụng mẫu Android.

Trong hướng dẫn này, chúng ta sẽ:

  1. Bắt đầu bằng một mô hình được tinh chỉnh
  2. Chuyển đổi mô hình được tinh chỉnh bằng thư viện AI Edge Torch
    1. Thao tác này sẽ chuyển đổi điểm kiểm tra HuggingFace thành tệp .litertlm
  3. Đánh giá chất lượng của mô hình được tinh chỉnh
  4. Chạy các lệnh adb để đẩy mô hình tuỳ chỉnh vào một thiết bị thử nghiệm
    1. Thao tác này sẽ đẩy mô hình ở định dạng .litertlm vào một thiết bị Android để kiểm thử cục bộ
  5. Chạy ứng dụng mẫu Pirate Gemma
    1. Thao tác này sẽ sử dụng thư viện Kotlin LiteRT-LM để chạy suy luận trên mô hình được tinh chỉnh trong một ứng dụng Android mẫu

Bước 1: Bắt đầu bằng một mô hình được tinh chỉnh

Trong hướng dẫn này, chúng ta sẽ bắt đầu bằng một mô hình được tinh chỉnh. Để thể hiện rõ sự khác biệt giữa một mô hình cơ sở và một mô hình được tinh chỉnh, chúng tôi đã lấy một mô hình Gemma 270m cơ sở và tinh chỉnh mô hình đó để nói như một tên cướp biển.

Bạn có thể tìm thấy mô hình Pirate Gemma được tinh chỉnh trước tại https://huggingface.co/erintwalsh/pirate-gemma

Để biết thêm thông tin về cách tinh chỉnh mô hình, hãy xem Gemma Cookbook và hướng dẫn về Unsloth.

Bước 2: Chuyển đổi và chạy mô hình tuỳ chỉnh trong dòng lệnh

Giờ đây, khi đã xuất bản một mô hình tuỳ chỉnh trên HuggingFace, bạn có thể sử dụng thư viện AI Edge Torch để tải xuống và chuyển đổi mô hình đó sang định dạng .litertlm.

Điều kiện tiên quyết

Đảm bảo bạn đã cài đặt công cụ uv và Python 3.11 trở lên trên thiết bị của mình.

Chuyển đổi mô hình

uv tool install litert-torch-nightly

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

Chạy mô hình cục bộ

uv tool install litert-lm

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

Bước 3: Đánh giá chất lượng mô hình

Đánh giá chất lượng của quá trình tinh chỉnh

Sau khi chạy mô hình trên máy, bạn có thể sử dụng công cụ CLI đánh giá AI Edge để phân tích chất lượng mô hình LiteRT-LM của quá trình tinh chỉnh. Công cụ này cung cấp quy trình xác thực tính tương đồng về chất lượng sau chuyển đổi được tích hợp sẵn giữa mô hình HF ban đầu và mô hình LiteRT-LM đã chuyển đổi bằng các tập dữ liệu công khai. Ngoài các tập dữ liệu công khai, bạn có thể tạo các nhiệm vụ đánh giá tuỳ chỉnh bằng cách sử dụng dữ liệu của riêng mình và các chỉ số cụ thể. Xem ví dụ về tác vụ tuỳ chỉnh để đánh giá mô hình được tinh chỉnh này bằng cách sử dụng 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

Bước 4: Đẩy mô hình cục bộ vào thiết bị thử nghiệm

Sử dụng các hướng dẫn adb này để đẩy mô hình mà bạn vừa chạy lên thiết bị Android thực.

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

Bước 5: Chạy quy trình suy luận trên mô hình tuỳ chỉnh bằng ứng dụng mẫu Captain Gemma

Captain Gemma là một ứng dụng minh hoạ việc tương tác với mô hình trên thiết bị. Tìm kho lưu trữ này trên GitHub rồi sao chép để chạy trong Android Studio.

Mở ứng dụng mẫu Captain Gemma rồi chạy ứng dụng đó trên thiết bị của bạn. Đây là một ứng dụng sử dụng các phần tử Android Compose để minh hoạ việc chạy suy luận trên một mô hình được tinh chỉnh trên thiết bị Android của bạn. Ứng dụng này nhận dữ liệu đầu vào là văn bản từ người dùng và trả về kiến thức hải tặc của mô hình Gemma được tinh chỉnh.

Chạy ứng dụng trên thiết bị thử nghiệm mà bạn vừa đẩy tệp .litertlm vào. Nhập một câu hỏi và xem kết quả của mô hình trong hộp thoại màu trắng.

Màn hình chính của ứng dụng mẫu

Mã mẫu

Hãy xem ví dụ về cách thiết lập mô hìnhchạy quy trình suy luận bằng API LiteRT-LM trong mã mẫu Captain Gemma.

Bước 6: Triển khai mô hình

Sau khi hoàn tất quá trình kiểm thử cục bộ mô hình tuỳ chỉnh và sẵn sàng triển khai, bạn có thể chọn các phương án lưu trữ mô hình, chẳng hạn như:

  • Bạn có thể đẩy tệp .litertlm vào kho lưu trữ mô hình HuggingFace mà bạn đã tạo trước đó và tải tệp đó xuống trong ứng dụng bằng HuggingFace API
  • Bạn có thể sử dụng một dịch vụ lưu trữ như Firebase. Dịch vụ này cung cấp các API để ứng dụng của bạn tìm nạp URL mô hình và tải xuống cho Android hoặc iOS.