संरचना से निर्धारणवाद

निर्धारणवादी AI,
संरचना से।

एक ही सवाल model से दो बार पूछें और दो अलग जवाब मिल सकते हैं। यही non-deterministic AI है — prose के लिए ठीक, संख्याओं के लिए घातक। SQAI संख्या model से छीन लेता है: हर computation एक pinned float64 runtime पर, single-threaded चलता है, और वह hash प्रिंट करता है जो उसे ठीक वैसे ही replay करे।

IIThe replay

दो प्रमाणपत्र, महीनों के अंतर पर।

एक computation — 10% discount rate पर पाँच cash flows के लिए finance.npv — एक बार execute हुआ, फिर महीनों बाद replay किया गया। Determinism को वादे के रूप में आपके भरोसे की ज़रूरत होती। Hash के रूप में, बस एक तुलना की।

Run 001पहला निष्पादन

नियतत्व आवरण

capability
finance.npv
runtime_bundle
0.1.0 · 4d64142e…
platform
darwin-arm64
precision_mode
float64
thread_count
1
value
505.020148896933

computation_hashb74f67d0d7a594aa…

Run 002महीनों बाद

नियतत्व आवरण

capability
finance.npv
runtime_bundle
0.1.0 · 4d64142e…
platform
darwin-arm64
precision_mode
float64
thread_count
1
value
505.020148896933

computation_hashb74f67d0d7a594aa…

समान। मिलता-जुलता नहीं — समान।

साझा computation_hashb74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8

दो भाषाएँ, एक बाइट स्ट्रीम

TypeScriptcanonicalJson(result.value)

Pythoncanonical_json(result.value)

समान बाइट्स, किसी भी भाषा में505.020148896933

एक जैसे बाइट्स इन → एक जैसा sha256 आउट → वही प्रमाणपत्र

TypeScript में canonicalJson और Python में canonical_json निर्माण द्वारा समान बाइट्स उत्सर्जित करते हैं: −0 शून्य बनता है, कुंजियाँ क्रमबद्ध होती हैं, unicode एस्केपिंग निश्चित है। भाषाओं के पार हैश समानता कोई संयोग नहीं जिसकी आशा की जाए — यह एक क्रमबद्धता अनुबंध है।

IIIमहीन अक्षर

निर्धारक — घोषित दायरे के भीतर।

"निर्धारक" छापना आसान है, निभाना कठिन। SQAI यह दावा नहीं करता कि आपका परिणाम ब्रह्मांड की हर मशीन पर समान होगा। यह एक निष्पादन दायरा घोषित करता है, उस दायरे को envelope में दर्ज करता है, और उसके भीतर समानता की गारंटी देता है।

परिवेश को दर्ज करना उसे अतिरंजित करने से बेहतर है। जो भी संख्या बदल सकती है, वह या तो पिन की गई है या लिखी गई है।

हर परिणाम पर घोषितdeterministic_scope: "local_registered_source"

runtime_bundle_version
वह इंजन बिल्ड जो चला — आज 0.1.0, पिन किया हुआ
runtime_bundle_sha256
बिल्ड का कंटेंट हैश — निष्पादन से पहले सत्यापित
platform
कहाँ चला — darwin-arm64 या linux-x64, दर्ज, कभी अनुमानित नहीं
architecture
CPU परिवार, उसी कारण से लिखा गया
precision_mode
float64 — हर क्षमता के लिए एक संख्यात्मक व्यवस्था
thread_count
1 — आपके अंकगणित में कोई शेड्यूलिंग दौड़ नहीं
seed
वैकल्पिक — ठीक 10 सिमुलेशन क्षमताओं द्वारा अपेक्षित
input_hash
डेटा जैसा था, निष्पादन से पहले मुद्रांकित

IVडोमेन-पृथक उद्गम

तीन हैश, तीन प्रश्न।

यहाँ उद्गम कोई लॉग लाइन नहीं है। यह तीन sha256 निर्माण हैं — हर एक अलग प्रश्न का उत्तर देता है, हर एक canonical बाइट्स पर संगणित।

plan_hashf87610d8afeb…

क्या चलेगा।

निष्पादन से पहले हैश किया गया हल किया हुआ प्लान। वही प्रश्न वही प्लान देता है — decision_path: exact_spec — इसलिए एक बार समीक्षित प्लान सदा के लिए समीक्षित है।

invocation_hash

क्या पूछा गया था।

कॉल की पहचान — क्षमता और उसके canonicalized तर्क — अपने version-tagged उपसर्ग के पीछे। explainQuery इसे dry-run पूर्वावलोकन के रूप में प्रिंट करता है; निष्पादित हैश रन टाइम पर स्वतंत्र रूप से मुद्रांकित होता है।

computation_hashb74f67d0d7a594aa…

क्या वापस आया।

मान के canonical बाइट्स से पहले invocation_hash को समेटता है। उत्तर क्रिप्टोग्राफिक रूप से अपने प्रश्न से जुड़ा है — यह हैश किसी भिन्न परिणाम पर नहीं लगाया जा सकता।

invocation_hash  = sha256("sqai:invocation:v1\0" + canonicalJson(identity))
computation_hash = sha256("sqai:computation:v1\0" + invocation_hash + canonicalJson(value))

उपसर्ग ही मूल बात हैं। "sqai:invocation:v1" और "sqai:computation:v1" बाइट्स के असंबद्ध ब्रह्मांड हैं: एक invocation कभी computation से टकरा नहीं सकता, और भविष्य का v2 कभी v1 का रूप नहीं धर सकता। डोमेन पृथक्करण हैश को साक्ष्य बनाता है, सजावट नहीं।

