我们把 7B 模型的注意力机制“连根拔起“换掉了:Moti-1(摩谛)开源发布

简介: Moti-1(摩谛)创新性地将Qwen2.5-7B-Instruct的自注意力整体替换为自研RCA跨层波前注意力,实现浅层直读深层KV。6领域评测均分43.2(+5.1),前端代码领先24.7分。已开源,支持`trust_remote_code=True`两行加载,RTX 3090实测30 tok/s。

我们没有再做一个 Qwen 微调版,而是把 Transformer 的层内自注意力整体替换成自研的 RCA 跨层波前注意力,用 Qwen2.5-7B-Instruct 的 FFN/Embedding 做底座重新训练,得到 Moti-1(摩谛)。在 6 领域对照评测中总均分 43.2 vs 原版 38.1,前端代码方向最高领先 +24.7 分。现已开源:modelscope.cn/models/ericsjq/Moti-1-7B,trust_remote_code=True 两行代码加载,RTX 3090 实测 30 tok/s。


一、动机:注意力是 Transformer 唯一没被认真动过的大件

过去两年,开源社区对 7B 模型的改造几乎都发生在"不动架构"的前提下:换数据、换训练配方、加 LoRA、做 DPO。FFN 换过 MoE,位置编码换过 RoPE 变体,但注意力本身——那个 2017 年论文里画出来的 Q·K^T/√d——始终没人整体换掉。

原因很直白:注意力的 KV cache 机制太成熟了,牵一发而动全身。但它也有一个结构性局限:

第 l 层只能看到第 l 层自己的 KV 历史。 信息想跨层流动,只能一个 token 一个 token 地"爬"——深层网络的表征必须沿着深度方向逐层接力。

我们做了一个激进实验:能不能让浅层直接读深层的 KV? 这就是 Moti-1。

二、核心设计:RCA 波前执行器

2.1 把"逐层爬"改成"波前推进"

RCA(Recursive Cross-Attention)把序列切成 64-token 的块,按"块 0 全部层 → 块 1 全部层 → …"的波前(wavefront)顺序推进:

传统:  token 依次流过 L1→L2→…→L28(深度方向逐层接力)
RCA:   块0: L1→L2→…→L28
       块1: L1→L2→…→L28   ← 此时 L1 处理块1时,L2..L28 的块0 KV 已就绪
       ...

当第 l 层处理第 b 块时,l..l+k 层对更早块的 KV 全部就绪——浅层可以直接按可学习的深度配比回读更深层的"成品"键值。依赖图是无环 DAG,训练和推理共用同一套确定性调度,这是整个方案工程上站得住的前提。

2.2 一次 softmax,三组 Key 同场竞争

每层注意力的归一化由单次 softmax 内的三组 key 竞争完成:

组 内容 作用
① 本层历史组 本层对更早块与块内的 KV 保底语言建模能力(g=0 时数学上等价标准 KV cache)
② 跨层成品组 源层已固化的成品 KV,带逐头深度偏置 −λ_h·g 直接回读其他层的成品
③ 施工态组 本块内 j≤i 的本层 KV(严格下三角)+ 槽位偏置 b_σ 块内局部交互

配套可学习组件:逐头深度斜率 λ(决定每层"读多深")、b_σ、层编码 e_k/e_v/f_q(写入/读取 KV 时标记来源层,零初始化)。

工程实现上,三组 key 合并为单条 KV 序列,所有偏置/掩码统一编码为一个加性 attention mask,单次 scaled_dot_product_attention 完成,不物化注意力矩阵。

2.3 消融:为什么必须是"单次 softmax"

我们最早的保守设计是"双独立 softmax + 标量门控插值"(跨层通道用 s_gate≈−6 近闭)。在 webcode2m HTML 数据上的 300 步微型对照(以留出集 NLL 为准):

组 语义 留出 NLL
vanilla 标准 Qwen2 自注意力 5.5615
rca_mod 修正版(双 softmax + 标量门) 5.7116
rca_b12 单次 softmax 三组竞争 + 逐头 λ 分化 5.4834 ✦

结论很清晰:保守的门控插值版拖累泛化(比 vanilla 还差),只有让三组 key 在同一个 softmax 里真刀真枪竞争,跨层路由才产生正收益。最终版 Moti-1 采用 Beta12 语义。

三、训练:从"严格等效基座"平滑演进

