Xgboost: ارتفاع استهلاك الذاكرة في Python xgboost

تم إنشاؤها على ٢ أبريل ٢٠٢٠  ·  3تعليقات  ·  مصدر: dmlc/xgboost

أنا أعمل على حزمة python AutoML وأبلغ أحد المستخدمين عن استخدام ذاكرة عالية جدًا أثناء استخدام xgboost .

لقد أجريت تحقيقًا لإظهار استهلاك الذاكرة بواسطة xgboost. يمكنك العثور على دفتر الملاحظات هنا . من الكود ، يمكنك أن ترى أن النموذج يخصص أكثر من 7 جيجابايت من ذاكرة الوصول العشوائي. عندما أقوم بحفظ النموذج على القرص الصلب (5 كيلوبايت!) ثم أعد تحميله ، يمكنني توفير قدر كبير من ذاكرة الوصول العشوائي.

بالنسبة لي ، يبدو أن xgboost يقوم بتخزين نسخة من البيانات في هيكلها؟ هل انا على حق؟

هل هناك أي طريقة لتقليل استخدام الذاكرة بواسطة xgboost؟ هل تعتقد أن حفظ النموذج على القرص الصلب ثم إعادة تحميله هو طريقة للتعامل مع هذه المشكلة؟

التعليق الأكثر فائدة

pplonski ، لقد طبقنا تقليل استهلاك الذاكرة على وحدة المعالجة المركزية أيضًا في https://github.com/dmlc/xgboost/pull/5334 ، ولكن لطريقة "Hist" فقط. تم تضمينه في الإصدار الرئيسي فقط في الوقت الحالي ، لكنني آمل أن يكون جزءًا من الإصدار المستقبلي.

الذاكرة ، كيلو بايت | طيران | هيغز 1 م |
- | - | - |
قبل | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
مخفض: | 1.75 | 1.65 |

اتفق مع trivialfis ، فهناك العديد من الأشياء التي يمكنك القيام بها في المنطقة.

ال 3 كومينتر

pplonski نحن نحاول حذف النسخة لخوارزمية المدرج التكراري. إنه عمل مستمر. بالنسبة لوحدة معالجة الرسومات ، يتم ذلك في الغالب: https://github.com/dmlc/xgboost/pull/5420 https://github.com/dmlc/xgboost/pull/5465

لا يزال أمام وحدة المعالجة المركزية المزيد من العمل للقيام به.

pplonski ، لقد طبقنا تقليل استهلاك الذاكرة على وحدة المعالجة المركزية أيضًا في https://github.com/dmlc/xgboost/pull/5334 ، ولكن لطريقة "Hist" فقط. تم تضمينه في الإصدار الرئيسي فقط في الوقت الحالي ، لكنني آمل أن يكون جزءًا من الإصدار المستقبلي.

الذاكرة ، كيلو بايت | طيران | هيغز 1 م |
- | - | - |
قبل | 28311860 | 1907812 |
https://github.com/dmlc/xgboost/pull/5334 | 16218404 | 1155156 |
مخفض: | 1.75 | 1.65 |

اتفق مع trivialfis ، فهناك العديد من الأشياء التي يمكنك القيام بها في المنطقة.

مرحبًا ، لقد واجهت مؤخرًا مشكلة ذاكرة عالية مماثلة مع xgboost. أنا أستخدم "gpu_hist" للتدريب.

لاحظت ارتفاعات كبيرة في ذاكرة النظام عند تنفيذ طريقة train() ، مما يؤدي إلى تحطم نواة jupyter.

  1. هل من الصحيح القول إن Xgboost يقوم بعمل نسخة من بياناتي في ذاكرة الوصول العشوائي للنظام (حتى عندما أستخدم "gpu_hist")؟
  2. كنت على افتراض أن xgboost يقوم بتحميل بيانات التدريب بالكامل إلى وحدة معالجة الرسومات. هل هذا أيضا غير صحيح؟
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

wenbo5565 picture wenbo5565  ·  3تعليقات

RanaivosonHerimanitra picture RanaivosonHerimanitra  ·  3تعليقات

choushishi picture choushishi  ·  3تعليقات

vkuznet picture vkuznet  ·  3تعليقات

trivialfis picture trivialfis  ·  3تعليقات