تعمیر سے determinism

Deterministic AI،
تعمیر سے۔

ایک ہی سوال دو بار پوچھیں تو دو جواب مل سکتے ہیں۔ یہ non-deterministic AI ہے — نثر کے لیے قابلِ قبول، اعداد کے لیے مہلک۔ SQAI حساب ماڈل سے لے لیتا ہے: ہر computation ایک pinned float64 runtime پر، single-threaded چلتا ہے، اور وہ hash پرنٹ کرتا ہے جو اسے بالکل دوبارہ چلا سکے۔

IIReplay

دو سند، مہینوں کے فاصلے پر۔

ایک computation — finance.npv، 10% discount rate پر پانچ cash flows کے ساتھ — ایک بار چلایا، پھر مہینوں بعد دوبارہ۔ 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 صفر بنتا ہے، کلیدیں ترتیب پاتی ہیں، یونیکوڈ اسکیپنگ مقررہ ہے۔ زبانوں کے پار ہیش کی برابری کوئی اتفاق نہیں جس کی امید رکھی جائے — یہ ایک سیریلائزیشن معاہدہ ہے۔

IIIباریک شرائط

تعینیت — اعلان کردہ دائرے کے اندر۔

"تعینیت" لکھنا آسان ہے، نبھانا مشکل۔ SQAI یہ دعویٰ نہیں کرتا کہ آپ کا نتیجہ کائنات کی ہر مشین پر یکساں ہے۔ وہ ایک تنفیذی دائرہ اعلان کرتا ہے، اسے لفافے میں درج کرتا ہے، اور اسی دائرے کے اندر یکسانیت کی ضمانت دیتا ہے۔

ماحول کو ریکارڈ کرنا اس پر بڑھ چڑھ کر دعویٰ کرنے سے بہتر ہے۔ جو بھی چیز نتیجہ بدل سکتی ہے وہ یا تو مقید ہے یا لکھ دی گئی ہے۔

ہر نتیجے پر اعلان کردہ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 تعمیرات ہیں، ہر ایک مختلف سوال کا جواب دیتی ہے، ہر ایک معیاری بائٹس پر محاسبہ شدہ۔

plan_hashf87610d8afeb…

کیا چلے گا۔

حل شدہ منصوبہ، کچھ بھی چلنے سے پہلے ہیش کیا گیا۔ ایک ہی سوال ایک ہی منصوبے میں حل ہوتا ہے — decision_path: exact_spec — لہٰذا ایک بار جائزہ لیا گیا منصوبہ ہمیشہ کے لیے جائزہ لیا گیا۔

invocation_hash

کیا پوچھا گیا۔

کال کی شناخت — صلاحیت اور اس کے معیاری دلائل — اپنے ورژن-ٹیگ شدہ سابقے کے پیچھے۔ explainQuery اسے خشک-رن پیش نظارے کے طور پر پرنٹ کرتا ہے؛ تنفیذ شدہ ہیش رن ٹائم پر آزادانہ طور پر مہر لگائی جاتی ہے۔

computation_hashb74f67d0d7a594aa…

کیا واپس آیا۔

قدر کے معیاری بائٹس سے پہلے 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ایک ڈی کوڈنگ ترتیب

  • لالچی ڈی کوڈنگ اگلے ٹوکن کو محدود کرتی ہے۔ نتیجہ پھر بھی محاسبہ شدہ نہیں، پیش گوئی شدہ ہے۔
  • ایک ہی سوال پھر بھی مختلف SQL — اور مختلف جواب — بن سکتا ہے، بغیر کسی اشارے کے۔
  • کچھ درج نہیں: نہ رن ٹائم، نہ ان پٹ ہیش، دوبارہ چلانے کے لیے کچھ نہیں۔

computation_hashایک تنفیذی خاصیت

  • ماڈل ایک ٹائپ شدہ منصوبہ دائر کرتا ہے۔ انجن اسے چلاتا ہے — float64، ایک تھریڈ، مقید بنڈل۔
  • ماحول نتیجے کے ساتھ سفر کرتا ہے، تعینیت کے لفافے کے اندر۔
  • ہر جواب 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 اسے بنیادی ڈھانچے میں نافذ کرتا ہے — حسابات ایک pinned float64 runtime پر، single-threaded چلتے ہیں، اور ہر نتیجے کے ساتھ ایک computation_hash ہوتا ہے جو اسے byte-identically دہراتا ہے۔

Non-deterministic AI کیا ہے؟

ایک ایسا نظام جس کا آؤٹ پٹ ایک جیسی درخواستوں پر مختلف ہو سکتا ہے۔ Language models tokens کا انتخاب کرتے ہیں، اس لیے ایک ہی سوال مختلف استدلال، مختلف SQL، اور مختلف اعداد پیدا کر سکتا ہے — بغیر کسی اشارے کے کہ کچھ بدلا۔ ایک replayable hash اسی بہاؤ کا تریاق ہے۔

کیا temperature 0 کسی LLM کو deterministic نہیں بناتا؟

Temperature صرف اگلے token کے انتخاب کو محدود کرتا ہے۔ ماڈل پھر بھی آپ کا عدد compute کرنے کے بجائے predict کر رہا ہوتا ہے، اور run کا کوئی ریکارڈ یا replay نہیں ہوتا۔ SQAI کا determinism execution کی خاصیت ہے، decoding کی نہیں: ماڈل ایک typed plan فائل کرتا ہے اور engine حساب کرتا ہے۔

میں کیسے تصدیق کروں کہ دو runs نے واقعی ایک ہی جواب دیا؟

ہر نتیجے پر computation_hash کا موازنہ کریں۔ یہ invocation identity اور value کے canonical bytes پر domain-separated sha256 ہے، لہٰذا ملتے ہوئے hashes کا مطلب byte-identical جوابات ہیں — finance.npv مثال TypeScript اور Python دونوں میں b74f67d0… پرنٹ کرتی ہے۔

Simulations deterministic کیسے ہو سکتی ہیں؟

خفیہ طور پر random ہونے سے انکار کر کے۔ SQAI کی 4,574 exposed capabilities میں سے صرف 10 randomness simulate کرتی ہیں؛ بغیر seed کے بلائی جائیں تو seed_required کے ساتھ مسترد ہوتی ہیں، اور seed کے ساتھ ہر دوسری capability کی طرح بالکل replay ہوتی ہیں۔

اگر پہلے run اور replay کے درمیان ڈیٹا بدل گیا تو؟

Replay واضح طور پر ناکام ہوتی ہے۔ ہر registered source ایک schema revision رکھتا ہے، اور بدلے ہوئے ڈیٹا کے خلاف replay کیا گیا plan schema_revision_mismatch لوٹاتا ہے — ایک structured error، کبھی خاموشی سے مختلف عدد نہیں۔