LiteRT, Google का ऑन-डिवाइस फ़्रेमवर्क है. इसका इस्तेमाल, एज प्लैटफ़ॉर्म पर हाई-परफ़ॉर्मेंस एमएल और जेन एआई को डिप्लॉय करने के लिए किया जाता है. यह फ़्रेमवर्क, कन्वर्ज़न, रनटाइम, और ऑप्टिमाइज़ेशन का बेहतर तरीके से इस्तेमाल करता है.
LiteRT 2.x में सबसे नया रनटाइम एपीआई, CompiledModel API शामिल है. यह Interpreter API (जिसे TensorFlow Lite API भी कहा जाता है) से बेहतर है. खास तौर पर, यह डिवाइस पर एमएल और एआई ऐप्लिकेशन के लिए, हार्डवेयर ऐक्सेलरेटर और परफ़ॉर्मेंस को बेहतर बनाता है. CompiledModel API, बीटा वर्शन में उपलब्ध है. इसका इस्तेमाल Kotlin और C++ दोनों में किया जा सकता है.
LiteRT की मुख्य सुविधाएं
काम करने वाले मॉडल
LiteRT, Pytorch, TensorFlow, और JAX फ़्रेमवर्क से .tflite या .litertlm फ़ॉर्मैट में आसानी से कन्वर्ज़न करने की सुविधा देता है.
LiteRT की मदद से डेवलपमेंट की प्रोसेस को आसान बनाना
ऑटोमेटेड ऐक्सिलरेटर चुनने की सुविधा बनाम साफ़ तौर पर डेलिगेट बनाने की सुविधा. एनपीयू रनटाइम और मॉडल डिस्ट्रिब्यूशन को आसान बनाया गया है. बेहतर परफ़ॉर्मेंस के लिए, I/O बफ़र को बेहतर तरीके से मैनेज किया जाता है और एसिंक तरीके से काम किया जाता है.
बेहतरीन जीपीयू परफ़ॉर्मेंस
यह सुविधा, एमएल ड्रिफ़्ट की मदद से काम करती है. अब यह जीपीयू एपीआई पर एमएल और जनरेटिव एआई, दोनों तरह के मॉडल के साथ काम करती है.
यूनिफ़ाइड एनपीयू ऐक्सेलरेटर
चिपसेट बनाने वाली मुख्य कंपनियों से, एनपीयू का आसान ऐक्सेस पाकर अपने मॉडल को बेहतर बनाएं.
LiteRT की मदद से, एलएलएम को आसानी से इस्तेमाल किया जा सकता है
LiteRT-LM का इस्तेमाल किया जा सकता है. यह LiteRT की मदद से काम करता है. LiteRT-LM, नए एलएलएम और काम की सुविधाओं के साथ काम करता है. जैसे, मल्टी-मॉडल, कंस्ट्रेंट डिकोडिंग वगैरह.
डेवलपमेंट वर्कफ़्लो
LiteRT, Android, iOS, वेब, IoT, और डेस्कटॉप/लैपटॉप पर पूरी तरह से डिवाइस पर अनुमान लगाता है. डिवाइस कोई भी हो, यहां सबसे सामान्य वर्कफ़्लो दिया गया है. साथ ही, ज़्यादा निर्देशों के लिंक भी दिए गए हैं.

