AttentionFreeTransformer 核心结构图(GraphViz 重绘)

简介: AttentionFreeTransformer 核心结构图(GraphViz 重绘)

AFTFull

digraph AFTFull {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
  ]
    inp [label="输入\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
    llq [label="LinearQ\n[HidSize, ProjSize]", shape="box"]
    llk [label="LinearK\n[HidSize, ProjSize]", shape="box"]
    llv [label="LinearV\n[HidSize, ProjSize]", shape="box"]
  w [label="W:Param\n[SeqLen, SeqLen]", shape="Mrecord"]
    q [label="Q\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    k [label="K\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    v [label="V\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    σ [label="Sigmoid", shape="box", width=3]
    atten_op [label="exp(W) @ (exp(K) * V)\n/ exp(W) * exp(K)", shape="box"]
    atten [label="[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    mul [label="*", shape="box", width=3]
    llo [label="LinearO\n[ProjSize, HidSize]", shape="box"]
    oup [label="输出\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
  inp -> llq
  inp -> llk
  inp -> llv
  llq -> q
  llk -> k
  llv -> v
  q -> σ
  w -> atten_op
  k -> atten_op
  v -> atten_op
  atten_op -> atten
  σ -> mul
  atten -> mul
  mul -> llo
  llo -> oup
}

AFTSimple

digraph AFTSimple {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
  ]
    inp [label="输入\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
    llq [label="LinearQ\n[HidSize, ProjSize]", shape="box"]
    llk [label="LinearK\n[HidSize, ProjSize]", shape="box"]
    llv [label="LinearV\n[HidSize, ProjSize]", shape="box"]
    q [label="Q\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    k [label="K\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    v [label="V\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    σ [label="Sigmoid", shape="box", width=3]
    atten_op [label="sum(softmax(K, 1) * V, 1)", shape="box"]
    atten [label="[BatchSize, 1, ProjSize]", shape="Mrecord"]
    mul [label="*", shape="box", width=3]
    llo [label="LinearO\n[ProjSize, HidSize]", shape="box"]
    oup [label="输出\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
  inp -> llq
  inp -> llk
  inp -> llv
  llq -> q
  llk -> k
  llv -> v
  q -> σ
  k -> atten_op
  v -> atten_op
  atten_op -> atten
  σ -> mul
  atten -> mul
  mul -> llo
  llo -> oup
}

AFTLocal

digraph AFTLocal {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
  ]
    inp [label="输入\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
    llq [label="LinearQ\n[HidSize, ProjSize]", shape="box"]
    llk [label="LinearK\n[HidSize, ProjSize]", shape="box"]
    llv [label="LinearV\n[HidSize, ProjSize]", shape="box"]
  w [label="W:Param\n[SeqLen, SeqLen]", shape="Mrecord"]
  mask [label="mask\n[SeqLen, SeqLen]\nabs(i - j) < S? 1: 0", shape="box"]
    q [label="Q\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    k [label="K\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    v [label="V\n[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    σ [label="Sigmoid", shape="box", width=3]
    atten_op [label="exp(W) @ (exp(K) * V)\n/ exp(W) * exp(K)", shape="box"]
    atten [label="[BatchSize,\n SeqLen,\n ProjSize]", shape="Mrecord"]
    mul [label="*", shape="box", width=3]
    llo [label="LinearO\n[ProjSize, HidSize]", shape="box"]
    oup [label="输出\n[BatchSize,\n SeqLen,\n HidSize]", shape="Mrecord"]
  inp -> llq
  inp -> llk
  inp -> llv
  llq -> q
  llk -> k
  llv -> v
  q -> σ
  w -> mask
  mask -> atten_op
  k -> atten_op
  v -> atten_op
  atten_op -> atten
  σ -> mul
  atten -> mul
  mul -> llo
  llo -> oup


相关文章
|
Devops
发布vscode插件
发布vscode插件
232 0
发布vscode插件
|
缓存 NoSQL 应用服务中间件
Nginx的原理、常用配置和生产案例应用(一)
Nginx的原理、常用配置和生产案例应用
226 0
|
存储 人工智能 运维
带你读《云存储应用白皮书》之38:4. 文件存储在AIGC赛道中的应用
带你读《云存储应用白皮书》之38:4. 文件存储在AIGC赛道中的应用
482 0
|
SQL 算法 关系型数据库
开发指南—DDL语句—分区表语法—CREATE TABLE
本文主要介绍使用DDL语句进行建表的语法、子句、参数和基本方式
|
存储 IDE 开发工具
《我和PIC单片机:基于PIC18》——2.3 开发前的准备
本节书摘来自华章计算机《我和PIC单片机:基于PIC18》一书中的第2章,第2.3节,作者 高显生,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2169 0
|
缓存
opengl微开发之1-从零开始
<p>对OpenGL有一点了解之后,现在开始真正编写代码。</p> <p>今天的内容:</p> <p>        使用FreeGLUT创建OpenGL的上下文环境</p> <p>        初始化GLEW</p> <p>        创建一个OpenGL的的模板范例</p> <p><br></p> <p>第一步:</p> <p>         一个OpenGL的上
1265 0
|
5天前
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
395 93
|
6天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~