कोर्स
मैंने हाल ही में Python और Torchchat के साथ LLMs कैसे चलाएँ पर एक लेख लिखा था। Torchchat एक लचीला फ़्रेमवर्क है जिसे विभिन्न हार्डवेयर प्लेटफ़ॉर्म पर LLMs को कुशलता से चलाने के लिए डिज़ाइन किया गया है। लोकली LLM चलाने के कई फायदे हैं, जैसे:
- ऑफ़लाइन एक्सेस: क्योंकि मॉडल हमारे डिवाइस पर चलता है, हमें इसे उपयोग करने के लिए इंटरनेट से कनेक्ट होने की ज़रूरत नहीं होती।
- गोपनीयता: चूँकि हम मॉडल स्वयं चलाते हैं, हमारे द्वारा डाले गए प्रॉम्प्ट और डेटा निजी रहते हैं।
- लागत: हम मॉडल को मुफ़्त में चला सकते हैं।
Facebook के हालिया Llama 3.2 रिलीज़ के बाद, मैंने अपने पिछले लेख को आगे बढ़ाते हुए इसे हमारे मोबाइल फ़ोनों पर, विशेषकर Android पर, डिप्लॉय करना सिखाने का निर्णय लिया।
हमें क्या करना है, उसका उच्च-स्तरीय अवलोकन यहाँ है:
- मॉडल फ़ाइलें डाउनलोड करें, जो ओपन सोर्स होने के कारण मुफ़्त में उपलब्ध हैं।
- मोबाइल डिवाइस पर मॉडल चलाने के लिए आवश्यक फ़ाइलें जेनरेट करें।
- ऐसी Android चैट ऐप सेट करें जो मॉडल को निष्पादित करती है।
Torchchat इन सभी चरणों का समाधान प्रदान करता है। इसमें मॉडल डाउनलोड करने और उसे चलाने के लिए आवश्यक फ़ाइलें बनाने के कमांड मौजूद हैं। इसके अलावा, यह एक डेमो चैट Android ऐप के साथ आता है, इसलिए हमें खुद से ऐप बनाने की ज़रूरत नहीं है।
Torchchat डाउनलोड करना
पहला कदम Git का उपयोग करके Torchchat रिपोजिटरी को क्लोन करना है:
git clone git@github.com:pytorch/torchchat.git
हम Git के बिना भी GitHub पर डाउनलोड बटन का उपयोग करके इसे डाउनलोड कर सकते हैं:

