Energy Consumption of Dataframe Libraries for End-to-End Deep Learning Pipelines:A Comparative Analysis
تقدم هذه الورقة تحليلاً مقارناً شاملاً لمكتبات Pandas وPolars وDask ضمن مسارات التعلم العميق المتكاملة، حيث تقيم زمن التشغيل، واستهلاك الذاكرة، واستخدام القرص، واستهلاك الطاقة خلال مراحل معالجة البيانات الحرجة كثيفة الاستهلاك لوحدة معالجة الرسومات (GPU).
تخيل أنك تدير مطعماً فاخراً (نموذج تعلم عميق). لطهي وجبة، تحتاج إلى الحصول على المكونات من المخزن، ثم غسلها وتقطيعها (المعالجة المسبقة)، ثم تسليمها إلى الطاهي (وحدة معالجة الرسومات - GPU) ليقوم بالطهي.
في عالم علوم البيانات، "المخزن" هو القرص الصلب الخاص بك، و"التقطيع" يتم بواسطة مكتبات إطارات البيانات (Dataframe Libraries)، و"الطاهي" هو بطاقة الرسومات في جهاز الكمبيوتر الخاص بك (GPU). هناك ثلاثة "مساعدين للطاهي" (مكتبات) يمكنك استئجارهم للقيام بعملية التقطيع، وهم: Pandas و Polars و Dask.
هذه الورقة البحثية هي بمثابة "اختبار تذوق". أراد الباحثون معرفة أي مساعد هو الأكثر كفاءة في تجهيز المكونات للطاهي، وتحديداً من حيث كمية الكهرباء (الطاقة) والمساحة (الذاكرة) التي يستهلكها كل واحد منهم أثناء العمل.
إليك تفاصيل نتائجهم، باستخدام تشبيهات بسيطة:
المساعدون الثلاثة
Pandas (المخضرم): هذا هو المساعد الأكثر شهرة. الجميع يعرف كيفية استخدامه، وهو رائع للمطابخ الصغيرة والمتوسطة. إنه موثوق، ولكن إذا حاولت إعطاءه كمية هائلة من المكونات دفعة واحدة، فقد يصاب بالإرهاق ويصبح بطيئاً.
Polars (السريع): هذا هو الوافد الجديد. يستخدم تقنية حديثة فائقة السرعة (تسمى Apache Arrow) ويعمل بعدة أيدٍ في وقت واحد (المعالجة المتوازية). لقد صُمم ليكون سريعاً للغاية وموفراً للطاقة، خاصة عندما يصبح المطبخ مزدحماً.
Dask (المنسق): هذا المساعد مصمم للمطابخ الضخمة التي تفوق قدرة شخص واحد على التعامل معها. يقوم بتقسيم العمل إلى قطع صغيرة وتوزيعها على عمال مختلفين. ومع ذلك، فإن إدارة كل هؤلاء العمال تتطلب طاقة ووقتًا إضافيين، مما قد يؤدي إلى الهدر إذا لم يكن العمل ضخماً بالفعل.
التجارب: ثلاثة أنواع من المطابخ
اختبر الباحثون هؤلاء المساعدين في ثلاثة سيناريوهات، تتراوح من مطبخ منزلي صغير إلى مصنع صناعي ضخم.
1. المطبخ الصغير (مجموعة بيانات التأمين)
المهمة: قائمة صغيرة تضم 1,000 سجل تأمين.
النتيجة: بالنسبة للمهام البسيطة، كان Pandas و Polars متطابقين تقريباً في السرعة. ومع ذلك، كان Dask هو الأبطأ. لماذا؟ لأن Dask قضى وقتاً طويلاً في تنظيم فريقه الصغير من العمال لمهمة لا تتطلب سوى شخص واحد.
الطاقة: استخدم Polars كهرباء أقل قليلاً من Pandas، لكن الفرق لم يكن كبيراً لأن المهمة كانت صغيرة جداً.
2. المطبخ المتوسط (مجموعة بيانات MovieLens)
المهمة: مليون تقييم للأفلام. هذه قائمة كبيرة، لكنها لا تزال تتسع على طاولة التحضير الرئيسية (RAM).
النتيجة: اكتسح Polars المنافسة. كان أسرع بكثير من كل من Pandas و Dask.
التشبيه: تخيل أن Polars عبارة عن حزام ناقل ينقل المكونات فورياً، بينما Pandas هو شخص يحمل سلة، و Dask هو مدير يصرخ بالتعليمات لفريق عمل. لهذا الحجم من المهام، يفوز الحزام الناقل (Polars) بسهولة.
الطاقة: استخدم Polars أقل كمية من الكهرباء. أما Dask فقد استهلك الأكثر لأن "المدير" لديه كان يعمل لوقت إضافي لمجرد تنسيق البيانات.
3. المصنع الصناعي (صور COCO)
المهمة: آلاف الصور المعقدة لتدريب الذكاء الاصطناي على التعرف على الأشياء (مثل العثور على القطط في الصور). هذا حمل ثقيل يعتمد بشكل كبير على "الطاهي" (GPU).
النتيجة: عندما يكون "الطهي" (عمل الـ GPU) هو الجزء الأصعب، فلا يهم كثيراً أي مساعد تستخدم؛ فجميعهم ينهون المهمة في نفس الوقت تقريباً. الـ GPU هو عنق الزجاجة هنا، وليس عملية التقطيع.
الذاكرة: استخدم Dask أكبر قدر من الذاكرة (مساحة الطاولة) لأنه يتتبع جميع قطع العمل الصغيرة الخاصة به. كان Pandas و Polars أكثر إحكاماً وتوفيراً للمساحة.
الطاقة: لا يزال Polars قادراً على توفير القليل من الكهرباء في جانب المعالج (CPU)، ولكن بما أن الـ GPU كان يقوم بـ 99% من العمل الشاق، فإن إجمالي فرق الطاقة بين الثلاثة كان ضئيلاً جداً.
النتائج الرئيسية
للمهام الصغيرة: استمر مع Pandas. فهو مألوف وسريع بما يكفي. Polars أيضاً رائع وقد يوفر القليل من الطاقة. تجنب Dask؛ فهو يمثل عبئاً تنظيمياً كبيراً للمهام الصغيرة.
للمهام المتوسطة إلى الكبيرة:Polars هو الفائز الواضح. فهو أسرع ويستخدم كهرباء أقل لأنه مصمم للتعامل مع البيانات بكفاءة دون إضاعة الطاقة في التنسيق.
للمهام الضخمة (التي تتجاوز سعة الذاكرة): إذا كانت بياناتك ضخمة جداً بحيث لا يمكن أن تتسع في ذاكرة جهازك، فإن Dask هو الخيار الوحيد لأنه يمكنه توزيع العمل عبر أجهزة كمبيوتر متعددة. ومع ذلك، كن على دراية بأن هذا يأتي مع "ضريبة طاقة" (استهلاك أعلى للكهرباء) بسبب التنسيق المطلوب.
الخلاصة
إذا كنت تريد بناء نموذج ذكاء اصطناعي وتهتم بتوفير الكهرباء والوقت:
استخدم Polars لمعظم مهام البيانات الحديثة والمتوسطة إلى الكبيرة.
استخدم Pandas للمهام الأصغر والأبسط أو إذا كنت بحاجة إلى مكتبة ذات دعم مجتمعي واسع.
استخدم Dask فقط عندما تكون بياناتك ضخمة جداً لدرجة أنها لا تستطيع مادياً الاستقرار داخل ذاكرة جهازك.
تخلص الدراسة إلى أنه بينما يقوم "الطاهي" (GPU) بالعمل الشاق، فإن اختيارك لـ "المساعد" (مكتبة إطارات البيانات) لا يزال مهماً لكيفية استهلاك المطبخ بأكم له للطاقة، خاصة قبل بدء عملية الطهي.
ملخص تقني: استهلاك الطاقة لمكتبات "إطارات البيانات" (Dataframe) في مسارات التعلم العميق المتكاملة
بيان المشكلة
يعد التعامل الفعال مع البيانات عائقاً حرجاً في تطوير ونشر نماذج التعلم العميق، لا سيما فيما يتعلق باستهلاك الطاقة. وبينما تقوم الدراسات السابقة بقياس أداء مكتبات إطارات البيانات (Pandas، وPolars، وDask) بشكل منفصل أو مقابل مهام تحليلية بسيطة، إلا أن هناك فجوة كبيرة في فهم أدائها وكفاءة استهلاك الطاقة عند دمجها ضمن مسارات تعلم عميق متكاملة من البوادي إلى النهايات (end-to-end). وتحديداً، تفشل الدراسات السابقة في رصد التفاعل الوثيق بين تحميل البيانات، والمعالجة المسبقة، وتغذية الدفعات (batch feeding)، وأحمال عمل وحدة معالجة الرسومات (GPU) أثناء عمليات التدريب والاستدلال على حد سواء. تعالج هذه الورقة النقص في التوصيف الشامل للطاقة لهذه المكتبات في سياقات واقعية للتعلم العميق، حيث تؤثر معالجة البيانات مباشرة على استغلال وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) والاستدامة العامة.
الإعداد التجريبي: أُجريت التجارب على محطة عمل تتميز بمعالج بـ 16 نواة/32 مساراً (2.10 جيجاهرتز)، وذاكرة وصول عشوائي (RAM) بسعة 128 جيجابايت، ووحدة معالجة رسومات NVIDIA Tesla V100 (32 جيجابايت HBM2). تضمن المجمع البرمجي (software stack) إصدارات Python 3.8.12، وTensorFlow 2.8.0، وPyTorch 1.12.1، وإصدارات محددة من Pandas (1.4.2)، وPolars (0.10.18)، وDask (2022.2.0).
مجموعات البيانات: تم استخدام ثلاث مجموعات بيانات تمثيلية:
التأمين (Insurance): مجموعة بيانات جدولية صغيرة (1,000 سجل) لمهام الانحدار والتصنيف.
ML-1M (MovieLens): مجموعة بيانات متوسطة الحجم (حوالي مليون صف) للترشيح التعاوني والترشيح التعاوني العصبي (NCF).
COCO: مجموعة بيانات صور ضخمة الحجم (حوالي 118,000 صورة) لنماذج ResNet-50 (التصنيف) وMask R-CNN (اكتشاف الأشياء).
تم تنفيذ كل تكوين خمس مرات لحساب المتوسطات المقطوعة وفترات الثقة بنسبة 95%، وذلك لاستبعاد القيم المتطرفة.
مقاييس وحدة المعالجة المركزية (CPU): تم التقاطها عبر Linux perf (وقت التشغيل، طاقة الـ CPU، والذاكرة).
مقاييس وحدة معالجة الرسومات (GPU): تم التقاطها عبر pynvml (طاقة الـ GPU، واستخدام ذاكرة VRAM).
توصيف الطاقة: تتبع الإطار العملي استهلاك الطاقة في كل مرحلة: تحميل البيانات، المعالجة المسبقة، التدريب، والاستدلال.
التنفيذ: تم تنفيذ مسار موحد لمعالجة البيانات لكل مكتبة، يتولى مهام تحميل البيانات، والمعالجة المسبقة (التعويض، الترميز، والتقييس)، وتجميع الدفعات. استخدمت Polars التقييم الكسول (lazy evaluation) وتقطيع البيانات بصفر نسخ (zero-copy slicing)؛ بينما استخدمت Dask المعالجة المتوازية القائمة على التقسيم؛ واستخدمت Pandas الفهرسة القياسية.
المساهمات الرئيسية
تقدم الورقة ثلاث مساهمات رئيسية في مجال التعلم الآلي المستدام:
تكامل المسار المتكامل (End-to-End): على عكس الأعمال السابقة التي تركز على خطوات معزولة (مثل تحميل البيانات فقط)، تقيم هذه الدراسة تأثير خلفيات إطارات البيانات عبر دورة حياة التدريب والاستدلال بأكملها، بدءاً من استيعاب البيانات وصولاً إلى التنبؤ بالنماذج.
التحليل المتمايز بين التدريب والاستدلال: تقارن الدراسة صراحةً بين كيفية أداء هذه المكتبات أثناء التدريب مقابل الاستدلال، مما يعالج فجوة في الأدبيات الحالية التي غالباً ما تعامل هاتين المرحلتين كعمليات متجانسة.
التوصيف التفصيلي للطاقة: تتجاوز الدراسة مجرد تحليل وقت التشغيل لتقدم تفصيلاً دقيقاً لاستهلاك الطاقة لكل من وحدة المعالجة المركزية ووحدة معالجة الرسومات، بما في ذلك قياسات محددة لذاكرة RAM وVRAM. وهذا يسمح بإنشاء ملف تعريف طاقة كامل لكل إعداد من إعدادات محمل البيانات.
النتائج
كشفت النتائج التجريبية عن مقايضات متميزة في الأداء والطاقة بناءً على حجم مجموعة البيانات وتعقيد النموذج:
مجموعات البيانات الصغيرة (Insurance):
وقت التشغيل: أظهرت Pandas وPolars أوقات تشغيل متطابقة تقريباً للنماذج البسيطة (Random Forest، وSVR). بينما سجلت Dask وقتاً أطول بسبب العبء الإضافي لجدولة المهام.
الطاقة: أظهرت Polars استهلاكاً أقل لطاقة وحدة المعالجة المركزية في البنيات العصبية (TabNet) مقارنة بـ Pandas وDask، ويعزى ذلك إلى تنفيذها المتوازي. ومع ذلك، كانت Polars تمتلك بصمة ذاكرة أعلى لوحدة المعالجة المركزية بسبب مخازن Arrow المؤقتة.
مجموعات البيانات متوسطة الحجم (ML-1M):
وقت التشغيل: تفوقت Polars بشكل كبير على كل من Pandas وDask في سير عمل الترشيح التعاوني وNCF (على سبيل المثال، 2.5 ثانية مقابل 17.9 ثانية لـ Pandas في NCF). كان ذلك مدفوعاً بعمليات الأعمدة الفعالة والنقل بصفر نسخ إلى تنسورات PyTorch.
الطاقة: أدى العبء الإضافي لجدولة التقسيم في Dask إلى استهلاك طاقة أعلى بكثير لوحدة المعالجة المركزية مقارنة بـ Polars وPandas.
مجموعات البيانات الضخمة (COCO):
وقت التشغيل: بالنسبة لأعمال وحدة معالجة الرسومات الثقيلة (ResNet، وMask R-CNN)، حققت المكتبات الثلاث أوقات تشغيل متشابهة، حيث هيمنت حسابات وحدة معالجة الرسومات على المسار.
الذاكرة والطاقة: حافظت Dask على بصمات ذاكرة أعلى لوحدة المعالجة المركزية بسبب هياكل البيانات المقسمة. بينما حافظت Polars وPandas على بصمات ذاكرة أقل. أظهرت Polars توفيراً هامشياً في طاقة وحدة المعالجة المركزية أثناء المعالجة المسبقة، بينما ظل استهلاك طاقة وحدة معالجة الرسومات متطابقاً تقريباً عبر جميع الخلفيات مع هيمنة حسابات النموذج.
التحليل على مستوى العمليات (Operator-Level Analysis): يشير الجدول 2 إلى أن Polars أظهرت باستمرار استهلاكاً أقل لطاقة وحدة المعالجة المركزية للعمليات الضخمة عبر جميع النماذج عندما تجاوزت أحجام مجموعات البيانات بضع مئات الآلاف من الصفوف.
الأهمية والادعاءات
تدعي الورقة أنها تسد الفجوة بين قياس الأداء والتعلم الآلي المستدام من خلال تقديم أول تحليل شامل للطاقة من البداية إلى النهاية لمكتبات إطارات البيانات في مسارات التعلم العميق.
التوصيات العملية:
يُوصى باستخدام Polars للمعالجة عالية الكفاءة في استهلاك الطاقة لمجموعات البيانات المتوسطة إلى الكبيرة، خاصة لسير العمل الذي يتضمن تحويلات بيانات معقدة أو شبكات عصبية، وذلك بفضل تنفيذها المتوازي وقدرات الصفر نسخ.
تظل Pandas منافسة وفعالة لأعباء العمل الصغيرة إلى المتوسطة حيث تكون نضوج المنظومة (ecosystem maturity) هي الأولوية.
تعد Dask مناسبة عندما تتجاوز البيانات فعلياً سعة الذاكرة المتاحة أو عند الحاجة للحوسبة الموزعة، رغم أن عبئها الإضافي قد يؤدي إلى استهلاك طاقة أعلى في مجموعات البيانات الأصغر.
الأثر على الاستدامة: توضح الدراسة أنه بينما تهيمن النماذج غالباً على طاقة وحدة معالجة الرسومات، فإن اختيار محمل البيانات يؤثر بشكل كبير على استهلاك طاقة وحدة المعالجة المركزية وكفاءة الذاكرة، مما يوفر رؤى قابلة للتطبيق لتقليل البصمة الكربونية لعمليات التعلم الآلي.
خلص المؤلفون إلى أنه بينما تبدو Polars واعدة من حيث كفاءة الطاقة، فإن اختيار المكتبة يجب أن يوازن مقابل حجم مجموعة البيانات، ونوع النموذج، والقيود العتادية. كما اقترحوا عملاً مستقبلياً لاستكشاف هذه المكتبات في العناقيد متعددة العقد (multi-node clusters) والمسرعات العتادية الناشئة.