惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
腾讯CDC
博客园 - 司徒正美
A
About on SuperTechFans
H
Help Net Security
J
Java Code Geeks
C
Check Point Blog
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
MyScale Blog
MyScale Blog
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
博客园 - 【当耐特】
雷峰网
雷峰网

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
16 Days, 4.7M Params, Zero Black Boxes: Building a White-...
Xuan-yi-yan · 2026-06-16 · via DEV Community

Xuan-yi-yan

16 Days, 4.7M Params, Zero Black Boxes: Building a White-box Chinese Cognition Engine from Scratch

Author: Wei Jinqi | June 16, 2026


Every time I use a large language model, the same thought nags at me: I have no idea what's happening inside.

95% accuracy? Great. But which weights fired? What linguistic features were extracted? Did it confuse "bank" (river) with "bank" (financial)? Nobody knows.

So I spent 16 days building a Chinese language engine where every weight has a reason and every decision is traceable.

The Core Idea

Instead of training a transformer on terabytes of text and hoping it learns Chinese, I designed each module to handle a specific linguistic function:

Module Function Params
P1 Char → Word encoding 96K (frozen)
P3-L Multi-dimensional attribute annotation 0 (rule engine)
P7 Cross-sentence word routing 226K
Explore+Meta Learned gating over decode dims 101K
P6 Sentence → Word sequence decoding 4.37M

The modules are chained: P1 encodes → P7 routes → Gate modulates → P6 decodes. Every intermediate state can be inspected.

Day-by-Day: The Good, The Bad, and The Mode Collapse

Days 1-2: Laying Foundations (and Fighting Collapse)

Day 1 was smooth. P1 (char→word encoder) and P3 (attribute stack — a rule engine that tags words with person/syntax/semantic/emotion/direction attributes) came together quickly.

Day 2 introduced P7, the cross-sentence router. And everything broke.

I used standard multi-head cross-attention. Every position — regardless of input — routed to the same output word. The dreaded Mode Collapse.

What followed was seven failed fixes:

  • v2: Diversity loss → still collapsed
  • v3: Grouped loss → partially better
  • v4: Temperature scaling → not enough
  • v5: Contrastive learning → oscillated wildly
  • v6: Gating mechanism → unstable
  • v7: Hierarchical modulation → almost converged

The breakthrough came when I noticed Q/K were eye-initialized, meaning each head saw only 1 dimension with zero discrimination power.

v8 (final): Xavier init for Q/K, eye init for V. Added an Explore network (loss → GELU MLP → 64D control signal) and a Meta network (signal + state → per-word gate). Mode collapse solved.

Day 3-4: Gating Innovation and the Repetition Monster

Day 3 built P3-L: 23 groups, 312 independent attention heads, each controlling one attribute dimension. Combined training with P7 via UnifiedExplore→UnifiedMeta gate.

Day 4 introduced P6: the sentence→word decoder. It was supposed to take a 256D sentence vector and output 16 distinct word embeddings.

It output the same word 16 times. The Repetition Collapse had begun.

Six versions over two days:

  • V1: 16 parallel heads → all output same word
  • V2: Serial residual extraction → gradient breakage
  • V3: Remove detach, add damping → gradient entanglement
  • V4: Weight transpose inverse projection → too aggressive
  • V5: Orthogonal init, detach, 0.8 damping → too heavy, heads dead
  • V6: Position embedding — h + pos_embed[i] per head → solved

The simplest fix won. Each head receives the same h but adds a unique learned position embedding. No rep_pen. No residuals. No detach. Just position diversity.

Day 5: The Gate That Stopped Learning

Epoch after epoch, the gate stayed frozen — all 256 dimensions had std=0.0001. Three bugs conspired:

  1. explore_mod.weight zero-initialized → identical signal per dim
  2. p3l_act zero-initialized → sigmoid(0)=0.5 for all dims
  3. bias init scale=0.1 too small → output stuck at 0.5

Then I found an even worse bug: gate.item() was used in loss computation, converting a tensor to Python float — severing the gradient chain. The gate had been frozen for 240 epochs without anyone noticing.

Fix: keep gate as tensor, let gradients flow back through explore and meta. Loss dropped from 0.56 to 0.28 in 3 epochs.

Day 6: The AI That Debates Itself

I built a dual-agent debugging system: DeepSeek (engineer) proposes fixes, Qwen (reviewer) audits them. They debate until convergence.

The system diagnosed four major bugs, including the gradient chain break. It would have saved days if I'd built it earlier.

Days 7-11: From 875K to 4.7M — Scaling Up

Key improvements:

  • Replaced mean pooling with P5-style ±superposition for sentence vectors
  • Expanded P6 from 16 heads to 128 independent heads
  • Built Context Cache System: 3-tier (GPU/RAM/Disk), adaptive retrieval window, drift detection
  • First benchmark: 92.4% word accuracy on 875K-param V18

Days 12-16: CUDA Wars and Open Data

  • Conquered CUDA OOM (P1 full attention → batch encoding)
  • Fixed space-character collapse (HF data had spaces between Chinese chars → ord(c) > 32 filter)
  • Assembled 52K public training pairs from HuggingFace + MuCGEC
  • Launched V19 1000-epoch training: 4.7M params, 141MB GPU, 100% public data

Seven Bugs That Almost Won

Bug Symptom Root Cause Fix
Mode Collapse All outputs = same word Q/K eye-init, zero discrimination Xavier init + diversity architecture
Gate Symmetry Lock All gate dims identical (std=0.0001) Three zero-initializations Proper random init for explore, act, bias
Gradient Chain Break Gate not learning for 240 epochs .item() severed gradient Keep as tensor
Repetition Collapse 16 heads → same word Parallel heads share identical input Position embedding V6
CUDA OOM 25.76 GiB allocated P1 full cross-attention Batch encoding (50 words)
Space Collapse Model outputs spaces HF data formatting ord(c) > 32 filter
sent_vec Info Loss Different sentences → similar vectors Mean pooling Learnable ±weighted sum

Results

V18 (875K params)

Metric Score
Word Accuracy 92.4%
Exact Match 76.3%
Rouge-L F1 93.2
Per-word Cosine 0.96
Speed 14ms/sent (71 sent/s)

V19 (4.7M params, training in progress)

Epoch 1 (from scratch, no pretraining): 43.5% word accuracy on held-out exam set. Target: >95% after 1000 epochs.

Why This Matters

LLMs are powerful but opaque. When GPT makes a mistake, you can't trace which neurons fired wrong. With V19, you can:

  • See exactly which word attributes were used
  • Trace which input words influenced each output
  • Inspect why the gate opened or closed each dimension
  • Debug layer by layer, like stepping through code

This isn't about beating GPT. It's about building something you can understand completely.

What's Next

  • Context system "write path": feed retrieved context into P7 to enable multi-turn dialogue
  • Expand to 512-dim if quality plateaus (currently 128D)
  • Multi-language extension of the attribute stack (P3-L)
  • Open-source community contributions

Try It

git clone https://github.com/Xuan-yi-yan/V18-cognitive-architecture
cd V18-cognitive-architecture
python download_public_data.py
python train_v19_full.py --data public --epochs 1000 --display 10

Full model card and architecture docs on Hugging Face.


16 days. 7 dead bugs. 4.7 million parameters. Zero black boxes.

That's just how I like it.