ติดตั้งใช้งานโมเดล Gemma 270m ที่ปรับแต่งแล้วด้วย Google AI Edge Stack

บทแนะนำนี้จะแนะนำกระบวนการตั้งแต่ต้นจนจบในการติดตั้งใช้งานโมเดล Gemma ที่ปรับแต่งแล้วในแอปตัวอย่าง Android

ในบทแนะนำนี้ เราจะทำสิ่งต่อไปนี้

  1. เริ่มต้นด้วยโมเดลที่ปรับแต่งแล้ว
  2. แปลงโมเดลที่ปรับแต่งแล้วด้วยไลบรารี AI Edge Torch
    1. ซึ่งจะแปลงจุดตรวจสอบ HuggingFace เป็นไฟล์ .litertlm
  3. ประเมินคุณภาพของโมเดลที่ปรับแต่งแล้ว
  4. เรียกใช้คำสั่ง adb เพื่อพุชโมเดลที่กำหนดเองไปยังอุปกรณ์ทดสอบ
    1. การดำเนินการนี้จะพุชโมเดลในรูปแบบ .litertlm ไปยังอุปกรณ์ Android เพื่อ การทดสอบในเครื่อง
  5. เรียกใช้แอปตัวอย่าง Pirate Gemma
    1. ซึ่งจะใช้ไลบรารี Kotlin ของ LiteRT-LM เพื่อเรียกใช้การอนุมานในโมเดลที่ปรับแต่งอย่างละเอียดในแอป Android ตัวอย่าง

ขั้นตอนที่ 1: เริ่มต้นด้วยโมเดลที่ปรับแต่งแล้ว

สำหรับบทแนะนำนี้ เราจะเริ่มต้นด้วยโมเดลที่ได้รับการปรับแต่ง เราได้นำโมเดล Gemma270m มาปรับแต่งให้พูดเหมือนโจรสลัดเพื่อแสดงให้เห็นความแตกต่างที่ชัดเจนระหว่างโมเดลพื้นฐานกับโมเดลที่ปรับแต่งแล้ว

คุณดูโมเดล Pirate Gemma ที่ปรับแต่งล่วงหน้าได้ที่ https://huggingface.co/erintwalsh/pirate-gemma

ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งโมเดลได้ที่ตำราอาหารของ Gemma และคำแนะนำของ Unsloth

ขั้นตอนที่ 2: แปลงและเรียกใช้โมเดลที่กำหนดเองในบรรทัดคำสั่ง

ตอนนี้คุณได้เผยแพร่โมเดลที่กำหนดเองใน HuggingFace แล้ว คุณสามารถใช้ไลบรารี AI Edge Torch เพื่อดาวน์โหลดและแปลงโมเดลนั้น เป็นรูปแบบ .litertlm ได้

ข้อกำหนดเบื้องต้น

ตรวจสอบว่าได้ติดตั้ง uv tool และ 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: ประเมินคุณภาพโมเดล

ประเมินคุณภาพของการปรับแต่ง

เมื่อโมเดลทำงานในเครื่องแล้ว คุณจะใช้เครื่องมือ CLI ของการประเมิน AI Edge เพื่อวิเคราะห์คุณภาพโมเดล LiteRT-LM ของการปรับแต่งได้ เครื่องมือนี้มีการตรวจสอบความเท่าเทียมด้านคุณภาพหลัง Conversion ในตัวระหว่างโมเดล 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 แล้วเรียกใช้บนอุปกรณ์ แอปนี้เป็นแอปที่ใช้องค์ประกอบ Compose ของ Android เพื่อ แสดงการอนุมานที่ทำงานบนโมเดลที่ปรับแต่งแล้วในอุปกรณ์ Android ของคุณ แอปจะรับข้อความที่ผู้ใช้ป้อนและแสดงคำแนะนำของโจรสลัดจากโมเดล Gemma ที่ปรับแต่งแล้ว

เรียกใช้แอปในอุปกรณ์ทดสอบ ที่คุณเพิ่งพุชไฟล์ .litertlm ไป ป้อนคำค้นหา และดูเอาต์พุตของโมเดลในกล่องคำพูดสีขาว

หน้าจอหลักของแอปตัวอย่าง

โค้ดตัวอย่าง

ดูตัวอย่างการตั้งค่าโมเดลและการเรียกใช้การอนุมานด้วย LiteRT-LM API ในโค้ดตัวอย่างของ Captain Gemma

ขั้นตอนที่ 6: การติดตั้งใช้งานโมเดล

เมื่อทดสอบโมเดลที่กำหนดเองในเครื่องเสร็จแล้วและพร้อมที่จะ นำไปใช้งาน คุณจะมีตัวเลือกในการโฮสต์โมเดล เช่น

  • คุณสามารถพุชไฟล์ .litertlm ไปยังที่เก็บโมเดล HuggingFace ที่คุณสร้างไว้ก่อนหน้านี้ และดาวน์โหลดไฟล์ดังกล่าวในแอปโดยใช้ HuggingFace API
  • คุณสามารถใช้บริการโฮสติ้ง เช่น Firebase ซึ่งมี API สำหรับแอปของคุณเพื่อดึง URL ของโมเดลและดาวน์โหลดสำหรับ Android หรือ iOS