Evalml: يستغرق إنشاء المستندات وقتًا طويلاً

تم إنشاؤها على ١٠ نوفمبر ٢٠٢٠  ·  8تعليقات  ·  مصدر: alteryx/evalml

في الآونة الأخيرة ، استغرقت مستنداتنا حوالي 14 دقيقة للبناء على شكل دائرة ، بينما استغرق إنشاءها في الإصدار السابق حوالي 6 دقائق. يبدو أن السبب الجذري لهذا التباطؤ هو أن الأعمال الخشبية تستنتج بعض المتغيرات الفئوية كنص مما يتسبب بعد ذلك في قيام AutoML باستخدام TextFeaturizer. ومع ذلك ، حتى إذا أصلحت ww الاستدلال القاطع مقابل النص ، فإن الوقت اللازم لإنشاء المستندات سيزداد حتمًا بينما نكتب المزيد من الوثائق. هذا يجعل من الصعب على المطورين التكرار على المستندات محليًا.

الحلول الممكنة:

  • أضف بعض التعليمات البرمجية المخفية في دفتر الملاحظات والتي من شأنها تخطي العمليات الحسابية طويلة المدى.
  • احصل على nb-sphinx أو اقرأ الحسابات طويلة الأمد في ذاكرة التخزين المؤقت للمستندات.
documentation testing

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

التحديث بعد المناقشة معdsherry.

تؤدي إضافة علامة -j إلى Makefile الخاصة بنا إلى السماح لاختبار build docs على circleci بالانتهاء بشكل أسرع ، كما هو موضح هنا . لسوء الحظ ، لا يقوم ReadtheDocs بتشغيل هذا الأمر ، مما يعني أن الإنشاء الفعلي للوثائق المنشورة لا يزال يستغرق بعض الوقت وغالبًا ما يتم إصلاح الأخطاء.

هذا ما يبدو عليه التصميم الناجح لـ ReadtheDocs ، حيث يستغرق إكماله ما يزيد قليلاً عن 20 دقيقة. تشير الاختلافات بين أوقات إنشاء HTML و Latex إلى أن بناء دفاتر Jupyter نفسها لا يستغرق الكثير من الوقت ، وهو أمر جيد.

ومع ذلك، فإننا نعثر أيضا الحالات التي فشل بناء مثل هذا . لاحظنا أنه لسبب ما ، يقوم ReadtheDocs بتشغيل التسلسل الكامل للأوامر مرتين ، مما يتسبب في أن يستغرق البناء وقتًا أطول (أكثر من 30 دقيقة لإنشاء ملفات HTML و Latex) ، ويؤدي إلى فشل إنشاء المستند. سأتابع مع فريق دعم ReadtheDocs لمعرفة سبب حدوث ذلك وكيف يمكننا إصلاح ذلك ، وسأحدّث هذه النتائج هنا عندما أحصل على تعليقات.

ال 8 كومينتر

نعم. لقد غيرت معيار إيقاف التشغيل التلقائي إلى max_batches=1 قبل أسبوعين أيضًا ، وهو ما لم يساعد.

أنا أحب الحلول التي ذكرتها! بالإضافة إلى واحد خاص بي:

  1. أضف بعض التعليمات البرمجية المخفية في دفتر الملاحظات والتي من شأنها تخطي العمليات الحسابية طويلة المدى. قد يكون هذا رمزًا يسخر من ملاءمة / توقع خط الأنابيب. ميزة: يعمل. العيب: قد لا يتطابق مع ما يحصل عليه المستخدمون عند تشغيلهم يدويًا ، بالإضافة إلى أن الشفرة المخفية مربكة.
  2. بالنسبة لأجهزة الكمبيوتر المحمولة التي تعمل لفترة طويلة ، قم بالتشغيل المسبق محليًا مرة واحدة واحفظ الإخراج في الكمبيوتر الدفتري. سيستخدم Nbsphinx تنفيذًا محفوظًا إذا كان موجودًا بدلاً من إعادة التشغيل. ميزة: يعمل. العيب: قد ننسى تحديث الإخراج بشكل دوري.
  3. تبسيط / حذف بعض محتويات دفتر الملاحظات. على سبيل المثال ، ضع في اعتبارك تقليل حجم البيانات وإيقاف المعيار وما إلى ذلك إن أمكن. ميزة: تسريع. مساوئ: لا يمكن إظهار الإخراج الكامل لبعض الأمثلة ، مثل النص.

