Cypha · v2.4.0

एक AI संरचना जो बनी है मूल सिद्धांतों से, किसी का फ़ोर्क नहीं

आज की लगभग सारी कृत्रिम बुद्धिमत्ता (AI) उन्हीं चंद डिज़ाइनों का कोई न कोई रूप है। Cypha कहीं और से शुरू होता है: एक C++ टाइप, जिसका सीखने का नियम उधार नहीं लिया गया बल्कि गणित से निकाला गया है, और जो एक बार प्रशिक्षित होकर जम जाने के बजाय हर देखे गए उदाहरण पर ख़ुद को बदलता है। यह एक अनुसंधान परियोजना है, और इसकी नाकामियाँ नतीजों के साथ ही छापी जाती हैं।

भाषाC++
रिलीज़v2.4.0
WikiText-2, प्रति वर्ण बिट (BPC)2.664 BPC
आख़िरी पुशहाल ही में
चार कार्यक्रम, एक सीखने का नियम
  • AIXI / Solomonoff — न्यूनतम विवरण लंबाई (MDL) की पूर्वधारणाएँ तय करती हैं कि मॉडल सस्ते में क्या मान सकता है।
  • सूचना ज्यामिति — अद्यतन प्राकृतिक ग्रेडिएंट के साथ चलते हैं, इसलिए सीखना पैरामीटर स्पेस की वक्रता का लिहाज़ रखता है।
  • सक्रिय अनुमान / मुक्त ऊर्जा — इससे ढाँचे का विभाजन मिलता है: प्रायर, डिफ़रेंशियल और संदर्भ।
  • सूचना अड़चन — एनकोडर का लक्ष्य तय करती है: जो भविष्य बताता है उसे रखो, बाक़ी फेंक दो।
सीधी-सादी भाषा में

यह क्या है, एक मिनट में

समस्या

इस्तेमाल में आ रहा लगभग हर AI सिस्टम मुट्ठी भर डिज़ाइनों का ही कोई रूप है। उन्हें किसी बड़ी मशीन पर एक बार प्रशिक्षित करके जमा हुआ भेज दिया जाता है, इसलिए किसी बदलती चीज़ के साथ चलने के लिए — धोखाधड़ी का नया तरीक़ा, कोई नई ख़राबी — लौटकर दोबारा प्रशिक्षण देना पड़ता है। वे बड़े भी हैं, जिससे उन्हें उपकरण पर नहीं बल्कि डेटा सेंटर में रखना पड़ता है, और किसी एक फ़ैसले की वजह बताना मुश्किल हो जाता है।

समाधान

Cypha एक C++ टाइप है जो वर्गीकरण करता है, संख्याओं का पूर्वानुमान लगाता है और अनुक्रम बनाता है। उसका सीखने का नियम किसी मौजूदा संरचना से नक़ल नहीं, बल्कि गणित की चार शाखाओं से निकाला गया है, और वह हर देखे गए उदाहरण पर ख़ुद को बदलता है — न बैच, न एपॉक, न दोबारा प्रशिक्षण की रन। वह इतना छोटा है कि उसी हार्डवेयर पर चल सके जो डेटा जमा करता है।

यह किसके लिए है

फ़िलहाल, वे शोधकर्ता और इंजीनियर जो एक अलग डिज़ाइन आज़माने को तैयार हैं। इसका निशाना वे समस्याएँ हैं जहाँ डेटा लगातार बदलता रहता है — धोखाधड़ी, उपकरणों की ख़राबी, बदलता बर्ताव — जहाँ मॉडल को डेटा सेंटर में नहीं बल्कि उपकरण पर ही बैठना है, और जहाँ बाद में किसी को फ़ैसले की वजह बतानी पड़ती है।

इसे अनुसंधान की तरह परखिए। इस पृष्ठ पर आगे दिए आँकड़े रिपॉज़िटरी की अपनी बेंचमार्क रनों से आते हैं, जो किसी लीडरबोर्ड की जगह से नहीं, बल्कि दर्ज किए गए टेस्ट फ़िक्स्चर से मिलाकर जाँचे गए हैं। शीर्षक Cypha क्या नहीं है वाला हिस्सा उन सीमाओं को गिनाता है, जिनमें वह मानक परीक्षण भी है जहाँ एक ख़ास घटक चालू होने तक वह अटकल के आसपास ही रहता है। इस पृष्ठ का बाक़ी हिस्सा संरचना और मापें हैं।
लाइब्रेरी ख़ुद

