أنا أعمل على حزمة python AutoML وأبلغ أحد المستخدمين عن استخدام ذاكرة عالية جدًا أثناء استخدام xgboost .
لقد أجريت تحقيقًا لإظهار استهلاك الذاكرة بواسطة xgboost. يمكنك العثور على دفتر الملاحظات هنا . من الكود ، يمكنك أن ترى أن النموذج يخصص أكثر من 7 جيجابايت من ذاكرة الوصول العشوائي. عندما أقوم بحفظ النموذج على القرص الصلب (5 كيلوبايت!) ثم أعد تحميله ، يمكنني توفير قدر كبير من ذاكرة الوصول العشوائي.
بالنسبة لي ، يبدو أن xgboost يقوم بتخزين نسخة من البيانات في هيكلها؟ هل انا على حق؟
هل هناك أي طريقة لتقليل استخدام الذاكرة بواسطة xgboost؟ هل تعتقد أن حفظ النموذج على القرص الصلب ثم إعادة تحميله هو طريقة للتعامل مع هذه المشكلة؟
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.
التعليق الأكثر فائدة
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 ، فهناك العديد من الأشياء التي يمكنك القيام بها في المنطقة.