فتحت جوجل المصدر لـ TorchTPU، وهي واجهة خلفية أصلية لـ PyTorch لمسرّعات Cloud TPU. وقد تم تطويرها بالتعاون مع فريق PyTorch في ميتا والإعلان عنها في مؤتمر PyTorch Conference 2026 في 20 أكتوبر 2026. تستهدف شفرة PyTorch الحالية المسرّع TPU عبر واجهة torch.device("tpu"). وتأخذ المسرّعات TPUs الآن مكانها بجانب وحدات معالجة الرسومات GPUs والمعالجات CPUs كجهاز أصلي في PyTorch. وذكر فريق جوجل أن TorchTPU تحل محل PyTorch/XLA ويوصي بها لجميع أعباء العمل الجديدة.
الخلاصة السريعة
- الحجم: مجموعة برمجيات، وليست نموذجًا. 4 مستودعات مفتوحة: TorchTPU وvLLM-TorchTPU وSGLang-TorchTPU وTorchTitan. وTorchTPU متاحة بإصدار v0.2.0 على PyPI، وتتطلب Python 3.11+، برخصة Apache 2.0.
- تعمل على: مسرّعات Google Cloud TPUs. وقد اختُبرت على أجيال بدءًا من v5eحتى 8,192 شريحة Ironwood (TPU7x). ويدعم التقديم نقاط تفتيش FP8 وMXFP4 وNVFP4.
- الأداء: الوضع المتحمس (eager) للتصحيح،
torch.compileللإنتاجية بمستوى الإنتاج. - الأفضل: 52% MFU في تدريب Qwen 3 8B باستخدام TorchTitan على Ironwood (وفق تقرير ذاتي).
- الأسوأ: استغرق الوضع المتحمس (eager) الجاهز 11.49 ثانية لكل خطوة في حالة ضبط دقيق، مقابل 2.78 ثانية بعد الضبط الكامل.
ما هي TorchTPU؟
TorchTPU هي واجهة خلفية مفتوحة المصدر لـ PyTorch من جوجل وميتا تشغّل نماذج PyTorch بشكل أصلي على المسرّعات TPUs. تتكامل من خلال واجهة PrivateUse1في PyTorch. فالمصفوفات (Tensors) هي مصفوفات PyTorch عادية، دون فئات فرعية أو مغلفات. وتشغّل عملية واحدة لكل جهاز وتحافظ على مشاهدات المصفوفات والتعديلات الموضعية.
أما السليفة، PyTorch/XLA، فكانت تسجّل رسوم المصفوفات الكسولة (lazy-tensor). وغالبًا ما كان المطورون يضيفون شفرة لتحديد المناطق القابلة للترجمة. كما أن PyTorch/XLA يدعم فقط كود SPMD النقي. كما يتولى TorchTPU معالجة التنفيذ المتشعب MPMD.
كيف ينفّذ TorchTPU كود PyTorch؟
يأتي TorchTPU مع 3 أوضاع eager:
- Strict (الافتراضي): يوجّه كل معامل (operator) بشكل غير متزامن مع دلالات PyTorch القياسية.
- Debug: يعمل بشكل متزامن مع فحص حدود الموترات.
- DeferAndFuse: يدمج سلاسل المعاملات السريعة (eager operators) لتقليل حركة المرور على HBM. وتقول ورقة TorchTPU إنه يمكن أن يكون أسرع بنسبة 50% أو أكثر من Strict.
للحصول على السرعة القصوى، torch.compile(backend="tpu") يلتقط الرسم البياني باستخدام TorchDynamo. ثم يخفضه عبر StableHLO إلى OpenXLA، الذي يُصدر كود آلات TPU. وتُخزَّن الملفات التنفيذية المترجمة في ذاكرة مؤقتة عبر العمليات والمضيفين وإعادة تشغيل المهام.
تكون نوى Pallas المخصصة قابلة للاستدعاء كدوال PyTorch قياسية. كما تعمل نوى Tokamax الجاهزة ونوى Helion الشطرية (tile) أيضًا.
يستخدم التوزيع tpu_dist مجموعة العمليات (process group). ويدعم DDP وFSDP2 وDTensor، إلى جانب شبكة (mesh) واعية بالطوبولوجيا لشبكات التوصيل البيني لـ TPU.
ما مدى سرعة TorchTPU؟
جميع الأرقام أدناه مُبلَّغ عنها ذاتيًا من قِبل Google وشركائها.
- نطاق التدريب: وصل TorchTitan إلى 52% MFU على Qwen 3 8B. وتقرر Google توسعًا شبه خطي حتى 8,192 من وحدات Ironwood TPU.
- سلّم الضبط: في حالة ضبط دقيق (fine-tuning) باستخدام TorchTitan، انخفض زمن الخطوة من 11.49 ثانية إلى 2.78 ثانية. حقّق DeferAndFuse وحده 1.15x. بينما حقّق
torch.compile3.80x. - تغطية النماذج: تختبر Google بشكل مستمر حوالي 5,000 نموذج من Hugging Face في الوضعين eager والمُجمَّع (compiled).
- خدمة الأسطول: نمى Zenteiq الإنتاج اليومي من 1.47B إلى 5.97B رمز (token) لكل 1,000 شريحة TPU v6e. وجاءت هذه المكسب من توجيه llm-d على GKE، وليس من TorchTPU وحده.
ما التكاملات المتوفرة مع TorchTPU؟
- Hugging Face: الإصدار Transformers v5 ينشر على TPU بواسطة
device_map="tpu". أما Diffusers فيدعم الوضع eager،torch.compileوالتوازي المُوتَّنِي (tensor parallelism). - vLLM-TorchTPU: مبني باستخدام Inferact. يحافظ على مجدّيات المصدر المفتوح وخوادم API الأصلية، مع نوَى Pallas مخصصة.
- SGLang-TorchTPU: مبني باستخدام RadixArk، ويحافظ على إعادة استخدام البادئات في RadixAttention.
- ميزات الخدمة: ذاكرة تخزين KV بصيغة FP8، ونماذج معتمة بصيغ FP8 وMXFP4 وNVFP4. يشمل فك التشفير التخميني كلًّا من MTP وEAGLE-3.
- TorchTitan: وصفات تدريبية لـ Llama 3 70B/405B، وQwen 3 8B/32B، وQwen 3 235B MoE، وFLUX.1 12B.
- أيضًا: llm-d 1.0، وRay، وTorchRec، VeRL (معاينة) و LiteRT-Torch للتصدير على الأجهزة.
كيف يقارن TorchTPU مع PyTorch/XLA وTorchNeuron وJAX؟
| الميزة | TorchTPU (المستودع) | PyTorch/XLA (المستودع) | TorchNeuron (وثائق AWS) | JAX على TPU (وثائق Google) |
|---|---|---|---|---|
| المزوّد | Google + Meta | Google / PyTorch | AWS | |
| العتاد | Cloud TPU (تم اختبار v5e وما بعده) | Cloud TPU | Trainium 2، Trainium 3 | Cloud TPU |
| جهاز PyTorch | tpu | xla | neuron | ليس PyTorch |
| آلية الواجهة الخلفية (Backend) | PrivateUse1 | تسجيل الرسم البياني للموترات البطيئة (Lazy-tensor) | PrivateUse1 | غير قابل للتطبيق |
| التنفيذ الافتراضي | Eager (Strict, Debug, DeferAndFuse) | Lazy tensors | Eager plus torch.compile | غير معلن |
| مسار الترجمة (Compile path) | TorchDynamo إلى StableHLO إلى XLA | XLA | Neuron Compiler | XLA |
| واجهات التوزيع (Distributed APIs) | DDP وFSDP2 وDTensor وSPMD وMPMD | SPMD خالص فقط | FSDP وDTensor وDDP وTP | غير معلن |
| النوى المخصصة (Custom kernels) | Pallas وTokamax وHelion | غير معلن | NKI | Pallas |
| الخدمة عبر vLLM / SGLang | vLLM-TorchTPU وSGLang-TorchTPU | غير معلن | vLLM Neuron | vLLM-JAX وSGLang-JAX |
| الحالة | مفتوح المصدر، v0.2.0 | يُستبدل بـ TorchTPU | نسخة تجريبية عامة (Neuron 2.33) | قيد الصيانة |
| الترخيص | Apache 2.0 | غير معلن | غير معلن | غير مُفصح عنها |
كيف تُثبّت TorchTPU؟
قم بتثبيت الحزمة على جهاز TPU VM، ثم اختر tpu الجهاز:
# pip install torch_tpu
import torch
device = torch.device("tpu")
x = torch.randn((4, 4), device=device)
الـ ملف README الخاص بالمستودع دبابيس torch_tpu==0.2.0 مع فهرس حزمة PyTorch الخاصة بوحدة المعالجة المركزية. بدونه، يسحب pip نسخة CUDA من torch'. الأدلة الكاملة موجودة على torchtpu.readthedocs.io.
أبرز النقاط الرئيسية
- TorchTPU مفتوح المصدر بموجب ترخيص Apache 2.0، وتم بناؤه بالتعاون مع Meta.
- يستبدل PyTorch/XLA بتنفيذ قائم على أساس PrivateUse1 يتبع نهج التنفيذ الفوري (eager-first).
torch.compile(backend="tpu")يتم تخفيضه عبر StableHLO و XLA.- حقّق TorchTitan كفاءة استخدام نموذج (MFU) بنسبة 52% على Qwen 3 8B، مع التوسع إلى 8,192 شريحة Ironwood.
- يعمل vLLM وSGLang وHugging Face الآن على TPU من خلال PyTorch القياسي.
اطّلع على مستودع GitHub, ورقة, الوثائق و إعلان Google Cloud. كل الفضل يعود إلى الباحث في هذا المشروع. كما يمكنك بكل حرية متابعتنا على تويتر ولا تنسَ الانضمام إلى سبريدت ML الذي يضم أكثر من 150k عضو واشترك في نشرةنا البريديةانتظر! هل أنت على تليجرام؟ الآن يمكنك أيضًا الانضمام إلينا على تلغرام.
المنشور جوجل تفتح مصدر TorchTPU، وهي واجهة خلفية أصلية لـ PyTorch لمعالجات Cloud TPU ظهر لأول مرة على MarkTechPost.