国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

純國產(chǎn)、輕量級大模型訓(xùn)練框架,來自阿里魔搭

0
分享至

今天來聊一個我覺得挺有意思的新項(xiàng)目——魔搭(ModelScope)團(tuán)隊(duì)剛開源的Twinkle?,一個讓大模型訓(xùn)練真正"亮起來"的訓(xùn)練框架。

順帶說一句,這篇文章介紹的項(xiàng)目也是來自魔搭

簡介

做過模型訓(xùn)練的同學(xué)應(yīng)該都深有體會:訓(xùn)練一個大模型,最痛苦的不是算法本身,而是搞基礎(chǔ)設(shè)施。你寫好了訓(xùn)練代碼,結(jié)果要在分布式環(huán)境下跑起來,先是配 Ray 集群,再是搞數(shù)據(jù)并行、模型并行,checkpoint 又要同步……光是把這套流水線跑通就夠花上好幾天時間了。

Twinkle? 想解決的就是這個問題。一句話總結(jié):它是一個輕量級的客戶端-服務(wù)端訓(xùn)練框架,把訓(xùn)練邏輯封裝成標(biāo)準(zhǔn)化 API,不管你用 torchrun 本地跑還是用 Ray 集群跑,代碼基本不用改。

更牛的是,它還能作為Training-as-a-Service(TaaS)的后端網(wǎng)關(guān)——也就是說,你甚至可以像調(diào) API 一樣訓(xùn)練模型。這在企業(yè)級場景下簡直太香了。

下面這張架構(gòu)圖一目了然:


Twinkle 架構(gòu)設(shè)計:解耦的客戶端-服務(wù)端架構(gòu)

核心亮點(diǎn)拉出來說:

  • 解耦架構(gòu):客戶端和服務(wù)端分離,標(biāo)準(zhǔn)化接口設(shè)計,向后兼容 Tinker API。搞過 Tinker 的同學(xué)遷移成本極低,改個 base URL 就行

  • 三種運(yùn)行模式:torchrun / Ray / HTTP,本地調(diào)試、集群訓(xùn)練、遠(yuǎn)程 API 服務(wù)隨便切換

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

  • 多租戶訓(xùn)練:在同一個基礎(chǔ)模型上同時跑多個 LoRA 訓(xùn)練任務(wù),互不干擾——這個功能是真的硬核

另外值得一提的是,Twinkle? 是ms-swift(魔搭之前非常知名的訓(xùn)練框架)團(tuán)隊(duì)打造的。官方也明確說了,預(yù)計 Twinkle 中的一些基礎(chǔ)組件會被 ms-swift 復(fù)用,可以說這兩個項(xiàng)目是共同演進(jìn)的關(guān)系。

多租戶:一個底座跑 N 個訓(xùn)練任務(wù)

這應(yīng)該是 Twinkle 最讓人眼前一亮的功能了。

想象一下這個場景:公司有一臺 A100 集群,同時有 4 個團(tuán)隊(duì)要微調(diào)模型。傳統(tǒng)做法是排隊(duì),一個一個來。但用了 Twinkle 的多租戶架構(gòu),4 個團(tuán)隊(duì)可以同時在一個底座模型上訓(xùn)練各自的 LoRA,完全隔離。


多租戶訓(xùn)練架構(gòu):LoRA 池 + 租戶隔離

舉個真實(shí)例子:

  • 租戶 A:加載本地私有數(shù)據(jù)集,LoRA rank=8,用基礎(chǔ)模型做 SFT

  • 租戶 B:從 Hub 拉開源數(shù)據(jù)集,LoRA rank=32,跑預(yù)訓(xùn)練

  • 租戶 C:用基礎(chǔ)模型做 GRPO 損失計算,搞強(qiáng)化學(xué)習(xí)

  • 租戶 D:純推理,算 logps

這 4 個任務(wù)并發(fā)跑在同一個底座模型上,因?yàn)?Twinkle 把模型和采樣器設(shè)計成了「任務(wù)無關(guān)組件」。訓(xùn)練完成后,checkpoint 還能自動推送到 ModelScope 或 HuggingFace 的倉庫(默認(rèn)私有)。

說白了,這就是給企業(yè)場景準(zhǔn)備的「GPU 多人共享訓(xùn)練平臺」。在 GPU 資源緊張的今天,這種設(shè)計真的太實(shí)用了。

注意:目前多租戶的并發(fā)訓(xùn)練主要針對 LoRA 優(yōu)化。當(dāng)然作為模塊化框架,Twinkle 也支持遠(yuǎn)程臨時獨(dú)占訓(xùn)練,也就是全參數(shù)訓(xùn)練模式。
支持的模型

