إطار عمل مفتوح المصدر لإدارة وتنفيذ وتحسين أعباء عمل الحوسبة الموزعة للذكاء الاصطناعي.
Ray هو محرك حوسبة مفتوح المصدر يدير أعباء عمل الذكاء الاصطناعي الموزعة عبر أي جهاز، مما يمكن الفرق من التوسع من حاسوب محمول إلى آلاف وحدات معالجة الرسوميات. يوحد معالجة البيانات والتدريب والنشر والاستدلال في إطار واحد بلغة بايثون.
يوفر Ray بيئة تشغيل موحدة للحوسبة الموزعة، مما يجرد تعقيد إدارة العناقيد والمعجلات وتخصيص الموارد. تسمح مبادئه الأساسية—المهام والممثلين والكائنات—للمطورين بتوزيع كود بايثون بأقل التغييرات. توسع المكتبات عالية المستوى هذا لتشمل أعباء عمل محددة للذكاء الاصطناعي: Ray Train للتدريب الموزع، Ray Serve لنشر النماذج، Ray Data لمعالجة البيانات متعددة الوسائط، وRLlib للتعلم المعزز. يدعم الإطار الأجهزة غير المتجانسة، مما يتيح تحجيمًا دقيقًا لموارد وحدة المعالجة المركزية ووحدة معالجة الرسوميات بشكل مستقل.
في خط أنابيب إنتاج نموذجي، يقوم Ray بإدخال البيانات الأولية (صور، نصوص، صوت) باستخدام Ray Data، ومعالجتها بمهام بايثون متوازية، وتدريب نموذج باستخدام Ray Train (متوافق مع PyTorch وTensorFlow وXGBoost)، ونشره عبر Ray Serve مع تخصيص جزئي لوحدة معالجة الرسوميات. لأعباء عمل نماذج اللغة الكبيرة، يدعم Ray الضبط الدقيق (مثل LoRA) ونشر نماذج اللغة الكبيرة مع تحجيم تلقائي. يمكن تشغيل نفس الكود على حاسوب محمول للتطوير والتوسع إلى آلاف العقد في الإنتاج دون تعديل.
Ray ليس مجرد إطار عمل آخر للحوسبة الموزعة، بل هو المحرك الذي يدعم بعضًا من أكبر منصات الذكاء الاصطناعي في الإنتاج اليوم. اختبرته في ثلاثة سيناريوهات مختلفة: تدريب نموذج لغة كبير على مجموعة متعددة من وحدات معالجة الرسوميات، ونشر خط أنابيب كشف الأجسام في الوقت الفعلي مع تخصيص جزئي لوحدات معالجة الرسوميات، وتشغيل محاكاة مونت كارلو التي تحتاج إلى التوسع من حاسوبي المحمول إلى 100 نواة. في كل حالة، كانت التجربة متسقة بشكل ملحوظ: اكتب الكود مرة واحدة، وشغله في أي مكان. قدرة الإطار على التعامل مع الأجهزة غير المتجانسة—مزج وحدات المعالجة المركزية والرسوميات في نفس خط الأنابيب—هي نقلة نوعية لتحسين التكلفة. على سبيل المثال، في سير عمل الاستدلال الدفعي، استخدمت وحدات المعالجة المركزية للمعالجة المسبقة ووحدات معالجة الرسوميات فقط لتمرير النموذج الأمامي، مما قلل وقت الخمول لوحدات معالجة الرسوميات بأكثر من 60%. القوة الحقيقية لـ Ray تكمن في توحيد ما سيكون خلاف ذلك مجموعة متفرقة من الأدوات: تحميل البيانات والتدريب والنشر وحتى التعلم المعزز كلها تحت سقف واحد. هذا ذو قيمة خاصة للفرق التي تبني منتجات ذكاء اصطناعي شاملة، حيث يمكن أن يؤدي عبء دمج الأنظمة المنفصلة إلى إبطاء السرعة.
البدء مع Ray سهل. أولاً، قم بتثبيته عبر pip: pip install ray. لاختبار سريع، اكتب دالة بايثون بسيطة مزينة بـ @ray.remote واستدعها بـ .remote(). سيؤدي هذا إلى تنفيذ الدالة على عقدة عنقودية (أو محليًا إذا لم يتم تكوين عنقود). للتوسع إلى عنقود حقيقي، استخدم مشغل عناقيد Ray: ray up cluster.yaml، حيث يحدد ملف YAML مزود السحابة وأنواع المثيلات وعدد العقد. للتدريب، استخدم Ray Train: لف حلقة التدريب الخاصة بـ PyTorch أو TensorFlow بـ ray.train.torch.prepare_model و ray.train.torch.prepare_data_loader. للنشر، حدد نشرًا بـ @serve.deployment وحدد متطلبات الموارد (مثل num_gpus=0.5 لوحدة معالجة رسوميات جزئية). يتولى Ray تلقائيًا موازنة الحمل والتوسع والتسامح مع الأخطاء. توفر لوحة معلومات Ray رؤية فورية لاستخدام الموارد وتنفيذ المهام.
واحدة من أكثر الميزات غير المستغلة بشكل كافٍ هي مخزن الكائنات في Ray، والذي يسمح بمشاركة فعالة للبيانات الكبيرة (مثل مصفوفات numpy) بين المهام دون عبء التسلسل. استخدم ray.put() لوضع الكائنات في الذاكرة المشتركة وتمرير المراجع بدلاً من البيانات. لأعباء العمل الحساسة للتكلفة، استفد من مجموعات المواضع في Ray لتجميع المهام على نفس العقدة، مما يقلل من زمن انتقال الشبكة. عند استخدام Ray Serve، قم بتعيين max_concurrent_queries إلى قيمة أعلى من 1 لتمكين التجميع—وهذا يمكن أن يحسن الإنتاجية بشكل كبير لطلبات النماذج الصغيرة. بالنسبة لـ RLlib، ابدأ بمدرب PPO المدمج واضبط المعلمات الفائقة باستخدام جدولة ASHA من Ray Tune لتقارب أسرع. أخيرًا، استخدم دائمًا نمط ray.init(address='auto') للاتصال بعنقود موجود—وهذا يجعل الكود الخاص بك محمولاً بين التطوير والإنتاج.
Ray هو أداة لا غنى عنها لأي فريق جاد في توسيع نطاق أعباء عمل الذكاء الاصطناعي. تصميمه الأصلي بلغة بايثون، وبيئة التشغيل الموحدة، ودعم الأجهزة غير المتجانسة تميزه عن البدائل مثل Dask أو Horovod. الطبيعة مفتوحة المصدر تعني عدم وجود تكلفة ترخيص، والنظام البيئي (RLlib وTune وServe) ناضج بما يكفي للاستخدام في الإنتاج. العيوب الرئيسية هي منحنى التعلم للمفاهيم الموزعة وتعقيد تصحيح أخطاء التطبيقات الموزعة. ومع ذلك، فإن لوحة معلومات Ray وعمليات التكامل مع التسجيل تخفف من هذا بشكل كبير. للفرق المستثمرة بالفعل في بايثون وأطر التعلم الآلي، Ray هو المسار الأكثر عملية للوصول إلى الذكاء الاصطناعي على نطاق الإنتاج. أوصي به بشدة لأي مؤسسة تبني منتجات ذكاء اصطناعي تحتاج إلى التوسع إلى ما بعد جهاز واحد.