يرشدك هذا البرنامج التعليمي إلى الخطوات الكاملة لنشر نموذج Gemma مخصّص في تطبيق تجريبي على Android.
في هذا البرنامج التعليمي، سننفّذ ما يلي:
- البدء بنموذج معدَّل بدقة
- تحويل النموذج المضبوط بدقة باستخدام مكتبة AI Edge Torch
- سيؤدي ذلك إلى تحويل نقطة التحقّق في HuggingFace إلى ملف .litertlm
- تقييم جودة النموذج المعدَّل
- نفِّذ أوامر adb لدفع النموذج المخصّص إلى جهاز اختبار
- سيؤدي ذلك إلى إرسال النموذج بتنسيق .litertlm إلى جهاز Android لإجراء اختبار محلي.
- تشغيل تطبيق Pirate Gemma النموذجي
- سيتم استخدام مكتبة 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.