swarm-chat / src /core /model_config.py
lk080424
虫巢-200M训练部署: npz+json替代pkl, 三区循环训练, 4454QA数据
358ab64
Raw
History Blame Contribute Delete
3.07 kB
#!/usr/bin/env python3
"""
虫巢200M模型配置 — 非对称架构 v4
实测参数: 193.3M(Brain) + 9.4M(Decoder) ≈ 202M
核心设计:
前额叶68%: 300微柱×416N L3全突触,推理总控+循环加工
海马体16%: 150微柱×256N L3全突触,记忆存储+检索
Motor+Decoder 5%+5%: 60微柱×256N L3 + GRU语言生成
其他6%: 感官+联通+丘脑
架构特色:
- Decoder融入motor区,端到端训练
- 三区训练循环: 联通区(缓冲)→前额叶(加工)→海马体(存储)
- 非对称参数分配,前额叶独占大头
"""
MODEL_CONFIG_200M = {
'name': '虫巢-200M',
'version': 'v4.0',
'target_params': 202_000_000,
'areas': {
'sensory': {
'name': '感知区',
'num_columns': 5,
'neurons_per_column': 8, # 40微柱
'neurons_per_micro': 256,
'synaptic_tier': 'L2',
'topology': 'parallel',
},
'memory': {
'name': '海马体',
'num_columns': 5,
'neurons_per_column': 30, # 150微柱
'neurons_per_micro': 256,
'synaptic_tier': 'L3',
'topology': 'attention',
},
'association': {
'name': '联通区',
'num_columns': 5,
'neurons_per_column': 10, # 50微柱
'neurons_per_micro': 192,
'synaptic_tier': 'L2',
'topology': 'recurrent',
},
'prefrontal': {
'name': '前额叶',
'num_columns': 5,
'neurons_per_column': 60, # 300微柱
'neurons_per_micro': 416, # 416神经元/微柱
'synaptic_tier': 'L3',
'topology': 'recurrent',
},
'motor': {
'name': '运动区(含语言生成)',
'num_columns': 5,
'neurons_per_column': 12, # 60微柱
'neurons_per_micro': 256,
'synaptic_tier': 'L3',
'topology': 'cascade',
'has_decoder': True,
'vocab_size': 8000,
'hidden_dim': 512,
},
'thalamus': {
'name': '丘脑区',
'num_columns': 5,
'neurons_per_column': 6, # 30微柱
'neurons_per_micro': 256,
'synaptic_tier': 'L2',
'topology': 'parallel',
},
},
'semantic_dim': 75,
'motor_output_dim': 512,
'memory_roles': {
'lexical': (0, 50),
'dialogue': (50, 100),
'episodic': (100, 150),
},
}
# 转换为AreaNetwork可用的格式
def get_area_config(model_config: dict) -> dict:
"""从模型配置提取AreaNetwork格式"""
config = {}
for area_name, area_cfg in model_config['areas'].items():
config[area_name] = {
'num_columns': area_cfg['num_columns'],
'neurons_per_column': area_cfg['neurons_per_column'],
'neurons_per_micro': area_cfg['neurons_per_micro'],
'synaptic_tier': area_cfg['synaptic_tier'],
}
return config