تفعيل نموذج Gemma 270m تم ضبطه بدقة باستخدام حزمة Google AI Edge

يرشدك هذا البرنامج التعليمي إلى الخطوات الكاملة لنشر نموذج Gemma مخصّص في تطبيق تجريبي على Android.

في هذا البرنامج التعليمي، سننفّذ ما يلي:

  1. البدء بنموذج معدَّل بدقة
  2. تحويل النموذج المضبوط بدقة باستخدام مكتبة AI Edge Torch
    1. سيؤدي ذلك إلى تحويل نقطة التحقّق في HuggingFace إلى ملف ‎ .litertlm
  3. تقييم جودة النموذج المعدَّل
  4. نفِّذ أوامر adb لدفع النموذج المخصّص إلى جهاز اختبار
    1. سيؤدي ذلك إلى إرسال النموذج بتنسيق ‎.litertlm إلى جهاز Android لإجراء اختبار محلي.
  5. تشغيل تطبيق Pirate Gemma النموذجي
    1. سيتم استخدام مكتبة LiteRT-LM Kotlin لتشغيل الاستدلال على النموذج المضبوط بدقة في تطبيق Android نموذجي.

الخطوة 1: البدء بنموذج تم ضبطه بدقة

في هذا البرنامج التعليمي، سنبدأ بنموذج تم ضبطه بدقة. لإظهار فرق واضح بين نموذج أساسي وآخر تم ضبطه بدقة، استخدمنا نموذج Gemma270m الأساسي وضبطناه بدقة ليتحدث بأسلوب القراصنة.

يمكنك العثور على نموذج Pirate Gemma الذي تم ضبطه مسبقًا على https://huggingface.co/erintwalsh/pirate-gemma

لمزيد من المعلومات حول الضبط الدقيق للنموذج، يُرجى الاطّلاع على كتاب طبخ Gemma ودليل Unsloth.

الخطوة 2: تحويل النموذج المخصّص وتشغيله في سطر الأوامر

بعد نشر نموذج مخصّص على HuggingFace، يمكنك استخدام مكتبة AI Edge Torch لتنزيل هذا النموذج وتحويله إلى تنسيق .litertlm.

المتطلبات الأساسية

تأكَّد من تثبيت أداة uv والإصدار 3.11 من Python أو إصدار أحدث على جهازك.

تحويل النموذج

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 evaluation لتحليل جودة نموذج 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".

افتح نموذج تطبيق Captain Gemma وشغِّله على جهازك. هذا تطبيق يستخدم عناصر Android Compose لتوضيح كيفية تنفيذ الاستدلال على نموذج تم ضبطه بدقة على جهاز Android. يتلقّى التطبيق نصًا من المستخدم، ثم يعرض الحكمة المستخلَصة من نموذج Gemma المعدَّل.

شغِّل التطبيق على جهاز الاختبار الذي أرسلت إليه ملف .litertlm. أدخِل طلبًا، واطّلِع على ناتج النموذج في مربّع الكلام الأبيض.

الشاشة الرئيسية لنموذج التطبيق

نموذج الرموز البرمجية

يمكنك الاطّلاع على أمثلة حول إعداد النموذج وتنفيذ الاستدلال باستخدام واجهات برمجة تطبيقات LiteRT-LM في رمز Captain Gemma النموذجي.

الخطوة 6: نشر النموذج

بعد الانتهاء من اختبار النموذج المخصّص محليًا والاستعداد لنشره، تتوفّر خيارات لاستضافة النموذج، مثل:

  • يمكنك إرسال ملف .litertlm إلى مستودع نماذج HuggingFace الذي أنشأته سابقًا، وتنزيله في تطبيقك باستخدام واجهات برمجة تطبيقات HuggingFace.
  • يمكنك استخدام خدمة استضافة، مثل Firebase، التي توفّر واجهات برمجة تطبيقات لتطبيقك من أجل استرداد عنوان URL الخاص بنموذجك وتنزيله على Android أو iOS.