एक AI संरचना जो बनी है मूल सिद्धांतों से, किसी का फ़ोर्क नहीं
आज की लगभग सारी कृत्रिम बुद्धिमत्ता (AI) उन्हीं चंद डिज़ाइनों का कोई न कोई रूप है। Cypha कहीं और से शुरू होता है: एक C++ टाइप, जिसका सीखने का नियम उधार नहीं लिया गया बल्कि गणित से निकाला गया है, और जो एक बार प्रशिक्षित होकर जम जाने के बजाय हर देखे गए उदाहरण पर ख़ुद को बदलता है। यह एक अनुसंधान परियोजना है, और इसकी नाकामियाँ नतीजों के साथ ही छापी जाती हैं।
- AIXI / Solomonoff — न्यूनतम विवरण लंबाई (MDL) की पूर्वधारणाएँ तय करती हैं कि मॉडल सस्ते में क्या मान सकता है।
- सूचना ज्यामिति — अद्यतन प्राकृतिक ग्रेडिएंट के साथ चलते हैं, इसलिए सीखना पैरामीटर स्पेस की वक्रता का लिहाज़ रखता है।
- सक्रिय अनुमान / मुक्त ऊर्जा — इससे ढाँचे का विभाजन मिलता है: प्रायर, डिफ़रेंशियल और संदर्भ।
- सूचना अड़चन — एनकोडर का लक्ष्य तय करती है: जो भविष्य बताता है उसे रखो, बाक़ी फेंक दो।
यह क्या है, एक मिनट में
इस्तेमाल में आ रहा लगभग हर AI सिस्टम मुट्ठी भर डिज़ाइनों का ही कोई रूप है। उन्हें किसी बड़ी मशीन पर एक बार प्रशिक्षित करके जमा हुआ भेज दिया जाता है, इसलिए किसी बदलती चीज़ के साथ चलने के लिए — धोखाधड़ी का नया तरीक़ा, कोई नई ख़राबी — लौटकर दोबारा प्रशिक्षण देना पड़ता है। वे बड़े भी हैं, जिससे उन्हें उपकरण पर नहीं बल्कि डेटा सेंटर में रखना पड़ता है, और किसी एक फ़ैसले की वजह बताना मुश्किल हो जाता है।
Cypha एक C++ टाइप है जो वर्गीकरण करता है, संख्याओं का पूर्वानुमान लगाता है और अनुक्रम बनाता है। उसका सीखने का नियम किसी मौजूदा संरचना से नक़ल नहीं, बल्कि गणित की चार शाखाओं से निकाला गया है, और वह हर देखे गए उदाहरण पर ख़ुद को बदलता है — न बैच, न एपॉक, न दोबारा प्रशिक्षण की रन। वह इतना छोटा है कि उसी हार्डवेयर पर चल सके जो डेटा जमा करता है।
फ़िलहाल, वे शोधकर्ता और इंजीनियर जो एक अलग डिज़ाइन आज़माने को तैयार हैं। इसका निशाना वे समस्याएँ हैं जहाँ डेटा लगातार बदलता रहता है — धोखाधड़ी, उपकरणों की ख़राबी, बदलता बर्ताव — जहाँ मॉडल को डेटा सेंटर में नहीं बल्कि उपकरण पर ही बैठना है, और जहाँ बाद में किसी को फ़ैसले की वजह बतानी पड़ती है।
यादृच्छिक फ़ीचर, जिन्हें बताया नहीं, नापा गया है
यादृच्छिक फ़ूरिये फ़ीचर (RFF) के पक्ष में Cypha की दलील यह है कि वे एक रैखिक हेड को वह अलग करने देते हैं जो एक रैखिक हेड नहीं कर सकता। यह नापने लायक़ दावा है, इसलिए यहाँ उसे नापा गया है — cypha::rff_features को WebAssembly में कंपाइल करके, JavaScript में दोबारा लिखकर नहीं।
cypha::rff_features — WebAssembly
लोड नहीं हुआसटीक रेडियल आधार फलन (RBF) कर्नेल, अगर n नमूना बिंदुओं पर लिया जाए, एक मैट्रिक्स देता है: K। यादृच्छिक फ़ीचर उसका एक सन्निकटन बनाते हैं: K̂। और जो यहाँ खींचा गया है, वह है ‖K − K̂‖F जैसे-जैसे फ़ीचरों की संख्या बढ़ती है: जितने ज़्यादा फ़ीचर, उतना क़रीबी सन्निकटन।
chi_d ताकि कोई ऑर्थोगोनल पंक्ति उस गाउसी पंक्ति से मेल खाए जिसकी वह जगह लेती है। पंक्तियाँ √d गुना छोटी थीं, इसलिए फ़ीचर ग़लत कर्नेल का सन्निकटन कर रहे थे और त्रुटि अभिसरित होने के बजाय सपाट पड़ जाती थी। एक पंक्ति। अब वह तीनों में सबसे अच्छा है।
सात परतें, हर एक का एक काम
नीचे का हर हिस्सा इसलिए मौजूद है क्योंकि चार में से कोई एक कार्यक्रम उसकी माँग करता है — इसलिए नहीं कि वह उस तिमाही के किसी पेपर में छपा था।
बदला जा सकने वाला फ़्रंट एंड
कच्चे इनपुट से फ़ीचर वेक्टर तक। इसके साथ आते हैं: VectorEncoder,
RFFEncoder (यादृच्छिक फ़ूरिये फ़ीचर) और ConcatEncoder। इसे बदल दीजिए, आगे की किसी चीज़ को छुए बिना।
EncoderProjection
Fisher–Rao कंट्रास्टिव अद्यतन के ज़रिए फ़ीचरों को अव्यक्त स्पेस में ले जाता है, साथ में Frobenius-नॉर्म की सीमा, ताकि कोई अकेला बाहरी बिंदु ज्यामिति को उड़ा न दे।
WorldPrior
एक साझा विकर्ण गाउसी, जिसे Welford और चरघातांकी चल औसत (EMA) के अद्यतनों से ऑनलाइन फ़िट किया जाता है। यही वह “अनंत संदर्भ” है जो कभी नहीं भूलता — और जिसकी हलचल ही ड्रिफ़्ट का संकेत है।
ClassDifferential
हर क्लास के लिए प्राकृतिक-पैरामीटर की शिफ़्ट, जो प्रेक्षणों की ओर खिंचती हैं और MDL क्षय से वापस खींची जाती हैं। कोई क्लास संसार से एक विस्थापन है, कोई अलग मॉडल नहीं।
DIFMemory
सामान्यीकृत-हाइपरबोलिक पश्च वितरणों के तहत लॉग-लाइकलीहुड अनुपात निकालता है, साथ में Bessel-अनुपात की लुकअप टेबलें, ताकि भारी पूँछों के लिए हर नमूने पर एक ट्रांसेंडेंटल फलन न गिनना पड़े।
TieredContextBuffer
छोटी, मँझली और लंबी श्रेणियाँ, जिनका भार NIGField के विश्वास से तय होता है, ताकि नया सबूत हावी हो सके पर लंबी श्रेणी ने जो जमाया है उसे मिटाए बिना।
क्लिक करके एक क्लासिफ़ायर प्रशिक्षित कीजिए
Cypha पाइपलाइन की ईमानदार 2-D प्रतिकृति: एक वर्ल्ड प्रायर जो ऑनलाइन फ़िट होता है, हर क्लास के डिफ़रेंशियल जो आपके रखे बिंदुओं की ओर खिंचते हैं, और लॉग-लाइकलीहुड अनुपात से वर्गीकरण। यह आपके हर एक क्लिक से सीखता है — न कोई बैच, न कोई एपॉक, न कोई दोबारा शुरुआत।
cypha::Cypha — ऑनलाइन क्लासिफ़ायर
चुनी हुई क्लास का नमूना जोड़ने के लिए कैनवस पर क्लिक कीजिए। पूरा गुच्छा बनाने के लिए घसीटिए।
कौन-सी क्लास रखनी है
कोई डेटासेट लोड करें
आख़िरी इन्फ़रेंस
क्लास डिफ़रेंशियल Δₖ
नतीजे, उसी तुलना के साथ जो मायने रखती है
ये आँकड़े रिपॉज़िटरी की अपनी बेंचमार्क रनों से हैं, निदान वाली ग़लती ठीक करने के बाद के। शुद्धता का प्रमाण एक CTest मैट्रिक्स है जो दर्ज फ़िक्स्चर मानकों से मेल खाता है — किसी लीडरबोर्ड की जगह नहीं।
तालिका में संक्षेप: प्रसंभाव्य ग्रेडिएंट अवरोहण (SGD), दीर्घ अल्पकालिक स्मृति (LSTM), समय के आर-पार प्रतिप्रसार (BPTT)।
| डेटासेट | काम | Cypha | ऑनलाइन SGD | टिप्पणी |
|---|---|---|---|---|
| रैखिक रूप से अलग होने वाला | 2-क्लास | 0.783 | 0.644 | वही ऑनलाइन बजट |
| Iris | 3-क्लास | 0.900 | — | क्लासिक बेसलाइन सेट |
| Wine | 3-क्लास | 0.969 | — | |
| Digits | 10-क्लास | 0.922 | — | |
| Breast cancer | 2-क्लास | 0.957 | — | |
| WikiText-2 | अनुक्रम, 300k टोकन | 2.664 BPC | — | Hybrid GRIA+LSTM L2+Wave2 BPTT |
| XOR | 2-क्लास, अव्यक्त RFF | ~0.763 | — | अकेला रैखिक LLR अटकल के आसपास ही अटक जाता है |
तापमान से मापा हुआ, फ़ील्ड पर आधारित, अव्यक्त-सीमा का प्रक्षेप, प्रतिकूल (एन्ट्रॉपी बढ़ाने वाला), OOD नमूनाकरण, MDL से बँधा हुआ, पूर्वज (ancestral), और रीप्ले बफ़र से KDE नमूनाकरण।
गेट मानों से विसंगति के अंक, एन्ट्रॉपी × सीमा से दूरी के रूप में सक्रिय-प्रश्न के अंक, और ड्रिफ़्ट की पहचान सीधे वर्ल्ड प्रायर के हिलने से पढ़ी जाती है।
10,000 की क्षमता वाला एक प्राथमिकता बफ़र, जिसका भार नएपन और चौंकाने की मात्रा से तय होता है, और जो 0.30 के अनुपात से दोबारा चलाया जाता है — ताकि दुर्लभ, जानकारी भरा नमूना आम नमूने के नीचे न दब जाए।
प्रोफ़ाइल किए हुए, अंदाज़े से नहीं
ये एक प्रोफ़ाइल किए गए मध्यम-ग्रिड अनुकूलन से निकले हैं और संदर्भ विन्यास के रूप में साथ आते हैं।
Cypha क्या नहीं है
- यह रैपर नहीं है। मूल सिद्धांतों से ख़ास तौर पर बनाया गया — और इसका यह भी मतलब है कि इसे किसी और की ट्यूनिंग विरासत में नहीं मिलती।
- रैखिक LLR की एक हद है। अव्यक्त RFF एनकोडर के बिना XOR अटकल के आसपास ही रहता है; एनकोडर उसे लगभग 76.3% तक उठा देता है।
- मान्यकरण बराबरी पर आधारित है। दर्ज फ़िक्स्चर मानकों के विरुद्ध CTest। लीडरबोर्ड का कोई दावा नहीं किया जाता।
- CUDA सिर्फ़ इन्फ़रेंस के लिए है। प्रशिक्षण केंद्रीय प्रसंस्करण इकाई (CPU) पर ही रहता है, क्योंकि इस संरचना पर CPU ही तेज़ है।
- सिद्धांत कहीं और रहता है। हार्मोनिक-स्पेक्ट्रम और NMP का काम संपीड़न-एल्गोरिदम पर एक अलग पेपर है; Cypha कार्यान्वयन की परत है।
Cypha, एक असली शतरंज इंजन से डिस्टिल किया हुआ
एक पारंपरिक alpha-beta इंजन के अपने सर्च मूल्यांकनों से लेबल की गई 26,568 स्थितियाँ, जिन्हें उसी WorldPrior व्हाइटनिंग और प्राकृतिक-ग्रेडिएंट अद्यतन से फ़िट किया गया जो संरचना में हर जगह इस्तेमाल होते हैं। रोककर रखी गई स्थितियों पर यह शिक्षक के मूल्यांकन को R² 0.866 पर दोहरा देता है, और उसी सर्च गहराई पर उस शिक्षक के ख़िलाफ़ 5W–19L–6D का स्कोर करता है।
एक छोटा AI जो सीखता रहता है
ज़्यादातर AI किसी डेटा सेंटर में एक बार प्रशिक्षित होकर जमा हुआ भेज दिया जाता है। Cypha इतना छोटा है कि आम हार्डवेयर पर चल जाए, और उसे जो भी नया उदाहरण मिलता है, उससे वह सीखता रहता है।
ऐसे उपकरण जो बड़े AI के लिए बहुत छोटे हैं
सेंसर, कैमरे, कंट्रोलर और ऐसा दूसरा हार्डवेयर जिसके पीछे किसी डेटा सेंटर की जगह नहीं है। Cypha इतना छोटा है कि उपकरण पर ही चल जाए, इसलिए कुछ भी इमारत से बाहर नहीं जाता।
ऐसा कुछ भी जिसे बदलाव के साथ चलना है
धोखाधड़ी के तरीक़े, मशीनों की ख़राबियाँ, ग्राहकों का बदलता बर्ताव। पिछले साल प्रशिक्षित मॉडल अभी से पुराना पड़ चुका है। यह चलते-चलते अपडेट होता रहता है, बिना ऑफ़लाइन किए और दोबारा प्रशिक्षित किए।
वह काम जिसकी बाद में सफ़ाई देनी पड़ती है
बैंकों, बीमा कंपनियों और स्वास्थ्य सेवाओं को अक्सर अपने फ़ैसले का औचित्य बताना पड़ता है। Cypha इतना छोटा है कि उसकी जाँच की जा सके, और वह जिस काम में कमज़ोर है उसे छिपाने के बजाय छाप देता है।
तीन कमांड
$ cmake -S native -B /tmp/cypha_build -DCMAKE_BUILD_TYPE=Release -G Ninja $ cmake --build /tmp/cypha_build --parallel $ ctest --test-dir /tmp/cypha_build -R native_ --output-on-failure # REST service $ cypha_rest --listen 127.0.0.1:8099 --cypha fixtures/reference.cypha # Qt shell (build with -DCYPHA_BUILD_QT=ON) $ cypha_qt_shell