Twinkle 目前支持的模型覆蓋面已經(jīng)相當(dāng)廣了,主流的大模型基本都有:

模型系列

代表模型

參數(shù)規(guī)模

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 后端。

而且官方也說了,隨著新模型的發(fā)布會持續(xù)添加支持。目前在 ModelScope 上提供的 Serverless 訓(xùn)練服務(wù),底座模型用的是Qwen3-30B-A3B-Instruct-2507

安裝

安裝非常簡單,一行 pip 搞定:

pip install 'twinkle-kit'

如果需要從源碼安裝:

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

環(huán)境要求:Python >= 3.11,PyTorch >= 2.0。

如果要用 Megatron 后端,還需要額外安裝 Megatron-LM(倉庫里有INSTALL_MEGATRON.sh腳本可以直接用)。

使用

來看一個用 Ray 訓(xùn)練 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

# 定義設(shè)備組和 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)
)
# 訓(xùn)練循環(huán)
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()

說實(shí)話,看完這段代碼我是挺驚喜的。整個 API 設(shè)計得非常 Pythonic:加載數(shù)據(jù)、設(shè)置模板、定義模型、配置 LoRA、訓(xùn)練循環(huán),每一步都很直觀。特別是ms://hf://的前綴設(shè)計,可以無縫切換 ModelScope 和 HuggingFace 的模型源,很優(yōu)雅。

訓(xùn)練即服務(wù)(TaaS)

Twinkle 還有一個殺手級的功能:在 ModelScope 上提供了 Serverless 訓(xùn)練服務(wù),目前處于 Beta 階段。

怎么用呢?加入 Twinkle-Explorers 組織就能免費(fèi)體驗(yàn)。用 Tinker 兼容 API 調(diào)用就行:

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
)

# 像調(diào) API 一樣訓(xùn)練模型
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?沒關(guān)系,用 ModelScope 的 Serverless 訓(xùn)練服務(wù),遠(yuǎn)程調(diào) API 就能訓(xùn)練一個 30B 的 MoE 模型的 LoRA。對于個人開發(fā)者和小團(tuán)隊(duì)來說,這簡直是福音。

模塊化生態(tài)

Twinkle 的模塊化設(shè)計做得相當(dāng)細(xì)致,一共有 20 個標(biāo)準(zhǔn)模塊:

類別

模塊

功能

數(shù)據(jù)層

Dataset / Template / DataLoader / Preprocessor / InputProcessor

數(shù)據(jù)加載、編解碼、分發(fā)、ETL、任務(wù)處理

模型層

Model / Sampler / Loss / Metric / Reward / Advantage

大模型、采樣、損失、指標(biāo)、獎勵、優(yōu)勢函數(shù)

工程層

CheckpointEngine / Patch / Module / Kernel

權(quán)重同步、模型修復(fù)、組件、算子

服務(wù)層

Server / Client / Infra / Plugin / Hub

集群啟動、客戶端、基礎(chǔ)設(shè)施抽象、插件、Hub 對接

每個模塊都是高內(nèi)聚的,可以單獨(dú)替換或擴(kuò)展。比如你想換個自定義的損失函數(shù)?實(shí)現(xiàn) Loss 接口就行。想用自己的采樣策略?實(shí)現(xiàn) Sampler 接口即可。這種設(shè)計讓框架的可擴(kuò)展性非常強(qiáng)。

社區(qū)也已經(jīng)開始貢獻(xiàn)組件了,比如 ModelScope 官方提供了一個qwen3_moe_transformers4_patch,專門修復(fù) Qwen3 MoE 模型在 FSDP2 訓(xùn)練時掛起的問題。

豐富的 Cookbook

Twinkle 提供了覆蓋多個場景的訓(xùn)練腳本:

訓(xùn)練類型

后端

FSDP 微調(diào)

Transformers

全參數(shù)微調(diào)

FSDP MoE 微調(diào)

Transformers

MoE 架構(gòu)專用

Expert Parallelism + FSDP

Transformers

專家并行 + 數(shù)據(jù)并行

Sequence Parallelism + FSDP

Transformers

序列并行,超長上下文訓(xùn)練

TP 訓(xùn)練

Megatron

張量并行

TP MoE 訓(xùn)練

Megatron

MoE + 張量并行

Tinker/Twinkle 客戶端訓(xùn)練

兩者均支持

遠(yuǎn)程 API 方式訓(xùn)練

這個覆蓋面已經(jīng)很全了。無論你是用 Transformers 還是 Megatron 后端,Dense 還是 MoE 模型,本地還是遠(yuǎn)程訓(xùn)練,基本都有現(xiàn)成的 cookbook 可以參考。