यादृच्छिक फ़ीचर, जिन्हें बताया नहीं, नापा गया है

यादृच्छिक फ़ूरिये फ़ीचर (RFF) के पक्ष में Cypha की दलील यह है कि वे एक रैखिक हेड को वह अलग करने देते हैं जो एक रैखिक हेड नहीं कर सकता। यह नापने लायक़ दावा है, इसलिए यहाँ उसे नापा गया है — cypha::rff_features को WebAssembly में कंपाइल करके, JavaScript में दोबारा लिखकर नहीं।

cypha::rff_features — WebAssembly

लोड नहीं हुआ

सटीक रेडियल आधार फलन (RBF) कर्नेल, अगर n नमूना बिंदुओं पर लिया जाए, एक मैट्रिक्स देता है: K। यादृच्छिक फ़ीचर उसका एक सन्निकटन बनाते हैं: K̂। और जो यहाँ खींचा गया है, वह है ‖K − K̂‖F जैसे-जैसे फ़ीचरों की संख्या बढ़ती है: जितने ज़्यादा फ़ीचर, उतना क़रीबी सन्निकटन।

लाइब्रेरी
—
इसे कंपाइल करते हुए एक बग मिला। ऑर्थोगोनल यादृच्छिक फ़ीचर (ORF) — सघन प्रकार — हर पंक्ति को इकाई लंबाई पर सामान्यीकृत कर रहे थे, जबकि Yu et al. पंक्ति का मानक यहाँ से लेते हैं: chi_d ताकि कोई ऑर्थोगोनल पंक्ति उस गाउसी पंक्ति से मेल खाए जिसकी वह जगह लेती है। पंक्तियाँ √d गुना छोटी थीं, इसलिए फ़ीचर ग़लत कर्नेल का सन्निकटन कर रहे थे और त्रुटि अभिसरित होने के बजाय सपाट पड़ जाती थी। एक पंक्ति। अब वह तीनों में सबसे अच्छा है।
जान-बूझकर सिंगल-थ्रेडेड: थ्रेड वाले WebAssembly को SharedArrayBuffer चाहिए, और उसे Cross-Origin-Opener-Policy (COOP) तथा Cross-Origin-Embedder-Policy (COEP) हेडर चाहिए, जो GitHub Pages भेज ही नहीं सकता।
संरचना

सात परतें, हर एक का एक काम

नीचे का हर हिस्सा इसलिए मौजूद है क्योंकि चार में से कोई एक कार्यक्रम उसकी माँग करता है — इसलिए नहीं कि वह उस तिमाही के किसी पेपर में छपा था।

Cypha की पाइपलाइन क्रम से: एनकोडर, प्रक्षेपण, वर्ल्ड प्रायर, क्लास डिफ़रेंशियल, मेमोरी और श्रेणीबद्ध संदर्भ — जिनसे एक क्लास निकलती है, साथ में विश्वास, विसंगति अंक और वितरण-से-बाहर का झंडा
पूरा आरेख देखने के लिए स्क्रॉल करें →
एक टाइप, चार काम। इस पृष्ठ पर नीचे दिया डेमो ठीक यही पाइपलाइन है, दो विमाओं में — वर्ल्ड प्रायर वह बिंदुदार दीर्घवृत्त है, और डिफ़रेंशियल वे पट्टियाँ।
एनकोडर

बदला जा सकने वाला फ़्रंट एंड

कच्चे इनपुट से फ़ीचर वेक्टर तक। इसके साथ आते हैं: VectorEncoder, RFFEncoder (यादृच्छिक फ़ूरिये फ़ीचर) और ConcatEncoder। इसे बदल दीजिए, आगे की किसी चीज़ को छुए बिना।

प्रक्षेपण

EncoderProjection

Fisher–Rao कंट्रास्टिव अद्यतन के ज़रिए फ़ीचरों को अव्यक्त स्पेस में ले जाता है, साथ में Frobenius-नॉर्म की सीमा, ताकि कोई अकेला बाहरी बिंदु ज्यामिति को उड़ा न दे।

