Twinkle✨ 是一个轻量级的客户端-服务器训练框架,采用模块化、高内聚接口设计,旨在消除基础设施摩擦,让模型训练更顺畅。
用途
Twinkle✨ 面向大模型训练场景,无论是本地使用 torchrun 执行,还是跨 Ray 集群扩展训练,都能通过标准化 API 封装训练逻辑。它同时作为无服务器训练即服务(TaaS)的稳健后端与网关,提供 Tinker API 的超集接口,使开发者可通过 Tinker 客户端或原生 Twinkle 客户端访问训练服务。
主要能力
- 解耦架构:标准化接口,向后兼容 Tinker API。
- 多种运行时模式:支持 torchrun / Ray / HTTP。
- 多后端支持:Transformers / Megatron。
- 多租户训练服务:多个 LoRA 共享同一基础模型部署,支持并行训练且完全隔离,可配置不同的数据填充策略、优化器和损失函数。
- 训练能力:支持 SFT/PT/RL,以及 DPO、GKD 训练;支持多轮 rollout 与工具调用;支持沙箱化多轮 RL(在隔离的 AgentENV Firecracker 微虚拟机或 OpenEnv 服务器中运行模型生成的代码)。
- 其他特性:支持 padding_free 操作(sft/dpo/grpo/gkd);支持训练任务失败时的 IM 消息告警;检查点自动推送至 ModelScope 或 HuggingFace 仓库(默认私有)。
- 模块化生态:包含 Dataset、Template、DataLoader、Preprocessor、InputProcessor、Model、Sampler、Loss、Metric、Reward、Advantage、CheckpointEngine、Patch、Module、Kernel、Server、Client、Infra、Plugin、Hub 等组件。
使用方式
安装方式包括:通过包安装、从源码安装、使用官方 Docker 镜像。若需使用 Twinkle 客户端,可运行一键安装脚本,该脚本会下载或利用 conda 创建名为 twinkle-client 的虚拟环境,用于远程训练。如需安装 Megatron 相关依赖,可使用对应脚本。
在 ModelScope 上可通过 API 端点 base_url=https://www.modelscope.cn/twinkle 进行训练,目前通过 Tinker 兼容 API 提供,无服务器端点一次由一个训练基础支持,当前为 Qwen3.8-27B。
适用场景
- 本地或集群上的大模型训练(SFT/PT/RL/DPO/GKD)。
- 需要多租户共享基础模型、并行训练多个 LoRA 的场景。
- 构建无服务器训练即服务(TaaS)平台。
- 需要与 Tinker 生态兼容的开发者。
限制
- 多租户训练功能目前针对 LoRA 优化。
- 无服务器训练服务当前仅通过 Tinker 兼容 API 提供,完整原生 API 服务正在推出中。
- 支持的模型列表随新模型发布持续增加,具体支持硬件与模型详见官方文档。
- 部分功能(如多轮 rollout 的 Cookbook)仍在编写中。