總結(jié)

Twinkle? 是我最近看到的最有想象力的大模型訓(xùn)練框架之一。

它不只是又一個訓(xùn)練工具,而是把"訓(xùn)練即服務(wù)"這個概念真正落地了??蛻舳?服務(wù)端解耦、多租戶 LoRA 并行訓(xùn)練、Serverless TaaS、多后端支持……每一個特性單拿出來都有競爭力,組合在一起就是一套完整的企業(yè)級訓(xùn)練解決方案。

優(yōu)點(diǎn):

  • 架構(gòu)設(shè)計優(yōu)雅,模塊化程度高,擴(kuò)展性強(qiáng)

  • 多租戶 LoRA 并行訓(xùn)練是真正的差異化賣點(diǎn)

  • 支持 Transformers / Megatron 雙后端

  • ModelScope TaaS 服務(wù)讓沒有 GPU 的開發(fā)者也能訓(xùn)練大模型

  • 和 ms-swift 生態(tài)互通,組件可復(fù)用

  • 代碼風(fēng)格清晰,API 設(shè)計很 Pythonic

需要注意的地方:

  • 項(xiàng)目剛開源不久(2026 年 2 月首版),生態(tài)還在建設(shè)中

  • 多租戶并發(fā)目前僅針對 LoRA 優(yōu)化

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

  • 對華為昇騰 NPU 的支持還在完善中(文檔已經(jīng)有 NPU 開箱指南了)

如果你是做大模型訓(xùn)練的企業(yè)用戶,特別是需要多人共享 GPU 集群訓(xùn)練各自模型的場景,Twinkle 值得重點(diǎn)關(guān)注。如果你是個人開發(fā)者,可以先體驗(yàn)一下 ModelScope 上的免費(fèi) Serverless 訓(xùn)練服務(wù),感受一下"API 訓(xùn)練大模型"的快感。

官方鏈接:

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

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

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

  • Serverless 訓(xùn)練服務(wù):加入 Twinkle-Explorers 組織即可體驗(yàn)

制作不易,如果這篇文章覺得對你有用,可否點(diǎn)個關(guān)注。給我個三連擊:點(diǎn)贊、轉(zhuǎn)發(fā)和在看。若可以再給我加個,謝謝你看我的文章,我們下篇再見!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

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.

相關(guān)推薦
熱點(diǎn)推薦
張掖地委專員被人打死,法醫(yī)將他的腦組織保存十年,等來昭雪

張掖地委專員被人打死,法醫(yī)將他的腦組織保存十年,等來昭雪

隴史薈王文元
2026-04-20 16:28:54
日本100多年來根本沒有變,中國人要記住村田晃大這個名字

日本100多年來根本沒有變,中國人要記住村田晃大這個名字

近史閣
2026-04-21 04:16:38
貴州網(wǎng)紅曉浪哥去世,僅34歲,愛在墓地拍視頻,早給自己選好墓地

貴州網(wǎng)紅曉浪哥去世,僅34歲,愛在墓地拍視頻,早給自己選好墓地

觀察鑒娛
2026-04-20 09:24:45
許晉亨曾單方面透露生子計劃,但遭何超瓊嚴(yán)厲駁斥和否認(rèn)!

許晉亨曾單方面透露生子計劃,但遭何超瓊嚴(yán)厲駁斥和否認(rèn)!

玖宇維
2026-04-20 20:44:16
扎心但清醒|莫言:沒人閑得整天關(guān)注你,各人都有各人的雞毛蒜皮

扎心但清醒|莫言:沒人閑得整天關(guān)注你,各人都有各人的雞毛蒜皮

杏花煙雨江南的碧園
2026-04-20 14:15:03
國際觀察|美伊談判懸念叢生,局勢走向有幾種可能?

國際觀察|美伊談判懸念叢生,局勢走向有幾種可能?

新華社
2026-04-20 22:02:14
清風(fēng)北京:彭偉鵬被查

清風(fēng)北京:彭偉鵬被查

極目新聞
2026-04-20 09:48:27
斯諾克世錦賽,中國選手晉級16強(qiáng)

斯諾克世錦賽,中國選手晉級16強(qiáng)

大漢體育解說
2026-04-21 05:03:30
別再尬演“萬人迷”!滿臉褶子疙瘩、鼻孔朝天,這皮囊能迷倒誰?

別再尬演“萬人迷”!滿臉褶子疙瘩、鼻孔朝天,這皮囊能迷倒誰?

雨月海星
2026-04-18 05:25:40
演員朱珠疑似塌房?照片流出,驚呆網(wǎng)友!

