एलएलएम इन्फ़रेंस एपीआई की मदद से, लार्ज लैंग्वेज मॉडल (एलएलएम) को पूरी तरह से चलाया जा सकता है अलग-अलग तरह के काम करने के लिए, इनका इस्तेमाल किया जा सकता है. जैसे, टेक्स्ट जनरेट करना, नैचुरल लैंग्वेज में जानकारी हासिल करना, और खास जानकारी देता है. यह टास्क, एक से ज़्यादा उपयोगकर्ताओं के लिए पहले से मौजूद काम करता है टेक्स्ट-टू-टेक्स्ट बड़े लैंग्वेज मॉडल, ताकि आप डिवाइस पर मौजूद नए वर्शन को लागू कर सकें आपके ऐप्लिकेशन और प्रॉडक्ट के लिए जनरेटिव एआई मॉडल.
यह टास्क, Gemma 2B और 7B के साथ काम करता है, जो लाइटवेट, आधुनिक ओपन मॉडल, रिसर्च और Gemini को बनाने में इस्तेमाल हुई टेक्नोलॉजी मॉडल. यह ऐप्लिकेशन, नीचे दिए गए बाहरी मॉडल के साथ भी काम करता है: Phi-2, Falcon-RW-1B और StableLM-3B.
मूल रूप से समर्थित मॉडल के अतिरिक्त, उपयोगकर्ता अन्य Google के AI Edge का इस्तेमाल करने वाले मॉडल ऑफ़र (इसमें ये शामिल हैं PyTorch मॉडल को मैप करना). इससे लोग, मैप किए गए मॉडल को एक से ज़्यादा हस्ताक्षर के लिए एक्सपोर्ट कर पाएंगे TensorFlow Lite के मॉडल, जो टोकनाइज़र पैरामीटर के साथ बंडल किए गए हैं, ताकि कोई टास्क बंडल बनाएं.
शुरू करें
इस टास्क का इस्तेमाल शुरू करने के लिए, यहां दिए गए लागू करने के दिशा-निर्देशों में से किसी एक को अपनाएं. टारगेट प्लैटफ़ॉर्म पर लागू होता है. प्लैटफ़ॉर्म के हिसाब से, इन गाइड से आपको बुनियादी चीज़ों के बारे में जानकारी मिलेगी इस टास्क को लागू करने के साथ-साथ, ऐसे कोड के उदाहरण भी शामिल करें जो उपलब्ध मॉडल और सुझाए गए कॉन्फ़िगरेशन विकल्प:
वेब:
Android:
iOS
टास्क की जानकारी
इस सेक्शन में सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के बारे में बताया गया है इस टास्क के विकल्प देखें.
सुविधाएं
एलएलएम इन्फ़रेंस एपीआई में ये मुख्य सुविधाएं शामिल हैं:
- टेक्स्ट को टेक्स्ट में जनरेट करना - इनपुट टेक्स्ट प्रॉम्प्ट के आधार पर टेक्स्ट जनरेट करें.
- एलएलएम को चुनें - अपने हिसाब से ऐप्लिकेशन को अपने हिसाब से बनाने के लिए, अलग-अलग मॉडल लागू करें इस्तेमाल के कुछ उदाहरण दिए गए हैं. आप मॉडल.
- LoRA सहायता - LoRA मॉडल की मदद से, एलएलएम की क्षमता को बेहतर बनाएं और उसे अपनी पसंद के मुताबिक बनाएं इसके लिए, आपको अपने पूरे डेटासेट की ट्रेनिंग लेनी होगी या पहले से तैयार LoRA की मदद लेनी होगी ओपन सोर्स कम्यूनिटी के मॉडल (सिर्फ़ स्थानीय मॉडल).
टास्क के इनपुट | टास्क के आउटपुट |
---|---|
एलएलएम इन्फ़रेंस एपीआई में ये इनपुट स्वीकार किए जाते हैं:
|
एलएलएम इन्फ़रेंस एपीआई से ये नतीजे मिलते हैं:
|
कॉन्फ़िगरेशन के विकल्प
इस टास्क में कॉन्फ़िगरेशन के ये विकल्प हैं:
विकल्प का नाम | ब्यौरा | मान की सीमा | डिफ़ॉल्ट मान |
---|---|---|---|
modelPath |
प्रोजेक्ट डायरेक्ट्री में मॉडल को सेव करने के लिए पाथ. | पाथ | लागू नहीं |
maxTokens |
मॉडल, ज़्यादा से ज़्यादा कितने टोकन (इनपुट टोकन + आउटपुट टोकन) हैंडल करता है. | पूर्णांक | 512 |
topK |
टोकन की वह संख्या जिसे मॉडल, जनरेशन के हर चरण में स्वीकार करता है. अनुमान को टॉप के सबसे ज़्यादा संभावित टोकन तक सीमित रखा जाता है. | पूर्णांक | 40 |
temperature |
जनरेशन के दौरान दिखने वाली रैंडमनेस. बहुत ज़्यादा तापमान की वजह से जनरेट किए गए टेक्स्ट में ज़्यादा क्रिएटिविटी दिखनी चाहिए. साथ ही, कम तापमान से जनरेट हुए डेटा का अनुमान लगाया जा सकता है. | फ़्लोट | 0.8 |
randomSeed |
टेक्स्ट जनरेट करने के दौरान इस्तेमाल किया गया रैंडम सीड. | पूर्णांक | 0 |
loraPath |
डिवाइस पर स्थानीय तौर पर LoRA मॉडल का ऐब्सलूट पाथ. ध्यान दें: यह सुविधा सिर्फ़ जीपीयू मॉडल के साथ काम करती है. | पाथ | लागू नहीं |
resultListener |
एसिंक्रोनस तरीके से नतीजे पाने के लिए, रिज़ल्ट लिसनर को सेट करता है. सिर्फ़ तब लागू होता है, जब एक साथ काम नहीं करने वाली प्रोसेस जनरेट करने का तरीका इस्तेमाल किया जा रहा हो. | लागू नहीं | लागू नहीं |
errorListener |
गड़बड़ी की जानकारी देने वाला वैकल्पिक लिसनर सेट करता है. | लागू नहीं | लागू नहीं |
मॉडल
एलएलएम इन्फ़रेंस एपीआई में, अलग-अलग टेक्स्ट-टू-टेक्स्ट बड़े साइज़ के लिए पहले से मौजूद सहायता मौजूद है भाषा के ऐसे मॉडल जिन्हें ब्राउज़र और मोबाइल डिवाइसों पर चलाने के लिए ऑप्टिमाइज़ किया गया है. ये लाइटवेट मॉडल डाउनलोड किए जा सकते हैं, ताकि डिवाइस पर ही अनुमान लगाए जा सकें.
एलएलएम इन्फ़रेंस एपीआई को शुरू करने से पहले, इसके साथ काम करने वाले किसी मॉडल को डाउनलोड करें और फ़ाइल को अपनी प्रोजेक्ट डायरेक्ट्री में सेव करें.
जेमा 2बी
Gemma 2B, लाइटवेट, आधुनिक ओपन मॉडल, और एक ही रिसर्च के आधार पर बनाए गए हैं. साथ ही, यह टेक्नोलॉजी Gemini के मॉडल बनाने में इस्तेमाल की गई. कॉन्टेंट बनाने मॉडल में 2B पैरामीटर और ओपन वेट शामिल हैं. यह मॉडल ऐसे संगठनों के लिए अच्छा है जो टेक्स्ट जनरेट करने से जुड़े कई तरह के काम. जैसे, सवाल का जवाब देना, खास जानकारी देना, और तर्क के साथ.
Gemma 2B मॉडल के चार वैरिएंट हैं:
- gemma-2b-it-cpu-int4: सीपीयू के साथ काम करने वाला Gemma 2B 4-बिट मॉडल.
- gemma-2b-it-cpu-int8: सीपीयू के साथ काम करने वाला Gemma 2B 8-बिट मॉडल.
- gemma-2b-it-gpu-int4: जीपीयू के साथ काम करने वाला Gemma 2B 4-बिट मॉडल.
- gemma-2b-it-gpu-int8: जीपीयू के साथ काम करने वाला Gemma 2B 8-बिट मॉडल.
मॉडल को ऐप्लिकेशन में जोड़ने से पहले, उसमें बदलाव किए जा सकते हैं और नए वज़न जोड़े जा सकते हैं. इसके लिए Gemma को ट्यून करने और कस्टमाइज़ करने के बारे में ज़्यादा जानकारी के लिए, Tuning Gemma देखें. Kaggle मॉडल से Gemma डाउनलोड करने के बाद, यह मॉडल MediaPipe के साथ इस्तेमाल करने के लिए सही फ़ॉर्मैट में है.
अगर आप Hugging से Gemma 2B डाउनलोड करते हैं, तो चेहरा, आपको रूपांतरित मॉडल को MediaPipe-फ़्रेंडली फ़ॉर्मैट में सबमिट करना चाहिए. एलएलएम इन्फ़रेंस एपीआई के लिए निम्न फ़ाइलों को डाउनलोड और रूपांतरित करने की आवश्यकता होती है:
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
tokenizer.json
tokenizer_config.json
जेमा 7बी
Gemma 7B, 7B वाला एक बड़ा जेमा मॉडल है पैरामीटर और ओपन वेट. यह मॉडल अलग-अलग तरह के टेक्स्ट के लिए ज़्यादा असरदार होता है जेन एआई से जुड़े टास्क, जैसे कि सवाल का जवाब देना, खास जानकारी देना, और तर्क देना. Gemma 7B सिर्फ़ वेब पर काम करता है.
Gemma 7B मॉडल के एक वैरिएंट में उपलब्ध है:
- gemma-1.1-7b-it-gpu-int8: जीपीयू के साथ काम करने वाला Gemma 7B 8-बिट मॉडल.
अगर आपने Hugging Face से Gemma 7B डाउनलोड किया है, तो आपको मॉडल को MediaPipe-फ़्रेंडली फ़ॉर्मैट में बदलना होगा. कॉन्टेंट बनाने एलएलएम इन्फ़्रेंस एपीआई के लिए, इन फ़ाइलों को डाउनलोड करने और बदलने की ज़रूरत होती है:
model-00001-of-00004.safetensors
model-00002-of-00004.safetensors
model-00003-of-00004.safetensors
model-00004-of-00004.safetensors
tokenizer.json
tokenizer_config.json
फ़ाल्कन 1B
Falcon-1B एक अरब का पैरामीटर है, जो सिर्फ़ कैज़ुअल डिकोडर के साथ काम करता है. इस मॉडल को 350B पर ट्रेनिंग दी गई है इसकी टोकन RefinedWeb.
एलएलएम इन्फ़्रेंस एपीआई के लिए, इन फ़ाइलों को डाउनलोड और सेव करना ज़रूरी है स्थानीय भाषा में:
tokenizer.json
tokenizer_config.json
pytorch_model.bin
फ़ाल्कन मॉडल फ़ाइलें डाउनलोड करने के बाद, मॉडल इस फ़ॉर्मैट में बदले जाने के लिए तैयार है MediaPipe फ़ॉर्मैट में होना चाहिए. मॉडल को MediaPipe में बदलें' में दिया गया तरीका अपनाएं फ़ॉर्मैट.
स्टेबलLM 3B
StableLM-3B, तीन अरब का पैरामीटर डिकोडर है. इसे सिर्फ़ लैंग्वेज मॉडल के लिए ट्रेन किया गया है 4 epoch के लिए, अलग-अलग अंग्रेज़ी भाषा के 10 खरब टोकन और कोड डेटासेट.
एलएलएम इन्फ़्रेंस एपीआई के लिए, इन फ़ाइलों को डाउनलोड और सेव करना ज़रूरी है स्थानीय भाषा में:
tokenizer.json
tokenizer_config.json
model.safetensors
StableLM मॉडल की फ़ाइलें डाउनलोड करने के बाद, यह मॉडल बदले जाने के लिए तैयार है को MediaPipe फ़ॉर्मैट में बदलना होगा. मॉडल को MediaPipe में बदलें' में दिया गया तरीका अपनाएं फ़ॉर्मैट.
Phi-2
Phi-2, 2.7 अरब पैरामीटर वाला ट्रांसफ़ॉर्मर मॉडल है. इसे अलग-अलग एनएलपी सिंथेटिक टेक्स्ट और फ़िल्टर की गई वेबसाइटें. प्रॉम्प्ट के लिए यह मॉडल सबसे सही है सवाल-जवाब, चैट, और कोड फ़ॉर्मैट का इस्तेमाल करके.
एलएलएम इन्फ़्रेंस एपीआई के लिए, इन फ़ाइलों को डाउनलोड और सेव करना ज़रूरी है स्थानीय भाषा में:
tokenizer.json
tokenizer_config.json
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
Phi-2 मॉडल फ़ाइलों को डाउनलोड करने के बाद, मॉडल रूप में रूपांतरित किए जाने के लिए तैयार है MediaPipe फ़ॉर्मैट में होना चाहिए. मॉडल को MediaPipe में बदलें' में दिया गया तरीका अपनाएं फ़ॉर्मैट.
AI Edge एक्सपोर्ट किए गए मॉडल
AI Edge Google की एक ऐसी सेवा है जो आपको उपयोगकर्ता के मैप किए गए मॉडल को बदलने की सुविधा देती है कई सिग्नेचर वाले TensorFlow Lite मॉडल में. मैपिंग और इसके बारे में ज़्यादा जानने के लिए, मॉडल एक्सपोर्ट किए जा रहे हैं. इसके लिए, AI Edge Torch पर जाएं GitHub पेज.
मॉडल को TFLite फ़ॉर्मैट में एक्सपोर्ट करने के बाद, मॉडल तैयार हो जाता है को MediaPipe फ़ॉर्मैट में बदल दिया गया है. ज़्यादा जानकारी के लिए, यह देखें मॉडल को MediaPipe फ़ॉर्मैट में बदलें.
मॉडल को MediaPipe फ़ॉर्मैट में बदलें
नेटिव मॉडल का कन्वर्ज़न
अगर आपने बाहरी एलएलएम (Phi-2, Falcon या StableLM) या किसी गैर-Kaggle का इस्तेमाल किया है Gemma का एक वर्शन है, तो हमारी कन्वर्ज़न स्क्रिप्ट का इस्तेमाल करके MediaPipe के साथ काम करता है.
मॉडल कन्वर्ज़न प्रोसेस के लिए, MediaPipe PyPI पैकेज की ज़रूरत होती है. कन्वर्ज़न
स्क्रिप्ट 0.10.11
के बाद सभी MediaPipe पैकेज में उपलब्ध है.
इनकी मदद से डिपेंडेंसी इंस्टॉल और इंपोर्ट करें:
$ python3 -m pip install mediapipe
इस मॉडल को बदलने के लिए, genai.converter
लाइब्रेरी का इस्तेमाल करें:
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
input_ckpt=INPUT_CKPT,
ckpt_format=CKPT_FORMAT,
model_type=MODEL_TYPE,
backend=BACKEND,
output_dir=OUTPUT_DIR,
combine_file_only=False,
vocab_model_file=VOCAB_MODEL_FILE,
output_tflite_file=OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
LoRA मॉडल को बदलने के लिए, ConversionConfig
को बेस मॉडल की जानकारी देनी चाहिए
और LoRA के दूसरे विकल्प भी. ध्यान दें कि केवल API
जीपीयू के साथ, LoRA अनुमान काम करता है, इसलिए बैकएंड 'gpu'
पर सेट होना चाहिए.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
कन्वर्टर से, दो TFLite फ़्लैटबफ़र फ़ाइलें जनरेट होंगी. इनमें से एक, बेस मॉडल के लिए होगी और दूसरा LoRA मॉडल के लिए.
पैरामीटर | ब्यौरा | स्वीकार की गई वैल्यू |
---|---|---|
input_ckpt |
model.safetensors या pytorch.bin फ़ाइल का पाथ. ध्यान दें कि कभी-कभी मॉडल सेफ़टेंसर फ़ॉर्मैट को कई फ़ाइलों में बांटा जाता है, जैसे कि model-00001-of-00003.safetensors , model-00001-of-00003.safetensors . फ़ाइल का पैटर्न तय किया जा सकता है, जैसे कि model*.safetensors . |
पाथ |
ckpt_format |
मॉडल फ़ाइल फ़ॉर्मैट. | {"safetensors", "pytorch"} |
model_type |
एलएलएम को बदला जा रहा है. | {"PHI_2", "FALCON_RW_1B", "STABLELM_4E1T_3B", "GEMMA_2B"} |
backend |
मॉडल को चलाने के लिए इस्तेमाल किया जाने वाला प्रोसेसर (डेलीगेट). | {"cpu", "gpu"} |
output_dir |
हर लेयर की वेट वाली फ़ाइलों को होस्ट करने वाली आउटपुट डायरेक्ट्री का पाथ. | पाथ |
output_tflite_file |
आउटपुट फ़ाइल का पाथ. उदाहरण के लिए, "model_cpu.bin" या "model_gpu.bin" है. यह फ़ाइल सिर्फ़ LLM Inference API के साथ काम करती है. इसे सामान्य `tflite` फ़ाइल के तौर पर इस्तेमाल नहीं किया जा सकता. | पाथ |
vocab_model_file |
उस डायरेक्ट्री का पाथ जिसमें tokenizer.json और
tokenizer_config.json फ़ाइलें. Gemma के लिए, एक tokenizer.model फ़ाइल पर कर्सर ले जाएं. |
पाथ |
lora_ckpt |
सेफ़टेन्सर फ़ाइल के LoRA ckpt का पाथ, जो LoRA अडैप्टर की मोटाई को स्टोर करता है. | पाथ |
lora_rank |
LoRA cpt की रैंक को दिखाने वाला पूर्णांक. लॉरा भार को बदलने के लिए ज़रूरी है. अगर यह वैल्यू नहीं दी जाती है, तो कन्वर्टर यह मान लेता है कि कोई लोआरए वेट नहीं है. ध्यान दें: सिर्फ़ जीपीयू बैकएंड, LoRA के साथ काम करता है. | पूर्णांक |
lora_output_tflite_file |
LoRA वज़न के लिए आउटपुट tflite फ़ाइल नाम. | पाथ |
AI Edge मॉडल का कन्वर्ज़न
अगर आपको AI Edge की मदद से TFLite मॉडल पर मैप किए गए एलएलएम का इस्तेमाल करना है, तो हमारे टास्क बंडल बनाने के लिए, स्क्रिप्ट का बंडल बनाएं. बंडल करने की प्रोसेस में अतिरिक्त मेटाडेटा वाला मैप किया गया मॉडल (उदाहरण के लिए, टोकनाइज़र पैरामीटर) ज़रूरी है का इस्तेमाल कर सकते हैं.
मॉडल बंडलिंग प्रक्रिया के लिए MediaPipe PyPI पैकेज की आवश्यकता होती है. कन्वर्ज़न
स्क्रिप्ट 0.10.14
के बाद सभी MediaPipe पैकेज में उपलब्ध है.
इनकी मदद से डिपेंडेंसी इंस्टॉल और इंपोर्ट करें:
$ python3 -m pip install mediapipe
मॉडल को बंडल करने के लिए, genai.bundler
लाइब्रेरी का इस्तेमाल करें:
import mediapipe as mp
from mediapipe.tasks.python.genai import bundler
config = bundler.BundleConfig(
tflite_model=TFLITE_MODEL,
tokenizer_model=TOKENIZER_MODEL,
start_token=START_TOKEN,
stop_tokens=STOP_TOKENS,
output_filename=OUTPUT_FILENAME,
enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
पैरामीटर | ब्यौरा | स्वीकार की गई वैल्यू |
---|---|---|
tflite_model |
AI Edge का पाथ, एक्सपोर्ट किया गया TFLite मॉडल. | पाथ |
tokenizer_model |
सेंटेंसपीस टोकनाइज़र मॉडल का पाथ. | पाथ |
start_token |
मॉडल के हिसाब से स्टार्ट टोकन. स्टार्ट टोकन इसमें मौजूद होना चाहिए: उपलब्ध कराया गया टोकनाइज़र मॉडल. | स्ट्रिंग |
stop_tokens |
मॉडल के हिसाब से स्टॉप टोकन. स्टॉप टोकन उपलब्ध कराया गया टोकनाइज़र मॉडल. | सूची[STRING] |
output_filename |
आउटपुट टास्क बंडल फ़ाइल का नाम. | पाथ |
LoRA को पसंद के मुताबिक बनाना
लो-रैंक एडैप्टेशन (LoRA) के साथ काम करने के लिए, MediaMedia एलएलएम इंफ़रेंस एपीआई को कॉन्फ़िगर किया जा सकता है के लिए सबसे अच्छा विकल्प हो सकता है. बेहतर बनाए गए LoRA मॉडल का इस्तेमाल करके, डेवलपर ये काम कर सकते हैं: एलएलएम के काम करने के तरीके को ज़रूरत के मुताबिक बनाने के लिए, कम कीमत वाली ट्रेनिंग प्रोसेस का इस्तेमाल कर सकते हैं.एलएलएम इन्फ़रेंस एपीआई, LoRA के साथ काम करता है. यह Gemma-2B और Phi-2 मॉडल के साथ काम करता है: जीपीयू बैकएंड में उपलब्ध है, जहां LoRA वेट सिर्फ़ अटेंशन लेयर पर लागू होते हैं. यह शुरुआत में यह सुविधा, आने वाले समय के डेवलपमेंट के लिए प्रयोग के तौर पर उपलब्ध एपीआई के तौर पर काम करती है. आने वाले समय में, हम कई और मॉडल और अलग-अलग तरह की लेयर को सपोर्ट करने की योजना बना रहे हैं अपडेट.
LoRA मॉडल तैयार करना
HuggingFace के बारे में दिए गए निर्देशों का पालन करके, Gemma-2B या Phi-2 वाले अपने डेटासेट पर बेहतर तरीके से ट्यून किए गए LoRA मॉडल को ट्रेनिंग दें. Gemma-2B और Phi-2 मॉडल, HuggingFace में सेफ़टेंसर फ़ॉर्मैट में उपलब्ध हैं. एलएलएम इन्फ़्रेंस एपीआई, अटेंशन लेयर पर सिर्फ़ LoRA के साथ काम करता है. इसलिए, LoraConfig
बनाते समय सिर्फ़ अटेंशन लेयर के बारे में बताएं, जैसा कि यहां बताया गया है:
# For Gemma-2B
from peft import LoraConfig
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)
# For Phi-2
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)
टेस्टिंग के लिए, सार्वजनिक तौर पर ऐक्सेस किए जा सकने वाले LoRA मॉडल उपलब्ध हैं. ये मॉडल HuggingFace में मौजूद एलएलएम इन्फ़रेंस एपीआई के साथ काम करते हैं. उदाहरण के लिए, Gemma-2B के लिए monsterapi/gemma-2b-lora-maths-orca-200k और Phi-2 के लिए lole25/phi-2-sft-ultrachat-lora.
तैयार किए गए डेटासेट की ट्रेनिंग करने और मॉडल को सेव करने के बाद, आपको एक adapter_model.safetensors
फ़ाइल मिलती है. इसमें, बेहतर LoRA मॉडल के वज़न की जानकारी होती है. सेफ़टेंसर फ़ाइल, LoRA चेकपॉइंट है. इसका इस्तेमाल मॉडल कन्वर्ज़न में किया जाता है.
अगले चरण के तौर पर, आपको MediaPipe Python पैकेज का इस्तेमाल करके, मॉडल वेट को TensorFlow Lite Flatbuffer में बदलना होगा. ConversionConfig
में, बेस मॉडल के विकल्पों के साथ-साथ, LoRA के अन्य विकल्प भी शामिल होने चाहिए. ध्यान दें कि एपीआई, जीपीयू के साथ सिर्फ़ LoRA अनुमान के साथ काम करता है, इसलिए बैकएंड को 'gpu'
पर सेट होना चाहिए.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
कन्वर्टर से, दो TFLite फ़्लैटबफ़र फ़ाइलें जनरेट होंगी. इनमें से एक, बेस मॉडल के लिए होगी और दूसरा LoRA मॉडल के लिए.
LoRA मॉडल का अनुमान
LoRA मॉडल के अनुमान के साथ काम करने के लिए, वेब, Android, और iOS LLM Inference API को अपडेट किया गया है. वेब पर, डाइनैमिक LoRA काम करता है. यह रनटाइम के दौरान अलग-अलग LoRA मॉडल को बदल सकता है. Android और iOS, स्टैटिक LoRA का समर्थन करते हैं, जो टास्क के जीवनकाल के दौरान एक ही LoRA वज़न का उपयोग करता है.
शुरू करने के दौरान, Android पर स्टैटिक LoRA काम करता है. LoRA मॉडल को लोड करने के लिए, उपयोगकर्ता, LoRA मॉडल के पाथ के साथ-साथ बुनियादी एलएलएम की जानकारी भी देते हैं.// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
.setModelPath('<path to base model>')
.setMaxTokens(1000)
.setTopK(40)
.setTemperature(0.8)
.setRandomSeed(101)
.setLoraPath('<path to LoRA model>')
.build()
// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)
LoRA की मदद से एलएलएम अनुमान चलाने के लिए, बेस मॉडल वाले generateResponse()
या generateResponseAsync()
तरीकों का ही इस्तेमाल करें.