BitNet - 1-बिट LLM के लिए inference framework
(github.com/microsoft)- Microsoft का bitnet.cpp 1-बिट large language model (LLM) के लिए आधिकारिक inference framework है, जो CPU और GPU पर तेज़ और lossless inference को सपोर्ट करता है
- ARM CPU पर 1.37~5.07x speed improvement और 55.4~70% energy savings, तथा x86 CPU पर 2.37~6.17x speed improvement और 71.9~82.2% energy savings हासिल की गई
- parallel kernel implementation और embedding quantization जोड़कर पहले की तुलना में 1.15~2.1x अतिरिक्त performance improvement प्रदान किया गया
- BitNet b1.58 मॉडल को एक single CPU पर 5~7 tokens प्रति सेकंड की गति से चलाया जा सकता है, जिससे local environment में very large model operation की संभावना बढ़ती है
- यह llama.cpp और T-MAC पर आधारित होकर विकसित किया गया है, और low-bit LLM inference efficiency के लिए open source ecosystem के विस्तार में योगदान देता है
bitnet.cpp overview
- bitnet.cpp 1-बिट LLM (उदाहरण: BitNet b1.58) के लिए आधिकारिक inference framework है, जो CPU और GPU पर optimized kernels प्रदान करता है
- NPU सपोर्ट भविष्य में जोड़ा जाएगा
- पहला release CPU inference को सपोर्ट करता है और ARM तथा x86 दोनों architectures पर speed और energy efficiency improvements साबित करता है
- ARM CPU: 1.37~5.07x speed improvement, 55.4~70% energy savings
- x86 CPU: 2.37~6.17x speed improvement, 71.9~82.2% energy savings
- 100B parameter BitNet b1.58 model को एक single CPU पर 5~7 tokens प्रति सेकंड की गति से चलाया जा सकता है
latest optimizations
- parallel kernel implementation, tiling configuration, और embedding quantization फीचर जोड़े गए हैं, जिनसे पहले की तुलना में 1.15~2.1x अतिरिक्त speed improvement हासिल हुई
- विभिन्न hardware platforms और workloads पर performance improvement की पुष्टि हुई
- विस्तृत तकनीकी जानकारी
optimization guideदस्तावेज़ में उपलब्ध है
demo और official models
- Apple M2 पर BitNet b1.58 3B model चलाने का demo उपलब्ध है
- आधिकारिक मॉडल के रूप में BitNet-b1.58-2B-4T Hugging Face पर जारी किया गया है, और x86 तथा ARM CPU पर सपोर्टेड है
- सपोर्टेड मॉडलों में bitnet_b1_58-large(0.7B), bitnet_b1_58-3B(3.3B), Llama3-8B-1.58, Falcon3, Falcon-E series शामिल हैं
installation और build
- आवश्यकताएँ: Python 3.9 या उससे ऊपर, CMake 3.22 या उससे ऊपर, Clang 18 या उससे ऊपर
- Windows users के लिए Visual Studio 2022 install करना आवश्यक है
- Debian/Ubuntu users के लिए automatic installation script उपलब्ध है
- Conda environment के उपयोग की सिफारिश की जाती है, और
setup_env.pyसे model environment सेट किया जा सकता है - Hugging Face से मॉडल डाउनलोड करने के बाद उसे local path से चलाया जा सकता है
usage और benchmarks
run_inference.pyसे quantized model inference चलाया जा सकता है- मुख्य arguments: model path(-m), prompt(-p), thread count(-t), context size(-c), temperature(-temp)
e2e_benchmark.pyscript से token count, prompt length, thread count निर्दिष्ट करके performance मापी जा सकती है- यदि public model उपलब्ध न हो, तो
generate-dummy-bitnet-model.pyसे dummy model बनाकर benchmark चलाया जा सकता है
model conversion और FAQ
.safetensorscheckpoint को gguf format में convert करने के लिए script उपलब्ध है- FAQ में llama.cpp build error (std::chrono से संबंधित) के समाधान और Windows पर clang environment setup की प्रक्रिया दी गई है
- Visual Studio Developer Command Prompt या PowerShell में environment initialization आवश्यक है
1 टिप्पणियां
Hacker News टिप्पणियाँ
Microsoft वास्तव में 1.58-bit नहीं बल्कि 2-bit का उपयोग कर रहा है
इस स्थिति में -1, 0, 1, 2 ये चार मान व्यक्त किए जा सकते हैं
चूँकि inhibitory synapse का हिस्सा 20~30% होता है, मुझे लगता है कि ऐसी संरचना जैविक मस्तिष्क की संरचना से अच्छी तरह मेल खाती है
मैं अक्सर सोचता हूँ कि “minimum viable LLM” किस रूप में होगा
यानी ऐसा मॉडल जो सिर्फ न्यूनतम जानकारी रखता हो और बाकी को Google search से पूरा करके भी पर्याप्त रूप से तर्कसंगत जवाब दे सके
अगर Encyclopedia Britannica जैसी जगहें अपना डेटा LLM को बेचें और result verification service दें, तो बड़ा फर्क पड़ सकता है
Wikipedia भी ठीक है, लेकिन उसमें मानवीय त्रुटि और पक्षपात बहुत है, यह खलता है
छोटे LLM पहले से ही इसी दिशा में आगे बढ़ रहे हैं; उनकी सामान्य knowledge कम है, लेकिन tool use capability (जैसे Google search) लगातार बेहतर हो रही है
हालाँकि, अपने ज्ञात और अज्ञात को साफ़-साफ़ अलग करना अभी भी कठिन समस्या है
जैसे कोई engineer किसी खास उपकरण को न जानता हो, फिर भी उसके पास problem-solving ability हो लेकिन detailed knowledge न हो
ऐसा मॉडल सिर्फ Google search या wiki search से हल निकाल पाएगा या नहीं, यह स्पष्ट नहीं है, लेकिन edge LLM architecture आगे चलकर standard बन सकती है
training data में शामिल जानकारी को खोजना और उसकी व्याख्या करना अधिक आसान हो जाता है
इसलिए internal memorization की बजाय external memory (जैसे search) पर निर्भर training व्यावहारिक हो सकती है
मैं तो उल्टा सोचता हूँ
मूल शोधपत्र (pdf) के अनुसार fp16 मॉडल की तुलना में लगभग 4~5 गुना अधिक parameters चाहिए
इसे खुद build किया जा सकता है, लेकिन चूँकि शुरुआत से training करनी पड़ती है, इसलिए विकल्प सीमित हैं
फिर भी, नवीनतम 4-bit·8-bit quantized models की तुलना में inference speed तेज़ होने की उम्मीद है
असली मुख्य बात energy savings है
कहा जाता है कि CPU inference में 70~82% तक की बचत संभव है
अगर 1-bit मॉडल पर्याप्त अच्छे हो जाएँ, तो GPU के बिना भी सामान्य hardware पर LLM चल सकेंगे, और accessibility का परिदृश्य बदल जाएगा
कहा जाता है कि bitnet.cpp 1-bit LLM (BitNet b1.58 आदि) के लिए आधिकारिक inference framework है,
लेकिन “1-bit है या 1 trit” को लेकर भ्रम है
दोनों अवधारणाओं को मिलाकर इस्तेमाल करना भ्रम पैदा करता है
इस project का लगातार develop होना देखकर अच्छा लगा
पिछले साल संबंधित लेख पढ़कर इसकी संभावना महसूस हुई थी, लेकिन नए models नहीं आए, यह निराशाजनक था
वास्तव में दिलचस्प दिशा यह है कि floating-point operations के बिना binary models को सीधे train किया जाए
संबंधित शोधपत्र NeurIPS 2024 में है
“100B BitNet चला सकते हैं” का मतलब यह नहीं कि मॉडल मौजूद है, बल्कि यह कि inference framework संभव है
“1-bit 100b model” खोजने पर भी कोई downloadable model नहीं मिलता
model output quality GPT-2 स्तर की बड़बड़ाहट के अधिक करीब है, और यह पूरे paragraph को ज्यों का त्यों दोहराता है
यहाँ तक कि
(Jenkins, 2010)जैसे फर्जी citations भी बार-बार इस्तेमाल करता हैशीर्षक भ्रामक है
वास्तव में यह trained 100B model नहीं, बल्कि उसे process कर सकने वाला inference framework है
मैं M2 Max 96GB पर llama.cpp + LiteLLM से 70B quantized model चला रहा हूँ, और memory bandwidth bottleneck है
1.58-bit approach matrix multiplication को addition में बदलने वाली संरचना है, इसलिए CPU पर इसका computation pattern मूल रूप से अलग है
अगर CPU single core पर 100B-स्तरीय model को 5~7 tokens प्रति सेकंड की रफ़्तार से चलाया जा सके, तो यह on-device inference का turning point होगा
framework तैयार है, अब बस किसी को वास्तव में model train करना है
प्रचार के मुकाबले वास्तविक उपलब्धि कमज़ोर है
training के लिए अब भी GPU चाहिए होंगे, लेकिन inference hardware कहीं अधिक सरल हो सकता है
मैंने 7 tokens/second पर output देने वाला model इस्तेमाल किया है, और उसमें किसी धीमे व्यक्ति के पीछे चलने जैसी झुँझलाहट थी
local environment में कम से कम 10 tokens/second या उससे अधिक का लक्ष्य होना चाहिए
आधुनिक CPU के FMA(Fused Multiply-Add) निर्देशों का throughput साधारण addition के लगभग समान होता है
आगे NPU वाले PC वास्तव में कब ठोस परिणाम देंगे, यह जानने की जिज्ञासा है
AMD को NPU/iGPU hybrid inference kernels में अच्छे परिणाम मिल रहे हैं
अगर ऐसे बड़े models NPU पर चलें, तो CPU की तुलना में power efficiency कहीं बेहतर होगी
तब से मैं NPU का प्रशंसक बन गया हूँ। बेशक यह RTX 5090 स्तर का नहीं है, लेकिन CPU से कहीं अधिक कुशल है
software ecosystem अस्थिर है, लेकिन यह लगभग 0 CPU/GPU usage के साथ काम करता है
मेरी समझ थी कि उनका design low-power केंद्रित होता है