महत्वपूर्ण नोट: रिपोजिटरी क्लोन (या डाउनलोड) करने के बाद, हमारे कंप्यूटर पर torchchat नाम का एक फ़ोल्डर उपलब्ध हो जाएगा। इस लेख में बताए गए सभी कमांड उसी फ़ोल्डर के भीतर से चलाए जाने चाहिए।
Torchchat इंस्टॉलेशन
हम मान लेते हैं कि Python और Anaconda पहले से इंस्टॉल हैं। यदि नहीं हैं, तो इन दो ट्यूटोरियल्स को देखें: Windows पर Anaconda इंस्टॉल करना और Mac OS X पर Anaconda कैसे इंस्टॉल करें।
वैकल्पिक रूप से, Torchchat रिपोजिटरी पर दिए गए चरणों का पालन करें, जो Anaconda के बजाय एक वर्चुअल एनवायरनमेंट का उपयोग करता है।
हम निम्न कमांड का उपयोग करके Anaconda एनवायरनमेंट बनाकर शुरू करेंगे:
conda create -yn llama python=3.10.0
यह llama नाम का एक एनवायरनमेंट बनाता है जो Python के 3.10 संस्करण का उपयोग करता है। -yn विकल्प -y और -n को जोड़ता है:
-yविकल्प एनवायरनमेंट बनाने से पहले पुष्टि पूछे बिना कमांड को आगे बढ़ने देता है।-nविकल्प एनवायरनमेंट का नाम निर्दिष्ट करता है, जो इस मामले मेंllamaहै। एनवायरनमेंट बनाने के बाद, हम इसे सक्रिय करते हैं और डिपेंडेंसीज़ इंस्टॉल करते हैं।
इसे सक्रिय करने के लिए, हम निम्न कमांड का उपयोग करते हैं:
conda activate llama
आवश्यक डिपेंडेंसीज़ इंस्टॉल करने के लिए, हम TorchChat द्वारा प्रदान की गई इंस्टॉलेशन स्क्रिप्ट का उपयोग करते हैं:
./install/install_requirements.sh
Llama 3.2 1B मॉडल डाउनलोड करना
इस ट्यूटोरियल में, हम Llama 3.2 1B मॉडल का उपयोग करेंगे, जो एक एक-बिलियन-पैरामीटर मॉडल है। हम इसे निम्न कमांड का उपयोग करके डाउनलोड कर सकते हैं:
python torchchat.py download llama3.2-1b
अन्य मॉडलों के साथ प्रयोग करने के लिए भी यही प्रक्रिया है—हमें llama3.2-1b को इच्छित मॉडल के उपनाम से बदलना होगा। यह महत्वपूर्ण है कि केवल उन्हीं मॉडलों का चयन करें जिन्हें मोबाइल-फ्रेंडली चिह्नित किया गया है।
Torchchat मॉडल प्रबंधन के लिए Hugging Face का उपयोग करता है। इसलिए, मॉडल डाउनलोड करने के लिए Hugging Face अकाउंट की आवश्यकता होती है। अकाउंट बनाने और टर्मिनल से लॉग इन करने की विस्तृत गाइड के लिए, इस Torchchat ट्यूटोरियल के “Downloading a model” सेक्शन को देखें।
वैकल्पिक रूप से, मॉडल को Llama की आधिकारिक वेबसाइट से भी डाउनलोड किया जा सकता है। हालाँकि, Torchchat का उपयोग अधिक सुविधाजनक है, क्योंकि यह मोबाइल डिप्लॉयमेंट के लिए मॉडल फ़ाइलों को एक्सपोर्ट करना आसान बनाता है।
मॉडल एक्सपोर्ट करना
मोबाइल डिवाइस पर डिप्लॉय करने के लिए, हम पहले मॉडल को एक्सपोर्ट करते हैं ताकि .pte आर्टिफैक्ट जनरेट हो सके, जो Executorch द्वारा उपयोग की जाने वाली फ़ाइल है। Executorch वह इंजन है जिसका उपयोग Torchchat मोबाइल डिवाइस पर LLM चलाने के लिए करता है।
PTE फ़ाइल जनरेट करने के लिए, हमें पहले Executorch इंस्टॉल करना होगा। ऐसा करने के लिए, निम्न कमांड चलाएँ:
export TORCHCHAT_ROOT=${PWD}
./torchchat/utils/scripts/install_et.sh
इंस्टॉलेशन पूरा होने के बाद, हम निम्न कमांड का उपयोग करके PTE फ़ाइल जनरेट कर सकते हैं:
python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte
यह कमांड मॉडल को क्वांटाइज़ भी करेगा, जिससे इसका आकार घटेगा और इन्फ़्रेंस स्पीड बढ़ेगी। हम torchchat/quant_config/mobile.json में Torchchat की डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करते हैं।
इस प्रक्रिया के पूरा होने पर, torchchat फ़ोल्डर में llama3_2-1b.pte नाम की फ़ाइल बन जाएगी।
मोबाइल ऐप तैयार करना
Torchchat एक डेमो Android ऐप प्रदान करता है जो हमें सीधे अपने स्मार्टफ़ोन पर Llama चलाने देता है। यह डेमो प्रोजेक्ट डाउनलोड किए गए Torchchat फ़ोल्डर में मिलता है। इसका सापेक्ष पथ है torchchat/edge/android/torchchat। ध्यान दें कि पथ में पहला torchchat रिपोजिटरी के अंदर के फ़ोल्डर को संदर्भित करता है, न कि रिपोजिटरी के रूट फ़ोल्डर को।
Java लाइब्रेरी डाउनलोड और सेटअप करें
- Torchchat द्वारा प्रदान की गई
.aarफ़ाइल डाउनलोड करें। इसमें ऐप को बिल्ड और रन करने के लिए Java लाइब्रेरी और संबंधित JNI लाइब्रेरी शामिल हैं। - फ़ोल्डर ऐप डायरेक्टरी पर जाएँ:
torchchat/edge/android/torchchat/app/ - यदि पहले से मौजूद नहीं है, तो
libsनाम की डायरेक्टरी बनाएँ - डाउनलोड की गई फ़ाइल का नाम बदलकर
executorch.aarरखें और इसेlibsफ़ोल्डर में पेस्ट करें।
Android Studio पर Android प्रोजेक्ट लोड करें
Android Studio को आधिकारिक वेबसाइट से डाउनलोड और इंस्टॉल करें। इंस्टॉलेशन पूरा होने पर, प्रोजेक्ट खोलें:

