নির্মাণগতভাবে নির্ধারণবাদী

নির্ধারণবাদী AI,
নির্মাণগতভাবে।

একই প্রশ্ন দুবার করলে মডেল দুটি ভিন্ন উত্তর দিতে পারে। এটি নন-ডিটারমিনিস্টিক AI — গদ্যের জন্য ঠিক আছে, সংখ্যার জন্য মারাত্মক। SQAI সংখ্যাটি মডেলের হাত থেকে সরিয়ে নেয়: প্রতিটি কম্পিউটেশন পিন করা float64 রানটাইমে, সিঙ্গেল-থ্রেডেড চলে এবং সেই হ্যাশ প্রিন্ট করে যা এটি হুবহু রিপ্লে করে।

IIরিপ্লে

দুটি সার্টিফিকেট, মাসের ব্যবধানে।

একটি কম্পিউটেশন — পাঁচটি ক্যাশ ফ্লোতে 10% ডিসকাউন্ট রেটে finance.npv — একবার চালানো হয়েছে, তারপর মাস পরে রিপ্লে করা হয়েছে। প্রতিশ্রুতি হিসেবে নির্ধারণবাদিতা আপনার বিশ্বাস চাইত। হ্যাশ হিসেবে, এটি শুধু একটি তুলনা চায়।

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 হয় 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প্রশ্নাবলি

নির্ধারণবাদী AI, সহজ ভাষায়।

নির্ধারণবাদী AI কী?

এমন একটি সিস্টেম যার উত্তর হুবহু পুনরুৎপাদনযোগ্য: একই ইনপুট, একই আউটপুট — প্রমাণসহ। SQAI এটি নির্মাণগতভাবে বাস্তবায়ন করে — গণনা একটি পিন করা float64 রানটাইমে, একক-থ্রেডে চলে এবং প্রতিটি ফলাফলে একটি computation_hash থাকে যা বাইট-অভিন্নভাবে পুনরায় চালানো যায়।

অ-নির্ধারণবাদী AI কী?

এমন একটি সিস্টেম যার আউটপুট একই অনুরোধে ভিন্ন হতে পারে। ভাষা মডেল টোকেন স্যাম্পল করে, তাই একই প্রশ্নে ভিন্ন যুক্তি, ভিন্ন SQL এবং ভিন্ন সংখ্যা আসতে পারে — কোনো পরিবর্তনের সংকেত ছাড়াই। পুনরায় চালানোযোগ্য হ্যাশ এই বিচ্যুতির প্রতিষেধক।

temperature 0 কি একটি LLM-কে নির্ধারণবাদী করে না?

Temperature কেবল পরবর্তী টোকেন বাছাইয়ের পরিসর সংকুচিত করে। মডেল তখনও আপনার সংখ্যা গণনা না করে অনুমান করছে, এবং রানের কিছুই রেকর্ড বা পুনরায় চালানোযোগ্য নয়। SQAI-এর নির্ধারণবাদিতা ডিকোডিংয়ের নয়, এক্সিকিউশনের বৈশিষ্ট্য: মডেল একটি টাইপড পরিকল্পনা দাখিল করে এবং ইঞ্জিন গাণিতিক কাজ সম্পন্ন করে।

দুটি রান সত্যিই একই উত্তর দিয়েছে কিনা কীভাবে যাচাই করব?

প্রতিটি ফলাফলের computation_hash তুলনা করুন। এটি ইনভোকেশন পরিচয় এবং মানের ক্যানোনিকাল বাইটের উপর ডোমেন-বিভক্ত sha256 — মিলে যাওয়া হ্যাশ মানে বাইট-অভিন্ন উত্তর। finance.npv উদাহরণ TypeScript এবং Python উভয়েই b74f67d0… প্রিন্ট করে।

সিমুলেশন কীভাবে নির্ধারণবাদী হতে পারে?

গোপনে এলোমেলো হতে অস্বীকার করে। SQAI-এর 4,574টি উন্মুক্ত ক্যাপাবিলিটির মধ্যে ঠিক 10টি এলোমেলোতা সিমুলেট করে; সিড ছাড়া ডাকলে সেগুলো seed_required দিয়ে প্রত্যাখ্যাত হয়, এবং সিড সহ অন্য সব ক্যাপাবিলিটির মতোই হুবহু পুনরায় চলে।

প্রথম রান ও রিপ্লের মাঝে ডেটা পরিবর্তন হলে কী হবে?

রিপ্লে স্পষ্টভাবে ব্যর্থ হয়। প্রতিটি নিবন্ধিত সোর্সে একটি স্কিমা রিভিশন থাকে, এবং পরিবর্তিত ডেটার বিপরীতে পুনরায় চালানো পরিকল্পনা schema_revision_mismatch ফেরত দেয় — একটি কাঠামোবদ্ধ ত্রুটি, কখনো নীরবে ভিন্ন সংখ্যা নয়।