تهانينا! لقد نشرت نموذج وحيد القرن. من المفترض أن يعمل النموذج على مدار الساعة طوال أيام الأسبوع بدون أي مشاكل. ولضمان ذلك، يجب مراقبة مسار تعلُّم الآلة.
كتابة مخطّط بيانات للتحقّق من صحة البيانات الأولية
لمراقبة بياناتك، عليك التحقّق منها باستمرار مقارنةً بالقيم الإحصائية المتوقعة من خلال كتابة القواعد التي يجب أن تستوفيها البيانات. تُعرف هذه المجموعة من القواعد باسم مخطّط البيانات. حدِّد مخطّط بيانات باتّباع الخطوات التالية:
فهم نطاق ميزاتك وتوزيعها بالنسبة إلى السمات الفئات، عليك فهم مجموعة القيم المحتملة.
رمزِّ فهمك في مخطّط البيانات. في ما يلي أمثلة على القواعد:
- تأكَّد من أنّ التقييمات التي يرسلها المستخدمون تتراوح دائمًا بين 1 و5.
- تأكَّد من أنّ الكلمة the تظهر بشكلٍ متكرّر (لميزة ملفّ نصي باللغة الإنجليزية).
- تأكَّد من ضبط كل سمة تصنيفية على قيمة من مجموعة ثابتة من القيم المحتملة.
اختبِر بياناتك وفقًا لنموذج البيانات. يجب أن يرصد مخطّطك أخطاء data مثل:
- الِقَيم الشاذة
- قيم غير متوقّعة للمتغيّرات الفئوية
- توزيعات البيانات غير المتوقّعة
كتابة اختبارات الوحدة للتحقّق من صحة ميزة الهندسة
على الرغم من أنّ بياناتك الأوّلية قد تجتاز مخطّط البيانات، لا يتم تدريب النموذج على البيانات الأوّلية. بدلاً من ذلك، يتدرب النموذج على بيانات تم هندستها بالاستناد إلى الميزات. على سبيل المثال، يتدرب النموذج على ميزات رقمية معدَّلة بدلاً من البيانات الرقمية الأولية. بما أنّ البيانات الهندسية للميزات يمكن أن تختلف اختلافًا كبيرًا عن بيانات الإدخال الأوّلية، يجب التحقّق من البيانات الهندسية للميزات بشكل منفصل عن عمليات التحقّق من بيانات الإدخال الأوّلية.
اكتب اختبارات الوحدة استنادًا إلى فهمك للبيانات الهندسية للميزات. على سبيل المثال، يمكنك كتابة اختبارات وحدات للتحقّق من الشروط التالية:
- يتم قياس جميع السمات الرقمية، على سبيل المثال، بين 0 و1.
- لا تحتوي المتجهات المشفَّرة بترميز واحد ساخن إلا على واحد واحد وعدد N-1 من الأصفار.
- تتوافق توزيعات البيانات بعد التحويل مع التوقعات. على سبيل المثال، إذا كنت قد أجريت عملية تسوية باستخدام "نتائج الاختبار المعياري"، يجب أن يكون متوسّط "نتائج الاختبار المعياري" هو 0.
- يتم التعامل مع القيم الشاذة ، مثلاً من خلال التصغير أو الاقتصاص.
التحقّق من المقاييس لأجزاء البيانات المهمة
في بعض الأحيان، تحجب مجموعة كاملة ناجحة مجموعة فرعية غير ناجحة. بعبارة أخرى، قد يقدّم نموذج يتمتع بمقاييس رائعة بشكل عام تنبؤات سيئة بشأن حالات معيّنة. على سبيل المثال:
يحقّق نموذج اليونيكورن أداءً جيدًا بشكل عام، ولكنّه يحقّق أداءً ضعيفًا عند إجراء توقّعات بشأن صحراء الصحراء.
إذا كنت من المهندسين الذين يرضون عن قيمة رائعة بشكل عام لمقياس "تكلفة اكتساب المستخدم"، قد لا تلاحظ مشاكل النموذج في صحراء الصحراء. إذا كان من المهم إجراء توقّعات جيدة لكل منطقة، عليك تتبُّع الأداء لكل منطقة. تُعرف المجموعات الفرعية من البيانات، مثل المجموعة التي تتوافق بصحراء الصحراء، باسم شرائح البيانات.
حدِّد شرائح البيانات التي تهمّك. بعد ذلك، قارِن مقاييس النماذج لشرائح البيانات هذه بمقاييس مجموعة البيانات بأكملها. يساعد التحقّق من أنّ أداء النموذج جيد في جميع شرائح البيانات في إزالة الانحياز. يمكنك الاطّلاع على الإنصاف: تقييم الانحياز للحصول على مزيد من المعلومات.
استخدام المقاييس المستندة إلى الواقع
لا تقيس مقاييس النموذج بالضرورة تأثير النموذج في العالم الواقعي. على سبيل المثال، قد يؤدي تغيير مَعلمة متغيرة فائقة إلى زيادة AUC للنموذج، ولكن كيف أثر التغيُّر في تجربة المستخدم؟ لقياس التأثير في العالم الواقعي، عليك تحديد مقاييس منفصلة. على سبيل المثال، يمكنك إجراء استطلاع للمستخدمين الذين استخدموا النموذج للتأكّد من أنّهم شاهدوا حيوانًا أحادي القرن عندما توقّع النموذج أنّه سيظهر.
التحقّق من عدم التوازن في عملية التدريب والعرض
الانحراف في مرحلة التدريب والعرض يعني أنّ بيانات الإدخال أثناء التدريب تختلف عن بيانات الإدخال في مرحلة العرض. يصف الجدول التالي النوعَين المهمّين من الانحراف:
النوع | التعريف | مثال | الحل |
---|---|---|---|
عدم تطابق المخطط | لا تتوافق بيانات الإدخال المخصّصة للتدريب وعرض الإعلانات مع المخطّط نفسه. | تغيُّر تنسيق بيانات العرض أو توزيعها أثناء مواصلة تدريب النموذج على البيانات القديمة | استخدِم المخطّط نفسه للتحقّق من صحة بيانات التدريب وعرض الإعلانات. تأكَّد من التحقّق بشكل منفصل من الإحصاءات التي لا يفحصها المخطّط، مثل نسبة القيم غير المتوفّرة. |
الميل في الميزة | تختلف البيانات الهندسية بين مرحلة التدريب ومرحلة العرض. | يختلف رمز هندسة الميزات بين مرحلة التدريب ومرحلة العرض، ويؤدي ذلك إلى توليد بيانات هندسية مختلفة. | على غرار الانحراف في المخطّط، طبِّق القواعد الإحصائية نفسها على التدريب وعرض البيانات الهندسية. تتبُّع عدد السمات المنحرفة التي تم رصدها ونسبة الأمثلة المنحرفة لكل سمة |
يمكن أن تكون أسباب الانحراف في تقديم البيانات التدريبية خفية. يجب دائمًا مراعاة البيانات المتاحة لنموذجك في وقت التوقّع. أثناء التدريب، استخدِم الميزات التي ستتوفّر لك عند عرض الإعلانات فقط.
تمرين: التحقّق من فهمك
لنفترض أنّ لديك متجرًا على الإنترنت وتريد توقّع المبلغ الذي ستكسبه في يوم معيّن. هدفك من استخدام الذكاء الاصطناعي هو توقّع الإيرادات اليومية باستخدام عدد العملاء كميزة.
الإجابة: تكمن المشكلة في أنّك لا تعرف عدد العملاء في وقت التوقّع، قبل اكتمال مبيعات اليوم بالكامل. وبالتالي، هذه الميزة غير مفيدة، حتى إذا كانت تتوقّع أرباحك اليومية بشكل كبير. في ما يتعلّق بذلك، عند تدريب نموذج والحصول على مقاييس تقييم رائعة (مثل 0.99 AUC)، ابحث عن هذه الأنواع من الميزات التي يمكن أن تؤثر في تصنيفك.
التحقّق من تسرُّب التصنيفات
تسرُّب التصنيفات يعني أنّه تم إدخال الحقائق الأساسية التي تحاول توقّعها في ميزات التدريب عن غير قصد. يصعب أحيانًا رصد تسرب العلامة.
تمرين: التحقّق من فهمك
لنفترض أنّك أنشأت نموذج تصنيف ثنائيًا للتنبؤ بما إذا كان المريض الجديد في المستشفى مصابًا بالسرطان أم لا. يستخدم النموذج ميزات مثل ما يلي:
- عمر المريض
- جنس المريض
- الحالات الطبية السابقة
- اسم المستشفى
- بيانات المؤشرات الحيوية
- نتائج الاختبار
- الوراثة
في ما يلي التصنيف:
- منطقي: هل المريض مصاب بالسرطان؟
يمكنك تقسيم البيانات بعناية، ما يضمن عزل مجموعة التدريب عن مجموعة التحقّق ومجموعة الاختبار. يحقّق النموذج أداءً جيدًا للغاية في مجموعة التحقّق ومجموعة الاختبار، كما أنّ المقاييس رائعة. يُرجى العِلم أنّ أداء النموذج سيئ جدًا في ما يتعلّق بالمرضى الجدد في العالم الواقعي.
الإجابة: اسم المستشفى هو إحدى ميزات النموذج. تتخصص بعض المستشفيات في علاج السرطان. أثناء التدريب، تعرّف ال النموذج بسرعة على أنّه من المرجّح جدًا أنّ المرضى المُحالين إلى مستشفيات معيّنة مصابون بالسرطان. وبالتالي، أصبح اسم المستشفى سمة ذات وزن كبير.
في وقت الاستنتاج، لم يتم تعيين معظم المرضى بعد إلى مستشفى. بعد كلّ شيء، كان الغرض من النموذج هو تشخيص وجود السرطان أو عدم وجوده، ثم استخدام هذا التشخيص لإحالة المريض إلى مستشفى مناسب. نتيجةً لذلك، أثناء الاستنتاج، لم تكن ميزة اسم المستشفى متاحة بعد، واضطر النموذج إلى الاعتماد على ميزات أخرى.
مراقبة عمر النموذج على مستوى مسار الإحالة الناجحة
إذا كانت بيانات العرض تتطوّر بمرور الوقت ولكنّه لا يتم إعادة تدريب النموذج بانتظام، ستشهد انخفاضًا في جودة النموذج. يمكنك تتبُّع الوقت الذي مرّ منذ أن تم مجددًا تدريب النموذج على بيانات جديدة وضبط حدّ أقصى للعمر في التنبيهات. بالإضافة إلى مراقبة عمر النموذج عند عرضه، يجب مراقبة عمر النموذج على مستوى مسار الإرسال بالكامل لرصد أي توقّفات في مسار الإرسال.
اختبِر ما إذا كانت أوزان النموذج والنواتج مستقرة رقميًا.
أثناء تدريب النموذج، يجب ألا تكون أوزان الخلايا ومخرجات الطبقات NaN (ليس رقمًا) أو Inf (لانهائي). اكتب اختبارات للتحقّق من قيم NaN وInf لمقاييس الشبكة ومخرجات الطبقات. بالإضافة إلى ذلك، تحقّق من أنّ أكثر من نصف نواتج الطبقة ليست صفرًا.
مراقبة أداء النموذج
لقد حقّق أداة توقّع ظهور الوحوش الرائعة رواجًا أكبر من المتوقع. إذا كنت تتلقّى الكثير من طلبات التوقّعات وعددًا أكبر من بيانات التدريب قد تعتقد أنّه هذا أمر رائع إلى أن تدرك أنّ النموذج يستغرق المزيد والمزيد من الذاكرة والوقت لتدريبه. قرّرت مراقبة أداء النموذج من خلال اتّباع الخطوات التالية:
- تتبُّع أداء النموذج حسب إصدارات الرمز والنموذج والبيانات يتيح لك هذا التتبّع تحديد السبب الدقيق لأيّ انخفاض في الأداء.
- اختبِر خطوات التدريب في الثانية لإصدار نموذج جديد مقارنةً بالإصدار السابق وبحدّ أدنى ثابت.
- يمكنك رصد عمليات تسرُّب الذاكرة من خلال ضبط حدّ أقصى لاستخدام الذاكرة.
- راقِب أوقات استجابة واجهة برمجة التطبيقات وتتبَّع النسب المئوية لها. على الرغم من أنّ وقت استجابة واجهة برمجة التطبيقات قد يكون خارج نطاق تحكّمك، إلا أنّ الردود البطيئة قد تؤدي إلى تسجيل مقاييس ضعيفة في العالم الواقعي.
- تتبُّع عدد طلبات البحث التي يتم الردّ عليها في الثانية
اختبار جودة النموذج المباشر على البيانات المعروضة
لقد تحقّقت من صحة النموذج. ولكن ماذا لو تغيّرت السيناريوهات الواقعية، مثل سلوك وحيد القرن ، بعد تسجيل بيانات التحقّق؟ بعد ذلك، ستنخفض جودة النموذج الذي يتم عرضه. ومع ذلك، من الصعب اختبار الجودة في العرض لأنّه لا يتم تصنيف بيانات العالم الحقيقي دائمًا. إذا لم يتم تصنيف بيانات العرض، ننصحك بإجراء هذه الاختبارات:
التحقيق في النماذج التي تُظهر تحيزًا إحصائيًا كبيرًا في التوقّعات راجِع مقالة التصنيف: التحيز في التنبؤ.
تتبُّع المقاييس الواقعية لنموذجك على سبيل المثال، إذا كنت بصدد تصنيف المحتوى غير المرغوب فيه، قارِن توقّعاتك بالمحتوى غير المرغوب فيه الذي أبلغ عنه المستخدمون.
يمكنك تقليل الاختلاف المحتمل بين بيانات التدريب وبيانات العرض من خلال عرض إصدار جديد من النموذج على جزء من طلبات البحث. أثناء التحقّق من صحة نموذج العرض الجديد، بدِّل تدريجيًا جميع طلبات البحث إلى الإصدار الجديد.
باستخدام هذه الاختبارات، تذكَّر مراقبة كلّ من الانخفاض المفاجئ والبطيء في جودة التوقّعات.
التوزيع العشوائي
أن تجعل مسار إنشاء البيانات قابلاً للتكرار لنفترض أنّك تريد إضافة ميزة لمعرفة مدى تأثيرها في جودة النموذج. لإجراء تجربة عادلة، يجب أن تكون مجموعات البيانات متطابقة باستثناء هذه الميزة الجديدة. في هذا السياق، تأكَّد من أنّ أي عملية عشوائية في إنشاء البيانات يمكن إجراؤها بشكل حتمي:
- إعداد بذور لأدوات إنشاء الأرقام العشوائية تضمن عملية إنشاء البذور أن يُخرج مولد الأرقام العشوائية القيم نفسها بالترتيب نفسه في كل مرة يتم فيها تشغيله، ما يؤدي إلى إعادة إنشاء مجموعة البيانات.
- استخدِم مفاتيح التجزئة الثابتة. التجزئة هي طريقة شائعة لتقسيم أو تحليل عيّنات البيانات. يمكنك تجزئة كل مثال واستخدام العدد الصحيح الناتج لتحديد المجموعة التي سيتم وضع المثال فيها. يجب ألا تتغيّر مدخلات دالة التجزئة في كل مرة تشغّل فيها برنامج إنشاء البيانات. لا تستخدِم مثلاً الوقت الحالي أو رقمًا عشوائيًا في التجزئة إذا كنت تريد إعادة إنشاء التجزئات عند الطلب.
تنطبق النهجان السابقان على تحليل عيّنات بياناتك وتقسيمها.
اعتبارات حول التجزئة
لنفترض مرة أخرى أنّك كنت تجمع طلبات بحث باستخدام التجزئة لتضمين طلبات البحث أو استبعادها. إذا كان مفتاح التجزئة يستخدم الطلب فقط، فسيتم دائمًا تضمين هذا الطلب أو استبعاده دائمًا على مدار أيام متعددة من البيانات. إنّ تضمين ملف بحث أو استبعاده دائمًا هو أمر غير جيد للأسباب التالية:
- ستظهر مجموعة التدريب مجموعة أقل تنوعًا من طلبات البحث.
- ستكون مجموعات التقييم صعبة بشكل مصطنع، لأنّها لن تؤدي إلى تداخل مع بيانات التدريب. في الواقع، في وقت العرض، ستلاحظ بعض الزيارات المباشرة في بيانات التدريب، لذا يجب أن يعكس تقييمك ذلك.
بدلاً من ذلك، يمكنك إنشاء تجزئة استنادًا إلى الطلب + التاريخ، ما سيؤدي إلى إنشاء تجزئة مختلفة كل يوم.