网易首页 > 网易号 > 正文 申请入驻

纯国产、轻量级大模型训练框架,来自阿里魔搭

0
分享至

今天来聊一个我觉得挺有意思的新项目——魔搭(ModelScope)团队刚开源的Twinkle✨,一个让大模型训练真正"亮起来"的训练框架。

顺带说一句,这篇文章介绍的项目也是来自魔搭

简介

做过模型训练的同学应该都深有体会:训练一个大模型,最痛苦的不是算法本身,而是搞基础设施。你写好了训练代码,结果要在分布式环境下跑起来,先是配 Ray 集群,再是搞数据并行、模型并行,checkpoint 又要同步……光是把这套流水线跑通就够花上好几天时间了。

Twinkle✨ 想解决的就是这个问题。一句话总结:它是一个轻量级的客户端-服务端训练框架,把训练逻辑封装成标准化 API,不管你用 torchrun 本地跑还是用 Ray 集群跑,代码基本不用改。

更牛的是,它还能作为Training-as-a-Service(TaaS)的后端网关——也就是说,你甚至可以像调 API 一样训练模型。这在企业级场景下简直太香了。

下面这张架构图一目了然:


Twinkle 架构设计:解耦的客户端-服务端架构

核心亮点拉出来说:

  • 解耦架构:客户端和服务端分离,标准化接口设计,向后兼容 Tinker API。搞过 Tinker 的同学迁移成本极低,改个 base URL 就行

  • 三种运行模式:torchrun / Ray / HTTP,本地调试、集群训练、远程 API 服务随便切换

  • 多后端支持:同时支持 Transformers 和 Megatron 后端,Dense 模型和 MoE 模型都能搞

  • 多租户训练:在同一个基础模型上同时跑多个 LoRA 训练任务,互不干扰——这个功能是真的硬核

另外值得一提的是,Twinkle✨ 是ms-swift(魔搭之前非常知名的训练框架)团队打造的。官方也明确说了,预计 Twinkle 中的一些基础组件会被 ms-swift 复用,可以说这两个项目是共同演进的关系。

多租户:一个底座跑 N 个训练任务

这应该是 Twinkle 最让人眼前一亮的功能了。

想象一下这个场景:公司有一台 A100 集群,同时有 4 个团队要微调模型。传统做法是排队,一个一个来。但用了 Twinkle 的多租户架构,4 个团队可以同时在一个底座模型上训练各自的 LoRA,完全隔离。


多租户训练架构:LoRA 池 + 租户隔离

举个真实例子:

  • 租户 A:加载本地私有数据集,LoRA rank=8,用基础模型做 SFT

  • 租户 B:从 Hub 拉开源数据集,LoRA rank=32,跑预训练

  • 租户 C:用基础模型做 GRPO 损失计算,搞强化学习

  • 租户 D:纯推理,算 logps

这 4 个任务并发跑在同一个底座模型上,因为 Twinkle 把模型和采样器设计成了「任务无关组件」。训练完成后,checkpoint 还能自动推送到 ModelScope 或 HuggingFace 的仓库(默认私有)。

说白了,这就是给企业场景准备的「GPU 多人共享训练平台」。在 GPU 资源紧张的今天,这种设计真的太实用了。

注意:目前多租户的并发训练主要针对 LoRA 优化。当然作为模块化框架,Twinkle 也支持远程临时独占训练,也就是全参数训练模式。
支持的模型

Twinkle 目前支持的模型覆盖面已经相当广了,主流的大模型基本都有:

模型系列

代表模型

参数规模

Megatron 支持

Qwen3 全系列

Qwen3-14B-Base

0.6B ~ 32B

Qwen3 MoE

Qwen3-30B-A3B

30B-A3B, 235B-A22B

Qwen3.5 MoE

Qwen3.5-35B-A3B

35B-A3B, 122B-A10B

Qwen3.5 Dense

Qwen3.5-9B

2B ~ 27B

Qwen2 / 2.5 全系列

Qwen2.5-1.5B-Instruct

0.5B ~ 72B

ChatGLM3/4

glm-4-9b-chat

6B ~ 9B

InternLM2

internlm2-1_8b

1.8B ~ 7B

DeepSeek V2

DeepSeek-V2-Lite

V2 全系列

DeepSeek R1

DeepSeek-R1

DeepSeek R1 蒸馏版

R1-Distill-Qwen-7B

1.5B ~ 32B

可以看到,Qwen 系列和 DeepSeek 系列的 Megatron 支持做得最好。GLM 和 InternLM 暂时只支持 Transformers 后端。