أوصي بأن نذهب مع الخيار 2 ، ولكن مع وضع الخيار 3 في الاعتبار.

تم إغلاق 1627 كنسخة مكررة ، ولكن أعتقد أنه لا يزال هناك شيء لم تتم تغطيته في هذه المشكلة ، لذا قم بالنشر هنا:

لقد لاحظت أن إنشاء المستندات يستغرق وقتًا أطول. أعتقد أن هذا محتمل بسبب تغيير مستندات automl في c871f3b لاستخدام مجموعة بيانات الاحتيال ، بدلاً من مجموعة بيانات سرطان الثدي (+ في مكان آخر؟) لعرض infer_problem_types ، نظرًا لأن مجموعة بيانات سرطان الثدي تحتوي فقط على أعمدة رقمية.

أظن أن هذه مشكلة / سبب مختلف لوقت إنشاء المستندات الأطول ، من الدقائق العشرين السابقة إلى الآن> 30 دقيقة ، ويمكن أن يكون جدير بالذكر!

تضمين التغريدة

حل آخر ممكن هو استخدام معالجات متعددة لبناء المستندات:

https://www.sphinx-doc.org/en/master/man/sphinx-build.html#cmdoption -sphinx-build-j

التحديث بعد المناقشة معdsherry.

تؤدي إضافة علامة -j إلى Makefile الخاصة بنا إلى السماح لاختبار build docs على circleci بالانتهاء بشكل أسرع ، كما هو موضح هنا . لسوء الحظ ، لا يقوم ReadtheDocs بتشغيل هذا الأمر ، مما يعني أن الإنشاء الفعلي للوثائق المنشورة لا يزال يستغرق بعض الوقت وغالبًا ما يتم إصلاح الأخطاء.

هذا ما يبدو عليه التصميم الناجح لـ ReadtheDocs ، حيث يستغرق إكماله ما يزيد قليلاً عن 20 دقيقة. تشير الاختلافات بين أوقات إنشاء HTML و Latex إلى أن بناء دفاتر Jupyter نفسها لا يستغرق الكثير من الوقت ، وهو أمر جيد.

ومع ذلك، فإننا نعثر أيضا الحالات التي فشل بناء مثل هذا . لاحظنا أنه لسبب ما ، يقوم ReadtheDocs بتشغيل التسلسل الكامل للأوامر مرتين ، مما يتسبب في أن يستغرق البناء وقتًا أطول (أكثر من 30 دقيقة لإنشاء ملفات HTML و Latex) ، ويؤدي إلى فشل إنشاء المستند. سأتابع مع فريق دعم ReadtheDocs لمعرفة سبب حدوث ذلك وكيف يمكننا إصلاح ذلك ، وسأحدّث هذه النتائج هنا عندما أحصل على تعليقات.

@ bchen1116 اتصل بالدعم وقالوا

يبدو أن السبب الأساسي لهذا الخطأ هو عدد الإصدارات النشطة التي لديك. أرى بعض الأخطاء في سجلاتنا تتعلق بهذا.
للتغلب على هذا في الوقت الحالي ، قد تقلل عدد الإصدارات النشطة التي تحتفظ بها. يبدو أنك تقوم بإنشاء إصدارات لفروع فردية أو طلبات سحب ، هل جربت ميزة بناء طلب السحب؟ سيساعد هذا في إزالة الإصدارات غير الضرورية بعد البناء ، مع الاحتفاظ بالمحتوى المدمج.

أعتقد أن "ميزة بناء طلب السحب" المشار إليها هنا هي هذا ، مؤكدة.

تحديث:
لقد قمنا بتحديث RTD للبناء من طلبات السحب فقط ، وإزالة البنيات غير الضرورية إلى الإصدارات المختلفة (الفروع) التي ندفعها. بالإضافة إلى ذلك ، قمنا بحذف جميع الإصدارات غير الضرورية (غير المميزة) من RTD (الفروع المتنوعة التي نستخدمها للعلاقات العامة) ، والتي يبدو أنها ساعدت في إنشاء المستندات. لا نلاحظ انتهاء مهلة المستندات في البنيات ، لذلك سنغلق هذه المشكلة غدًا ما لم نبدأ في رؤية المهلات مرة أخرى.

@ bchen1116 هل هذا قابل للإغلاق الآن؟

يتم الإغلاق الآن ، نظرًا لعدم وجود مشكلة في عمليات إنشاء المستندات البطيئة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات