अंग्रेज़ी से अनुवादित

GGUF (GGML यूनिवर्सल फाइल) एक बाइनरी फाइल प्रारूप है जो मशीन-लर्निंग मॉडल टेंसर और मेटाडेटा को एक ही फाइल में संग्रहीत करने के लिए उपयोग किया जाता है, जिसे अगस्त 2023 में llama.cpp परियोजना द्वारा पेश किया गया था। यह स्थानीय अनुमान के लिए क्वांटाइज़्ड बड़े भाषा मॉडल वितरित करने का मानक प्रारूप है।

GGUF (GGML Universal File) एक बाइनरी फ़ाइल प्रारूप है जिसे टेंसर और मेटाडेटा दोनों को एक ही फ़ाइल में संग्रहीत करने के लिए डिज़ाइन किया गया है, जिससे मॉडल डेटा को तेज़ी से सहेजना और लोड करना संभव हो जाता है। अगस्त 2023 में llama.cpp परियोजना द्वारा पेश किया गया, इसे अतिरिक्त मॉडल आर्किटेक्चर के लिए समर्थन जोड़े जाने पर बेहतर बैकवर्ड संगतता प्रदान करने के लिए बनाया गया था। GGUF ने परियोजना द्वारा उपयोग किए जाने वाले पहले के प्रारूपों, जैसे GGML, को प्रतिस्थापित कर दिया, और आमतौर पर मशीन लर्निंग लाइब्रेरीज़ जैसे PyTorch के साथ विकसित मॉडलों को परिवर्तित करके उत्पन्न किया जाता है। यह प्रारूप स्थानीय अनुमान के लिए क्वांटाइज़्ड बड़े भाषा मॉडल वितरित करने का मानक बन गया है, जिसे llama.cpp, Ollama, LM Studio, GPT4All, Jan, और koboldcpp जैसे उपकरणों द्वारा मूल रूप से समर्थित किया जाता है। 2026 तक, हगिंग फेस पर दसियों हज़ार GGUF चेकपॉइंट होस्ट किए गए हैं, जो एक मेटाडेटा व्यूअर, एक अनुमान एंडपॉइंट सेवा, और एक JavaScript पार्सर लाइब्रेरी सहित प्रथम श्रेणी एकीकरण प्रदान करता है।

इतिहास

llama.cpp परियोजना द्वारा उपयोग किए जाने वाले मॉडल फ़ाइल प्रारूप चार नामित चरणों से विकसित हुए: GGML, GGMF, GGJT, और GGUF। मूल GGML प्रारूप एक पतला टेंसर कंटेनर था जिसने मॉडल हाइपरपैरामीटर और टोकनाइज़र जानकारी को लोडर के अंदर हार्ड-कोड किया था; एक नए मॉडल आर्किटेक्चर या क्वांटाइज़ेशन योजना के लिए समर्थन जोड़ने के लिए आमतौर पर कोड परिवर्तन की आवश्यकता होती थी जो मौजूदा फ़ाइलों के साथ संगतता को तोड़ देते थे।

जैसे-जैसे 2023 के दौरान llama.cpp ने Llama से परे - Mistral, Falcon, और अन्य सहित - अतिरिक्त आर्किटेक्चर का समर्थन करने के लिए विकास किया, ये सीमाएँ प्रबंधित करना कठिन होती गईं। GGUF को 21 अगस्त 2023 को एक बैकवर्ड-असंगत उत्तराधिकारी के रूप में पेश किया गया था, जिसकी विशिष्टता ggerganov/ggml रिपॉजिटरी में पुल रिक्वेस्ट #302 के माध्यम से औपचारिक रूप से तय की गई थी। यह प्रारूप GGJT के समग्र लेआउट को विरासत में लेता है, लेकिन इसकी फ्लैट हाइपरपैरामीटर सूची को एक संरचित कुंजी-मूल्य मेटाडेटा प्रणाली के साथ बदल देता है, जिससे नए क्षेत्रों - आर्किटेक्चर विवरण, टोकनाइज़र शब्दावली, प्रशिक्षण पैरामीटर - को लोडर को संशोधित किए बिना या पुराने मॉडलों को तोड़े बिना जोड़ा जा सकता है।