而且官方也说了,随着新模型的发布会持续添加支持。目前在 ModelScope 上提供的 Serverless 训练服务,底座模型用的是Qwen3-30B-A3B-Instruct-2507

安装

安装非常简单,一行 pip 搞定:

pip install 'twinkle-kit'

如果需要从源码安装:

git clone https://github.com/modelscope/twinkle.git
cd twinkle
pip install -e .

环境要求:Python >= 3.11,PyTorch >= 2.0。

如果要用 Megatron 后端,还需要额外安装 Megatron-LM(仓库里有INSTALL_MEGATRON.sh脚本可以直接用)。

使用

来看一个用 Ray 训练 LoRA 的完整示例。代码整体写起来非常清晰:

from peft import LoraConfig
import twinkle
from twinkle import DeviceMesh, DeviceGroup
from twinkle.dataloader import DataLoader
from twinkle.dataset import Dataset, DatasetMeta
from twinkle.model import TransformersModel
from twinkle.preprocessor import SelfCognitionProcessor

# 定义设备组和 mesh
device_group = [DeviceGroup(name='default', ranks=8, device_type='cuda')]
device_mesh = DeviceMesh.from_sizes(fsdp_size=4, dp_size=2)
twinkle.initialize(mode='ray', groups=device_group, global_device_mesh=device_mesh)

def train():
# 从 ModelScope 加载模型(HuggingFace 用 'hf://...')
base_model = 'ms://Qwen/Qwen3.5-4B'
# 加载 1000 条样本
dataset = Dataset(dataset_meta=DatasetMeta(
'ms://swift/self-cognition', data_slice=range(1000)
))
dataset.set_template('Template', model_id=base_model)
dataset.map(SelfCognitionProcessor('twinkle LLM', 'ModelScope Community'))
dataset.encode()
# 全局 batch size = 8
dataloader = DataLoader(dataset=dataset, batch_size=8, min_batch_size=8)
# 使用 Transformers 后端
model = TransformersModel(model_id=base_model, remote_group='default')
# 配置 LoRA
lora_config = LoraConfig(r=8, lora_alpha=32, target_modules='all-linear')
model.add_adapter_to_model('default', lora_config, gradient_accumulation_steps=2)
model.set_optimizer(optimizer_cls='AdamW', lr=1e-4)
model.set_lr_scheduler(
scheduler_cls='CosineWarmupScheduler',
num_warmup_steps=5,
num_training_steps=len(dataloader)
)
# 训练循环
for step, batch in enumerate(dataloader):
model.forward_backward(inputs=batch)
model.clip_grad_and_step()
if step % 20 == 0:
metric = model.calculate_metric(is_training=True)
print(f'Step {step}/{len(dataloader)}, metric: {metric}')
model.save('last-checkpoint')

if __name__ == '__main__':
train()

说实话,看完这段代码我是挺惊喜的。整个 API 设计得非常 Pythonic:加载数据、设置模板、定义模型、配置 LoRA、训练循环,每一步都很直观。特别是ms://hf://的前缀设计,可以无缝切换 ModelScope 和 HuggingFace 的模型源,很优雅。

训练即服务(TaaS)

Twinkle 还有一个杀手级的功能:在 ModelScope 上提供了 Serverless 训练服务,目前处于 Beta 阶段。

怎么用呢?加入 Twinkle-Explorers 组织就能免费体验。用 Tinker 兼容 API 调用就行:

from tinker import ServiceClient, types
from twinkle import init_tinker_client

base_url = 'https://www.modelscope.cn/twinkle'
api_key = 'your-api-key'

init_tinker_client()
service_client = ServiceClient(base_url=base_url, api_key=api_key)
training_client = service_client.create_lora_training_client(
base_model='Qwen/Qwen3-30B-A3B-Instruct-2507', rank=16
)

# 像调 API 一样训练模型
for epoch in range(3):
for step, batch in enumerate(dataloader):
input_datum = [input_feature_to_datum(feat) for feat in batch]
fwdbwd_future = training_client.forward_backward(input_datum, "cross_entropy")
optim_future = training_client.optim_step(types.AdamParams(learning_rate=1e-4))
fwdbwd_future.result()
optim_future.result()
training_client.save_state(f"twinkle-lora-{epoch}").result()

没有 GPU?没关系,用 ModelScope 的 Serverless 训练服务,远程调 API 就能训练一个 30B 的 MoE 模型的 LoRA。对于个人开发者和小团队来说,这简直是福音。

模块化生态

