網易首頁 > 網易號 > 正文 申請入駐

純國產、輕量級大模型訓練框架,來自阿里魔搭

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.

相關推薦
熱點推薦
萬斯救了特朗普一命!美伊戰爭中,特朗普的政治生命恐怕已經終結

萬斯救了特朗普一命!美伊戰爭中,特朗普的政治生命恐怕已經終結

西樓知趣雜談
2026-04-23 10:50:03
拍《風云》時,導演為省錢給江祖平戴了條繩,竟撐起一個時代審美

拍《風云》時,導演為省錢給江祖平戴了條繩,竟撐起一個時代審美

蕭狡科普解說
2026-04-23 06:09:07
《新聞聯播》迎“換血潮”,70后主播將退場,4位接班人浮出水面

《新聞聯播》迎“換血潮”,70后主播將退場,4位接班人浮出水面

青梅侃史啊
2026-04-23 14:38:29
從“恐俄”到“祛魅”:俄烏戰爭如何終結了歐洲的百年心魔

從“恐俄”到“祛魅”:俄烏戰爭如何終結了歐洲的百年心魔

民間胡扯老哥
2026-04-22 04:47:09
數學的本質到底是什么?看完這篇文章你會愛上數學

數學的本質到底是什么?看完這篇文章你會愛上數學

真相Truth
2026-04-06 06:30:12
女優背后壓力揭秘:行業內幕遠比你想象的更殘酷!

女優背后壓力揭秘:行業內幕遠比你想象的更殘酷!

孤獨的獨角獸影視
2026-04-23 09:20:10
劃清界限!高云翔憔悴發聲撇清張婉婷,不留情面,一句話暗含深意

劃清界限!高云翔憔悴發聲撇清張婉婷,不留情面,一句話暗含深意

阿握聊事
2026-04-24 00:23:37
錢是有靈性的,記住以下六點,你會越來越有錢

錢是有靈性的,記住以下六點,你會越來越有錢

金沛的國學筆記
2026-04-21 18:53:07
記者:湖人調整里夫斯出戰情況,球員有望G3復出

記者:湖人調整里夫斯出戰情況,球員有望G3復出

懂球帝
2026-04-24 07:30:36
警報拉響!英超降級格局初定,熱刺和西漢姆聯誰能逃過最后一劫?

警報拉響!英超降級格局初定,熱刺和西漢姆聯誰能逃過最后一劫?

田先生籃球
2026-04-23 10:07:58
白人女性與黑人女性的體味差異,網友真實分享引發熱議

白人女性與黑人女性的體味差異,網友真實分享引發熱議

特約前排觀眾
2025-12-22 00:20:06
大一女生泰國參加潑水節被賣到緬甸電詐園區,家屬稱園區已同意放人,正協商時間地點;與閨蜜聊天記錄曝光:和多人一起被控制,沒睡覺進食

大一女生泰國參加潑水節被賣到緬甸電詐園區,家屬稱園區已同意放人,正協商時間地點;與閨蜜聊天記錄曝光:和多人一起被控制,沒睡覺進食

極目新聞
2026-04-23 15:05:28
用戶都氣笑了!700元路由器保修剩15天壞了:廠商只愿退款10元了事

用戶都氣笑了!700元路由器保修剩15天壞了:廠商只愿退款10元了事

快科技
2026-04-23 19:07:05
穆鐵柱的最后一天:在家中蹬自行車健身,突然兩眼一黑癱倒在地

穆鐵柱的最后一天:在家中蹬自行車健身,突然兩眼一黑癱倒在地

大運河時空
2026-04-21 16:30:03
兒子回國當晚國安上門,說他指紋虹膜全不對,這人是誰?

兒子回國當晚國安上門,說他指紋虹膜全不對,這人是誰?

曉艾故事匯
2026-01-07 10:14:33
7國南海搞軍演,轉頭求中國救急?中方一句話:不會拉你一把

7國南海搞軍演,轉頭求中國救急?中方一句話:不會拉你一把

墨印齋
2026-04-23 12:35:16
東風導彈泄密案!間諜郭萬鈞一家三口,全部被處以死刑

東風導彈泄密案!間諜郭萬鈞一家三口,全部被處以死刑

番外行
2026-03-31 08:28:28
最新民調出爐!蔣萬安奪冠,鄭麗文墊底,國民黨又要變天了?

最新民調出爐!蔣萬安奪冠,鄭麗文墊底,國民黨又要變天了?

天仙無味小仙女
2026-04-24 02:23:37
一杯水里藏著一個“反常”的宇宙:為什么水讓科學家都頭疼?

一杯水里藏著一個“反常”的宇宙:為什么水讓科學家都頭疼?

半解智士
2026-04-23 10:04:34
金莎近照曝光翻車!妝容失敗像大媽,穿寬松裙子被猜懷孕

金莎近照曝光翻車!妝容失敗像大媽,穿寬松裙子被猜懷孕

小徐講八卦
2026-04-24 06:06:44
2026-04-24 09:20:49
Ai學習的老章 incentive-icons
Ai學習的老章
Ai學習的老章
3348文章數 11139關注度
往期回顧 全部

科技要聞

馬斯克喊出"史上最大產品",但量產難預測

頭條要聞

女子網購1450單又退貨1450單 老板娘盤點后稱損失12萬

頭條要聞

女子網購1450單又退貨1450單 老板娘盤點后稱損失12萬

體育要聞

給文班剃頭的馬刺DJ,成為NBA最佳第六人

娛樂要聞

王大陸因涉黑討債被判 女友也一同獲刑

財經要聞

19家企業要"鋁代銅",格力偏不

汽車要聞

預售30.29萬起 嵐圖泰山X8配896線激光雷達

態度原創

本地
時尚
游戲
教育
公開課

本地新聞

SAGA GIRLS 2026女團選秀

今年最好看的3個顏色,太適合夏天了!

《AC黑旗RE》超高清截圖公布!遠洋風光極致重塑

教育要聞

相似無刻度直尺作圖,一個視頻學會!

公開課

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

無障礙瀏覽 進入關懷版