θ₀

WorldPrior

एक साझा विकर्ण गाउसी, जिसे Welford और चरघातांकी चल औसत (EMA) के अद्यतनों से ऑनलाइन फ़िट किया जाता है। यही वह “अनंत संदर्भ” है जो कभी नहीं भूलता — और जिसकी हलचल ही ड्रिफ़्ट का संकेत है।

Δₖ

ClassDifferential

हर क्लास के लिए प्राकृतिक-पैरामीटर की शिफ़्ट, जो प्रेक्षणों की ओर खिंचती हैं और MDL क्षय से वापस खींची जाती हैं। कोई क्लास संसार से एक विस्थापन है, कोई अलग मॉडल नहीं।

मेमोरी

DIFMemory

सामान्यीकृत-हाइपरबोलिक पश्च वितरणों के तहत लॉग-लाइकलीहुड अनुपात निकालता है, साथ में Bessel-अनुपात की लुकअप टेबलें, ताकि भारी पूँछों के लिए हर नमूने पर एक ट्रांसेंडेंटल फलन न गिनना पड़े।

संदर्भ

TieredContextBuffer

छोटी, मँझली और लंबी श्रेणियाँ, जिनका भार NIGField के विश्वास से तय होता है, ताकि नया सबूत हावी हो सके पर लंबी श्रेणी ने जो जमाया है उसे मिटाए बिना।

वर्गीकरण, शुरू से आख़िर तक: एनकोड → प्रक्षेपण → हर क्लास के लॉग-लाइकलीहुड अनुपात को वर्ल्ड प्रायर के मुक़ाबले अंक दो → argmax लौटाओ, साथ में एक विश्वास, एक विसंगति अंक और वितरण-से-बाहर का झंडा। नीचे का डेमो ठीक यही पाइपलाइन है, छोटे रूप में।
इंटरैक्टिव

क्लिक करके एक क्लासिफ़ायर प्रशिक्षित कीजिए

Cypha पाइपलाइन की ईमानदार 2-D प्रतिकृति: एक वर्ल्ड प्रायर जो ऑनलाइन फ़िट होता है, हर क्लास के डिफ़रेंशियल जो आपके रखे बिंदुओं की ओर खिंचते हैं, और लॉग-लाइकलीहुड अनुपात से वर्गीकरण। यह आपके हर एक क्लिक से सीखता है — न कोई बैच, न कोई एपॉक, न कोई दोबारा शुरुआत।

cypha::Cypha — ऑनलाइन क्लासिफ़ायर

चुनी हुई क्लास का नमूना जोड़ने के लिए कैनवस पर क्लिक कीजिए। पूरा गुच्छा बनाने के लिए घसीटिए।

कौन-सी क्लास रखनी है

कोई डेटासेट लोड करें

नमूने
0
शुद्धता
—
अधिकतम LLR
—
प्रायर का खिसकना
0.00

आख़िरी इन्फ़रेंस

ख़ाली
किसी बिंदु को बिना उस पर प्रशिक्षण दिए वर्गीकृत करने के लिए कैनवस पर माउस ले जाइए।

क्लास डिफ़रेंशियल Δₖ

इस पृष्ठ के लिए लिखा गया एक 2-D शिक्षण कार्यान्वयन — ढाँचा असली पाइपलाइन जैसा ही, पैमाना बिलकुल नहीं। C++ कार्यान्वयन यहाँ है: native/.
RFF एनकोडर बंद करके अनन्य OR (XOR) आज़माइए। शुद्धता गिरकर अटकल के बराबर आ जाती है, और यह इस डेमो का बग नहीं है — यह एक रैखिक लॉग-लाइकलीहुड अनुपात की दर्ज सीमा है, जो Cypha के README में साफ़-साफ़ लिखी है। अव्यक्त RFF एनकोडर चालू कीजिए और उसे उबरते देखिए। नाकामी को उसके इलाज के बगल में छापना ही पूरी बात है।
मापा हुआ

नतीजे, उसी तुलना के साथ जो मायने रखती है