एमएल से जुड़ी समस्या का सबसे सही समाधान पहचानना
LiteRT, मशीन लर्निंग की समस्याओं को हल करने के लिए उपयोगकर्ताओं को कई तरह के विकल्प और अपनी पसंद के मुताबिक़ बदलाव करने की सुविधा देता है. इसलिए, यह उन लोगों के लिए सबसे सही है जिन्हें किसी खास मॉडल या खास तरीके से लागू करने की ज़रूरत होती है. प्लग-एंड-प्ले सलूशन ढूंढ रहे उपयोगकर्ता, MediaPipe Tasks का इस्तेमाल कर सकते हैं. इसमें मशीन लर्निंग के सामान्य कामों के लिए, पहले से तैयार सलूशन उपलब्ध होते हैं. जैसे, ऑब्जेक्ट का पता लगाना, टेक्स्ट को कैटगरी में बांटना, और एलएलएम इन्फ़रेंस.
मॉडल पाना और उसे तैयार करना
LiteRT मॉडल को FlatBuffers के तौर पर जाना जाता है. यह एक पोर्टेबल फ़ॉर्मैट है. इसमें .tflite फ़ाइल एक्सटेंशन का इस्तेमाल किया जाता है.
LiteRT मॉडल को इन तरीकों से हासिल किया जा सकता है:
पहले से ट्रेन किया गया मॉडल पाएं: इमेज सेगमेंटेशन, ऑब्जेक्ट का पता लगाने जैसी लोकप्रिय एमएल वर्कलोड के लिए.
सबसे आसान तरीका यह है कि
.tfliteफ़ॉर्मैट में पहले से मौजूद LiteRT मॉडल का इस्तेमाल किया जाए. इन मॉडल में, कन्वर्ज़न के लिए कोई अतिरिक्त चरण जोड़ने की ज़रूरत नहीं होती.मॉडल टाइप पहले से ट्रेन किए गए मॉडल का सोर्स क्लासिकल एमएल
(.tfliteफ़ॉर्मैट)Kaggle या HuggingFace पर जाएं
उदाहरण के लिए, इमेज सेगमेंटेशन मॉडल और सैंपल ऐप्लिकेशनजनरेटिव एआई
(.litertlmफ़ॉर्मैट)LiteRT का Hugging Face पेज
उदाहरण के लिए, Gemma Familyअगर आपको पहले से ट्रेन किए गए मॉडल का इस्तेमाल नहीं करना है, तो चुने गए PyTorch, TensorFlow या JAX मॉडल को LiteRT मॉडल में बदलें. [PRO USER]
मॉडल फ़्रेमवर्क सैंपल मॉडल कन्वर्ज़न टूल Pytorch Hugging Face
Torchvisionलिंक TensorFlow Kaggle Models
Hugging Faceलिंक JAX Hugging Face लिंक Generative API [PRO USER] का इस्तेमाल करके, बेहतर ऑप्टिमाइज़ेशन के लिए अपना एलएलएम तैयार करें
हमारी Generative API लाइब्रेरी, PyTorch के बिल्ट-इन बिल्डिंग ब्लॉक उपलब्ध कराती है. इनकी मदद से, मोबाइल के हिसाब से बनाए गए ऐब्स्ट्रैक्शन का इस्तेमाल करके, Gemma, TinyLlama, और अन्य जैसे ट्रांसफ़ॉर्मर मॉडल बनाए जा सकते हैं. इससे हम कन्वर्ज़न की गारंटी दे सकते हैं. साथ ही, मोबाइल के रनटाइम, LiteRT पर बेहतर तरीके से एक्ज़ीक्यूट कर सकते हैं. Generative API के बारे में जानकारी देने वाला दस्तावेज़ देखें.
क्वांटाइज़ेशन [PRO USER]
ऐडवांस डेवलपर के लिए एआई एज क्वांटाइज़र, कनवर्ट किए गए LiteRT मॉडल को क्वांटाइज़ करने का एक टूल है. इसका मकसद, ऐडवांस उपयोगकर्ताओं को संसाधन की मांग करने वाले मॉडल (जैसे, GenAI मॉडल).
मशीन लर्निंग मॉडल और जनरेटिव एआई मॉडल के लिए, Ai-Edge-Quantization का दस्तावेज़ देखें.
शुरू करने से जुड़ी ज़रूरी शर्तें
- Python 3.10-3.12
.tfliteमॉडल फ़ाइल- ज़्यादा जानकारी के लिए, संबंधित प्लैटफ़ॉर्म के सेक्शन पर जाएं
मॉडल को एज प्लैटफ़ॉर्म पर मौजूद अपने ऐप्लिकेशन में इंटिग्रेट करना
LiteRT मॉडल को लागू किया जा सकता है, ताकि Android, iOS, वेब, IoT, और डेस्कटॉप डिवाइसों पर पूरी तरह से ऑन-डिवाइस इंटरफ़ेस चालू किया जा सके. LiteRT में Android के लिए Python, Java और Kotlin, iOS के लिए Swift, और छोटे डिवाइसों के लिए C++ के एपीआई शामिल हैं.
अपने पसंदीदा प्लैटफ़ॉर्म पर LiteRT मॉडल लागू करने के लिए, इन गाइड का इस्तेमाल करें:
| मॉडल फ़्रेमवर्क | सैंपल मॉडल | कन्वर्ज़न टूल |
|---|---|---|
| Android पर काम करने वाले ऐप्लिकेशन | Android मोबाइल डिवाइस | C++/Kotlin API |
| iOS पर चलाएं | iOS मोबाइल डिवाइस | C++/Swift* API |
| LiteRT.js का इस्तेमाल करके, वेब पर चलाना | Chrome, Firefox या Safari ब्राउज़र वाला डिवाइस | JavaScript API |
| Micro पर चलाएं | एम्बेड किए गए डिवाइस | C++ API |
*यह सुविधा जल्द लॉन्च की जाएगी
Kotlin कोड का उदाहरण
// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))
// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
val outputBuffers = compiledModel.createOutputBuffers()
// Execute model
compiledModel.run(inputBuffers, outputBuffers)
// Access model output
val output = outputBuffers.get(0).readFloat()
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()
C++ कोड का उदाहरण
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
कोई बैकएंड चुनें
LiteRT में बैकएंड को शामिल करने का सबसे आसान तरीका यह है कि रनटाइम की पहले से मौजूद इंटेलिजेंस पर भरोसा किया जाए. हाल ही में हुए बदलावों के बाद, LiteRT को सेटअप करना काफ़ी आसान हो गया है. इसमें टारगेट बैकएंड को एक विकल्प के तौर पर चुनने की सुविधा भी मिलती है.
LiteRT v2.x का मुख्य हिस्सा CompiledModel ऑब्जेक्ट है. मॉडल लोड करते समय, LiteRT सिस्टम के उपलब्ध हार्डवेयर और इंटरनल प्रायॉरिटी लॉजिक का इस्तेमाल करता है. इससे, मैन्युअल कॉन्फ़िगरेशन के बिना सबसे सही बैकएंड चुना जा सकता है. ज़्यादा जानकारी के लिए, बैकएंड देखें.
| Android | डेस्कटॉप | वेब | iOS | macOS | IoT | |
|---|---|---|---|---|---|---|
| सीपीयू | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU | WebGPU Metal |
WebGPU Metal |
WebGPU |
| एनपीयू | MediaTek Qualcomm |
- | - | - | - | - |
अतिरिक्त दस्तावेज़ और सहायता
LiteRT v2.x का सैंपल ऐप्लिकेशन LiteRT इमेज सेगमेंटेशन का सैंपल ऐप्लिकेशन देखें
TensorFlow Lite के मौजूदा उपयोगकर्ताओं के लिए डेटा को दूसरी जगह भेजने से जुड़ी गाइड देखें
ऑपरेशन कवरेज साथ काम करने वाले ऑपरेटर
एलएलएम के साथ काम करने वाले मॉडल LiteRT Hugging face और Gen API - सैंपल
टूल LiteRT टूल पेज - परफ़ॉर्मेंस, प्रोफ़ाइलिंग, गड़बड़ी की रिपोर्टिंग वगैरह.