Google AI Edge स्टैक की मदद से, फ़ाइन ट्यून किए गए Gemma 270m मॉडल को डिप्लॉय करना

इस ट्यूटोरियल में, Android के सैंपल ऐप्लिकेशन में पसंद के मुताबिक बनाए गए Gemma मॉडल को डिप्लॉय करने की पूरी प्रोसेस के बारे में बताया गया है.

इस ट्यूटोरियल में, हम इन विषयों के बारे में जानेंगे:

  1. फ़ाइन-ट्यून किए गए मॉडल का इस्तेमाल करना
  2. एआई एज टॉर्च लाइब्रेरी की मदद से, फ़ाइन ट्यून किए गए मॉडल को बदलना
    1. इससे HuggingFace चेकपॉइंट को .litertlm फ़ाइल में बदल दिया जाएगा
  3. फ़ाइन ट्यून किए गए मॉडल की क्वालिटी का आकलन करना
  4. कस्टम मॉडल को टेस्ट डिवाइस पर पुश करने के लिए, adb कमांड चलाएं
    1. इससे मॉडल को .litertlm फ़ॉर्मैट में, Android डिवाइस पर लोकल टेस्टिंग के लिए पुश किया जाएगा
  5. Pirate Gemma के सैंपल ऐप्लिकेशन को चलाएं
    1. यह Android ऐप्लिकेशन के सैंपल में फ़ाइन ट्यून किए गए मॉडल पर अनुमान लगाने के लिए, LiteRT-LM Kotlin लाइब्रेरी का इस्तेमाल करेगा

पहला चरण: फ़ाइन ट्यून किए गए मॉडल का इस्तेमाल शुरू करना

इस ट्यूटोरियल के लिए, हम फ़ाइन ट्यून किए गए मॉडल का इस्तेमाल करेंगे. बेस मॉडल और फ़ाइन ट्यून किए गए मॉडल के बीच का अंतर साफ़ तौर पर दिखाने के लिए, हमने Gemma270m मॉडल लिया और उसे समुद्री डाकू की तरह बोलने के लिए फ़ाइन ट्यून किया.

पहले से फ़ाइन-ट्यून किए गए Pirate Gemma मॉडल को यहां देखा जा सकता है: https://huggingface.co/erintwalsh/pirate-gemma

किसी मॉडल को फ़ाइन ट्यून करने के बारे में ज़्यादा जानने के लिए, Gemma Cookbook और Unsloth गाइड देखें.

दूसरा चरण: कमांड लाइन में अपने कस्टम मॉडल को बदलना और उसे चलाना

अब जब आपने 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?"

तीसरा चरण: मॉडल की क्वालिटी का आकलन करना

फ़ाइन ट्यूनिंग की क्वालिटी का आकलन करना

मॉडल को स्थानीय तौर पर चलाने के बाद, एआई एज का आकलन करने वाले सीएलआई टूल का इस्तेमाल करके, फ़ाइन ट्यूनिंग की LiteRT-LM मॉडल क्वालिटी का विश्लेषण किया जा सकता है. यह टूल, सार्वजनिक डेटासेट के साथ ओरिजनल एचएफ़ मॉडल और बदले गए 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

चौथा चरण: अपने लोकल मॉडल को टेस्ट डिवाइस पर पुश करना

अभी-अभी चलाए गए मॉडल को अपने Android डिवाइस पर पुश करने के लिए, adb के इन निर्देशों का इस्तेमाल करें.

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

पांचवां चरण: Captain Gemma के सैंपल ऐप्लिकेशन की मदद से, अपने कस्टम मॉडल पर अनुमान लगाएं

Captain Gemma एक ऐसा ऐप्लिकेशन है जो डिवाइस पर मॉडल के साथ इंटरफ़ेस करने का तरीका दिखाता है. इसे GitHub पर ढूंढें और Android Studio में चलाने के लिए, रिपॉज़िटरी को क्लोन करें.

Captain Gemma का सैंपल ऐप्लिकेशन खोलें और उसे अपने डिवाइस पर चलाएं. यह एक ऐसा ऐप्लिकेशन है जो Android Compose एलिमेंट का इस्तेमाल करता है. इससे यह दिखाया जाता है कि आपके Android डिवाइस पर, फ़ाइन ट्यून किए गए मॉडल पर अनुमान लगाने की प्रोसेस कैसे काम करती है. यह ऐप्लिकेशन, उपयोगकर्ता से टेक्स्ट इनपुट लेता है और फ़ाइन ट्यून किए गए Gemma मॉडल के हिसाब से जवाब देता है.

अपने टेस्ट डिवाइस पर ऐप्लिकेशन चलाएं. यह वही डिवाइस होना चाहिए जिस पर आपने अभी-अभी .litertlm फ़ाइल पुश की है. कोई क्वेरी डालें और मॉडल का आउटपुट, सफ़ेद रंग के स्पीच बॉक्स में देखें.

सैंपल ऐप्लिकेशन की मुख्य स्क्रीन

सैंपल कोड

Captain Gemma के सैंपल कोड में, LiteRT-LM API के साथ मॉडल सेट अप करने और इनफ़्रेंस चलाने के उदाहरण देखें.

छठा चरण: मॉडल डिप्लॉय करना

कस्टम मॉडल की स्थानीय तौर पर टेस्टिंग पूरी करने और उसे डिप्लॉय करने के लिए तैयार होने के बाद, आपके पास मॉडल को होस्ट करने के ये विकल्प होते हैं:

  • अपनी .litertlm फ़ाइल को HuggingFace मॉडल के उस रिपॉजिटरी में पुश किया जा सकता है जिसे आपने पहले बनाया था. साथ ही, HuggingFace API का इस्तेमाल करके, इसे अपने ऐप्लिकेशन में डाउनलोड किया जा सकता है
  • Firebase जैसी होस्टिंग सेवा का इस्तेमाल किया जा सकता है. यह सेवा, आपके ऐप्लिकेशन के लिए एपीआई उपलब्ध कराती है. इससे आपका ऐप्लिकेशन, मॉडल यूआरएल को फ़ेच कर सकता है और Android या iOS के लिए डाउनलोड कर सकता है.