Go to file
ViperEkura 12d587aa92 refactor continuous_batching: 4-lane pipeline (PENDING/PREFILL/DECODE/FINISHED), remove bogus Trans arrow, Refill=admission per AstrAI arch 2026-05-18 15:29:40 +08:00
.gitignore Merge PROMO_GUIDE into README, add AGENTS.md, parallelize render_all 2026-05-09 14:35:38 +08:00
AGENTS.md Merge PROMO_GUIDE into README, add AGENTS.md, parallelize render_all 2026-05-09 14:35:38 +08:00
README.md Merge PROMO_GUIDE into README, add AGENTS.md, parallelize render_all 2026-05-09 14:35:38 +08:00
architecture.py redesign continuous batching: simplify to lane-based FSM with Prefill state 2026-05-09 18:51:08 +08:00
continuous_batching.py refactor continuous_batching: 4-lane pipeline (PENDING/PREFILL/DECODE/FINISHED), remove bogus Trans arrow, Refill=admission per AstrAI arch 2026-05-18 15:29:40 +08:00
cta.py refactor: extract CTA scene into standalone cta.py 2026-05-07 23:14:26 +08:00
paged_cache.py fix paged_cache: _TaskRow class, expand rendering bug, and order corrected 2026-05-09 20:16:44 +08:00
render_all.py Merge PROMO_GUIDE into README, add AGENTS.md, parallelize render_all 2026-05-09 14:35:38 +08:00
transformer.py fix: replace unicode checkmark with ASCII argmax label 2026-05-07 23:08:16 +08:00

README.md

AstrAI Promo — 动画渲染 & 视频制作指南

Manim 驱动的技术动画,用于 AstrAI 宣传视频。 目标时长:2-3 分钟


目录

  1. 项目定位与核心卖点
  2. 技术架构速览
  3. 渲染指南
  4. 场景清单
  5. 分镜脚本
  6. 旁白文案草稿
  7. 素材清单

1. 项目定位与核心卖点

一句话定位:

一个能在单张消费级 GPU 上训练和推理的 1B 参数中英双语语言模型框架。

核心卖点(视频中需突出):

卖点 说明 视觉表达
单卡可跑 1B 参数RTX 3090/4090 即可运行 巨大服务器集群 vs 单张显卡对比
连续批处理 动态合并请求,吞吐量 3x+ 任务流经 Cleanup→Refill→Prefill→Decode 动画
分页 KV 缓存 固定大小页表 + O(1) 分配,按需扩容 页表分配与写入动画
OpenAI 兼容 API 一行代码切换 curl 命令对比
流式输出 逐 token 返回,低首延迟 终端逐字喷出效果
全过程开源 训练+推理+权重全部开源 GitHub 页面展示

2. 技术架构速览

整体架构

┌──────────────────────────────────────────────────┐
│  FastAPI Server  (OpenAI-Compatible API)         │
├──────────────────────────────────────────────────┤
│  InferenceEngine  (Streaming + Async + Batch)    │
├──────────────────────────────────────────────────┤
│  Continuous Batching Scheduler                   │
│  ┌────────┐  ┌──────┐  ┌────────┐  ┌────────┐   │
│  │Cleanup │→ │Refill│→ │Prefill │→ │ Decode │   │
│  └────────┘  └──────┘  └────────┘  └────────┘   │
├──────────────────────────────────────────────────┤
│  Paged KV Cache  (Page Table  +  Page Pool)      │
├──────────────────────────────────────────────────┤
│  Transformer  (24层 GQA, RoPE, SwiGLU)           │
└──────────────────────────────────────────────────┘

关键技术指标

指标
参数量 ~1.0B
词表大小 100,000中英 BPE
层数 24
注意力头 24 Q-heads / 4 KV-headsGQA
最大长度 2048 tokens
精度 bfloat16
最低显存 ~6GB推理/~12GB训练

3. 渲染指南

依赖 conda 环境 manim

conda run -n manim python -m pip install manim

渲染全部(并行)

conda run -n manim python render_all.py        # 1080p
conda run -n manim python render_all.py -ql     # 480p draft
conda run -n manim python render_all.py -4k     # 4K

渲染单个场景

conda run -n manim python -m manim transformer.py Transformer -qh

输出到 output/videos/.mp4 可直接导入剪辑软件。

中文字体

所有 Text 对象创建前需设置:

Text.set_default(font="Microsoft YaHei")

详细命令参考 AGENTS.md


4. 场景清单

文件 Scene class 内容 建议时长
transformer.py Transformer GQA 注意力机制 (Q/K/V→RoPE→Attention→O) + 规格卡 ~35s
continuous_batching.py ContinuousBatching 4 阶段流水线 + 吞吐对比 (1.0x vs 3.4x) ~30s
paged_cache.py PrefixCache 分页 KV 缓存:页表分配、按需扩容、回收 ~30s
architecture.py Architecture 全栈架构HTTP API → Engine → Paged Cache → Transformer ~25s
cta.py CTA 结尾卡片:"AstrAI — Single GPU, Open Source, 1B params" ~3s

5. 分镜脚本

总时长 2:30,分为 6 个段落。

Segment 1Hook + 问题陈述0:00 - 0:20

镜头 画面 旁白 时长
1.1 黑屏,逐字打出"大语言模型很强大" "大语言模型很强大——" 3s
1.2 切到数据中心照片 / 巨大 GPU 集群 "——但跑起来需要几十张 GPU普通人根本碰不到。" 5s
1.3 画面分屏:左边集群,右边一张 RTX 4090 "但如果我告诉你,只要一张显卡就够了呢?" 5s
1.4 Logo 出现:AstrAI,下方副标题 "1B 参数单卡推理框架" "AstrAI——单卡跑大模型。" 7s

视觉素材数据中心图片、RTX 4090 产品图、Logo 动画


Segment 2模型架构速览0:20 - 0:45

镜头 画面 旁白 时长
2.1 Transformer 架构图逐层展开embed → 24层 decoder → norm → head "1B 参数24 层 Transformer100k 词表的中英 BPE 分词器。" 8s
2.2 高亮 GQA24个 Q head 映射到 4个 KV head "GQA 分组查询注意力——24 个查询头只对应 4 个 KV 头KV 缓存直接减少 83%。" 10s
2.3 RoPE 旋转变换可视化 "RoPE 旋转位置编码,支持动态长度外推。" 5s
2.4 fade 到模型 cardvocab=100k, dim=1536, layers=24, heads=24, kv_heads=4 静默 2s

视觉素材transformer.py 动画、模型参数 card


Segment 3连续批处理0:45 - 1:20

镜头 画面 旁白 时长
3.1 3 个请求同时到达服务器 "当多个请求同时到达时——" 3s
3.2 静态批处理对比最长补齐3个请求串行 → 总耗时 max_len × 3 "传统做法是静态批处理把请求补齐到相同长度串行处理GPU 利用率低下。" 8s
3.3 连续批处理动画:任务流入 Waiting Queue → Cleanup → Refill → Prefill → Decode "AstrAI 采用连续批处理任务动态进出GPU 每一刻都在满负荷运转。" 10s
3.4 放大 Decode 阶段:同一位置的任务合并成一批 "特别地,只有处于相同 KV 缓存位置的任务才一起解码,从根本上避免了 RoPE 位置错乱的问题。" 8s
3.5 吞吐对比柱状图Static Batch vs Continuous Batching (3x+) "实测吞吐量提升 3 倍以上。" 6s

视觉素材continuous_batching.py 动画、对比图表


Segment 4分页 KV 缓存1:20 - 1:50

镜头 画面 旁白 时长
4.1 展示 KV 缓存是一个固定大小的张量,被划分为多个相同大小的 page "KV 缓存不再按请求预分配——而是划分为固定大小的页。" 5s
4.2 请求 A 到来,通过页表分配 2 个物理页,写入数据 "请求到达时,通过页表分配物理页,按需写入。" 7s
4.3 请求 B 到来,分配新页,展示页表将逻辑位置映射到不同物理页 "页表机制让逻辑位置和物理存储解耦——不同请求的页可以分散排列。" 8s
4.4 Decode 阶段,请求继续生成 token展示按需分配新页_maybe_alloc_page "生成过程中如果当前页写满,自动追加新页——按需扩容,不浪费显存。" 7s
4.5 请求结束时展示页面回收bitmask 置位) "请求结束后,页面通过 O(1) 位掩码回收,即刻复用。" 3s

视觉素材paged_cache.py 动画、页表分配示意


Segment 5Demo 演示1:50 - 2:15

镜头 画面 旁白 时长
5.1 侧录终端:启动 stream_chat.py逐行输出对话 "来实际看看效果。" 10s
5.2 多轮对话:中文问答,逐 token 喷出 静默 + 打字音效 8s
5.3 切到 HTTP 模式:服务端 + curl 请求,流式返回 "也提供 OpenAI 兼容的 HTTP API一行 curl 就能调用。" 7s

视觉素材终端录屏OBS 录制)


Segment 6收尾 + CTA2:15 - 2:30

镜头 画面 旁白 时长
6.1 全栈流程回顾(缩略架构图) "训练用 SEQ → SFT → DPO/GRPO推理用连续批处理——" 5s
6.2 GitHub 页面 + Star 引导 "——全部开源。点个 Star一起让大模型更普惠。" 7s
6.3 Logo + URL + "Open Source • Single GPU" 静默 3s

视觉素材GitHub 页面录屏、Logo 定版


6. 旁白文案草稿

中文版(完整 2:30

[00:00] 大语言模型很强大——
[00:03] 但跑起来需要几十张 GPU普通人根本碰不到。
[00:08] 但如果我告诉你,只要一张显卡就够了呢?
[00:13] AstrAI——单卡跑大模型。

[00:20] 1B 参数24 层 Transformer100k 词表的中英 BPE 分词器。
[00:28] GQA 分组查询注意力——24 个查询头只对应 4 个 KV 头KV 缓存直接减少 83%。
[00:38] RoPE 旋转位置编码,支持动态长度外推。

[00:45] 当多个请求同时到达时——
[00:48] 传统做法是静态批处理把请求补齐到相同长度串行处理GPU 利用率低下。
[00:56] AstrAI 采用连续批处理任务动态进出GPU 每一刻都在满负荷运转。
[01:06] 只有处于相同 KV 缓存位置的任务才一起解码,从根本上避免 RoPE 位置错乱。
[01:14] 实测吞吐量提升 3 倍以上。

[01:20] 传统 KV 缓存预分配整段显存,浪费严重。
[01:25] AstrAI 采用分页 KV 缓存——固定大小的页,通过页表间接寻址,按需分配。
[01:33] 生成过程中页写满了自动追加,请求结束后 O(1) 回收。
[01:40] 显存利用率大幅提升,支持更多并发请求。

[01:50] 来实际看看效果。
[01:52] (现场演示部分,自由发挥)

[02:15] 训练到推理,全流程开源,点个 Star一起让大模型更普惠。
[02:25] AstrAI — Open Source, Single GPU.

7. 素材清单

视频素材

素材 来源
数据中心 / GPU 集群图片 Pexels / Unsplash 免版权
RTX 4090 产品图 NVIDIA 官网 / 实物拍摄
AstrAI Logo 需设计
终端录屏 OBS 录制 AstrAI demo 脚本
GitHub 页面 浏览器录屏
Transformer 架构动画 Manim 渲染 transformer.py
连续批处理动画 Manim 渲染 continuous_batching.py
分页缓存动画 Manim 渲染 paged_cache.py
全栈架构动画 Manim 渲染 architecture.py
结尾卡片 Manim 渲染 cta.py

音频素材

素材 建议
旁白 USB 麦克风录制,中文普通话
背景音乐 Epidemic Sound / YouTube Audio Library 搜索 "technology ambient"
音效 打字音效、转场 swoosh

软件工具

用途 推荐工具 价格
录屏 OBS Studio 免费
剪辑 DaVinci Resolve 免费
动画渲染 Manimconda 环境 manim 免费
音频处理 Audacity 免费
字幕 DaVinci Resolve 内建 / Aegisub 免费