Miles: فریمورکِ متنبازِ PyTorch برای RL مقیاسبزرگِ مدلهای زبانی
خلاصهٔ کاملتر
RadixArk یه فریمورکِ متنباز به اسمِ Miles منتشر کرده که واسه post-training مدلهای زبانیِ بزرگ با یادگیریِ تقویتی (RL) در مقیاسِ بزرگ ساخته شده. Miles چهار سیستمِ اصلی رو کنارِ هم میذاره: SGLang واسه تولیدِ نمونه (rollout)، Megatron-LM انویدیا واسه آموزش، Ray واسه هماهنگیِ توزیعشده و PyTorch بهعنوانِ لایهٔ مشترکِ برنامهنویسی و عددی.
به گفتهٔ نویسنده، حالا که مدلها بزرگتر میشن و از حالتِ dense به mixture-of-experts میرن و رو سختافزارِ توزیعشدهتری اجرا میشن، RL post-training دیگه فقط یه حلقهٔ آموزش نیست، بلکه یه مسئلهٔ سیستمهای توزیعشدهست. باید rollout worker ها با سرعت نمونه بسازن، trainer ها پایدار بهروزرسانی کنن، و سیاستِ rollout و training هماهنگ بمونن.
فلسفهٔ Miles «هستهٔ کوچیک، لبههای زیاد»ه. حلقهٔ اصلیِ آموزش عمداً جمعوجوره و اون تیکههایی که کاربرها بیشتر میخوان عوض کنن — منطقِ rollout، محاسبهٔ reward، تابعِ loss، فیلترِ نمونه و متریکها — موقعِ اجرا از طریقِ ماژولهای پایتونیِ خودِ کاربر وصل میشن. اینجوری تیمها میتونن سیستم رو با الگوریتمهای جدید وفق بدن بدونِ اینکه fork بزنن.
Miles مستقیم روی runtimeِ توزیعشدهٔ Ray ساخته شده و هر پردازشِ طولانیعمر — رنکهای trainer، سرورهای rollout و worker ها — یه actor از Ray هست. برای انتقالِ حجیمِ وزنها، Ray فقط مسیرِ کنترل رو مدیریت میکنه و خودِ بایتهای tensor رو کانالهای اختصاصیِ NCCL/RDMA جابهجا میکنن تا سرعت بالا بمونه. یه حالتِ کاملاً ناهمگام هم داره که توش rollout و training دیگه منتظرِ هم نمیمونن.
Miles از Megatron-LM بهعنوانِ backendِ آموزش استفاده میکنه و بهجای اینکه مثلِ یه کتابخانهٔ جعبهسیاه بپیچوندش، مستقیم به argument parser و pipelineِ ساختِ مدلش وصل میشه. معماریهای جدید رو هم از طریقِ model spec ها پشتیبانی میکنه — فایلهای کوچیکی که کامپوننتهای سفارشیِ PyTorch رو تو pipelineِ مدل تزریق میکنن، بدونِ نگهداشتنِ یه forkِ طولانیعمر که همش از upstream دور میشه. اینجوری مدلهایی مثلِ DeepSeek-V3/V4، GLM و Qwen3 MoE پشتیبانی میشن.
چون PyTorch لایهٔ مشترکه، کامپوننتهای مدل همون torch.nn.Module معمولیان و mixed precision و gradient checkpointing و profiling همه تو همون workflowِ آشنای PyTorch میمونن. Miles یه pipelineِ کمدقتِ یکپارچه با BF16، FP8، MXFP8 و INT4-QAT داره که هم آموزش و هم rollout رو پوشش میده، بهعلاوهٔ هماهنگیِ مسیریابیِ MoE، تحملِ خطا و پشتیبانی از GPU های Hopper و Blackwell. نویسنده میگه دلیلِ متنباز کردنش اینه که RL مقیاسبزرگ رو راحتتر بشه بازتولید و اجرا کرد.
نکات کلیدی:
- Miles چهار سیستمِ SGLang، Megatron-LM، Ray و PyTorch رو پشتِ یه trainer کوچیک و قابلگسترش کنار هم میذاره
- فلسفهش «هستهٔ کوچیک، لبههای زیاد»ه: منطقِ RL از طریقِ ماژولهای پایتونی وصل میشه، نه fork
- انتقالِ سریعِ وزنها روی کانالهای NCCL/RDMA و یه حالتِ کاملاً ناهمگام داره
- model spec ها معماریهای جدید مثلِ DeepSeek، GLM و Qwen3 رو بدونِ fork پشتیبانی میکنن
- pipelineِ کمدقتِ یکپارچه با BF16/FP8/MXFP8/INT4-QAT و پشتیبانی از GPU های Hopper و Blackwell