डेमो प्रोजेक्ट torchchat/edge/android/torchchat पर स्थित है।
जब हम प्रोजेक्ट खोलते हैं, तो हमें यह विंडो दिखाई देती है जो पूछती है कि क्या हम कोड पर भरोसा करते हैं:

यहाँ, “Trust Project” विकल्प चुनें।
प्रोजेक्ट खोलने के बाद, Android Studio को कॉन्फ़िगरेशन लोड करने और प्रारंभिक सेटअप पूरा करने में कुछ समय लगेगा। यह प्रक्रिया पूरी होने तक प्रतीक्षा करना महत्वपूर्ण है। हम विंडो के निचले दाएँ कोने में स्थिति मॉनिटर कर सकते हैं। तैयार होने पर, ऊपर का रन बटन हरा हो जाएगा:

Android पर डेवलपर मोड सेट करना
फ़ोन पर Android Studio के ज़रिए ऐप चलाने के लिए, हमें अपने डिवाइस पर डेवलपर मोड सक्षम करना होगा। ऐसा करने का तरीका यहाँ है:
- "Settings" पर जाएँ
- "About device" या "About phone" चुनें
- “Software information” खोलें
- “Build number” ढूँढें और उसे सात बार दबाएँ
बस! अब हम Android Studio से ऐप चलाने के लिए अपने डिवाइस का उपयोग कर सकते हैं। ऐसा करने पर, ऐप हमारे फ़ोन पर बना रहेगा, जिससे हम इसे कंप्यूटर से कनेक्शन के बिना भी चला सकेंगे।
adb इंस्टॉल करना
ऐप को मॉडल फ़ाइलें फ़ोन पर एक विशिष्ट फ़ोल्डर में चाहिए होती हैं। उन फ़ाइलों को फ़ोन पर भेजने के लिए हम adb (Android Debug Bridge) का उपयोग करते हैं। हम इसे Android Studio के ज़रिए इन चरणों का पालन करके इंस्टॉल कर सकते हैं:
- सेटिंग्स पर जाएँ और सर्च बार में “Android SDK” टाइप करना शुरू करें
- “Android SDK” नाम के मेनू को ढूँढें और उस पर क्लिक करें
- “Android SDK command line tools (latest)” विकल्प चुनें
- इसे इंस्टॉल करने के लिए “Apply” पर क्लिक करें

ध्यान दें कि विंडो के शीर्ष पर Android Studio Android sdk का लोकेशन दिखाता है:

हम उस पथ को कॉपी करते हैं और निम्न कमांड चलाते हैं (नीचे <android_skd_location> को अभी कॉपी किए गए पथ से बदलें):
export PATH=$PATH:<android_skd_location>/platform-tools/
पुष्टि करने के लिए कि adb सफलतापूर्वक इंस्टॉल हो गया है, adb --version कमांड का उपयोग करें, जो adb का संस्करण दिखाएगा।
फ़ोन पर ऐप सेट करना
फ़ोन को केबल से कंप्यूटर से कनेक्ट करें। डिवाइस का नाम रन बटन के पास डिवाइसों की सूची में दिखाई देगा:

फ़ोन पर ऐप चलाने से पहले, अब हम adb का उपयोग करके आवश्यक मॉडल फ़ाइलों को अपने डिवाइस पर कॉपी करते हैं।
- डिवाइस का id
adb devicesकमांड से ढूँढें। आउटपुट में कई पंक्तियाँ हो सकती हैं। उस पंक्ति को ढूँढें जिसका रूप<device_code>device हो और डिवाइस कोड कॉपी करें। - मॉडल फ़ाइलें स्टोर करने के लिए डायरेक्टरी बनाएँ:
adb -s <device_code> shell mkdir -p /data/local/tmp/llama। torchchatफ़ोल्डर में स्थित.pteफ़ाइल कॉपी करें:adb -s <device_code> push llama3_2-1b.pte /data/local/tmp/llama।- मॉडल के टोकनाइज़र फ़ाइल को ढूँढें:
python torchchat.py where llama3.2-1b। यह कई पंक्तियाँ आउटपुट करेगा; हमें अंतिम पंक्ति में दिखाए गए पथ की परवाह है।
![]()
- पिछले चरण में प्राप्त पथ को
<model_path>से बदलते हुए, टोकनाइज़र फ़ाइल डिवाइस पर कॉपी करें:adb -s <device_code> push <model_path>/tokenizer.model /data/local/tmp/llama।
इन चरणों को पूरा करने के बाद, मॉडल फ़ाइलें हमारे फ़ोन पर होनी चाहिए और उपयोग के लिए तैयार। हम अभी बनाए गए डिवाइस फ़ोल्डर में स्थित सभी फ़ाइलों को लिस्ट करके जाँच सकते हैं:
adb -s <device_code> shell ls
आउटपुट में वे दो फ़ाइलें होनी चाहिए जो हमने अभी कॉपी की हैं:
llama3_2-1b.pte
tokenizer.model
ऐप चलाना
अब हमारे फ़ोन पर डेमो ऐप चलाने के लिए सब कुछ तैयार है। हम इसे चलाने के लिए हरे तीर पर क्लिक कर सकते हैं।