Twinkle 的模块化设计做得相当细致,一共有 20 个标准模块:

类别

模块

功能

数据层

Dataset / Template / DataLoader / Preprocessor / InputProcessor

数据加载、编解码、分发、ETL、任务处理

模型层

Model / Sampler / Loss / Metric / Reward / Advantage

大模型、采样、损失、指标、奖励、优势函数

工程层

CheckpointEngine / Patch / Module / Kernel

权重同步、模型修复、组件、算子

服务层

Server / Client / Infra / Plugin / Hub

集群启动、客户端、基础设施抽象、插件、Hub 对接

每个模块都是高内聚的,可以单独替换或扩展。比如你想换个自定义的损失函数?实现 Loss 接口就行。想用自己的采样策略?实现 Sampler 接口即可。这种设计让框架的可扩展性非常强。

社区也已经开始贡献组件了,比如 ModelScope 官方提供了一个qwen3_moe_transformers4_patch,专门修复 Qwen3 MoE 模型在 FSDP2 训练时挂起的问题。

丰富的 Cookbook

Twinkle 提供了覆盖多个场景的训练脚本:

训练类型

后端

FSDP 微调

Transformers

全参数微调

FSDP MoE 微调

Transformers

MoE 架构专用

Expert Parallelism + FSDP

Transformers

专家并行 + 数据并行

Sequence Parallelism + FSDP

Transformers

序列并行,超长上下文训练

TP 训练

Megatron

张量并行

TP MoE 训练

Megatron

MoE + 张量并行

Tinker/Twinkle 客户端训练

两者均支持

远程 API 方式训练

这个覆盖面已经很全了。无论你是用 Transformers 还是 Megatron 后端,Dense 还是 MoE 模型,本地还是远程训练,基本都有现成的 cookbook 可以参考。

总结

Twinkle✨ 是我最近看到的最有想象力的大模型训练框架之一。

它不只是又一个训练工具,而是把"训练即服务"这个概念真正落地了。客户端-服务端解耦、多租户 LoRA 并行训练、Serverless TaaS、多后端支持……每一个特性单拿出来都有竞争力,组合在一起就是一套完整的企业级训练解决方案。

优点:

  • 架构设计优雅,模块化程度高,扩展性强

  • 多租户 LoRA 并行训练是真正的差异化卖点

  • 支持 Transformers / Megatron 双后端

  • ModelScope TaaS 服务让没有 GPU 的开发者也能训练大模型

  • 和 ms-swift 生态互通,组件可复用

  • 代码风格清晰,API 设计很 Pythonic

需要注意的地方:

  • 项目刚开源不久(2026 年 2 月首版),生态还在建设中

  • 多租户并发目前仅针对 LoRA 优化

  • 支持的模型虽然覆盖主流,但不如 ms-swift 那么全

  • 对华为昇腾 NPU 的支持还在完善中(文档已经有 NPU 开箱指南了)

如果你是做大模型训练的企业用户,特别是需要多人共享 GPU 集群训练各自模型的场景,Twinkle 值得重点关注。如果你是个人开发者,可以先体验一下 ModelScope 上的免费 Serverless 训练服务,感受一下"API 训练大模型"的快感。

官方链接:

  • GitHub:https://github.com/modelscope/twinkle

  • 中文文档:https://twinkle-kit.readthedocs.io/zh-cn/latest/

  • PyPI:https://pypi.org/project/twinkle-kit/

  • Serverless 训练服务:加入 Twinkle-Explorers 组织即可体验

制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
黄仁勋最新惊人观点:英语专业将血洗计算机,文科成AI时代新贵族

黄仁勋最新惊人观点:英语专业将血洗计算机,文科成AI时代新贵族

影像温度
2026-03-27 21:54:59
周口一油菜花田打卡地被推土机铲平,当地:系拆迁征收用地,居民不能私自种植

周口一油菜花田打卡地被推土机铲平,当地:系拆迁征收用地,居民不能私自种植

极目新闻
2026-03-27 14:54:50
表白失败怒砸食堂后续:咖啡机报废,面临巨额赔偿,前程恐要尽毁

表白失败怒砸食堂后续:咖啡机报废,面临巨额赔偿,前程恐要尽毁

离离言几许
2026-03-27 12:11:29
霍尔木兹“封锁”26天后,人类打开了积攒50年的保险箱

霍尔木兹“封锁”26天后,人类打开了积攒50年的保险箱

摩登中产
2026-03-27 09:55:44
深夜利空,美联储加息20基点,黄金跌11%,白银暴跌13%,逻辑逆转