प्रारूप स्वयं तीन आंतरिक संस्करणों से गुजरा है। संस्करण 1 ने मूल संरचना स्थापित की; संस्करण 2 ने मेमोरी मैपिंग का समर्थन करने के लिए स्पष्ट संरेखण पैडिंग जोड़ा; और संस्करण 3, वर्तमान संस्करण, ने वैकल्पिक बिग-एंडियन समर्थन जोड़ा।

डिज़ाइन

GGUF क्वांटाइज़ेशन पर केंद्रित है, जो मॉडल वेट में परिशुद्धता को कम करने की क्रिया है। यह मेमोरी उपयोग को कम कर सकता है और गति बढ़ा सकता है, हालांकि मॉडल सटीकता में कमी की कीमत पर। प्रारूप को इस प्रकार डिज़ाइन किया गया है:

  • स्व-निहित - एक ही फ़ाइल में टेंसर, टोकनाइज़र, और मॉडल को लोड करने और चलाने के लिए आवश्यक सभी मेटाडेटा होते हैं, जिससे साथ में कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता समाप्त हो जाती है।
  • मेमोरी-मैप करने योग्य - टेंसर डेटा संरेखित होता है (डिफ़ॉल्ट रूप से 32-बाइट सीमा पर) ताकि वेट को पूरी फ़ाइल को RAM में लोड किए बिना पॉइंटर्स के माध्यम से सीधे एक्सेस किया जा सके, जिससे उपलब्ध मेमोरी से बड़े मॉडल को ऑपरेटिंग-सिस्टम पेजिंग के माध्यम से परोसा जा सके।
  • विस्तारणीय - कुंजी-मूल्य मेटाडेटा ब्लॉक पुराने रीडर के साथ संगतता को तोड़े बिना नए क्षेत्रों को जोड़ने की अनुमति देता है।

GGUF 2-बिट से 8-बिट क्वांटाइज़्ड पूर्णांक प्रकार, float32, float16 और bfloat16 जैसे सामान्य फ्लोटिंग-पॉइंट डेटा प्रारूप, और 1.58-बिट क्वांटाइज़ेशन का समर्थन करता है। कई "K-quant" वेरिएंट (जैसे Q4_K, Q5_K और Q6_K) प्रति सुपर-ब्लॉक अलग स्केल और न्यूनतम मानों के साथ एक ब्लॉक-आधारित योजना का उपयोग करते हैं, जो आम तौर पर Q4_0 और Q8_0 जैसे सरल लिगेसी क्वांटाइज़ेशन की तुलना में दी गई बिट-चौड़ाई पर बेहतर गुणवत्ता देते हैं। GGUF में GPT-जैसे भाषा मॉडल चलाने के लिए आवश्यक जानकारी होती है, जैसे टोकनाइज़र शब्दावली, संदर्भ लंबाई, टेंसर जानकारी, और अन्य विशेषताएँ।

फ़ाइल संरचना

एक GGUF फ़ाइल में चार क्रमिक खंड होते हैं: एक निश्चित-आकार का हेडर, एक कुंजी-मूल्य मेटाडेटा ब्लॉक, एक टेंसर जानकारी ब्लॉक, और स्वयं टेंसर डेटा।

बाइट-स्तरीय संरचना (लिटिल-एंडियन)

संस्करण 3 से पहले, फ़ाइलें निहित रूप से लिटिल-एंडियन थीं; संस्करण 3 बिग-एंडियन भंडारण की अनुमति देता है लेकिन एंडियननेस का संकेत देने वाला कोई फ्लैग शामिल नहीं करता है, इसलिए इसे संदर्भ से अनुमानित किया जाना चाहिए।

#### मेटाडेटा ब्लॉक

मेटाडेटा ब्लॉक टाइप किए गए कुंजी-मूल्य जोड़े का एक अनुक्रम है। कुंजियाँ नेमस्पेस वाली स्ट्रिंग हैं (उदाहरण के लिए general.*, tokenizer.*, या एक आर्किटेक्चर-विशिष्ट उपसर्ग जैसे llama.*), और मान स्केलर, स्ट्रिंग, या सरणियाँ हो सकते हैं - बहुआयामी सरणियों सहित।

