A Friendly Guide to the Brain-like Dragon Hatchling (BDH) کے لئے ایک دوست گائیڈ جدید نیورل نیٹ ورک چہرے کو پہچان سکتے ہیں، کہانی لکھ سکتے ہیں، اور یہاں تک کہ پروگرامنگ انٹرویو بھی دے سکتے ہیں - لیکن وہ سب ایک ہی حدود کا اشتراک کرتے ہیں: وہ . stop learning once deployed کچھ ہفتوں قبل، انجینئرز اور محققین کے ایک گروپ - ایڈریڈین Kosowski، Przemysław Uznanski، Jan Chorowski، Zuzanna Stamirowska، اور Michał Bartoszkiewicz - نے ایک دلچسپ مضمون شائع کیا جس میں مشین سیکھنے اور نیور آرکیٹیکلز کے میدان میں ایک نیا خیال پیش کیا. . new type of artificial neural network https://arxiv.org/abs/2509.26507?embedable=true کاغذ خود بہت گہری ہے - ریاضی، فارمولوں، اور گرافوں کے ساتھ بھرا ہوا - لیکن ہمت انگیز خیالات کے ساتھ بھرا ہوا. کچھ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ سادہ popular-science overview تصور کریں کہ ایک نوجوان اژدھا جو صرف اس کے شاخ سے نکلا ہے وہ پہلے سے ہی پرواز اور آگ کو سانس لینے کے لئے جانتا ہے - لیکن وہ ابھی تک نہیں جانتا یہ کتابوں سے نہیں سیکھتا ہے، لیکن تجربے سے - پرواز کے وسط میں - یاد رکھیں کہ کون سی کارروائیوں نے مدد کی اور کون سی نہیں کی. کیسے ردعمل کریں یہ ہے جس کا اصل معنی : ایک نیا نیورل آرکیٹیکل جو ایک ساتھ ملتا ہے (جیسا کہ نیٹ ورک کے ساتھ) Inference کے دوران. BDH — the Brain-like Dragon Hatchling classic pretraining instant, self-directed learning نیورل نیٹ ورک نیورونوں کی ایک نظام ہے جو "بچوں" کی طرف سے منسلک ہیں جو ہر امتحان کے بعد ایک طالب علم کو غلطیوں کا جائزہ لینے کی طرف سے بہتر بننے کی طرح، فوری طور پر غلطی کو کم کرنا۔ تاہم، ایک بار ٹیسٹ ختم ہونے کے بعد، طالب علم اب نہیں سیکھتا۔ سیکھنے سے پہلے، ٹیسٹ سے پہلے ہوا۔ gradient descent اسی طرح آج کے ماڈل جیسے GPT کام کرتے ہیں: وہ اور پھر روکنے کے. learn inside the egg Dragon Hatchling کو کیا فرق پڑتا ہے؟ BDH کو تھوڑا سا ذہین بنانے کے لئے ڈیزائن کیا گیا ہے. یہ دو قسم کے میموری ہے: دائمی ذہنیت، کسی بھی معمولی عصبی نیٹ ورک کی طرح - یہ وہی ہے جو اس نے ہچچچنگ سے پہلے سیکھا تھا. عارضی یادیں، انسٹوٹ کی طرح، یا سوچوں کے درمیان مختصر مدت کے رابطے. جب BDH معلومات کو پروسیس کرتا ہے، تو یہ نئے کنکشن پیدا کرتا ہے اگر دو نیورون ایک دوسرے کے ساتھ فعال ہوتے ہیں تو ان کے درمیان رابطہ مضبوط ہوتا ہے. ہوائی جہاز پر یہ جانا جاتا ہے کے طور پر : Hebbian learning rule "نورون جو ایک دوسرے کے ساتھ آگ لگاتے ہیں، ایک دوسرے کے ساتھ تار ہوتے ہیں." "نورون جو ایک دوسرے کے ساتھ آگ لگاتے ہیں، ایک دوسرے کے ساتھ تار ہوتے ہیں." ان رابطوں کو ایک منفرد میٹرکس میں ذخیرہ کیا جاتا ہے ، جو حال ہی میں کیا ہوا کے لئے ایک موقتی نقشہ کے طور پر کام کرتا ہے. اگر بعد میں اسی طرح کی صورت حال ہوتی ہے تو، BDH یاد کرتا ہے: σ "اوہ، میں نے اس سے پہلے دیکھا ہے - اور یہاں کیا کام کرتا ہے." BDH کے ساتھ کیا تبدیلیاں؟ BDH سیکھنے کے عمل کو تبدیل کرتا ہے ۔ یہ سیکھتا ہے ، یہاں تک کہ پیچھے پھیلاؤ چلانے کے بغیر. یہ نئی معلومات کے لئے متوازن کر سکتے ہیں ، کوئی دوبارہ تربیت یا سنگین GPU کمپیوٹرز کے بغیر. while it works جانے کے بارے میں دوسرے الفاظ میں - BDH is a network that learns to live, not just to repeat. کھڑے ہونا، پرواز کرنا اور آگ سانسنا سیکھنا ہر زندہ مخلوق کے اپنے سیکھنے کے مرحلے ہیں. ایک ڈرون ہٹچلنگ سب سے پہلے کھڑے رہنے کے لئے سیکھتا ہے، اس کے بعد اس کے بالوں کو پھینکنے کے لئے، اور آخر میں آگ کو سانس لینے کے لئے. Stage 1: Standing (Classic Pretraining) This is where BDH learns, like any traditional neural network. It’s trained on data, adjusts weights via gradient descent, and minimizes loss — the familiar supervised learning phase. Think of it as the dragon strengthening its legs before taking the first flight. At this stage, the model is trained on a large dataset — text corpora, translations, and other examples. It uses standard , an optimizer like , and a that predicts the next token. offline backpropagation AdamW loss function During this process, BDH develops its , referred to as in the paper (the ). These correspond to what, in a transformer, would be parameters like , and so on. permanent weights “G” fixed ruleset Wq, Wk, Wv, W1, W2 Stage 2: Flying (Online Adaptation) Once training ends, most networks stop changing. But BDH keeps learning in real time. It has a — a fast-acting connection map that updates itself during inference. If certain neurons activate together, their connection grows stronger; if not, it weakens. This is how BDH adapts to new situations mid-flight, without retraining. Hebbian memory During inference — when BDH reads or generates text — it updates its , denoted as , or “synaptic weights.” temporary internal states σ(i, j) This process isn’t gradient descent. Instead, it follows a : local learning rule If neuron and neuron fire together → strengthen their connection σ(i, j). i j This simple rule implements — often summarized as Hebbian learning “neurons that fire together, wire together.” These updates are : they exist only while a dialogue or reasoning session is active. Once σ is reset, the model returns to its original “hatched” knowledge — the way it was trained before flight. short-lived Stage 3: Breathing Fire (Self-regulation) BDH doesn’t just strengthen all connections — it keeps them balanced. The model uses sparsity thresholds and normalization to prevent runaway feedback loops. It learns to "breathe fire" carefully — powerful, but controlled. Too much activation would lead to instability; too little would make it unresponsive. The balance between those extremes is what gives BDH its “life”. The paper briefly mentions an intriguing idea: if the are preserved and averaged over time, BDH could develop something resembling — a mechanism akin to slowly updating its core weights. However, the authors haven’t yet formalized the exact algorithm for this process. Hebbian updates (σ) long-term memory They suggest that: operates on short timescales — minutes or a few hundred tokens. Fast memory (σ) evolves over much longer periods — days or across model updates. Slow memory (G) This opens the door to — systems that can continuously acquire new knowledge without erasing what they already know. Unlike classic transformers, which suffer from , BDH hints at a future where models can lifelong learning catastrophic forgetting remember their past while growing into the future. neuron کے لئے neuron کے ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ ایک دوسرے کے ساتھ. i j کیوں میں سمجھتا ہوں کہ BDH ایک ترقی ہے، نہ صرف ایک اور ماڈل کاغذ کے یہ صرف نظریاتی نہیں ہے - یہ ایک کی طرف اشارہ کرتا ہے یہ حقیقی اور قابل قدر فوائد فراہم کرتا ہے. "The Brain-like Dragon Hatchling (BDH)" کا ترجمہ new direction in AI architecture شفاف اور تفہیم شدہ AI جدید LLMs میں سب سے بڑا درد نقطہ میں سے ایک ہے ہم غالباً جانتے ہیں ایک ماڈل نے ایک خاص فیصلہ کیا. BDH اس میں تبدیلیاں کرتا ہے: اس کے "سینیپسز" براہ راست ذہنی تعلقات کے مطابق ہیں. جس طرح ماڈل ایک خاص خیال کے بارے میں "کچھ سوچتا ہے" کے طور پر ان کنکشنوں کو مضبوط کرتا ہے. اور (جیسا کہ دماغ میں بھی ہوتا ہے) ، جس سے ڈیبگ اور یہاں تک کہ . opacity کیوں دیکھیں sparse positive audit reasoning processes ➡️ یہ اہم شعبوں میں واضح AI کے لئے دروازہ کھولتا ہے - طبی، مالیات، قانون - جہاں سمجھنے ایک ماڈل اس کے نتیجے میں پہنچ گیا ہے اس کے نتیجے کے طور پر اہم ہے. کیوں On-the-Fly Learning (انفرادی وقت سیکھنے) BDH کے مترادفات یہاں تک کہ اختتام کے دوران - اس کا مطلب یہ ہے کہ نیورونوں کے درمیان رابطے ترقی کر سکتے ہیں یہ حقیقی وقت میں صارف یا کنٹیکٹ کے لئے متوازن ہے، ایک شکل کی ترقی یہ "تصویر" خیالات کو ٹوکن اور حصوں کے ذریعے یاد رکھتا ہے. Hebbian learning دوبارہ تربیت کے بغیر short-term memory ➡️ یہ LLMs کو قریب رکھتا ہے - ماڈل جو انسانوں کی طرح وسط بات چیت کو بہتر بنانے کے لئے جاری رکھتا ہے، بغیر کسی اضافی ٹویٹنگ کے. lifelong learning طویل وقت کے ساتھ مستحکم اور مستحکم سوچ Transformers کے ساتھ جدوجہد - ایک بار جب آپ ان کے تربیت شدہ کنٹیکٹ ونڈوز سے باہر جاتے ہیں تو مجموعی طور پر گر جاتے ہیں. BDH، تاہم، ایک اس کے رویے مستحکم رہتا ہے کیونکہ تفہیم کی گہرائی اور نیورون کی تعداد بڑھتی ہے. long-range reasoning scale-free system ➡️ اس کا مطلب یہ ہے کہ ہم تعمیر کر سکتے ہیں that run for days or even weeks — planning, researching, or simulating — without losing logical consistency. agentic systems بھولنے کے بغیر تباہ کن ماڈل BDH نامی ایک منفرد ملکیت پیش کرتا ہے : two models can be “fused” simply by connecting their graphs. Unlike transformers, this doesn’t degrade performance or require retraining. model merging ➡️ آپ مختلف ڈومینز (مثال کے طور پر، طبی اور قانونی) سے ماڈل کا مجموعہ کرسکتے ہیں. ➡️ اس کے لئے راستہ کھولتا ہے جہاں دوبارہ استعمال کرنے والے "نورال پلگ ان" سافٹ ویئر کے اجزاء کے طور پر منسلک کیا جا سکتا ہے. modular AI کارکردگی اور کارکردگی BDH-GPU کے طور پر کام کرتا ہے اس کا مطلب یہ ہے کہ یہ PyTorch اور GPUs کا استعمال کرتے ہوئے مؤثر طریقے سے تربیت کیا جا سکتا ہے. — بڑے ٹرانسفرورر سٹاکوں میں جیسے نمونہ طور پر نہیں. state-space system linear کے ➡️ یہ طاقتور ماڈل بنانے کی اجازت دیتا ہے ، BDH کو مستقل محققین اور اسٹارٹپ دونوں کے لئے دستیاب بناتا ہے. 10M–1B parameter range Neuromorphic Computing کے بارے میں معلومات Because BDH is naturally defined in terms of اور اس کے لئے یہ ایک کامل فٹ ہے کیپس جیسے یا that emulate biological networks directly in silicon. neurons synapses neuromorphic hardware Loihi TrueNorth ➡️ This opens possibilities for running توانائی سے مؤثر , robotics platforms, or bio-inspired systems. large-scale reasoning models edge devices ایک قدم “Axiomatic AI” کی طرف مصنفین کا خیال ہے کہ نظام جس کے رویے کو نہ صرف دیکھا جا سکتا ہے بلکہ یہ "معلومات کی درجہ حرارت" کا پتہ لگانے کی طرح ہے: پیشہ ورانہ پیمائش کے قوانین اور مستحکم تفہیم کی درجہ حرارت. Axiomatic AI formally predicted over time ➡️ اس نقطہ نظر کی طرف میں استعمال کرنے کے لئے مناسب - مالیات اور صحت سے نقل و حمل تک. certifiable and safe AI architectures autonomous, high-stakes environments ایک سادہ نیورل نیٹ ورک کی تعمیر حقیقی طور پر سمجھنے کے لئے کہ BDH کیسے کام کرتا ہے، میں نے ایک چھوٹا سا نمونہ ثابت کرنے کا فیصلہ کیا - ایک , trained on the classic XOR problem. It uses (دوسرے کے ارد گرد ایک روٹی) یہ چھوٹا سا منصوبہ مشہور مشہور سی + + کور کی طرف سے حوصلہ افزائی کیا گیا تھا. لیکن میرا مقصد مختصر نہیں تھا - یہ واضح تھا. میں جاننا چاہتا تھا کہ BDH کے میکانیزم کس طرح عملی طور پر کام کرسکتے ہیں. minimal “tiny-BDH” in Rust autograd via tch-rs libtorch "Python کے 11 لائنوں میں نیورل نیٹ ورک" مکمل ذریعہ کوڈ میرے GitHub ریپو میں دستیاب ہے اس مضمون کے لئے خاص طور پر تیار کیا گیا ہے. نیچے، میں اپلی کیشن کے مرحلے سے مرحلے پر چلوں گا. یہ کلمہ لگ سکتا ہے، لیکن یہ عمدہ ہے - یہاں مقصد ہے BDH کے بارے میں دلچسپ لوگوں کے لئے. زمرہ:تصویر/تصویر/تصویر maximum transparency and accessibility زمرہ:تصویر/تصویر/تصویر Cargo.toml اس مثال میں لکھا گیا ہے کہ ہم ایک سے شروع کرتے ہیں فائل (file) - منصوبہ اور اس کی ذمہ داریوں کی وضاحت کرتا ہے جس کا نشانہ ہے. Rust Cargo.toml یہاں بنیادی منحصر ہے اس کے ارد گرد ایک محفوظ Rust Wrapper C++ لائبریری، جس میں PyTorch طاقت. یہ ہمیں رسائی فراہم کرتا ہے ، , اور Rust سے براہ راست گہری سیکھنے کے دیگر بنیادی خصوصیات. tch libtorch tensors autograd کیونکہ BDH مشہور خیالات کا استعمال کرتا ہے جیسے اور یہ ان موجودہ اختلاطات کو دوبارہ استعمال کرنے کے بجائے ان کو نیچے سے دوبارہ لاگو کرنے کے لئے منطقی ہے. ہمارا مقصد PyTorch کو دوبارہ تخلیق کرنے کے لئے نہیں ہے - یہ تحقیق کرنے کے لئے ہے. ممکنہ طور پر سب سے سادہ شکل میں BDH کے پیچھے. neurons کے synapses کے learning logic یہاں سے متعلقہ snippet ہے : Cargo.toml [package] name = "tiny_bdh_xor" version = "0.1.0" edition = "2021" [dependencies] anyhow = "1.0.100" tch = { version = "0.22", features = ["download-libtorch"] } 💡 ڈاؤن لوڈ-libtorch خصوصیت Cargo کو خود کار طریقے سے آپ کے OS اور آرکیٹیکل کے لئے صحیح libtorch بائنریوں کو حاصل کرنے اور منسلک کرنے کے لئے بتاتا ہے. اس کے بغیر، آپ کو PyTorch کو دستی طور پر انسٹال کرنے اور LIBTORCH ماحول متغیر کو مقرر کرنے کی ضرورت ہوگی. اس کے ساتھ، سب کچھ "ایک ہی کام کرتا ہے" - Cargo بناتا ہے اور بنائی کے دوران لائبریری کو منسلک کرتا ہے. کے feature tells Cargo to automatically fetch and link the correct آپ کے OS اور آرکیٹیکل کے لئے بائنری فائلوں. اس کے بغیر، آپ کو دستی طور پر PyTorch انسٹال کرنے کی ضرورت ہوگی اور اس کے ساتھ، سب کچھ "صرف کام کرتا ہے" - Cargo تعمیر کے دوران لائبریری کو ڈاؤن لوڈ کرتا ہے اور لنک کرتا ہے. download-libtorch libtorch LIBTORCH آپ کی ترتیبات پر منحصر ہوسکتا ہے.) (ملاحظہ کریں: صحیح ورژن tch — The Core of Our Tiny BDH src/main.rs src/main.rs In Rust projects, all source files live inside the ڈائریکٹر۔ کیونکہ یہ ایک ہم سب کچھ ایک ہی فائل میں رکھیں گے- ہم ضروری تقاضوں کو درآمد کریں اور انٹرویو پوائنٹ قائم کریں: src minimal example main.rs use anyhow::Result; use tch::{nn, Device, Kind, Reduction, Tensor}; use tch::nn::{Init, OptimizerConfig}; fn main() -> Result<()> { let dev = if tch::Cuda::is_available() { Device::Cuda(0) } else { Device::Cpu }; Ok(()) } آلہ کا انتخاب کریں (CPU یا GPU) 6۔ ہم فیصلہ کرتے ہیں to run the computations — on the GPU or CPU: where tch::Cuda::is_available() چیک کرتا ہے کہ CUDA نصب کیا گیا ہے یا نہیں اور کسی بھی NVIDIA GPU کا پتہ لاتا ہے. اگر CUDA دستیاب ہے تو، کوڈ پہلی GPU کا انتخاب کرتا ہے: Device::Cuda(0). اگر CUDA دستیاب نہیں ہے (مثال کے طور پر، ایک Mac یا ایک CPU صرف سرور پر) تو، یہ ڈیوائس::Cpu ہے. متغیر کے اس کے بعد دیگر اجزاء جیسے لہذا یہ ایک ہی آلہ پر پیدا اور کمپیوٹر کیا جاتا ہے. dev VarStore::new(dev) all tensors تربیت کے اعداد و شمار کی تخلیق اس کے بعد، ہم تعریف کرتے ہیں and ہمارے چھوٹے XOR نیورل نیٹ ورک کے لئے ٹینسرز — اس کی تربیت سیٹ: input output let x = Tensor::from_slice(&[ 0f32,0.,1., 0.,1.,1., 1.,0.,1., 1.,1.,1. ]).reshape([4,3]).to_device(dev); let y = Tensor::from_slice(&[0f32,1.,1.,0.]).reshape([4,1]).to_device(dev); ہم 12 عدد کی ایک فلیٹ سیریز سے شروع کرتے ہیں ( )، چار XOR نمونے کی وضاحت کرتے ہوئے. ہر تین نمبر ایک مثال ہے: 4 × 3 [0, 0, 1] [0, 1, 1] [1, 0, 1] [1, 1, 1] پہلی دو قیمتیں بائنری ان پٹ ہیں ( اور تیسری بات یہ ہے کہ وہ ہمیشہ ہمیشہ کے لئے (always )، ماڈل کو لائن طور پر اعداد و شمار کو جدا کرنے میں مدد ملتی ہے. X₁ X₂ bias 1 پھر اس فلیٹ آرڈر کو ایک میں تبدیل کریں میٹرکس — چار نمونے، ہر ایک کے ساتھ تین انٹرویو خصوصیات. ٹینسر کو منتخب کردہ آلہ (GPU یا CPU) پر منتقل کرتا ہے، اس بات کو یقینی بناتا ہے کہ تمام کمپیوٹرز ایک جگہ میں ہوتے ہیں. .reshape([4,3]) 4×3 .to_device(dev) دوسرا ٹینس، اس میں شامل ہے for each input: y expected outputs [0], [1], [1], [0] یہ XOR حقیقت ٹیبل کے مطابق ہیں: X₁ X₂ Y 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 نیٹ ورک Hyperparameter let n: i64 = 64; let d: i64 = 16; let u: f64 = 0.20; let hebb_lr: f64 = 0.01; let smax: f64 = 1.0; let sparsity_thresh: f64 = 5e-3; let lr: f64 = 5e-3; let steps = 3000; n = 64 - اعصابی میدان کا سائز (سراخ میں اعصابیوں کی تعداد). — the low-rank dimension for matrices and , defining how much the data is compressed and expanded. d = 16 E D u = 0.20 - فوری میموری σ کے لئے بھولنے کی شرح؛ زیادہ سے زیادہ اقدار اسے " بھولنے" کو تیزی سے کرتے ہیں. hebb_lr = 0.01 - Hebbian اپ ڈیٹس کے لئے سیکھنے کی شرح - کنٹرول کرتا ہے کہ نئے فعالات σ کو کس طرح تبدیل کرتے ہیں. BDH میں، میموری ایک خاص کنکشن میٹرکس کی طرف سے نمائندگی کی جاتی ہے. ایک عارضی یہ ماڈل کے سیکھنے والے وزن کو ذخیرہ نہیں کرتا (یہ گریڈینٹ نیچے کی طرف سے کام کرتے ہیں). مختصر مدت کے تنظیموں کی تشکیل - ایک قسم کی "کاروبار کی یاد" اختتام کے دوران فعال ہے. Hebbian Memory: σ (sigma) Synaptic Memory کے بارے میں which neurons were active together جاری رکھیں : smax = 1.0 - σ میں زیادہ سے زیادہ رابطے کی طاقت کو محدود کرتا ہے، بھاگنے والے اقدار کو روکتا ہے. sparsity_thresh = 5e-3 - بہت چھوٹے σ عناصر کو غیر معمولی طور پر باہر نکالتا ہے، جس میں میموری کمزور اور مستحکم رہتی ہے. lr = 5e-3 - ایڈمن آپریٹر کے لئے سیکھنے کی شرح جو منظم ماڈل پیرامیٹرز کو اپ ڈیٹ کرتا ہے (E، D، R_in، W_read). — number of training iterations (how many times the model sees the data). steps = 3000 Parameter Initializing اور "نورفیل" ہمارے ہائی پیرامیٹرز کا تعین کرنے کے بعد، ہم ایک - ایک کنٹینر جس میں نیٹ ورک کے تمام تربیت یافتہ وزن اور منحوسات شامل ہیں. پھر ہم ماڈل کے سیکھنے والے پیرامیٹرز شامل کرتے ہیں - اس کے "بچوں"، جو تربیت کے دوران اپ ڈیٹ کیا جائے گا: parameter store let vs = nn::VarStore::new(dev); let root = &vs.root(); let e = root.var("E", &[n,d], Init::Randn { mean: 0.0, stdev: 0.05 }); let dx = root.var("Dx", &[n,d], Init::Randn { mean: 0.0, stdev: 0.05 }); let dy = root.var("Dy", &[n,d], Init::Randn { mean: 0.0, stdev: 0.05 }); let r_in = root.var("R_in", &[3,n], Init::Randn { mean: 0.0, stdev: 0.20 }); let w_read = root.var("W_read", &[n,1], Init::Randn { mean: 0.0, stdev: 0.20 }); ہر متغیر BDH ماڈل کا ایک حصہ مقرر کرتا ہے: r_in - نیورل فیلڈ میں انٹرویو کی منصوبہ بندی. E، Dx، Dy - اندرونی تبدیلیوں، ایک چھپے layer کے وزن کے طور پر. لیکن یاد رکھیں: BDH میں عام معنی میں layers نہیں ہے - یہ ایک ہی خود سے منسلک نیورونز کے میدان کی طرح ہے. w_read — output projection، نیٹ ورک کی آخری فعالات کو پڑھنے کے لئے استعمال کیا جاتا ہے. اعلی معیار اور فوری ذہنیت اس کے بعد، ہم شروع کرتے ہیں , ایک مقبول ورژن گرڈینٹ نیچے جو خود کار طریقے سے سیکھنے کی شرح کی پیرامیٹر پر تائید کرتا ہے. ایک مربع مندرجہ ذیل موضوعات پر مشتمل ہے: BDH کہاں کی دکانیں connections between neurons and is updated at every training step. Adam optimizer σ [n × n] fast Hebbian memory عارضی let mut opt = nn::Adam::default().build(&vs, lr)?; let mut sigma = Tensor::zeros(&[n, n], (Kind::Float, dev)); for step in 0..steps { ... } اس تربیت کے لنک کے اندر، ہم کوڈ شامل کریں گے جو ہمارے "ڈراگون ہٹچلنگ" کو سکھاتا ہے جبکہ یہ اب بھی اس میں ہے ،جیسا کہ آن لائن ٹریننگ کے دوران egg Forward Pass — The Dragon’s First Flight اگلے کوڈ بلاک کام کرتا ہے , the main computation step where inputs are transformed into outputs ( ) : forward pass logits let x_neu = x.matmul(&r_in); let y1 = relu_lowrank_forward(&x_neu, &e, &dx); let a = x_neu.matmul(&sigma.transpose(-1, -2)); let y2 = y1 + a; let z = relu_lowrank_forward(&y2, &e, &dy); let logits = z.matmul(&w_read); یہاں یہ ہے کہ قدم بعد قدم کیا جاتا ہے: — the input data enters the neural field. x_neu = x.matmul(&r_in) y1 = relu_lowrank_forward(...) - اعداد و شمار کو کم کیا جاتا ہے، توسیع کیا جاتا ہے، اور ایک ReLU فعال کرنے کے ذریعے منتقل کیا جاتا ہے. (ہم اس مددگار فورم کو اگلے میں مقرر کریں گے.) a = x_neu.matmul(&sigma.T) — ایبائی کی یادیں σ سے اضافی سیگنال حاصل کرتا ہے، طویل مدتی نیورون ایسوسی ایشنز پر مبنی. y2 = y1 + a - مختصر مدت کی ذہنیت کے ساتھ "آخری" سیگنال کو منسلک کرتا ہے - یہ BDH کا بنیادی خیال ہے. z اور logits - آخری پروسیسنگ اور پیداوار کی منصوبہ بندی، ماڈل کے مختصر اور طویل مدتی علم کو مل کر. output کے ابھی تک نہیں چلا گیا A وہ نمائندگی کرتے ہیں فعال کرنے سے پہلے - ڈرون کے نامناسب خیالات شکل لینے سے پہلے. logits sigmoid raw predictions کم رینک + ReLU Helper As promised, here’s the ReLU helper we use in the forward pass: /// y = ReLU( (x E) D^T ) fn relu_lowrank_forward(x: &Tensor, e: &Tensor, d: &Tensor) -> Tensor { let h = x.matmul(e); // [B,n]·[n,d] = [B,d] h.matmul(&d.transpose(-1, -2)).relu() // [B,d]·[d,n] = [B,n] } یہ ایک ایک بڑے گہری میٹرکس کے بجائے ہم اس کی مثال کے طور پر کے ساتھ ، ، کے low-rank linear layer with ReLU W ∈ R^{n×n} W ≈ E · Dᵀ E ∈ R^{n×d} D ∈ R^{n×d} d ≪ n اس کا مطلب یہ ہے: آپ پروجیکٹ ایک kompakt latent space کے سائز میں XOR جیسے چھوٹے ڈیمو کے لئے، یہ زیادہ تر مثال کے طور پر ہے؛ GPT پیمانے پر ماڈل کے لئے، میموری کی بچت ہوسکتی ہے. (تصویر کی سطح پر) don’t need all possible synapses d massive لائن 3 اعلی درجہ بندی "نورین فیلڈ" (n خصوصیات) کو d سائز کے لاطینی فضائیہ میں ضم کرتا ہے. اگلے خط اسے D سے decoder کے ماڈلوں کی ایک لائن ترکیب کے طور پر n پر واپس بڑھاتا ہے. ساتھ ساتھ یہ W ≈ E · DT کی ایک واحد متبادل کے طور پر کام کرتا ہے، لیکن (n^2) کے بجائے 2nd پیرامیٹرز استعمال کرتا ہے. Loss, Backprop, Step اب ہم معیار کو شامل کریں — نقصان کا حساب، backprop چلانے، اپ ڈیٹ وزن: training step let loss = logits .binary_cross_entropy_with_logits::<Tensor>(&y, None, None, Reduction::Mean); opt.zero_grad(); loss.backward(); opt.step(); یہ چار خطوط ہیں : غلطی کا اندازہ کریں، ماڈل کو ٹھیک کرنے کا طریقہ شمار کریں، اور اپ ڈیٹ کو لاگو کریں. ہر تکرار کے بعد، نیٹ ورک صحیح حل کے قریب تھوڑا سا منتقل ہوتا ہے. heart of the training loop Hebbian Fast Memory Update (σ) The last part — and really the core BDH twist — is the . It runs اور قیمتوں کو مستحکم رکھتا ہے: Hebbian fast-memory update outside autograd tch::no_grad(|| { let bsz = x.size()[0] as f64; // 1) Build co-activation map: outer = y2ᵀ @ x_neu let outer = y2 .detach() // detach from autograd .transpose(-1, -2) // [B,n]ᵀ → [n,B] .matmul(&x_neu.detach()) // [n,B] @ [B,n] → [n,n] .to_kind(Kind::Float) * (hebb_lr / bsz); // scale by batch size and Hebb LR // 2) Work on a shallow copy to avoid move/borrow issues let zeros = Tensor::zeros_like(&sigma); let mut s = sigma.shallow_clone(); // 3) Exponential forgetting + add fresh co-activations s *= 1.0 - u; // older σ fades out s += &outer; // Hebbian boost for co-firing neurons // 4) Safety rails: clamp to prevent blow-ups // (I originally skipped this and hit runtime errors during training) s = s.clamp(-smax, smax); // 5) Sparsify: zero-out tiny values (efficiency + stability) let keep = s.abs().ge(sparsity_thresh); s = s.where_self(&keep, &zeros); // 6) Row-wise normalization: stabilize the energy of σ @ x let row_norm = s.square().sum_dim_intlist([1].as_ref(), true, Kind::Float).sqrt(); s = &s / &row_norm.clamp_min(1.0); // 7) Write back into σ without changing ownership sigma.copy_(&s); }); BDH کے طور پر اس پر غور کریں : یہ تیزی سے موجودہ کنٹیکٹ (ہوبی) کے ساتھ متوازن ہے، آہستہ آہستہ old patterns ( ), stays (تصویر) اور اس کی تعداد میں رہتا ہے (تصویر + معیار) working memory forgets u compact stable What We’ve Built ہم نے اس کے ساتھ ایک نیٹ ورک قائم کیا ہے کتاب میں بیان کردہ تعلیم کے طریقوں: two آہستہ سیکھنے - کلاسیکی backprop جو دائمی وزنوں (E، D، R_in، W_read) کو شکل دیتا ہے. تیزی سے سیکھنے - ہسپانوی اپ ڈیٹس σ مٹیکس کے اختتام / تربیت کے دوران. ہم عمدہ طور پر the third piece — — because, as the authors note, it’s not fully specified yet. Designing that mechanism is nontrivial and اس نقطہ نظر سے؛ یہاں تک کہ تحقیق کا کاغذ صرف اس سمت کو ایک اعلی سطح پر ڈیزائن کرتا ہے. leave out transferring fast memory into long-term weights beyond the scope اسے چلانے کے لئے کس طرح # 1) Create the project and add the files cargo new tiny_bdh_xor && cd tiny_bdh_xor # (replace Cargo.toml and src/main.rs with the code above) # 2) Build & run cargo run --release ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیسے ،جیس ، اور صحیح طریقے سے XOR پیش کرتا ہے. loss ↓ acc → 1.0 Logging to the Console تربیت کی ڈینمیکس اور نتائج کو چیک کرنے کے لئے آسان بنانے کے لئے، ہم تھوڑا سا ہلکا لکنگ شامل کریں. 1) ہر 300 قدموں میں ترقی تربیت کے دوران پرنٹ نقصان اور درستگی: if step % 300 == 0 { let y_hat = logits.sigmoid(); let acc = y_hat.gt(0.5) .eq_tensor(&y.gt(0.5)) .to_kind(Kind::Float) .mean(Kind::Float) .double_value(&[]); println!("step {:4} loss {:.4} acc {:.2}", step, loss.double_value(&[]), acc); } 2) آخری پیش گوئی تربیت کے بعد، ماڈل کی پیش گوئیوں کو ہٹا دیں: let x_neu = x.matmul(&r_in); let y1 = relu_lowrank_forward(&x_neu, &e, &dx); let a = x_neu.matmul(&sigma.transpose(-1, -2)); let y2 = y1 + a; let z = relu_lowrank_forward(&y2, &e, &dy); let preds = z.matmul(&w_read).sigmoid().gt(0.5).to_kind(Kind::Int64); println!("\nPred:\n{:?}", preds); 3) فوری ذہنیت کے بغیر vs. (σ) برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے مہربانی برائے vs کے : on off // σ = on let probs = z.matmul(&w_read).sigmoid(); println!("\nProbs (σ=on):"); probs.print(); println!("Preds (σ=on):"); preds.print(); // σ = off let y1_nos = relu_lowrank_forward(&x_neu, &e, &dx); let y2_nos = y1_nos; // no 'a' term from σ let z_nos = relu_lowrank_forward(&y2_nos, &e, &dy); let preds_nos = z_nos.matmul(&w_read).sigmoid().gt(0.5).to_kind(Kind::Int64); println!("\nPreds (σ=off):"); preds_nos.print(); ایک مکمل کام کوڈ کے لئے، ذخائر دیکھیں: https://github.com/ZhukMax/tiny_bdh_xor ایک مکمل کام کوڈ کے لئے، ذخائر دیکھیں: https://github.com/ZhukMax/tiny_bdh_xor https://github.com/ZhukMax/tiny_bdh_xor تعمیر، تربیت، اور پیش گوئی کے نتائج نمونہ تیزی سے منسلک ہوتا ہے، اور آپ دیکھ سکتے ہیں کہ: are almost perfect: . Probs (σ = on) [~0, 1, 1, ~0] match — which is expected for XOR: it’s a static task solvable by the “slow” weights without fast memory. Preds (σ = off) Running `target/debug/tiny_bdh_xor` step 0 loss 0.6931 acc 0.50 step 300 loss 0.0000 acc 1.00 step 600 loss 0.0000 acc 1.00 step 900 loss 0.0000 acc 1.00 step 1200 loss 0.0000 acc 1.00 step 1500 loss 0.0000 acc 1.00 step 1800 loss 0.0000 acc 1.00 step 2100 loss 0.0000 acc 1.00 step 2400 loss 0.0000 acc 1.00 step 2700 loss 0.0000 acc 1.00 Pred: Tensor[[4, 1], Int64] Probs (σ=on): 7.4008e-09 1.0000e+00 1.0000e+00 6.6654e-17 [ CPUFloatType{4,1} ] Preds (σ=on): 0 1 1 0 [ CPULongType{4,1} ] Preds (σ=off): 0 1 1 0 [ CPULongType{4,1} ] Why σ Isn’t “Needed” for XOR ایکسور ایک سادہ بولک تقریب ہے جو نیٹ ورک اس کے ساتھ سیکھ سکتا ہے. کے مترادفات ( ). The Hebbian layer چمکتا ہے جب ہے - سیگنالوں، تنظیموں، "جس سے پہلے ہوا" - جب ہر نمونہ مستقل نہیں ہے تو. slow E/Dx/Dy/R_in/W_read σ context over time آپ کو دیکھنے کے لئے کیا تلاش کرنے کی ضرورت ہے σ Pay Off سیگنالے (انٹیکٹ میموری): ایک جوڑے کی آخری علامت کو پیش کرتا ہے جو پہلے سے ہی اسی سیگنالے میں ظاہر ہوا تھا (کپی / ایسوسی ایٹمی یادداشت). Long-range dependencies: Balanced-parentheses tasks — 20-100 قدموں میں جڑنے کی درستگی کی جانچ پڑتال کریں. طیارے کی تنصیب: اختتام کے دوران، "ایک نیا قاعدہ انجکشن" (ایک ٹوکن جوڑا) اور اس بات کی تصدیق کریں کہ ماڈل اس کو گریڈینٹ اپ ڈیٹ کے بغیر استعمال کرتا ہے. σ ablations: زیادہ مشکل پیش گوئی کے کاموں پر کنورجنسی رفتار / معیار کے ساتھ σ انٹ / آؤٹ کا موازنہ کریں. log nnz(σ) اور دیکھیں کہ کس طرح رابطے وقت کے ساتھ مضبوط / خراب ہو جاتے ہیں. The AI Incubator Is Near (Conclusions) BDH صرف "ٹرانسفررز کے لئے ایک اور متبادل" نہیں ہے. یہ نیورل آرکیٹیکلز کی اگلی عمر میں ایک نظر ہے - وہ جو دوبارہ تربیت کے لئے انتظار کرنے یا ڈیٹا کے terabytes کی ضرورت کے بجائے، BDH خود کو منظم کرتا ہے. حقیقی وقت میں learn not on schedule, but in the moment of action during reasoning اگر ٹرانسفررز "طالبان" کی طرح ہیں جو ایک کورس مکمل کرتے ہیں اور ان کے ڈپریشن حاصل کرتے ہیں، تو BDH ایک - نئی پیدائش، دنیا کا تجربہ، غلطییں کرتے ہیں، اپ ڈیٹ کرتے ہیں، اور ہر نئی چیز کو یاد کرتے ہیں جو وہ ملتا ہے. dragon hatchling یہ سمت AI کو اس کے اصل روح میں واپس لاتا ہے: نہ صرف احتمالات کا حساب کرنے کے لئے، بلکہ . think within context and experience