A Friendly Guide to the Brain-like Dragon Hatchling (د ګرځنده لارښود) د عصري شبکې کولی شي چیرې پوه شي، قصه کولی شي، او حتی د پروګرام انټرنیټونه ترسره کړي - مګر دوی ټول د ورته محدودیت شریک کړي: دوی . stop learning once deployed ځینې اونۍ دمخه، د انجنيرانو او څیړونکو ډلې - Adrian Kosowski، Przemysław Uznanski، Jan Chorowski، Zuzanna Stamirowska، او Michał Bartoszkiewicz - یو حیرانتیا کاغذ خپور شوی چې د ماشین زده کړې او عصري آرکټیکټیکونو په سيمه کې یو نوی مفکوره وړاندې کوي. په ساده کلمو کې، دوی . new type of artificial neural network https://arxiv.org/abs/2509.26507?embedable=true د کاغذ په ځان کې ډیر ټیټ دی - د ریاضیاتو، فرمولونو، او ګرافونو سره بشپړ دی - مګر د ګرځنده افکار سره بشپړ دی. زه غواړم دا په یو ډول ډول له لاسه ورکړئ چې په اسانۍ سره مخامخ شي: د کارولو لپاره. ، سره ځینې metafores او زما د ساده کولو. popular-science overview تصور وکړئ چې یو ځوان اګانې چټک کوي چې یوازې د خپل کڅوړه څخه راټول شوی. دا اوس هم چمتو کوي چې څنګه الوتئ او د آتش سوځوي - مګر دا اوس هم نه پوهیږي دا د کتابونو څخه نه زده کوي، بلکه د تجربې څخه - د پرواز په منځ کې - یادونه ورکوي چې کوم عملونه مرسته کوي او کوم نه کوي. څنګه ځواب دا ده چې د : د نوي عصري آرکټیکټیک چې د ترکیب (چې په معياري شبکې کې) سره د Inference په وخت کې BDH — the Brain-like Dragon Hatchling classic pretraining instant, self-directed learning د عصري شبکې د عصري سیسټم دی چې د "د وزنونو" لخوا اړیکه ونیسئ چې د ، په دوامداره توګه د غلطو کمولو - لکه څنګه چې یو زده کونکي د هر ازموینه وروسته د غلطو په نظر کې ښه کوي. په هرصورت، کله چې د ازموینه بشپړ شوی، د زده کونکي نور نه زده کوي - د زده کړې مخکې، د ازموینه مخکې ترسره کیږي. gradient descent دا ده څنګه چې د GPT په څیر اوسني ماډلونه کار کوي: دوی - او بیا د بند. learn inside the egg هغه څه چې د اګانې Hatchling مختلف کوي؟ د BDH په ډیزاین کې یو بل سمارټ دی. دا د دوو ډولونه د یادښت لري: د دائمی یادښت، لکه څنګه چې هر عادي عصري شبکې - دا هغه څه دی چې دا د هچچګ څخه مخکې زده کړې. موقتي یادونه، د انستیکونو په څیر یا د فکرونو په منځ کې د قصورې اړیکو. کله چې BDH معلومات پروسس کوي، دا د نوي اړیکو جوړوي که د دوو نیورونونو په ګډه فعال شي - د دوی تر منځ د اړیکو قوي وي. د هوايي دا په توګه د : Hebbian learning rule د نوريونونه چې په ګډه سوځوي، په ګډه وښيي. د نوريونونه چې په ګډه سوځوي، په ګډه وښيي. د دې اړیکو په انفرادي مټریکس کې ذخیره شوي دي ، کوم چې د هغه څه چې په وروستیو وخت کې ترسره شوي يو موقتي نقشه په توګه عمل کوي. که په راتلونکي وخت کې ورته ستونزو رخ کیږي، د BDH یادونه کوي: σ "او، زه د دې مخکې وګورئ - او دلته دا چې کار کوي." د BDH سره څه بدلونونه؟ BDH د زده کړې پروسه ځان بدلوي. دا زده کوي ، حتی د پیژندنې پرته چلند نلري. دا کولی شي د نوي معلوماتو سره تطبیق شي ، د re-training یا سخت GPU کمپیوټرونه نلري. while it works د Go په بل ډول - BDH is a network that learns to live, not just to repeat. زده کړې چې د ایستې، د الوتلو، او د آتش سوځیدلو هر ژوندی مخلوق خپل ځان د زده کړې مرحله لري. د اګانې په څیر لومړی زده کوي چې چټک وي، بیا د خپل د ګاڼو په څیر ونیسئ، او په پایله کې د آتش سوځوي. د BDH ماډل د ورته پړاو پیژندل کوي - د خپل "غیر ژوند" هر پړاو د زده کړې ډول په مختلفو ډولونو کې راځي. 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) ته وده ورکړي. i j ولې زه باور وکړم چې BDH یو پرمختګ دی، نه یوازې یو بل ماډل The paper دا یوازې نظریاتي نه ده - دا د a دا واقعي، اندازه کولو وړ ګټې وړاندې کوي. د دماغ-like Dragon Hatchling (BDH) new direction in AI architecture شفاف او تفسیرول AI په عصري LLMs کې تر ټولو لوی درد پوهه ده موږ نږدې نږدې پوه د BDH بدلونونه چې: د هغې "سینپسونه" په مستقیم ډول د مفهومو اړیکو سره مطابقت لري. تاسو کولی شئ په اصل کې هغه اړیکو چې قوي کوي لکه څنګه چې د ماډل د یو ډاټا ایده په اړه فکر کوي. د هغې فعاليتونه او (چې په دماغ کې هم) ، دا اجازه ورکوي چې debug او حتی . opacity ولې ښکاره sparse positive audit reasoning processes ➡️ دا د مخکښ ډومینونو - درملنې، مالیې، قانون - په اړه د توضیح وړ AI لپاره دروازه بازوي. د نمونوي پایلې په توګه مهم دي لکه څنګه چې د پایلې په ځان. ولې On-the-Fly زده کړې (Inference-Time زده کړې) BDH غوښتنلیکونه حتی په پایله کې - که څه هم د نیورونونو تر منځ د اړیکو کولای شي وده ورکړي دا په واقعي وخت کې د کاروونکي یا کنټرول سره تطبیق کوي، د چې په ټوکنونو او پارامترونو کې د افکار "نه یاد" کوي. Hebbian learning پرته د روزنې short-term memory ➡️ دا د LLMs ته نزدیک کوي - ماډلونه چې په منځ کې خبرې کولو کې، لکه څنګه چې انسانونه کار کوي، د اضافي تفصیلي کولو له الرې ښه کړي. lifelong learning د وخت په اوږدو کې د ثابت او scalable منطق د Transformers سره مبارزه - کله چې تاسو د دوی د زده کړې کنټرول کړکۍ څخه ډډه وکړئ، د تعقیب د بریالیتوب سره مخامخ کیږي. BDH، په هرصورت، په توګه ډیزاین شوی دی - د هغې رفتار په توګه د تفکر عمده او عصري شمیره زیات stable دي. long-range reasoning scale-free system ➡️ دا معنی چې موږ کولی شو جوړ کړي دا د ورځو یا حتی اونۍ لپاره چلول کیږي - د پلان کولو، څیړنې، یا نمونې - د منطقي توازن له لاسه ورکړي. agentic systems د بدعت وړو نمونې په لټه کې د بدعت وړو نمونې BDH د یو ځانګړي ملکیت د نوم : د دوو ماډلونه کولی شي په ساده ډول د ګرافونو سره یوځای شي. په پرتله ترانسفررونه، دا د کړنو کمښت نه کوي او نه اړتيا لري. model merging ➡️ تاسو کولی شئ د مختلفو ډومینونو څخه د ماډلونو (په توګه، طبي او قانوني) په ګډه ونیسئ. ➡️ دا د سټیټینګ لپاره د لاره پټوي ، په کوم کې د تکرار وړ "نورال پلگ انونه" کولی شي د سافټویر برخو په څیر تړل شي. modular AI د فعالیت او اغیزمنتیا BDH-GPU په توګه کار کوي ، په دې معنی چې دا کولی شي په اغیزمنه توګه د PyTorch او GPUs په کارولو سره روزل شي. د دې پارامتر او کمپیوټر لګښت زیاتوي نه په انفرادي ډول لکه په لوی transformer stacks. state-space system لنډول ➡️ دا اجازه ورکوي چې په قوي ماډلونو کې جوړ شي ، د BDH لپاره د مستقل څیړونکو او startups هم برابر کړي. 10M–1B parameter range د Neuromorphic Computing اړیکه ځکه چې BDH په طبيعي توګه په اړه د او ، دا د مناسب مناسب لپاره لکه څنګه چې chips یا چې په مستقیم ډول په سیلیکون کې د بیولوژيکي شبکې emulate. neurons synapses neuromorphic hardware Loihi TrueNorth ➡️ دا د چلولو فرصتونو په اړه چمتو کوي د انرژۍ اغیزمن ، روبوټیک پلیټونه، یا بیولوژیکی انډول سیسټمونه. large-scale reasoning models edge devices د "Axiomatic AI" په لار کې یو ګام د کارپوهانو د مفکورې په اړه - سیستمونه چې د اغیزمنۍ نه یوازې وګورئ، بلکه . It’s like discovering the “thermodynamics of intelligence”: predictable scaling laws and stable reasoning dynamics. Axiomatic AI formally predicted over time ➡️ دا نښانې په لار د استعمال لپاره مناسب — from finance and healthcare to transportation. certifiable and safe AI architectures autonomous, high-stakes environments د ساده عصري شبکې جوړولو To really understand how BDH works, I decided to build a tiny proof-of-concept — a ، په کلاسیک XOR ستونزه کې روزل شوی. دا کاروي (A Rust wrapper په ټوله کې ، د PyTorch C++ کور). دا کوچني پروژې د مشهور ، مګر زما هدف د خلاصیت نه وه - دا واضحیت وه. زه غواړم چې په عمده توګه پوه شي چې د BDH ميخانيکيونه په عملياتو کې څنګه کار وکړي. minimal “tiny-BDH” in Rust autograd via tch-rs libtorch د پیتون په 11 کرښې کې د نوري شبکې د بشپړ سرچینې کوډ په زما GitHub ریپو کې شتون لري ، په ځانګړې توګه د دې مقاله لپاره جوړ شوی. په لاندې کې، زه به د پیژندنې په پایله کې ګټه واخلئ. دا کولی شي کلمې ښکاري، مګر دا عمدی دی - دلته هدف دا دی د هرڅوک لپاره چې د BDH internals په اړه دلچسپي لري. د نندارتون / نندارتون / نندارتون maximum transparency and accessibility د نندارتون / نندارتون / نندارتون د کارګاه.toml لکه څنګه چې دا مثال په موږ د A فایبر - د پروژې او د هغې د بستېونو د مشخصولو Manifesto. Rust Cargo.toml د کلیدي بستگی په دلته ده ، د خونديتوب Rust د حلقوي په څیر د C++ کتابتون، چې د PyTorch وړاندیز کوي. دا موږ ته د د ، او نور عمده ځانګړتیاوې د عمیق زده کړې په مستقیم ډول له Rust. tch libtorch tensors autograd ځکه چې BDH د معلوماتي مفهومونو لکه او په دې توګه، دا منطقي ده چې د دې موجودې استازیتوبونو څخه بیا کار واخلئ په ځای کې چې دوی له اصل څخه بیا کار واخلئ. زموږ هدف نه دی چې PyTorch بیا جوړ کړئ - دا دی چې د استازیتوب په اړه پوه شي. په ساده ترین شکل کې د BDH پیژندل. د نوريانو د Synapse learning logic دلته د relevant 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"] } 💡 The feature tells Cargo to automatically fetch and link the correct binaries for your OS and architecture. Without it, you’d need to manually install PyTorch and set the environment variable. With it, everything “just works” — Cargo downloads and links the library during build. download-libtorch libtorch LIBTORCH د ځانګړتیا دی چې Cargo ته په اتوماتيک ډول د صحیح راټولولو او لنډولو لپاره ستاسو د OS او آرشیفیت لپاره باینری. د دې لپاره، تاسو به manually install PyTorch او تنظیم کړئ د چاپیریال بدلون. د دې سره، هر څه "نمونه کار کوي" - Cargo د جوړولو په وخت کې د کتابتون ډاونلوډ او لنکس کوي. download-libtorch libtorch LIBTORCH کولی شي ستاسو د نصب په اړه مختلف شي.) (د یادونه: د دقیق نسخه tch The Core of Our Tiny BDH په اړه src/main.rs د کورس / Main.rs په Rust پروژو کې، ټول سرچینې فایلونه د مدیر. ځکه چې دا یو ، موږ به د ټولو په یو واحد فایل کې ذخیره کړئ - ایا موږ د اړین بستېونو د واردولو او د انټرنېټ نقطې جوړولو: 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 لړۍ کې، موږ د د محاسبات چلولو لپاره - په GPU یا CPU کې: where tch::Cuda::is_available() چمتو کوي چې CUDA نصب شوی یا نه او د NVIDIA GPUونو په اړه پوه شي. If CUDA is available, the code selects the first GPU: . Device::Cuda(0) که CUDA شتون نلري (د مثال په توګه، د Mac او یا د CPU-only سرور)، دا د Device::Cpu په معياري توګه وي. د متغیر دا وروسته د نورو برخو لکه د دې په ورته وسایلو کې جوړ شوي او کمپیوټر شوي دي. dev VarStore::new(dev) all tensors د روزنې معلوماتو جوړولو وروسته، موږ د او زموږ د کوچني XOR عصري شبکې لپاره tensors - د دې روزنې سیټ: 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] د لومړي دوو ارزښتونه باینری انټرنټونه دي ( او ) ، او د تیسرې دی په پایله کې د انټرنېټ (د هر وخت ) ، د نمونوي سره د معلوماتو په لنډه توګه جداولو سره مرسته کوي. X₁ X₂ bias 1 وروسته د دې flat array په a کې بدل کړئ matrix - د چار نمونې، په هر کې د درې input ځانګړتیاوې. په پایله کې، ټینسر ته د انتخاب شوي وسایلو (GPU یا CPU) ته حرکت کوي، د ټولو محاسبات په یوه ځای کې ترسره کیږي. .reshape([4,3]) 4×3 .to_device(dev) د دویم ټینټر، ، د د هر 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 د شبکې hyperparameters 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 - د عصري ځمکه اندازه (د عصري ځمکه کې شمیره). d = 16 - د مټريز E او D لپاره د ټیټ رینج مټريز، چې مشخصوي چې ډاټا څومره کم شوي او پراختیا شوي دي. u = 0.20 - د چټک حافظه σ لپاره د فراموش کولو کچه؛ د لوړ ارزښتونو لپاره دا چټک "کښته" کوي. hebb_lr = 0.01 - د Hebbian روزنې د زده کړې کچه - کنټرول کوي چې څومره نوي فعاليتونه σ بدلون کوي. In BDH, memory is represented by a special connection matrix د موقتي . دا د نمونوي زده شوي وزنونه ذخیره نه کوي (د ګراډینټ ډیزاین له لارې کارول کیږي). په عوض، دا یاد کوي ، د کوتاه-term associations جوړولو - یو ډول "د کار یادښت" په پایله کې فعال. Hebbian Memory: σ (sigma) synaptic memory which neurons were active together په ادامه کې: smax = 1.0 - د σ په حد کې د اتصال قوت محدود کوي، له دې امله د لګښتونو مخنیوي. — zeroes out very small σ elements, keeping the memory sparse and stable. sparsity_thresh = 5e-3 lr = 5e-3 - د Adam optimizer لپاره د زده کړې کچه چې د منظم ماډل پارامترونو (E، D، R_in، W_read) تازه کوي. پړاو = 3000 - د روزنې iterations شمېر (د ماډل ډاټاونه څومره وګورئ). د پارامترونو ابتدایی کولو او د "نورورې د ځمکې" وروسته زموږ hyperparameters تعریف، موږ د - یو کانټینر چې د شبکې د ټولو تمرین وړ وزنونه او پارامترونه لري. بيا موږ د موډل د زده وړ پارامترونو اضافه کوو - د هغې "د وزنونه" چې د روزنې په وخت کې تازه کیږي: 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 - د داخلي بدلونونه، د مخکښ کټګورۍ وزنونو سره ورته دي. خو یاد وکړئ: BDH په عادي معنی کې کټګورۍ نه لري - دا ډیر د نوريونونو یو واحد ځان سره تړاو لري. w_read - د محصول پروژې، چې د شبکې د پایلې فعاليتونه وګورئ کارول کیږي. د Optimizer او چټک حافظه وروسته، موږ د ، د ګراډینټ ډیسټینټ یو مشهور بدلون چې په اتوماتيک ډول د زده کړې کچه په هر پارامتر کې تنظیموي. موږ هم د ټینسر جوړ کوو د ساحل matrix پرانیستې سره zeros. دا د BDH د , which stores د نیورونونو تر منځ د اړیکو او د روزنې په هر مرحله کې تازه کیږي. 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 { ... } Inside this training loop, we’ll add the code that teaches our “Dragon Hatchling” while it’s still in its - په دې توګه، د offline pre-training وخت کې. egg Forward Pass - د اګست د لومړي پرواز The next code block performs the , 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); Here’s what happens step by step: x_neu = x.matmul(&r_in) - د انټرنېټ ډاټا د عصري میدان ته ورسیږي. y1 = relu_lowrank_forward(...) - د ډاټا د کمولو، پراختیا، او د ReLU فعالولو له لارې انتقال کیږي. ( موږ به د دې مسلکي فابریکه په بل کې تعریف کوو.) a = x_neu.matmul(&sigma.T) - د Hebbian memory σ څخه د اضافي سیگنال ترلاسه کوي، چې د موقتي نوريون تنظیماتو په اساس دی. y2 = y1 + a - د "د اوسني" سیگنال سره د کوتاه-term memory یوځای کوي - دا د BDH اصلي مفهوم دی. z او logits - د پایلې پروسس او محصول پروژې، د ماډل د مختصر او اوږد وخت د معلوماتو په ګډه. د محصول نه تر اوسه له خوا د A ; they represent the د فعالولو څخه مخکې - د اژدونو غیر پاکیزه افکار مخکې چې د شکل ترلاسه کړي. logits sigmoid raw predictions ټیټ رینک + ReLU Helper لکه څنګه چې وعده شوي، دلته د ReLU مسلکي موږ په پرمختللي پاس کې کاروي: /// 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] } دا د په ځای کې د لوی ضخامت مټریکس , we factor it as سره د د د low-rank linear layer with ReLU W ∈ R^{n×n} W ≈ E · Dᵀ E ∈ R^{n×d} D ∈ R^{n×d} d ≪ n د مفکوره ساده دی: تاسو پروژې په یو ټکټ مخکښ فضا اندازه د XOR په څیر کوچني ډیمو لپاره دا په عمده توګه ښیښه ده؛ د GPT-scale ماډلونو لپاره د حافظه ذخیره کولی شي (د کچه په کچه د terabytes). don’t need all possible synapses d massive Line 3 compresses the high-dimensional “neural field” ( features) into a space of size . n latent d د بل لړۍ دا ته د D څخه د ډکودور نمونې لاینری ترکیب په توګه n ته وده ورکوي. په ګډه دا د W ≈ E · DT سره یو واحد تعدیل په توګه کار کوي، مګر د (n^2) په ځای د 2nd پارامترونو کاروي. کڅوړه، Backprop، Step اوس د معياري اضافه کړئ — compute the loss, run backprop, update weights: training step let loss = logits .binary_cross_entropy_with_logits::<Tensor>(&y, None, None, Reduction::Mean); opt.zero_grad(); loss.backward(); opt.step(); دا د 4 لړۍ دي : د بریښنا د اندازه کولو، د نمونوي د حل کولو څنګه محاسبه کول، او د تازه کولو په کارولو سره. د هر تکرار وروسته، د شبکې د درست حل ته یو کوچنۍ ته راشي. heart of the training loop Hebbian Fast Memory Update (σ) د وروستۍ برخه - او په حقیقت کې د اصلي BDH twist - د د چلولو او د ارزښتونه ثابته کوي: 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 ( د سټیټ (Sparsity) او په شمول د شمولیت (د کلپ + معياري) working memory forgets u compact stable What We’ve Built موږ د یو شبکې سره د د زده کړې موډلونه په کاغذ کې بیان شوي: two Slow learning - کلاسیک backprop چې د دائم وزنونه (E، D، R_in، W_read) جوړوي. — Hebbian updates of the matrix during inference/training. Fast learning σ موږ په عامه توګه د تیسری ټوټه - - ځکه چې، لکه څنګه چې د انټرنېټانو اشاره کوي، دا په بشپړه توګه نه مشخص شوی. د دې میکانیزم ډیزاین د نټریویول او د دې مجموعې په اړه؛ حتی د څیړنې کاغذ یوازې په لوړ کچه د دې لارښوونې ډیزاین کوي. 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 لکه څنګه چې انتظار شوی، د دوو هزاران ګامونو وروسته د شبکې converges ( د ) and predicts XOR correctly. loss ↓ acc → 1.0 د 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) د پایلې predictions د روزنې وروسته، د ماډل د پیژندنې څخه ډک کړئ: 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. د چټک حافظه پرته (σ) د پیژندنې پرتله کول کله چې د Hebbian یادښت دی د : 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 د جوړولو، روزنې، او پیژندنې پایلې د نمونوي په چټکۍ سره converges، او تاسو کولی شئ چې وګورئ: are almost perfect: . Probs (σ = on) [~0, 1, 1, ~0] Preds (σ = off) توازن - کوم چې د XOR لپاره انتظار کیږي: دا یو سټیک کار دی چې د "لړ" وزنونو له خوا د چټک یادښت پرته حل کیدی شي. 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} ] چرا σ د XOR لپاره "د اړتیا" نلري XOR ده یو ساده بوولیک فیکشن چې د شبکې سره کولی شي زده کړي نندارتونونه ( ). The Hebbian layer shines when there’s - سیسټمونه، تنظیمونه، "چې مخکښ شوي" - نه کله چې هر نمونه مستقل دی. slow E/Dx/Dy/R_in/W_read σ context over time هغه څه چې باید په بل کې وګورئ چې σ Pay Off sequences (انټیکټ یادښت): د يو دوه پایله نمونې چې په ورته sequence مخکې ښکاري (کپی / associative recall) مخکښ ووايي. Balanced-parentheses tasks — check pairing correctness across 20–100 steps. Long-range dependencies: During inference, “inject a new rule” (a token pair) and verify the model uses it . On-the-fly adaptation: without gradient updates σ ablations: د مخکښ سرعت / کیفیت سره په سختو مخکښ کارونو کې د σ پر / off په پرتله. د nnz (σ) لګول او وګورئ چې د اړیکو په وخت کې څرنګوالی / خراب شي. د AI انکوپټر په قبيله کې دی (د پایلې) د BDH یوازې "د ترانسپورتونو بل بدلون" نه دی. دا د عصري آرکټیکشنونو په راتلونکي عمر کې یو نظر دی - هغه چې د دوبې روزنې یا د ډاټا terabytes ته اړتیاوو په ځای کې، BDH خپل ځان تنظیموي په واقعي وخت کې. learn not on schedule, but in the moment of action during reasoning که transformers دي لکه "د زده کونکو" چې د کورس بشپړ کړي او د سند ترلاسه کړي، نو BDH ده - تازه توليد شوی، د نړۍ په څیر، غلطونه ترسره کوي، بدلون کوي، او د هر څه نوي په یاد ولري. dragon hatchling دا لارښوونه د AI ته خپل اصل روح ته راځي: نه یوازې د احتمالو حسابولو لپاره، بلکه . think within context and experience