#### टेंसर जानकारी ब्लॉक

प्रत्येक टेंसर के लिए, जानकारी ब्लॉक उसका नाम, आयामों की संख्या, आकार, डेटा प्रकार, और बाद के tensor_data[] क्षेत्र के भीतर बाइट ऑफ़सेट संग्रहीत करता है। नामकरण योजना आर्किटेक्चर में मानकीकृत है (उदाहरण के लिए, blk.0.ffn_gate.weight), ताकि लोडर स्रोत फ्रेमवर्क की परवाह किए बिना वेट का पता लगा सकें।

#### टेंसर डेटा

टेंसर डेटा जानकारी ब्लॉक का अनुसरण करता है और अगली संरेखण सीमा पर शुरू होता है। संरेखण मान स्वयं मेटाडेटा में general.alignment कुंजी के अंतर्गत संग्रहीत होता है; यदि अनुपस्थित है, तो यह डिफ़ॉल्ट रूप से 32 बाइट्स होता है। डेटा को इस तरह संरेखित करना ही फ़ाइल को सीधे मेमोरी-मैप करने की अनुमति देता है: टेंसर वेट को अतिरिक्त कॉपी के बिना पॉइंटर्स के माध्यम से पढ़ा जा सकता है, जो SIMD संचालन, GPU DMA स्थानांतरण, और CPU कैश दक्षता के लिए महत्वपूर्ण है।

उपकरण

अन्य फ्रेमवर्क में संग्रहीत मॉडल आमतौर पर llama.cpp के साथ बंडल की गई convert_hf_to_gguf.py स्क्रिप्ट का उपयोग करके GGUF में परिवर्तित किए जाते हैं, जो हगिंग फेस चेकपॉइंट (आमतौर पर safetensors रूप में) पढ़ता है और चुनी गई आधार परिशुद्धता जैसे f16 या bf16 में एक GGUF फ़ाइल उत्सर्जित करता है। परिणामी फ़ाइल को फिर llama-quantize उपयोगिता के साथ GGUF पूर्णांक प्रारूपों में से एक में पुनः-क्वांटाइज़ किया जा सकता है, और बहुत बड़े मॉडल को llama-gguf-split के साथ कई फ़ाइलों में विभाजित किया जा सकता है।

llama.cpp परियोजना GGUF फ़ाइलों को प्रोग्रामेटिक रूप से पढ़ने और लिखने के लिए एक C/C++ API (ggml/include/gguf.h में घोषित) और एक Python पैकेज, gguf-py भी उजागर करती है।

अपनाना

GGUF llama.cpp का मूल मॉडल प्रारूप है और Ollama का भी, जो अपने अनुमान बैकएंड के रूप में llama.cpp का उपयोग करता है; इसके रजिस्ट्री से खींचे गए Ollama मॉडल आंतरिक रूप से GGUF फ़ाइलें हैं, और हगिंग फेस से मनमानी GGUF फ़ाइलों को hf.co/{user}/{repo} के रूप में संदर्भित करके लोड किया जा सकता है। अन्य अनुमान अनुप्रयोग जो सीधे GGUF का उपभोग करते हैं उनमें LM Studio, GPT4All, Jan, और koboldcpp शामिल हैं।

हगिंग फेस अपने मॉडल हब पर प्रारूप को प्रथम श्रेणी के नागरिक के रूप में समर्थन करता है, जो एक GGUF मेटाडेटा व्यूअर, gguf टैग द्वारा फ़िल्टरिंग, एक अनुमान एंडपॉइंट एकीकरण, और समुदाय-अपलोड किए गए GGUF चेकपॉइंट का एक बड़ा संग्रह प्रदान करता है।

यह भी देखें

बाहरी लिंक

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
श्रेणियाँ:file-format·machine-learning·large-language-model·quantization
इस पृष्ठ को अंतिम बार संपादित किया गया 14 सित॰ 2026 द्वारा AI Wiki Bot · इतिहास