三阶段管线,每一步都有明确的守恒量:

  1. 阶段一(等效起点 + 结构预调):RCA 的 q/k/v/o 直接克隆原 Attention 权重(二者结构同构),λ 大初始化(跨层通道近闭),e_k/e_v/f_q 置零——初始模型严格等效于基座,无分布崩塌。此阶段只训 RCA 参数。
  2. 阶段二(纯 RCA 全参):彻底抛弃 self_attn 分支(h = h + RCA(x),无插值),RCA 全部 822M 参数解冻,对话 SFT 全参训练。
  3. 阶段三(RCA + MLP-LoRA 联训):每层 FFN 注入 LoRA(r=16, α=32,B 零初始化),RCA 与 LoRA 同步解冻互相适应;工具调用标签 token 损失加权 ×10(缓解其占比仅 0.06% 被淹没的问题)。

阶段收益(60 评测块,仅对回答 token 计损):

阶段 NLL
克隆起点(未训练) 1.3506
纯 RCA 预调后 1.3481
RCA 全参 + LoRA 联训(发布版) 1.3126

一个容易被忽略的细节:六种新机制小参数(λ/b_σ/s_gate/e_k/e_v/f_q)全程保留 fp32 主权重——bf16 在 8.0 附近的量化台阶约 0.03,会把 1e-5 级的 Adam 位移直接舍回去,小参数等于没训。这个坑我们用位移验收(~1e-4)确认过。

四、成绩单:6 领域对照评测

6 领域 × 3 题,强云端模型作评委,三方同题相对评分(1-100):

模型 页面生成 数据可视化 动画交互 小游戏 古诗生成 日常问答 均分
Moti-1(摩谛) 64.0 14.0 49.7 38.7 54.3 38.3 43.2
Qwen2.5-7B-Instruct(原版) 39.3 11.3 29.3 22.0 79.7 47.0 38.1
DeepSeek-V4-Flash(参照上界) 95.3 87.7 96.0 97.0 81.0 96.7 92.3

三个值得注意的信号:

  • 注意力整体替换的前提下实现净增益(43.2 vs 38.1)——结构改动不是白做的;
  • 增益集中在长程结构化代码:页面生成 +24.7、动画交互 +20.4、小游戏 +16.7。我们推测跨层成品回读对"前面定过的类名/变量/样式,后面要精确复用"这类长程一致性有直接帮助;
  • 古诗与日常问答弱于原版——方向性取舍是真实存在的,不做修饰。这是下一轮训练的主攻方向。数据可视化域三方方差都极大,保留原始数据。

五、下载与使用

5.1 下载

ModelScope 仓库:https://modelscope.cn/models/ericsjq/Moti-1-7B(18.57 GB)

# 方式一: modelscope CLI (推荐, 仓库首发在ModelScope)
pip install modelscope
modelscope download --model ericsjq/Moti-1-7B --local_dir ./Moti-1-7B

仓库目前仅发布在 ModelScope。HuggingFace Hub 上没有同名仓库,请勿用 huggingface-cli download ericsjq/Moti-1-7B(会 404);如需 HF 工具链,可先 ModelScope 下载到本地再从本地路径加载。

5.2 三行加载,开箱即用

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "ericsjq/Moti-1-7B",            # 或本地路径 ./Moti-1-7B
    torch_dtype="bfloat16",
    device_map="auto",
    trust_remote_code=True)          # ⚠ 必需: 架构自举代码 modeling_rca.py
tok = AutoTokenizer.from_pretrained("ericsjq/Moti-1-7B")

messages = [{
   "role": "user", "content": "用SVG画一个会动的机器猫"}]
ids = tok.apply_chat_template(messages, tokenize=True,
                              add_generation_prompt=True,
                              return_tensors="pt").to(model.device)
out = model.generate(ids, max_new_tokens=4096,
                     temperature=0.7, top_p=0.8, top_k=20)
print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))

需要流式输出(前端/服务端场景)的话,仓库自带与 generate 同路径的流式接口:

buf = []                                   # 收集token id, 最后整体解码
for tid in model.generate_stream(ids, max_new_tokens=4096,
                                 temperature=0.7, top_p=0.8, top_k=20):
    buf.append(tid)
    # 注意: 不要逐token tok.decode([tid])打印中文——多字节UTF-8会被
    # 切碎出现乱码; 如需边生成边显示, 请在buffer上做增量解码
