الشبكات العصبية العميقة للأنظمة التوصيوية هي وحوش من حيث التعقيد الحسابي. فكلما زادت دقة النموذج، ازداد تشابك بيئته الداخلية: تتشابك آلاف العمليات في غرافات ذات طوبولوجيا عجيبة. كل منعطف إضافي، وكل تقسيم أو دمج مكرر للموترات (tensors)، يشبه مساراً غير ممهد يبطئ المسافر. على مستوى العتاد، يتحول هذا إلى سيل من إطلاقات النوى الصغيرة (kernel launches) على وحدة معالجة الرسوميات (GPU)، تستهلك الوقت والذاكرة. يحاول المهندسون فرض النظام يدوياً، لكن النماذج تتغير أسبوعياً، وتزداد البنى تعقيداً. فظهرت الحاجة إلى "مقوّم" تلقائي لمسارات الغراف، قادر على إيجاد وتنظيف المقاطع غير الفعالة من الكود دون تدخل بشري.
يكمن جوهر Optimus في مجموعة تضم أكثر من ثلاثين قالباً للتحسين، يصف كل منها نمطاً "مهملاً" نموذجياً في الغراف: مثلاً، سلسلة غير مجدية من "تقسيم موتر إلى قطع ثم إعادة دمجها فوراً". يتم البحث عن هذه الأنماط بواسطة خوارزمية جشعة، تبدأ من "مراسي" – عمليات رئيسية مثل التقسيم (split) أو عمليات شائعة في البنى التوصيوية. تجتاز الخوارزمية الجيران الأقرب ابتداءً من المرساة، مقارنة إياهم بالقالب المرجعي، وعند التطابق تطلق عملية الاستبدال: يُدرج مكافئ مدمج بدل البنية الضخمة. يُفرّق بين نوعين من التصليح: أفقي، حيث تدمج عدة عمليات مستقلة متطابقة (مثل دزينة من الطبقات الخطية) في عملية واحدة؛ وعمودي، يُستأصل فيه المسارات الفائضة، مثل دورة التقسيم-ثم-الدمج سيئة السمعة (split-then-cat). لقد أُدرجت العملية كلها في مترجم PyTorch 2.x وتعمل على أي تمثيل وسيط له (Torch-IR, Aten-IR)، مما يجعلها شاملة لمختلف النماذج.
على خمسة نماذج توصيوية إنتاجية من Meta متنوعة البنى (شبيهة بـ DHEN، Wukong، Interformer وغيرها)، زاد Optimus من الإنتاجية بشكل ثابت – حتى 63% المزيد من أمثلة التدريب في الثانية. ويعود الفضل الأكبر إلى التحسينات العمودية: فقد أدى القضاء على حلقات split-cat الطفيلية إلى إزالة المئات من نوى Triton الزائدة. بينما اعتمدت المكاسب الأفقية على عدد العمليات المتطابقة – فكلما زادت، زاد الربح. انخفض استهلاك الذاكرة الأقصى في النماذج الكبيرة مع تكميم التنشيطات بنسبة 2-6%، وانهار زمن الترجمة الباردة: في أحد الاختبارات، من أكثر من 4000 ثانية إلى حوالي 3600، أي توفير فاق 400 ثانية. في مثال توضيحي مفتوح من TorchBench، انخفض عدد النوى (kernels) في التدريب من 12,772 إلى 24، وفي الاستدلال (inference) من 6,320 إلى 6، مما أعطى تسريعاً بمقدار 11 مرة في التدريب و364 مرة في الاستدلال. أظهرت المقارنة مع أنظمة مماثلة (TASO, TENSAT) أنها لم تستطع تحسين الغراف لهذا النموذج إطلاقاً، بينما نجح Optimus بفضل نظام القواعد المرن.
إن Optimus ليس مجرد أداة لمرة واحدة، بل إطار نمطي مدمج في كود PyTorch المفتوح. يستطيع أي باحث أو مهندس إضافة قالب تحسين جديد، بتسجيله عبر واجهة موحدة، وتطبيقه فوراً على غرافه الشبكي. يحول هذا الأسلوب العبث اليدوي الممل سابقاً إلى عملية تنظيف منهجية على مستوى المترجم. ويعني هذا بالنسبة للصناعة أن وحدات معالجة الرسوميات (GPU) الباهظة ستُستخدم بفعالية أكبر دون إعادة كتابة النماذج، مع تقليل البصمة الكربونية الناتجة عن تدريب أنظمة التوصية العملاقة.
تعمل القواعد الرئيسية حالياً على Torch-IR و Aten-IR، لكن المؤلفين يخططون لتمديد الطريقة إلى Inductor-IR، وهو تمثيل منخفض المستوى يمكن فيه استخراج المزيد من الأداء. هناك اتجاه آخر يتمثل في الاختيار التلقائي لترتيب القوالب ومجموعتها لكل نموذج: حالياً، يجري انتقاء تسلسل التحسينات يدوياً، ويُؤمل إيكال هذه المهمة إلى خوارزمية تحلل بنية الغراف.
ستعمل هذه التقنية على تسريع تدريب ونشر أنظمة التوصية – الحلقة الأساسية في منصات الإنترنت المعاصرة – مباشرةً. ويمكن تكييفها كذلك لأي شبكات عصبية عميقة أخرى، لاسيما تلك ذات الغرافات الحسابية المتفرعة: مثل معالجة اللغات الطبيعية (NLP)، والرؤية الحاسوبية (computer vision)، والشبكات العصبية البيانية (graph neural networks).
نقل التطويرات إلى مستوى Inductor-IR، وإدراج مخطّط تلقائي لتسلسل القوالب. إلى جانب توسعة مكتبة القوالب لتشمل زخارف معمارية جديدة.
تكمن مشكلة التنفيذ الفعال للشبكات العصبية على العتاد الحديث في الفجوة بين تعقيد البنى ومحدودية عرض نطاق ذاكرة GPU. يشكل Optimus خطوة نحو سد هذه الفجوة تلقائياً على مستوى المترجم، دون مطالبة المطور بتعديل الكود. وهذا يندرج ضمن سياق أوسع للبحث عن طرق قابلة للتوسع في التحسين العددي للحسابات.
هذا القسم موجَّه إلى مؤلف العمل وزملائه. الأعمال المجاورة عثر عليها بحثٌ دلالي في أرشيفنا، لا بتطابق الكلمات. نحن لا نقيّم العمل: نعرض الحقل من حوله.
ماذا يفعل هذا العمل
تقدم الورقة إطار عمل Optimus — وهو هيكل معياري للتحسين التلقائي لرسوم الحوسبة في PyTorch 2.x، موجه لنماذج التوصية. يستخدم مجموعة تضم أكثر من ثلاثين قالبًا للبحث عن الأنماط غير الفعالة واستبدالها (مثل split-then-cat) باستخدام خوارزمية جشعة تعتمد على المراسي. على خمسة نماذج صناعية من Meta، تم تحقيق تسريع في التدريب يصل إلى 63%، وانخفاض في ذروة استهلاك الذاكرة بنسبة 2–6%، وتقليص كبير في وقت الترجمة (من أكثر من 4000 ثانية إلى حوالي 3600 ثانية في اختبار واحد).
أين تكمن قوته
تكمن قوة العمل في التكامل العملي مع مترجم PyTorch ونظام القواعد المرن الذي يسمح تلقائيًا باكتشاف وإزالة الأنماط غير الفعالة في الرسوم الصناعية الحقيقية، حيث تفشل الأدوات المماثلة (TASO، TENSAT) في التعامل معها.
إلى أين يمكن المضي
يستحق التجربة
أعمال قريبة في أرشيفنا
أقرب عمل في الأرشيف يقع عند 0.62 من حيث المعنى — وهو المستوى المعتاد في مجموعتنا.
كما كتبه المؤلفون، بالإنجليزية arXiv:2607.02945
In large-scale industrial applications, deep learning models that power recommendation and ranking have complex and diverse model architectures. These models are continuously developed and refined by large teams of machine learning engineers, rendering manual optimization infeasible. Consequently, graph-based optimization techniques have become an industry standard for boosting performance, with PyTorch FX transformations leading the charge. These transformations typically rely on a set of human-engineered module-level rewrite rules which are not scalable to diverse model architectures. To address this limitation, we introduce Optimus, a general-purpose model transformation framework built in the PyTorch 2.x (PT2) machine learning compiler. With a concise set of predefined patterns, Optimus applies an efficient greedy search algorithm for pattern matching and replacement, while preserving model semantic. It is designed and implemented as a highly customizable and extensible framework integrated into the PT2 stack. Our evaluation shows that the framework can achieve up to 63% speedup, 6% peak memory reduction, and over 400 second compile time decrease for our industry-scale recommendation models compared to baselines. Optimus is open-sourced together with PyTorch 2.x as a customizable model transformation layer.
خفض زمن الترجمة بمقدار 400 ثانية يشبه أن تباشر عملك مباشرة بدلاً من تحضير القهوة، وتفقد البريد الإلكتروني، وانتظار فتح بيئة التطوير. أما انخفاض عدد إطلاقات النوى في الاستدلال للنموذج التوضيحي من 6320 إلى 6، فيمكن تشبيهه باستبدال جموع من السعاة بشاحنة واحدة.