主流模型 LLM · VLM · MoE
运行模式 本地 · Ray · HTTP
多租户 并行 LoRA 训练
上手时间 pip install 即用
Twinkle 是一个 客户端-服务端 LLM 训练框架,将训练什么与如何训练分离。
使用简洁的 Python API 编写训练逻辑,然后部署到任何地方 —— 本地 torchrun、
Ray 集群,或无服务器 Training-as-a-Service。
由 ModelScope 的 ms-swift 团队构建。

原生 Twinkle API 功能完整,Tinker 兼容 API 便于迁移
15+ 组件:Dataset、Template、Model、Sampler、Loss、Reward、Metric...
Transformers 或 Megatron —— 一行配置切换
相同代码运行在笔记本和千卡集群。从 torchrun 切换到 Ray 或 HTTP 部署,无需修改训练逻辑。
一个基座模型同时训练 N 个不同的 LoRA。每个租户拥有独立的优化器、数据流水线和损失函数 —— 只共享算力。
没有隐藏的魔法。查看和控制每一个 forward、backward 和优化器步骤。自由调试,完全定制。
为生产级 TaaS 部署而构建,支持自动化集群管理、动态扩缩容和企业级多租户隔离。
SFT、预训练、GRPO、GKD 等。稠密模型和 MoE 架构。完整的 FSDP、张量并行、流水线并行支持。
Qwen 3.5/3/2.5、DeepSeek R1/V2、GLM-4、InternLM2 等。同时支持 Hugging Face 和魔搭模型库。
import twinkle
from peft import LoraConfig
from twinkle import DeviceGroup
from twinkle.dataloader import DataLoader
from twinkle.dataset import Dataset, DatasetMeta
from twinkle.model import TransformersModel
# 选择运行模式: 'local' (torchrun), 'ray', 或 'http'
twinkle.initialize(mode='ray', groups=[DeviceGroup(name='default', ranks=8)])
# 准备数据 — 支持魔搭和 Hugging Face
dataset = Dataset(dataset_meta=DatasetMeta('ms://swift/self-cognition'))
dataset.set_template('Template', model_id='ms://Qwen/Qwen3.5-4B')
dataset.encode()
# 创建带 LoRA 的模型
model = TransformersModel(model_id='ms://Qwen/Qwen3.5-4B', remote_group='default')
model.add_adapter_to_model('default', LoraConfig(r=8, lora_alpha=32))
model.set_optimizer(optimizer_cls='AdamW', lr=1e-4)
# 训练 — 你掌控循环
for batch in DataLoader(dataset=dataset, batch_size=8):
model.forward_backward(inputs=batch)
model.clip_grad_and_step()
model.save('my-finetuned-model')

在共享部署上运行完全不同的训练任务:
| 租户 | 配置 | 任务 |
|---|---|---|
| A | LoRA r=8, 私有数据 | SFT 微调 |
| B | LoRA r=32, Hub 数据集 | 增量预训练 |
| C | GRPO 损失 + Sampler | 强化学习 |
| D | 推理模式 | 对数概率计算 |
每个租户完全隔离 —— 不同的优化器、数据流水线、损失函数。 只共享基座模型的算力。检查点自动同步到魔搭或 Hugging Face。
支持主流 LLM · NVIDIA · 昇腾 NPU · SFT / PT / GRPO / GKD