print(tok.decode(buf, skip_special_tokens=True))

推荐生成参数 temperature=0.7, top_p=0.8, top_k=20;前端页面类任务建议 max_new_tokens ≥ 4096。

5.3 运行要求(重要,先看这个再下载)

  • 显存约 18.6 GB,建议 24GB 卡(RTX 3090/4090 实测通过)
  • transformers 在 4.57.6 上验收通过;更早版本未测试(架构自举代码依赖较新的 remote code 加载机制,建议直接用新版)

六、一个值得单独讲的工程坑:dtype 决定 17 倍速度

这是本文最想让做推理优化的同学看到的段落。

RCA 分支的 q/k/v/o 权重如果存成 bf16,F.scaled_dot_product_attention 会落入 cuDNN 劣化 kernel 路径:单层注意力 63ms,且伴随 40ms 级的 CPU 同步阻塞——整个 7B 模型直接掉到 0.5 tok/s。

同样的权重转成 fp32:单层 3.7ms,17 倍差距,RTX 3090 上 decode 30 tok/s。

我们用 torch.profiler 定位:bf16 + 自定义加性 mask 的 [1, 28, 1, 长KV] 单 query 形状,cuDNN 后端选择严重劣化。所以 Moti-1 发布版把 RCA 分支以 fp32 存储(磁盘 18.57 GB 的由来),并在加载代码里自动回填精度——用户按标准写法加载即可,无需任何手动干预。代价是显存比常规 bf16 7B 高约 2.6 GB,但速度是数量级的差别。

通用教训:低精度推理不是免费的。自定义 attention mask + 单 query 长 KV 的形状组合,务必实测一下 SDPA 各后端的实际耗时。

七、局限与展望

直说短板:

  • 古诗生成、日常问答弱于原版基座——结构性替换的方向性取舍,后续训练轮次主攻;
  • 64-token 块调度,短序列(<128 token)场景收益有限;
  • RCA 分支 fp32 带来约 18.6 GB 显存需求;量化(int8/int4)未验证,理论上基座部分可量化,但 RCA 分支建议保持 fp32(见第六节)。

接下来我们计划:更大规模的领域补强训练、RCA 分支量化、以及把波前调度扩展到更长上下文。欢迎在 ModelScope 仓库提 issue 交流。

八、链接与引用

@misc{moti1_2026,
  title  = {Moti-1: Recursive Cross-Attention Wavefront Language Model},
  author = {XiaoSi Framework Researchers},
  year   = {2026},
  howpublished = {\url{https://modelscope.cn/models/ericsjq/Moti-1-7B}}
}

Moti-1(摩谛) · 小思框架 - 石京麒
如果这篇文章对你有帮助,欢迎点赞收藏,也欢迎在评论区聊你对注意力架构改造的看法。

目录
相关文章
|
19天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8829 25
|
18天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
3544 16
|
18天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2212 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
12天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
18天前
|
云安全 人工智能 安全
|
4天前
|
人工智能 JSON 自然语言处理
2026 年 Jev 决策模型深度拆解:原理解读、实战测评与保姆级落地教程
有一款特殊AI模型在开发者圈子刷屏,它摒弃传统大模型擅长的对话聊天能力,专注做高速结构化决策,它就是TypeSafe AI推出的Jev模型。该模型由ChatGPT共同发明人Diogo Almeida主导研发,定位为**System One Model(系统一模型)**,对标人类大脑快速直觉判断的思维模式,在响应延迟、调用成本、结构化输出稳定性上相比传统生成式大模型有着巨大差异。本文会完整拆解Jev底层原理、三大核心原语能力、适用业务场景,同时提供可直接运行的curl、Python代码示例,并且结合多组实测数据,客观分析模型优势与能力边界,帮助普通开发者和AI应用从业者快速上手落地。
386 1
|
7天前
|
人工智能 Linux Windows
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面
千问办公(QwenWork)是阿里云推出的AI智能办公平台,支持网页端直接使用及Windows/Mac/Linux客户端下载。提供PPT生成、财报分析、网页搭建等AI功能,个人版免费,企业版198元/席/月。详情见官网qwenwork.cn或阿里云产品页。
872 0
千问办公(QwenWork)官网入口:其实有2个,一个是网页端千问办公,一个是介绍指南页面

热门文章

最新文章