research
自链接神经网络:一个实验性的LLM架构探索
尝试在标准Transformer架构上引入自链接机制,增强神经元间局部连接。1.2亿参数,混合注意力设计,记录实验过程和踩到的坑。
By Arnold Kirk
注: 本文由 AI 助手(夜河阳)协助整理,基于项目 README 和代码生成。
这是什么
一个实验性项目。核心想法是:在标准 Transformer 里,注意力机制擅长捕捉全局依赖;但神经元之间的局部连接是不是也有价值?
所以在自注意力的基础上加了一个「自链接层」,让神经元可以对自己的历史激活保持一定的记忆。
架构设计
混合注意力层(HybridAttentionLayer)
output = (1 - self_link_ratio) * self_attention(x) + self_link_ratio * self_link(x)
两个机制加权混合:
- 标准自注意力:负责全局上下文
- 自链接机制:负责神经元级别的局部依赖
self_link_ratio 是可调参数,控制两者比重。
增强版自链接层(EnhancedSelfLinkLayer)
多头设计,每个头有独立的前馈网络。每个头学不同粒度的局部连接模式。
其他配置
- 12 层 Transformer 结构
- 768 维隐藏层
- 1.2 亿参数
- RoPE(旋转位置编码)
- 最大序列长度 1024
训练流程
先预训练,用 minimind 项目提供的高质量中文数据集:
python pretrain.py \
--train_data_path minimind/dataset/pretrain_hq.jsonl \
--self_link_ratio 0.1
然后在下游任务上微调。
结果和问题
坦白说,结果比较混:
有用的地方:
- 训练稳定性比纯 Transformer 略好(自链接的残差连接效果)
- 在某些续写任务上主观感觉更「连贯」
没有验证的地方:
- 没有实现量化评估(困惑度等),只做了交互式测试
- 不知道性能提升是来自自链接机制本身,还是模型规模变化
没解决的问题:
- 训练收敛比标准 Transformer 慢
self_link_ratio需要精细调优,0.1 是拍的,不知道最优值- 评估时偶发卡死,原因没查出来
- 显存占用大,全精度训练对小 GPU 不友好
反思
这个项目做到一半发现,自链接的想法和 LSTM/GRU 的门控机制有点像,只是实现方式不同。如果当初先做文献调研,可能会选一个更有区分度的方向。
不过作为一次「先做再想」的实验,学到了不少关于如何构建和训练自定义网络结构的经验。
下次做类似的实验,会先把评估指标写完,再开始训练。没有量化指标的实验,事后很难说清楚到底有没有效果。