ये आँकड़े रिपॉज़िटरी की अपनी बेंचमार्क रनों से हैं, निदान वाली ग़लती ठीक करने के बाद के। शुद्धता का प्रमाण एक CTest मैट्रिक्स है जो दर्ज फ़िक्स्चर मानकों से मेल खाता है — किसी लीडरबोर्ड की जगह नहीं।

तालिका में संक्षेप: प्रसंभाव्य ग्रेडिएंट अवरोहण (SGD), दीर्घ अल्पकालिक स्मृति (LSTM), समय के आर-पार प्रतिप्रसार (BPTT)।

डेटासेटकामCyphaऑनलाइन SGDटिप्पणी
रैखिक रूप से अलग होने वाला2-क्लास0.7830.644वही ऑनलाइन बजट
Iris3-क्लास0.900—क्लासिक बेसलाइन सेट
Wine3-क्लास0.969— 
Digits10-क्लास0.922— 
Breast cancer2-क्लास0.957— 
WikiText-2अनुक्रम, 300k टोकन2.664 BPC—Hybrid GRIA+LSTM L2+Wave2 BPTT
XOR2-क्लास, अव्यक्त RFF~0.763—अकेला रैखिक LLR अटकल के आसपास ही अटक जाता है
जनरेशन

तापमान से मापा हुआ, फ़ील्ड पर आधारित, अव्यक्त-सीमा का प्रक्षेप, प्रतिकूल (एन्ट्रॉपी बढ़ाने वाला), OOD नमूनाकरण, MDL से बँधा हुआ, पूर्वज (ancestral), और रीप्ले बफ़र से KDE नमूनाकरण।

विसंगति & सक्रिय अधिगम

गेट मानों से विसंगति के अंक, एन्ट्रॉपी × सीमा से दूरी के रूप में सक्रिय-प्रश्न के अंक, और ड्रिफ़्ट की पहचान सीधे वर्ल्ड प्रायर के हिलने से पढ़ी जाती है।

रीप्ले

10,000 की क्षमता वाला एक प्राथमिकता बफ़र, जिसका भार नएपन और चौंकाने की मात्रा से तय होता है, और जो 0.30 के अनुपात से दोबारा चलाया जाता है — ताकि दुर्लभ, जानकारी भरा नमूना आम नमूने के नीचे न दब जाए।

संदर्भ तयशुदा मान

प्रोफ़ाइल किए हुए, अंदाज़े से नहीं

ये एक प्रोफ़ाइल किए गए मध्यम-ग्रिड अनुकूलन से निकले हैं और संदर्भ विन्यास के रूप में साथ आते हैं।

फ़ीचर विमा128
RFF बजट256
रीप्ले अनुपात0.30
संदर्भ खिड़की32
वर्ल्ड प्रायर LR0.008
क्लास डिफ़ LR0.05
एनकोडर LR0.002
MDL लैम्ब्डा0.001
ईमानदार बयान

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 इतना छोटा है कि आम हार्डवेयर पर चल जाए, और उसे जो भी नया उदाहरण मिलता है, उससे वह सीखता रहता है।

01

ऐसे उपकरण जो बड़े AI के लिए बहुत छोटे हैं

सेंसर, कैमरे, कंट्रोलर और ऐसा दूसरा हार्डवेयर जिसके पीछे किसी डेटा सेंटर की जगह नहीं है। Cypha इतना छोटा है कि उपकरण पर ही चल जाए, इसलिए कुछ भी इमारत से बाहर नहीं जाता।

02

ऐसा कुछ भी जिसे बदलाव के साथ चलना है

धोखाधड़ी के तरीक़े, मशीनों की ख़राबियाँ, ग्राहकों का बदलता बर्ताव। पिछले साल प्रशिक्षित मॉडल अभी से पुराना पड़ चुका है। यह चलते-चलते अपडेट होता रहता है, बिना ऑफ़लाइन किए और दोबारा प्रशिक्षित किए।

03

वह काम जिसकी बाद में सफ़ाई देनी पड़ती है

बैंकों, बीमा कंपनियों और स्वास्थ्य सेवाओं को अक्सर अपने फ़ैसले का औचित्य बताना पड़ता है। 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
लाइसेंस की शर्तें