深夜利空,美联储加息20基点,黄金跌11%,白银暴跌13%,逻辑逆转

鹏哥投研
2026-03-27 10:40:49
张雪峰追悼会在苏州殡仪馆举行,大量群众前来送行(组图)

张雪峰追悼会在苏州殡仪馆举行,大量群众前来送行(组图)

DoNews
2026-03-28 07:31:14
“考研6年,输给一条黑裤袜”,女大学生啃老式考研,被嘲研王爷

“考研6年,输给一条黑裤袜”,女大学生啃老式考研,被嘲研王爷

妍妍教育日记
2026-03-28 07:45:03
金融圈巨震!巴曙松涉嫌经济类犯罪,金额巨大,妻子也一起失联,还和广发银行失联独董有关

金融圈巨震!巴曙松涉嫌经济类犯罪,金额巨大,妻子也一起失联,还和广发银行失联独董有关

南财社V
2026-03-27 22:08:42
国足2-0爆冷仅一夜,赢球传遍全球3大洲:荷媒德媒惊讶,韩媒盛赞

国足2-0爆冷仅一夜,赢球传遍全球3大洲:荷媒德媒惊讶,韩媒盛赞

侃球熊弟
2026-03-28 01:15:03
委内瑞拉,为什么从我们的视野里消失了

委内瑞拉,为什么从我们的视野里消失了

民间铁血柔情
2026-03-28 04:41:19
樊振东一单独得2分 52岁华裔名将求合影 现场播放《真心英雄》

樊振东一单独得2分 52岁华裔名将求合影 现场播放《真心英雄》

念洲
2026-03-28 06:47:42
Google实时耳机翻译功能登陆iOS 并拓展至更多国家

Google实时耳机翻译功能登陆iOS 并拓展至更多国家

cnBeta.COM
2026-03-27 03:55:24
同学聚会,班长让我给迟到的镇长让座,下一秒,县长向我道歉

同学聚会,班长让我给迟到的镇长让座,下一秒,县长向我道歉

农村情感故事
2026-03-23 07:31:39
美国高尔夫球星“老虎”伍兹因酒驾发生翻车事故被捕

美国高尔夫球星“老虎”伍兹因酒驾发生翻车事故被捕

新京报
2026-03-28 09:44:58
广东传1好3坏消息!关辛谈焦泊乔离队,比输球更可怕的麻烦出现了

广东传1好3坏消息!关辛谈焦泊乔离队,比输球更可怕的麻烦出现了

后仰大风车
2026-03-28 07:10:11
美国誓言对付中国?

美国誓言对付中国?

陆弃
2026-03-27 08:55:03
台积电:我们已经顾不上美国工厂了,大陆再不给稀土,大家都得完

台积电:我们已经顾不上美国工厂了,大陆再不给稀土,大家都得完

吴紒爱体育
2026-03-28 04:01:32
一论文引发全球内存股震荡!原作者澄清:Google TurboQuant 歪曲我们的算法成果

一论文引发全球内存股震荡!原作者澄清:Google TurboQuant 歪曲我们的算法成果

风向观察
2026-03-28 07:14:19
暴跌95%,裁员5万人,全球第二大车企爆大雷

暴跌95%,裁员5万人,全球第二大车企爆大雷

蒋东文
2026-03-27 21:09:47
上班开粪车下班开奔驰的小伙今日大婚,当事人:吸粪车婚车队,全球第一个

上班开粪车下班开奔驰的小伙今日大婚,当事人:吸粪车婚车队,全球第一个

极目新闻
2026-03-28 08:51:05
2026-03-28 10:15:00
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3293文章数 11117关注度
往期回顾 全部

科技要闻

遭中国学界"拉黑"后,这家AI顶会低头道歉

头条要闻

现役军官带刀闯中使馆日方仅表示"遗憾" 高市没反应

头条要闻

现役军官带刀闯中使馆日方仅表示"遗憾" 高市没反应

体育要闻

“我是全家最差劲的运动员”

娱乐要闻

范玮琪加盟,官宣《浪姐7》遭全网抵制

财经要闻

我在小吃培训机构学习“科技与狠活”

汽车要闻

与众08,金标大众不能输的一战

态度原创

健康
教育
房产
亲子
公开课

干细胞抗衰4大误区,90%的人都中招

教育要闻

“考研6年,输给一条黑裤袜”,女大学生啃老式考研,被嘲研王爷

房产要闻

6.8万方!天河员村再征地,金融城西区开发全面提速

亲子要闻

夫妻生孩子的核心目的就是生孩子

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版