演員朱珠疑似塌房?照片流出,驚呆網(wǎng)友!

大眼妹妹
2025-12-15 10:39:19
切爾西有救了!藍(lán)軍全力挖鐵血名帥,羅塞尼爾命懸一線

切爾西有救了!藍(lán)軍全力挖鐵血名帥,羅塞尼爾命懸一線

奶蓋熊本熊
2026-04-21 05:20:47
35分不碰瓷,馬刺贏球送亞歷山大上熱門,17個罰球讓MVP成笑話!

35分不碰瓷,馬刺贏球送亞歷山大上熱門,17個罰球讓MVP成笑話!

林子說事
2026-04-20 19:17:58
“打烊”不讀dǎ yáng,也不讀dǎ xiáng,九成人在這樣錯讀!

“打烊”不讀dǎ yáng,也不讀dǎ xiáng,九成人在這樣錯讀!

未央看點(diǎn)
2026-04-21 00:05:41
鄭麗文判斷準(zhǔn)確,解放軍通牒在即,賴清德將登機(jī)離臺

鄭麗文判斷準(zhǔn)確,解放軍通牒在即,賴清德將登機(jī)離臺

風(fēng)雨與陽光
2026-04-21 03:13:01
特朗普女婿被查,61億資產(chǎn)99%來自外國,特朗普:中國會感謝我

特朗普女婿被查,61億資產(chǎn)99%來自外國,特朗普:中國會感謝我

阿傖說事
2026-04-21 03:24:22
脫掉衣服才看清:女人之間真正的差距,其實(shí)藏在這3處,不是容貌

脫掉衣服才看清:女人之間真正的差距,其實(shí)藏在這3處,不是容貌

周哥一影視
2026-03-15 14:30:11
江南造船廠這艘核動力巨輪亮相,軍迷都懂了:距離核航母還遠(yuǎn)嗎?

江南造船廠這艘核動力巨輪亮相,軍迷都懂了:距離核航母還遠(yuǎn)嗎?

林子說事
2026-04-21 00:55:45
贏得尊重,籃網(wǎng)隊(duì)與喬迪·費(fèi)爾南德斯及其整個教練組續(xù)約

贏得尊重,籃網(wǎng)隊(duì)與喬迪·費(fèi)爾南德斯及其整個教練組續(xù)約

好火子
2026-04-21 03:59:38
C919交付再遇阻礙:國產(chǎn)大飛機(jī)的夢想與現(xiàn)實(shí)有多遠(yuǎn)?

C919交付再遇阻礙:國產(chǎn)大飛機(jī)的夢想與現(xiàn)實(shí)有多遠(yuǎn)?

普陀動物世界
2026-04-21 00:52:40
“老實(shí)人”任重甘愿成為接盤俠,迎娶內(nèi)娛第一海王,網(wǎng)友:絕配

“老實(shí)人”任重甘愿成為接盤俠,迎娶內(nèi)娛第一海王,網(wǎng)友:絕配

天天熱點(diǎn)見聞
2026-04-21 05:14:09
2026-04-21 06:00:49
Ai學(xué)習(xí)的老章 incentive-icons
Ai學(xué)習(xí)的老章
Ai學(xué)習(xí)的老章
3339文章數(shù) 11138關(guān)注度
往期回顧 全部

科技要聞

HUAWEI Pura X Max發(fā)布 售價10999元起

頭條要聞

19歲女孩挪用自家1700萬當(dāng)"榜一大姐" 親爹帶女兒自首

頭條要聞

19歲女孩挪用自家1700萬當(dāng)"榜一大姐" 親爹帶女兒自首

體育要聞

阿森納已拼盡全力,但你早干嘛去了...

娛樂要聞

《八千里路云和月》田家泰暗殺

財經(jīng)要聞

利潤暴跌7成,字節(jié)到底在做什么

汽車要聞

把天門山搬進(jìn)廠?開仰望U8沖上45度坡的那刻 我腿軟了

態(tài)度原創(chuàng)

健康
家居
數(shù)碼
房產(chǎn)
教育

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

家居要聞

自然慢調(diào) 慢享時光

數(shù)碼要聞

REDMI 顯示器 G Pro 27U 2026輕體驗(yàn):電競利器 桌面上的“小鋼炮”

房產(chǎn)要聞

大規(guī)模商改住!??谖骱0叮@波項(xiàng)目要贏麻了!

教育要聞

“真大方,還拍給外人看”,女兒蹭枕頭,家長放網(wǎng)上,網(wǎng)友卻毛了

無障礙瀏覽 進(jìn)入關(guān)懷版