LiteRT-LM फ़ाइल बिल्डर

litert-lm-builder package Python के टूल और कमांड लाइन इंटरफ़ेस (सीएलआई) उपलब्ध कराता है. इनकी मदद से, LiteRT-LM (.litertlm) कंटेनर फ़ाइलें बनाई जा सकती हैं, उनकी जांच की जा सकती है, और उन्हें अनपैक किया जा सकता है.

.litertlm फ़ाइल एक यूनिफ़ाइड कंटेनर होती है. इसमें आपके TFLite मॉडल, टोकनाइज़र फ़ाइलें, बाहरी वेट, और मॉडल से जुड़ा मेटाडेटा शामिल होता है. इससे, इन्हें LiteRT-LM रनटाइम से डिस्ट्रिब्यूट और लोड किया जा सकता है.

इंस्टॉलेशन

PyPI से litert-lm-builder पैकेज इंस्टॉल करें.

पहला तरीका: uvx (तेज़ी से एक्ज़ीक्यूट करने के लिए सुझाव दिया जाता है)

स्थायी तौर पर इंस्टॉल किए बिना, तुरंत सीएलआई रन करें. इसके लिए uv की ज़रूरत होती है.

uvx litert-lm-builder --help
uvx litert-lm-peek --help

दूसरा तरीका: pip

वर्चुअल एनवायरमेंट में स्टैंडर्ड इंस्टॉलेशन:

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade litert-lm-builder

.litertlm फ़ाइल बनाना: litert-lm-builder

अपने मॉडल कॉम्पोनेंट को पैकेज करने के लिए, litert-lm-builder सीएलआई का इस्तेमाल करें. इसके लिए, कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल किया जा सकता है या कमांड-लाइन आर्ग्युमेंट को चेन किया जा सकता है.

इस्तेमाल

बिल्डर का इस्तेमाल करके, .litertlm फ़ाइल तैयार करने के लिए, यहां दिए गए तरीकों का इस्तेमाल किया जा सकता है.

पहला तरीका: TOML कॉन्फ़िगरेशन का इस्तेमाल करके बनाना (सुझाव दिया जाता है)

TOML कॉन्फ़िगरेशन फ़ाइल में सभी कॉम्पोनेंट, पाथ, और मेटाडेटा तय करें. इसके बाद, बिल्डर को रन करें:

litert-lm-builder toml --path config.toml output --path model.litertlm

उदाहरण के लिए config.toml:

[system_metadata]
entries = [
  { key = "author", value_type = "String", value = "Authors" }
]

[[section]]
section_type = "LlmMetadata"
data_path = "path/to/llm_metadata.pb"

[[section]]
section_type = "SP_Tokenizer"
data_path = "path/to/sp.model"

[[section]]
section_type = "TFLiteModel"
model_type = "PREFILL_DECODE"
data_path = "path/to/model.tflite"
additional_metadata = [
  { key = "model_version", value_type = "String", value = "1.0.1" }
]

दूसरा तरीका: कमांड लाइन आर्ग्युमेंट का इस्तेमाल करके बनाना

टर्मिनल में सब-कमांड को चेन करके, कंटेनर को डाइनैमिक तरीके से बनाया जा सकता है. सब-कमांड का क्रम, जनरेट की गई फ़ाइल में मौजूद सेक्शन के क्रम को तय करता है.

litert-lm-builder \
  system_metadata --str author "Authors" \
  llm_metadata --path path/to/llm_metadata.pb \
  sp_tokenizer --path path/to/sp.model \
  tflite_model --path path/to/model.tflite --model_type prefill_decode --str_metadata model_version "1.0.1" \
  output --path model.litertlm

सीएलआई के विकल्पों का रेफ़रंस

litert-lm-builder सीएलआई, इन सब-कमांड के साथ काम करता है:

  • output (ज़रूरी है): आउटपुट पाथ तय करता है.
    • --path PATH: बनाई गई .litertlm फ़ाइल को सेव करने का पाथ.
  • toml: TOML फ़ाइल से कॉन्फ़िगरेशन लोड करें.
    • --path PATH: .toml फ़ाइल का पाथ.
  • system_metadata: ग्लोबल सिस्टम मेटाडेटा जोड़ें.
    • --str KEY VALUE: स्ट्रिंग की-वैल्यू पेयर जोड़ें. इसे एक से ज़्यादा बार तय किया जा सकता है.
    • --int KEY VALUE: इंटिजर की-वैल्यू पेयर जोड़ें. इसे एक से ज़्यादा बार तय किया जा सकता है.
    • ध्यान दें: बिल्डर, सिस्टम मेटाडेटा में अपने-आप एक यूनीक uuid और creation_timestamp (यूटीसी आईएसओ 8601 फ़ॉर्मैट में) जनरेट करके जोड़ता है. इन कुंजियों को मैन्युअल तरीके से तय न करें. रनटाइम, मॉडल बिल्ड की यूनीक पहचान करने और कंपाइल किए गए कैश को अमान्य करने की प्रोसेस को मैनेज करने के लिए, इन फ़ील्ड का इस्तेमाल करता है.
  • llm_metadata: एलएलएम के लिए खास कॉन्फ़िगरेशन जोड़ें.
    • --path PATH: एलएलएम मेटाडेटा (टेक्स्ट या बाइनरी प्रोटो) का पाथ.
  • tflite_model: TFLite मॉडल जोड़ें.
    • --path PATH: .tflite फ़ाइल का पाथ.
    • --model_type TYPE: इनमें से कोई एक: embedder, prefill_decode (जो प्रीफ़िल और डिकोड, दोनों को दिखाता है), prefill, decode.
    • --backend_constraint BACKEND: (ज़रूरी नहीं) बैकएंड की पाबंदी. जैसे, gpu, cpu, npu.
    • --prefer_activation_type TYPE: (ज़रूरी नहीं) पसंदीदा ऐक्टिवेशन टाइप (fp16, fp32, fp32_fp16).
    • --str_metadata KEY VALUE: (ज़रूरी नहीं) इस मॉडल सेक्शन के लिए स्ट्रिंग मेटाडेटा.
  • sp_tokenizer: SentencePiece टोकनाइज़र जोड़ें.
    • --path PATH: .model फ़ाइल का पाथ.
    • --str_metadata KEY VALUE: (ज़रूरी नहीं) स्ट्रिंग मेटाडेटा.
  • hf_tokenizer: Hugging Face टोकनाइज़र जोड़ें.
    • --path PATH: tokenizer.json फ़ाइल का पाथ.
    • --str_metadata KEY VALUE: (ज़रूरी नहीं) स्ट्रिंग मेटाडेटा.

.litertlm फ़ाइल की जांच करना और उसे अनपैक करना: litert-lm-peek

.litertlm कंटेनर की जांच करने या उसमें शामिल कॉम्पोनेंट को अनपैक करने के लिए, litert-lm-peek सीएलआई का इस्तेमाल करें. इसे रन करने पर, कंटेनर का पूरा स्ट्रक्चर, पैकेज किए गए सभी सेक्शन, और अपने-आप जनरेट हुआ सिस्टम मेटाडेटा (जैसे, uuid और creation_timestamp) दिखता है.

इस्तेमाल

litert-lm-peek --litertlm_file model.litertlm [options]

सीएलआई के विकल्पों का रेफ़रंस

  • --litertlm_file PATH (ज़रूरी है): जांच करने के लिए, .litertlm फ़ाइल का पाथ.
  • --dump_files_dir PATH (ज़रूरी नहीं): वह डायरेक्ट्री जहां पैकेज की गई सभी फ़ाइलें (मॉडल, टोकनाइज़र, वेट, मेटाडेटा) एक्सट्रैक्ट/अनपैक की जानी चाहिए. अगर यह जानकारी नहीं दी जाती है, तो टूल, फ़ाइलें एक्सट्रैक्ट किए बिना, सिर्फ़ कंसोल पर मेटाडेटा और सेक्शन स्ट्रक्चर प्रिंट करेगा.