إرشادات موثوقة لـ Dragon Hatchling مثل الدماغ (BDH) تستطيع الشبكات العصبية الحديثة التعرف على الوجوه، كتابة القصص، وحتى إرسال مقابلات برمجة - ولكن كلها تشترك في نفس الحد الأدنى: . stop learning once deployed قبل بضعة أسابيع، أصدرت مجموعة من المهندسين والباحثين - أريان كوسوفيتش، 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 تخيل طائرًا صغيرًا يغرق من حوضه، وهو بالفعل يدرك كيفية الطيران وتنفس النار، ولكن لم يدرك حتى الآن. لا تتعلم من الكتب، ولكن من الخبرة - في منتصف الطريق - تذكير ما هي الأفعال المساعدة التي لم تكن. كيفية التعامل هذا هو معنى : هيكل عصبي جديد يتكامل (كما هو الحال في الشبكات القياسية) مع خلال فترة التفكير. 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. إذا كان النيوترون النيوترون أضف إلى ذلك أنّه يُعزّز الاتّصال σ(i, j). i j لماذا أعتقد أن BDH هو تطور وليس مجرد نموذج آخر الورقة ليس فقط نظرية، بل يهدف إلى وهذا يوفر مزايا واقعية ومحددة. فيلم The Brain-like Dragon Hatchling (BDH) new direction in AI architecture المفاجأة والتفسير AI واحدة من أكبر نقاط الألم في LLMs الحديثة هي غالبا ما نعرف وبدأت النموذج اتخاذ قرارًا معينًا. BDH يتغير ذلك: "الصراخات" لها تتوافق مباشرة مع العلاقات الفكرية. ما هي الاتصالات التي تعززها عندما يتفكّر النماذج حول فكرة معينة. و (كما هو الحال في الدماغ) ، مما يجعل من الممكن إزالتها وحتى . opacity لماذا انظر sparse positive audit reasoning processes هذا يفتح أبواب للذكاء الاصطناعي المعروف في المجالات المهمة - الطب والمالية والقانون - حيث يفهم النموذج الذي وصل إلى النتيجة مهمة مثل النتيجة نفسها. لماذا التعلم على الطريق (Inference-Time Learning) BDH تطبق حتى أثناء التفكير – وهذا يعني أن الاتصالات بين العينين يمكن تطويرها. إنه يتكيف مع المستخدم أو السياق في الوقت الحقيقي، وتطوير شكل من أشكال هذا "تذكّر" الأفكار عبر القواعد والأحكام. Hebbian learning بدون تدريب short-term memory هذا يدفع LLM إلى أقرب إلى - النماذج التي تستمر في تحسين منتصف المحادثة، كما هو الحال مع البشر، دون أي تكييف إضافي. lifelong learning التفكير المستقيم والمستقيم مع مرور الوقت المتطرفين يقاتلون مع - بمجرد أن تذهب إلى الخارج من نافذة المقارنة التي تم تدريبها ، تتراجع التوافق. BDH ، ومع ذلك ، تم تصميمه كأداة - يظل سلوكه مستقرًا مع نمو عمق التفكير والعدد العصبي. long-range reasoning scale-free system هذا يعني أننا يمكننا بناء يمكن أن تستمر لمدة أيام أو أسبوعين - التخطيط والتحليل أو التثبيت - دون فقدان التوافق المنطقي. agentic systems نموذج متكامل دون التفكير الكارثي BDH يقدم ملكية فريدة تسمى : يمكن "تدمير" اثنين من النماذج ببساطة من خلال الاتصال بالصور الخاصة بهم.إلا أن هذا لا يقلل من الأداء أو يتطلب تدريبًا جديدا. model merging ➡️ يمكنك الجمع بين النماذج من المجالات المختلفة (كما يقولون، طبية وقانونية) دون التقييم الجيد. ➡️ هذا يفتح الطريق ل حيث يمكن استخدام "الإضافات العصبية" مرة أخرى كجزء من البرامج. modular AI الأداء والفعالية BDH-GPU يعمل كأنه وهذا يعني أنه يمكن تدريبه بشكل فعال باستخدام PyTorch وGPU. - ليس على نطاق متزايد مثل في مجموعة كبيرة من التحويلات. state-space system خطية هذا يتيح بناء نموذجًا قويًا في جعل BDH متاحة للباحثين المستقلين والشركات الناشئة على حد سواء. 10M–1B parameter range الاتصال بالتمثيل العصبي لأن BDH يتم تحديده بشكل طبيعي في و إنه مناسبة مثالية لل شرائح مثل أو التي تحكم الشبكات البيولوجية مباشرة في السيليكون. neurons synapses neuromorphic hardware Loihi TrueNorth ➡️ هذا يفتح فرصًا للانضمام on energy-efficient الهواتف الذكية أو الهواتف الذكية. large-scale reasoning models edge devices خطوة نحو “Axiomatic AI” ويشير المؤلف إلى فكرة - الأنظمة التي لا يمكن مراقبة سلوكها إلا إنها مثل اكتشاف "الطاقة الحرارية للذكاء": قوانين التوسع المتوقعة والدينامية الديموقراطية المستقرة. Axiomatic AI formally predicted over time ➡️ هذه النقطة إلى مناسبة للاستخدام في من التمويل والرعاية الصحية إلى النقل. certifiable and safe AI architectures autonomous, high-stakes environments بناء شبكة عصبية بسيطة لكي تفهم حقيقة كيف تعمل BDH ، قررت إنشاء وثيقة ضخمة من الفكرة - تم تدريبها على المشكلة الكلاسيكية XOR. (تقسيم اليدين في اليدين) هذا المشروع الصغير كان مؤثراً على المعجزة المعروفة ولكن هدفي لم يكن قصيرًا - كان واضحًا. أريد أن أفهم جيدًا كيف يمكن أن تعمل آليات BDH في العملية. minimal “tiny-BDH” in Rust autograd via tch-rs libtorch شبكة عصبية في 11 خطوط من بيثون الكود الكامل متاح في repo GitHub في أدناه، سأذهب من خلال تنفيذ الخطوة من الخطوة إلى الخطوة. قد تبدو ملموسة، ولكن هذا هو عاجل - الهدف هنا هو لأولئك الذين يهتمون بالبيانات الداخلية من BDH. زكريا / زكريا / زكريا maximum transparency and accessibility زكريا / زكريا / زكريا تامر. toml وبما أن هذا النموذج يكتب في ونحن نبدأ مع الملف - المفهوم الذي يحدد المشروع ومتطلباته. Rust Cargo.toml والخطر الرئيسي هنا هو إزالة آلة آمنة حول المكتبة C ++, التي تتيح PyTorch. يتيح لنا الوصول إلى ، وميزات أساسية أخرى من التعلم العميق مباشرة من Rust. tch libtorch tensors autograd لأن BDH يستخدم فكرة معروفة مثل و من المهم إعادة استخدام هذه الاستعراضات الحالية بدلاً من إعادة تطبيقها من البداية.أهدافنا ليست في إعادة إنشاء PyTorch، بل في استكشاف بعد BDH في أسهل شكل ممكن. العوامل العصبية synapses learning logic Here’s the relevant snippet from : 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"] } 💡 ميزة download-libtorch تقول لـ Cargo أن تتلقى تلقائيًا وتتصل بالبرمجيات libtorch الصحيحة لسيارتك أو نظام التشغيل. بدون ذلك، سيحتاج إلى تثبيت PyTorch يدويًا وتحديد المتغيرات البيئية لـ LIBTORCH. تتيح لـ Cargo إرسال وتواصل السيارة بشكل تلقائي. أدوات التداول الخاصة بك لسياسات نظام التشغيل والتصميم الخاصة بك. بدون ذلك، ستحتاج إلى تثبيت PyTorch يدويًا وتحديد مع ذلك ، كل شيء "عمل فقط" - Cargo تنزيل ومصالحة المكتبة أثناء بناء. download-libtorch libtorch LIBTORCH يمكن أن تختلف اعتمادا على إعداداتك.) (ملاحظة: الإصدار الحقيقي من tch الرئيسية » The Core of Our Tiny BDH السيرة الذاتية / 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) في الخطوة السادسة، قررنا to run the computations — on the GPU or CPU: where tch::Cuda::is_available() يحدد ما إذا كان CUDA يتم تثبيته وتحدد أي GPU NVIDIA. إذا كان CUDA متاحًا، فإنه يختار الكود الأول: Device::Cuda(0). إذا لم تكن CUDA متوفرة (على سبيل المثال، على جهاز ماك أو على خادم فقط من CPU)، فإنها تنتقل إلى Device::Cpu. المتغيرات ثم يتم نقلها إلى أجزاء أخرى مثل ولهذا يتم إنشاؤها وتحديثها على نفس الجهاز. dev VarStore::new(dev) all tensors إنشاء بيانات التدريب ثم نقوم بتحديد و tensors for our tiny XOR neural network — its training set: 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 ثم يتم تحويل هذه المراكز إلى A matrix — four samples, each with three input features. Finally, يتحرك التضخم إلى الجهاز المختار (GPU أو CPU) ، مما يضمن أن جميع الحسابات تنتج في مكان واحد. .reshape([4,3]) 4×3 .to_device(dev) الارتباك الثاني ، ويحتوي على لكل جزء من الدخول: 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; — the size of the (number of neurons in the layer). n = 64 neural field d = 16 - الحجم المنخفض للخطوط E و D ، والذي يحدد مدى ضغط البيانات وتوسعها. — the forgetting rate for the fast memory σ; higher values make it “forget” faster. u = 0.20 hebb_lr = 0.01 – معدل التعلم لتحديثات اللغة الإنجليزية – يسيطر على قدرة التشغيلات الجديدة على تعديل σ. في BDH ، يتم توزيع الذاكرة من خلال مادة الاتصال الخاصة. - حكم مؤقت . It doesn’t store the model’s learned weights (those are handled by gradient descent). Instead, it remembers تشكيل علاقات قصيرة الأجل - نوع من "الذاكرة العملية" النشطة أثناء التفكير. Hebbian Memory: σ (sigma) ذاكرة Synaptic which neurons were active together لاحظ : smax = 1.0 - يحدد قوة الاتصال القصوى في σ ، مما يمنع القيم المفقودة. sparsity_thresh = 5e-3 - يلجأ إلى عناصر σ الصغيرة جداً، والحفاظ على الذاكرة ضعيفة ومستقرة. — learning rate for the Adam optimizer that updates regular model parameters ( , , , ). lr = 5e-3 E D R_in W_read خطوات = 3000 – عدد التمارين التدريبية (مئات المرات التي يظهر فيها النماذج البيانات). إعادة تقييم النماذج و"الطريق العصبي" بعد تحديد ميزاتنا العالية، نحن نخلق - حاوية تحتوي على جميع الأعباء والمخاطر التي يمكن تدريبها على الشبكة، ثم نضيف المعايير التي يمكن تدريبها على النموذج - "الأعباء" التي سيتم تحديثها أثناء التدريب: 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 - التخطيط الناجح ، الذي يستخدم لتحديد تشغيلات الشبكة النهائية. تحسين الذاكرة والذاكرة السريعة وبالتالي، نحن نبدأ في ، وهو نسخة شعبية من انخفاض التردد الذي يحدد تلقائيًا معدل التعلم لكل مرجعي. - مزرعة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة مكتبة م ما هي المتاجر 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 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. and — the final processing and output projection, combining both short-term and long-term knowledge of the model. z logits The output لم يمر حتى الآن من خلال ويعني أنهم يمثلون before activation — the dragon’s unrefined thoughts before taking shape. logits sigmoid raw predictions Low-Rank + 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] } هذا هو a بدلاً من مادة الكثافة الكبيرة , 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 الفكرة واضحة: أنت . Project into a compact latent space of size بالنسبة للانتقادات الصغيرة مثل XOR ، هذا هو بشكل رئيسي مثير للجدل ، بالنسبة إلى النماذج على نطاق GPT ، يمكن أن تكون التخفيضات في الذاكرة (تقريبًا في المرتبة). don’t need all possible synapses d massive الخطوط 3 تتجسد "المجمع العصبي" المتعدد الأبعاد (الخصائص n) إلى مساحة مجهولة من الحجم d. يتم توسيع الخط التالي مرة أخرى إلى n كجزء خطي من نموذجات الكود من D. معاً، وهذا يعمل كجزء واحد من W ≈ E · DT، ولكن يستخدم المعايير الثانية بدلاً من (n^2). الخسارة، 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(); هذه الأربعة خطوط هي : measure error, compute how to fix the model, and apply the update. After each iteration, the network moves a little closer to the correct solution. heart of the training loop تحديث الذاكرة السريعة اليابانية (σ) الجزء الأخير - وبشكل حقيقي النقطة الأساسية في BDH - هو إنه يتحرك ويحافظ على قيمة مستدامة: 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 : يتكيف بسرعة مع السياق الحالي (إبراهيم) ، تدريجياً الأقمار الصناعية ( • البقاء (الخلفية) ، وتبقى عددية (المعالجة + الحد الأدنى) working memory forgets u compact stable ما نحن بصدده لقد تم إنشاؤ شبكة مع طرق التعلم الموصى بها في الكتاب: two التعلم السريع – الحد الأدنى الكلاسيكي الذي يخلق الجرعات الدائمة (E، D، R_in، W_read). التعلم السريع - تحديثات اللغة الإنجليزية لمتعدد σ أثناء التفكير / التدريب. نحن نحاول الجزء الثالث - - لأنه، كما يذكر الكتاب، لم يتم تحديده بالكامل حتى الآن. من هذا النمط، حتى الكتاب البحثي يصف هذا الاتجاه فقط على مستوى عال. 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 كما هو متوقع ، بعد بضعة آلاف خطوة ، تتوافق الشبكة ( ، ويقولون: إنّهم يعتقدون أنّهم يعتقدون أنّهم يعتقدون أنّهم يعتقدون أنّهم يعتقدون أنّهم يعتقدون. loss ↓ acc → 1.0 تسجيل الدخول إلى الكازينو للحفاظ على ديناميكية التدريب والنتائج سهلة للتحقق ، دعونا نضيف بعض الضوضاء الضوئية. 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 بناء، التدريب، والتنبؤ النتائج النماذج تتوافق بسرعة ، ويمكنك أن ترى ذلك: الأبحاث (σ = على) هي تقريبا مثالية: [~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) الضوء عندما يكون هناك - الترتيبات، والمشاركات، "ما حدث في السابق" - وليس عندما يكون كل نموذج مستقل. slow E/Dx/Dy/R_in/W_read σ context over time ما يجب عليك فعله بعد أن ترغب في رؤية σ Pay Off سلسلة (الذكاء المستقبلي): تحديد العلامة النهائية لابن قمر الذي ظهر في السابق في نفس سلسلة (التصوير / التذكير المشترك). Balanced-parentheses tasks — check pairing correctness across 20–100 steps. Long-range dependencies: التكيف على متن الطائرة: أثناء التفكير، "تدمير قاعدة جديدة" (القمصان) ويحقق النموذج يستخدمها دون تحديثات التراجع. σ إلغاءات: مقارنة سرعة التفاوض / الجودة مع σ على / على في مهمات التوقعات الأكثر صعوبة. تسجيل nnz(σ) و مشاهدة كيف تتعزز الاتصالات / تضعف مع مرور الوقت. الكائنات الحية هي قريبة (النتائج) BDH ليس مجرد "أفضل بديل لحركات التحويلات" بل هو نقطة انطلاق إلى عصر جديد من المعمارات العصبية - تلك التي بدلاً من الانتظار لإعادة التمرين أو طلب تريابايت من البيانات، يتكيف BDH بنفسه. في الوقت الحقيقي. learn not on schedule, but in the moment of action during reasoning إذا كانت التحويلات مثل "الطلاب" الذين انتهوا من الدورة والذين حصلوا على شهادة البكالوريوس، فإن BDH هو - ولدًا جديدًا، استكشاف العالم، والتفكير في الأخطاء، والتكيف، والتذكير بأي شيء جديد يواجه. dragon hatchling هذا الاتجاه يجلب الذكاء الاصطناعي إلى روحه الأصلي: ليس فقط للتحقق من احتمالات، ولكن . think within context and experience