तीनों के नीचे, सतह स्वयं पिन की गई है। वह क्षमता अनुबंध जो परिभाषित करता है कि क्या चल सकता है, अपने स्वयं के हैश के साथ शिप होता है:contract_hash sha256:79f1c5a6c716…

तापमान 0
निर्धारकता नहीं है।

सैंपलिंग निष्पादन नहीं है — मॉडल यहाँ कभी संगणना नहीं करता

Vसैंपलिंग बनाम निष्पादन

मॉडल टोकन चुनता है। इंजन संगणना करता है।

temperature: 0एक डिकोडिंग सेटिंग

  • Greedy डिकोडिंग अगले टोकन को सीमित करती है। संख्या फिर भी संगणित नहीं, अनुमानित होती है।
  • वही प्रश्न अलग SQL — और अलग उत्तर — बन सकता है, बिना किसी संकेत के।
  • कुछ भी दर्ज नहीं होता: न रनटाइम, न इनपुट हैश, रीप्ले के लिए कुछ नहीं।

computation_hashएक निष्पादन गुण

  • मॉडल एक typed प्लान दाखिल करता है। इंजन उसे निष्पादित करता है — float64, एक थ्रेड, पिन किया बंडल।
  • परिवेश परिणाम के साथ यात्रा करता है, determinism envelope के भीतर।
  • हर उत्तर एक computation_hash प्रिंट करता है। रीप्ले एक तुलना है, बहस नहीं।
0/16 → 16/16
सोलह मात्रात्मक प्रश्नों पर वही मॉडल — इंजन के संगणना करने से पहले और बादइंजन स्वयं ऑडिट किया गया है: 2,744 शुद्धता जाँचें, 0 विसंगतियाँ, अधिकतम संख्यात्मक त्रुटि 1.8e-15।

VIजहाँ निर्धारकता टूट सकती है

दस बीज। एक ट्रिपवायर।

seed_required

4,574 उजागर क्षमताओं में से दस यादृच्छिकता का अनुकरण करती हैं। बिना बीज के, वे चलती ही नहीं — निष्पादन से पहले कॉल अस्वीकृत हो जाती है। बीज के साथ, वे बाकी सब की तरह रीप्ले होती हैं। कोई छिपी एंट्रॉपी नहीं, कोई मौन अपवाद नहीं।

दस में से एकdistributions.sample_normal

schema_revision_mismatch

हर पंजीकृत स्रोत एक स्कीमा संशोधन वहन करता है। बदले हुए डेटा के विरुद्ध प्लान रीप्ले करें और इंजन एक संरचित त्रुटि के साथ मना कर देता है — कोई चुपचाप भिन्न संख्या नहीं जिसे कोई कभी न पकड़े।

हर स्रोत पर घोषितschema_revision

4,564 यथावत निर्धारक · 10 बीज के साथ निर्धारक · 0 जो अनुमान लगाते हैं

VIIप्रश्न

Deterministic AI, सरल शब्दों में।

Deterministic AI क्या है?

एक ऐसी प्रणाली जिसके उत्तर सिद्ध रूप से पुनरुत्पादनीय हैं: समान इनपुट, समान आउटपुट। SQAI इसे संरचना द्वारा लागू करता है — गणनाएँ एक पिन किए गए float64 रनटाइम पर, सिंगल-थ्रेडेड चलती हैं, और प्रत्येक परिणाम एक computation_hash वहन करता है जो इसे बाइट-समान रूप से पुनः चला सकता है।

Non-deterministic AI क्या है?

एक ऐसी प्रणाली जिसका आउटपुट समान अनुरोधों पर भिन्न हो सकता है। भाषा मॉडल टोकन सैंपल करते हैं, इसलिए एक ही प्रश्न अलग तर्क, अलग SQL, और अलग संख्याएँ उत्पन्न कर सकता है — बिना किसी संकेत के कि कुछ बदला। एक replayable hash इस विचलन का उपाय है।

क्या temperature 0 किसी LLM को deterministic नहीं बनाता?

Temperature केवल अगले टोकन के चयन को सीमित करता है। मॉडल फिर भी आपकी संख्या की भविष्यवाणी कर रहा है, उसकी गणना नहीं, और रन का कोई भी हिस्सा रिकॉर्ड या replayable नहीं होता। SQAI का determinism निष्पादन का गुण है, decoding का नहीं: मॉडल एक typed plan दाखिल करता है और इंजन अंकगणित करता है।

मैं कैसे सत्यापित करूँ कि दो रन वास्तव में एक ही उत्तर लौटाए?

प्रत्येक परिणाम पर computation_hash की तुलना करें। यह invocation identity और मान के canonical bytes पर एक domain-separated sha256 है, इसलिए मिलते हुए हैश का अर्थ है बाइट-समान उत्तर — finance.npv उदाहरण TypeScript और Python दोनों में b74f67d0… प्रिंट करता है।

सिमुलेशन deterministic कैसे हो सकते हैं?

गुप्त रूप से यादृच्छिक होने से इनकार करके। SQAI की 4,574 उजागर क्षमताओं में से ठीक 10 यादृच्छिकता का अनुकरण करती हैं; बिना seed के बुलाने पर वे seed_required के साथ अस्वीकृत होती हैं, और seed के साथ वे हर अन्य क्षमता की तरह ठीक उसी प्रकार replay होती हैं।

यदि पहले रन और replay के बीच डेटा बदल गया तो?

Replay स्पष्ट रूप से विफल होता है। प्रत्येक पंजीकृत स्रोत एक schema revision वहन करता है, और बदले हुए डेटा के विरुद्ध replay किया गया plan schema_revision_mismatch लौटाता है — एक संरचित त्रुटि, कभी भी चुपचाप भिन्न संख्या नहीं।