2 पॉइंट द्वारा GN⁺ 2023-11-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें

llamafile प्रोजेक्ट सारांश

  • AI डेवलपर्स के उस सपने को साकार करने के लिए, जिसमें वे कहीं भी build और run कर सकें, llama.cpp और Cosmopolitan Libc को मिलाकर एक framework विकसित किया गया है
  • llamafile अलग-अलग CPU microarchitecture और CPU architecture पर चल सकता है, और कई operating systems में एक ही build से code execution को सपोर्ट करता है
  • LLM के weights को llamafile के भीतर शामिल करके direct memory mapping के जरिए तेज़ execution संभव होता है

बाइनरी उपयोग विधि

  • Hugging Face के माध्यम से डाउनलोड किए जा सकने वाले कई models के example binaries उपलब्ध हैं
  • command line binary को उसी तरह चलाया जाता है जैसे llama.cpp के main function को manually call किया जाता है
  • server binary एक local web server चलाकर web-based chatbot उपलब्ध कराता है

ध्यान देने योग्य बातें

  • macOS पर Apple Silicon इस्तेमाल करते समय Xcode install होना आवश्यक है
  • Windows में चलाने के लिए फ़ाइल का नाम llamafile.exe रखना होगा
  • zsh, Python subprocess, Fish आदि में execution समस्या आने पर alternative commands इस्तेमाल करने की सलाह दी जाती है
  • Linux में binfmt_misc समस्या होने पर उसका समाधान भी दिया गया है

GPU सपोर्ट

  • Apple Silicon पर Xcode install होने पर यह अपने आप काम करता है
  • Linux में Nvidia cuBLAS GPU support के लिए compiler install करना और flags सेट करना आवश्यक है
  • Windows में पहली बार MSVC x64 native command prompt से चलाने के बाद CUDA path सेट करना होता है

source code build करने का तरीका

  • cosmocc toolchain का उपयोग करके llamafile source code build करने की विधि बताई गई है
  • libc function code generation और HTTP server चलाने के examples दिए गए हैं

zipalign दस्तावेज़

  • PKZIP archive में aligned uncompressed files जोड़ने के लिए zipalign tool के उपयोग की व्याख्या की गई है
  • यह मौजूदा ZIP archive tools की तुलना में तेज़ execution देता है और memory alignment requirements को पूरा करता है

तकनीकी विवरण

  • llamafile shell script और weights को मिलाकर तेज़ execution संभव बनाने के लिए mmap() फीचर का उपयोग करता है
  • ZIP weight inclusion, microarchitecture और architecture portability, तथा GPU support के लिए तकनीकी समाधान प्रस्तुत किए गए हैं

लाइसेंस

  • llamafile प्रोजेक्ट Apache 2.0 license का उपयोग करता है, और llama.cpp में किए गए बदलावों पर MIT license लागू होता है

ज्ञात समस्याएँ

  • 64-bit Windows में 4GB फ़ाइल आकार सीमा होने के कारण weights को अलग फ़ाइल के रूप में इस्तेमाल करना पड़ता है

GN⁺ की राय

इस लेख का सबसे महत्वपूर्ण बिंदु यह है कि AI डेवलपर्स कहीं भी आसानी से LLM build और run कर सकें, इसके लिए llamafile प्रोजेक्ट ने एक अभिनव तरीका अपनाया है। यह प्रोजेक्ट अलग-अलग platforms और architectures पर compatibility देता है, और weights सहित एक ही फ़ाइल में distribution संभव बनाकर usability को काफी बेहतर करता है। ऐसी तकनीकी प्रगति AI research और development को और तेज़ कर सकती है, इसलिए इस क्षेत्र में रुचि रखने वालों के लिए यह बेहद दिलचस्प सामग्री है।

1 टिप्पणियां

 
GN⁺ 2023-11-30
Hacker News की राय
  • LLaVA मॉडल का उपयोग कैसे करें

    • macOS पर LLaVA मॉडल आज़माने का सबसे अच्छा तरीका टेक्स्ट और इमेज को मिलाने वाले मॉडल का उपयोग करना है, जो GPT-4 Vision जैसा है।
    • macOS पर इसे चलाने का तरीका चरण-दर-चरण समझाया गया है, और उम्मीद है कि यह दूसरे प्लेटफ़ॉर्म पर भी इसी तरह काम करेगा (हालाँकि अभी आज़माया नहीं गया है)।
      1. Hugging Face से 4.26GB आकार की llamafile-server-0.1-llava-v1.5-7b-q4 फ़ाइल डाउनलोड करें
      2. टर्मिनल में executable permission दें
      3. executable चलाकर 8080 पोर्ट पर web server शुरू करें
      4. ब्राउज़र में http://127.0.0.1:8080/ खोलें, इमेज अपलोड करें और मॉडल से बातचीत शुरू करें
  • macOS ऐप डेवलपमेंट अनुभव साझा

    • Justine Tunney / jart के शानदार portability काम की सराहना करते हुए, डेवलपर अपनी macOS ऐप में SwiftUI frontend के साथ llama.cpp चलाते हैं।
    • ऐप के पहले version में single download के बाद chat flow और बिना network connection के काम करने पर ध्यान दिया गया था।
    • मॉडल को ऐप में bundle करके दिया गया था ताकि डाउनलोड के तुरंत बाद उसका उपयोग हो सके, लेकिन UI update जारी करते समय users को हर बार 3GB फिर से डाउनलोड करना पड़ता था।
    • users की शिकायतों के बाद, default model download और UI को अलग कर दिया गया, ताकि ऐप update के समय केवल लगभग 5MB ही वितरित करना पड़े।
    • उम्मीद है कि इस टूल का उपयोग करने वाले लोग जब llama.cpp update करना चाहेंगे तब उन्हें भी इसी तरह की समस्या का सामना करना पड़ सकता है, और यह सवाल उठता है कि क्या कभी ऐसी स्थिति हो सकती है जहाँ यह समस्या महत्वपूर्ण न हो।
  • Simon Willison की संबंधित पोस्ट की सिफारिश

    • Simon Willison की संबंधित पोस्ट का सिफारिशी लिंक साझा किया गया है।
  • संबंधित लिंक साझा

    • Mozilla के llamafile परिचय और Justine Tunney के ट्वीट के लिंक साझा किए गए हैं।
  • Llaminate नाम का सुझाव

    • Llama-compatible models को उपयोग के लिए तैयार blob में wrap करने के सामान्य काम के लिए 'Llaminate' नाम का सुझाव दिया गया है।
  • Cosmopolitan का उपयोग करके CUDA support पर आश्चर्य

    • इस बात पर आश्चर्य जताया गया है कि Cosmopolitan ने इस महीने GPU को सक्षम करने के लिए dynamic linking support जोड़ा है।
    • CUDA developer toolkit की installation ज़रूरी है, लेकिन Nvidia driver के अलावा किसी अलग dependency के बिना CUDA apps deploy करने की संभावना को दिलचस्प बताया गया है।
  • Windows में executable आकार सीमा का उल्लेख

    • Windows 10 64-bit सिस्टम पर 4GB executable ठीक से काम करने का अनुभव साझा किया गया है।
  • llama.cpp में विभिन्न मॉडल आज़माने का तरीका साझा

    • GitHub से llama.cpp clone करके, ज़रूरी मॉडल डाउनलोड करके और server चलाने का तरीका code के साथ साझा किया गया है।
  • केवल single model और weights पर चलने वाली binary की सीमितता की ओर इशारा

    • ऐसी binary की सीमितता पर राय दी गई है जो सिर्फ एक model और एक weights set के साथ चलती है।
  • Justine की हैरान कर देने वाली प्रोजेक्ट बनाने की रफ़्तार का उल्लेख

    • Justine के हैरान कर देने वाली रफ़्तार से शानदार प्रोजेक्ट बनाने का उल्लेख किया गया है।