यह हमारे डिवाइस पर ऐप खोलेगा। ऐप हमसे मॉडल और टोकनाइज़र फ़ाइलें चुनने के लिए कहेगा।

Llama 3.2 1B ऐप का उपयोग
अब हम अपने फ़ोन पर Llama3.2 1B से चैट करना शुरू कर सकते हैं! ऐप का इंटरफ़ेस काफ़ी सरल है। हम “Prompt” टेक्स्टबॉक्स में प्रॉम्प्ट लिख सकते हैं और “Generate” बटन का उपयोग करके उसे मॉडल को भेज सकते हैं।
चूँकि मॉडल ऑफ़लाइन चलता है, मैं इसे अपनी अगली मंज़िल के लिए उड़ान में भी उपयोग कर सका—उदाहरण के लिए, कुछ व्यंजन सिफ़ारिशें पूछने के लिए:

इस इंटरेक्शन से, हम डेमो ऐप की कुछ सीमाएँ देखते हैं:
- उत्तर हमारे प्रॉम्प्ट को दोहराता है।
- उत्तर का फ़ॉर्मेटिंग “I’ve been to Taiwan…” से शुरू होता है, जो दर्शाता है कि ऐप सीधे असिस्टेंट की तरह मॉडल का उपयोग करने के लिए डिज़ाइन नहीं है।
- प्रतिक्रियाएँ अचानक कट जाती हैं, संभवतः इसलिए कि टोकन लिमिट पूरी हो गई है।
हम टर्मिनल पर वही मॉडल निम्न कमांड से चलाकर व्यवहार की तुलना कर सकते हैं:
python torchchat.py chat llama3.2-1b
हमने देखा कि व्यवहार अलग है या नहीं, यह देखने के लिए वही प्रॉम्प्ट दिया। वास्तव में, इस मामले में उत्तर कहीं अधिक स्वाभाविक और उपयोगी लगता है, भले ही वह भी कट गया हो:

मैंने Torchchat के पीछे की टीम से संपर्क किया, और उन्होंने बताया कि Llama 3.2 अभी बहुत नया है और डेमो ऐप को इसे सपोर्ट करने के लिए थोड़ा अपडेट करना होगा।
हालाँकि, सेटअप प्रक्रिया वही रहेगी, और यहाँ अर्जित किया गया ज्ञान अपडेटेड संस्करण पर भी लागू होगा। संभव है कि जब तक आप यह लेख पढ़ रहे हों, तब तक इसे अपडेट कर दिया गया हो और यह सही से काम कर रहा हो।
निष्कर्ष
इस गाइड में, हमने सीखा कि Torchchat का उपयोग करके सीधे Android डिवाइस पर Llama 3.2 1B कैसे सेट अप करें। हमने मॉडल फ़ाइलें और डेमो Android ऐप सहित आवश्यक कंपोनेंट्स को डाउनलोड और इंस्टॉल करने की चरण-दर-चरण प्रक्रिया को कवर किया।
भले ही वर्तमान डेमो ऐप में, विशेषकर प्रतिक्रिया के फ़ॉर्मेटिंग और लंबाई को लेकर, कुछ सीमाएँ हों, ऐसे इम्प्लीमेंटेशन्स की अंतर्निहित संभावनाएँ बहुत बड़ी हैं।
यदि आप Llama 3.2 पर और पढ़ना चाहते हैं, तो मैं इन ब्लॉगों की सिफ़ारिश करता/करती हूँ:
