博客

序列并行与 Ring Attention:超长上下文训练技术解析

现代大语言模型对上下文窗口的需求不断增长——128K、256K 甚至 1M tokens。单卡 GPU 无法容纳如此长的序列。Twinkle 的 Sequence Parallel 模块通过在多设备间切分序列维度来解决这一问题,结合 Ulysses All-to-All 并行与 ZigZag Ring Attention,实现近线性扩展。

昇腾 NPU 支持:融合算子与 Flash Linear Attention

Twinkle 通过全面的 monkey-patching 系统为华为昇腾 NPU 提供一等公民级别的支持,自动将标准 CUDA 算子替换为 NPU 优化的融合算子。本文介绍 kernel 架构与各项优化细节。

两种执行模式:torchrun(本地)与 Ray(分布式)

Twinkle 的 infra 模块提供统一的编程模型,无缝支持两种运行模式:local(单机 torchrun)和 ray(多机 Ray 集群)。本文介绍其架构设计、基于装饰器的 API,以及各模式的适用场景。

TUI 与 Auto-Research:用 AI Agent 控制训练

Twinkle 内置了一个终端 UI(TUI),集成 LLM Agent,可以自主启动、监控、暂停和调试 ML 训练任务。本文介绍 TUI 的架构设计、Agent 循环以及让「自动化研究」成为可能的工具系统。

Multi-LoRA:共享 GPU 上的多租户并行训练

Twinkle 的 Multi-LoRA 架构支持多个租户在同一份共享模型上同时训练各自独立的 LoRA 适配器。本文介绍其技术方案,涵盖 Transformers 和 Megatron 两种后端。

OpenEnv 集成:连接外部环境到 RL 训练

Twinkle 的 envs 模块在异步外部环境(代码沙箱、浏览器、游戏引擎)和同步 RL 训练循环之间架起桥梁。本文介绍 Env 抽象、EnvTool 适配器以及 OpenEnv WebSocket 客户端的设计。