مبادئ نظامنا
عندما تسمع مصطلحات مثل "تلقائي" و "احتيال" ، فأنت على الأرجح تفكر في التعلم الآلي ، و Apache Spark ، و Hadoop ، و Python ، و Airflow ، وغيرها من التقنيات من النظام البيئي لمؤسسة Apache وعلوم البيانات. أعتقد أن هناك جانبًا واحدًا لاستخدام هذه الأدوات لا يتم ذكره عادةً: فهي تتطلب متطلبات مسبقة معينة في نظام شركتك قبل أن تتمكن من البدء في استخدامها. باختصار ، أنت بحاجة إلى نظام أساسي لبيانات المؤسسة يتضمن بحيرة بيانات وتخزينًا. ولكن ماذا لو لم يكن لديك مثل هذه المنصة وما زلت بحاجة إلى تطوير هذه الممارسة؟ ساعدتنا المبادئ التالية ، التي سأناقشها أدناه ، على الوصول إلى النقطة التي يمكننا فيها التركيز على تحسين أفكارنا ، بدلاً من إيجاد واحدة تعمل. ومع ذلك ، هذه ليست "هضبة" للمشروع.لا تزال هناك أشياء كثيرة في الخطة من وجهة نظر تكنولوجية ووجهة نظر المنتج.
المبدأ 1: قيمة العمل تأتي أولاً
لقد وضعنا قيمة العمل في قلب كل جهودنا. بشكل عام ، ينتمي أي نظام تحليل آلي إلى مجموعة الأنظمة المعقدة ذات المستوى العالي من الأتمتة والتعقيد التقني. سيستغرق إنشاء حل كامل وقتًا طويلاً إذا قمت بإنشائه من البداية. قررنا إعطاء الأولوية لقيمة الأعمال والاكتمال التكنولوجي في المرتبة الثانية. في الحياة الواقعية ، هذا يعني أننا لا نقبل التكنولوجيا المتقدمة كعقيدة. نختار التكنولوجيا التي تناسبنا بشكل أفضل في الوقت الحالي. بمرور الوقت ، قد يبدو أنه سيتعين علينا إعادة تنفيذ بعض الوحدات. هذا الحل الوسط الذي قبلناه.
المبدأ 2: زيادة الذكاء
أراهن أن معظم الأشخاص الذين لا يشاركون بعمق في تطوير حلول التعلم الآلي قد يعتقدون أن استبدال الأشخاص هو الهدف. في الواقع ، حلول التعلم الآلي بعيدة عن الكمال ولا يمكن استبدالها إلا في مناطق معينة. لقد تخلينا عن هذه الفكرة منذ البداية لعدة أسباب: البيانات غير المتوازنة عن النشاط الاحتيالي وعدم القدرة على توفير قائمة شاملة من الميزات لنماذج التعلم الآلي. في المقابل ، اخترنا خيار الذكاء المعزز. إنه مفهوم بديل للذكاء الاصطناعي يركز على الدور الداعم للذكاء الاصطناعي ، ويسلط الضوء على حقيقة أن التقنيات المعرفية مصممة لتحسين الذكاء البشري ، وليس استبداله. [1]
مع وضع هذا في الاعتبار ، فإن تطوير حل كامل للتعلم الآلي من البداية كان سيتطلب قدراً هائلاً من الجهد الذي من شأنه أن يؤخر إنشاء قيمة لأعمالنا. قررنا بناء نظام به جانب متنامٍ بشكل متكرر من التعلم الآلي تحت إشراف خبراء المجال لدينا. يتمثل الجزء الصعب في تطوير مثل هذا النظام في أنه يتعين عليه تزويد محللينا بالقضايا ليس فقط من حيث ما إذا كان نشاطًا احتياليًا أم لا. بشكل عام ، أي شذوذ في سلوك العميل هو حالة مشبوهة يحتاج المتخصصون إلى التحقيق فيها والرد بطريقة ما. يمكن حقًا تصنيف جزء بسيط فقط من هذه الحالات المسجلة على أنها احتيال.
المبدأ 3: منصة ذكاء غنية
إن أصعب جزء في نظامنا هو الفحص الشامل لسير عمل النظام. يجب أن يكون المحللون والمطورون قادرين على استرداد مجموعات البيانات التاريخية بسهولة مع جميع المقاييس المستخدمة في تحليلهم. بالإضافة إلى ذلك ، يجب أن توفر منصة البيانات طريقة سهلة لاستكمال مجموعة المقاييس الحالية بأخرى جديدة. يجب أن تسهل العمليات التي نقوم بإنشائها ، وهي ليست عمليات برمجية فقط ، إعادة حساب الفترات السابقة وإضافة مقاييس جديدة وتغيير توقعات البيانات. يمكننا تحقيق ذلك من خلال تجميع جميع البيانات التي يولدها نظام الإنتاج لدينا. في هذه الحالة ، ستصبح البيانات تدريجياً عائقاً. سنحتاج إلى تخزين وحماية الكمية المتزايدة من البيانات التي لا نستخدمها. في مثل هذا السيناريو ، بمرور الوقت ، ستصبح البيانات غير ذات صلة أكثر فأكثر ،لكنها لا تزال تتطلب جهودنا لإدارتها. بالنسبة لنا ، لم يكن تخزين البيانات منطقيًا ، وقررنا اتباع نهج مختلف. قررنا تنظيم مخازن البيانات في الوقت الفعلي حول الكيانات المستهدفة التي نريد تصنيفها ، وتخزين البيانات فقط التي تتيح لنا التحقق من الفترات الأحدث والحالية. التحدي في هذا الجهد هو أن نظامنا غير متجانس مع العديد من مخازن البيانات ووحدات البرامج التي تتطلب تخطيطًا دقيقًا للعمل باستمرار.والتي تتيح لك التحقق من أحدث الفترات الحالية والحالية. التحدي في هذا الجهد هو أن نظامنا غير متجانس مع العديد من مخازن البيانات ووحدات البرامج التي تتطلب تخطيطًا دقيقًا للعمل باستمرار.والتي تتيح لك التحقق من أحدث الفترات الحالية والحالية. يكمن التحدي في هذا الجهد في أن نظامنا غير متجانس مع العديد من مخازن البيانات ووحدات البرامج التي تتطلب تخطيطًا دقيقًا للعمل باستمرار.
مفاهيم بناءة لنظامنا
لدينا أربعة مكونات رئيسية في نظامنا: نظام الابتلاع والحساب وتحليل BI ونظام التتبع. إنها تخدم أغراضًا منعزلة محددة ، ونبقيها معزولة باتباع أساليب تصميم محددة.
تصميم قائم على العقد
بادئ ذي بدء ، اتفقنا على أن المكونات يجب أن تعتمد فقط على هياكل بيانات معينة (عقود) يتم تمريرها فيما بينها. هذا يجعل من السهل التكامل بينهم وعدم فرض تركيبة معينة (وترتيب) من المكونات. على سبيل المثال ، في بعض الحالات ، يسمح لنا هذا بدمج نظام الاستقبال بشكل مباشر مع نظام تتبع التنبيه. إذا كان الأمر كذلك ، فسيتم ذلك وفقًا لعقد الإخطار المتفق عليه. هذا يعني أنه سيتم دمج كلا المكونين باستخدام عقد يمكن لأي مكون آخر استخدامه. لن نضيف عقدًا إضافيًا لإضافة تنبيهات إلى نظام التتبع من نظام الإدخال. يتطلب هذا النهج استخدام حد أدنى محدد مسبقًا من العقود ويبسط النظام والاتصال. في الحقيقة،نحن نستخدم نهجًا يسمى "تصميم العقد الأول" ونطبقه على عقود البث. [2]
سيؤدي الحفاظ على الحالة وإدارتها في النظام حتماً إلى تعقيدات في تنفيذه. بشكل عام ، يجب أن تكون الحالة قابلة للوصول من أي مكون ، ويجب أن تكون متسقة وتوفر القيمة الأكثر صلة لجميع المكونات ، ويجب أن تكون موثوقة مع القيم الصحيحة. بالإضافة إلى ذلك ، سيؤدي إجراء مكالمات إلى التخزين الدائم للحصول على أحدث حالة إلى زيادة كمية الإدخال / الإخراج وتعقيد الخوارزميات المستخدمة في خطوط الأنابيب في الوقت الفعلي. لهذا السبب ، قررنا إزالة تخزين الحالة بشكل كامل قدر الإمكان من نظامنا. يتطلب هذا النهج إدراج جميع البيانات الضرورية في فدرة البيانات المرسلة (الرسالة). على سبيل المثال ، إذا احتجنا إلى حساب العدد الإجمالي لبعض الملاحظات (عدد العمليات أو الحالات ذات الخصائص المحددة) ،نحسبها في الذاكرة ونولد تيارًا من هذه القيم. ستستخدم الوحدات التابعة قسمًا ودُفعة لتقسيم الدفق إلى كيانات والعمل وفقًا لأحدث القيم. يلغي هذا النهج الحاجة إلى وجود تخزين ثابت على القرص لمثل هذه البيانات. يستخدم نظامنا كافكا كوسيط للرسائل ويمكن استخدامه كقاعدة بيانات مع KSQL. [3] لكن استخدامه سيربط بقوة حلنا بكافكا ، وقررنا عدم استخدامه. النهج الذي اتخذناه يسمح لنا باستبدال كافكا بوسيط رسائل آخر دون تغييرات كبيرة في النظام الداخلي.يلغي هذا النهج الحاجة إلى وجود تخزين ثابت على القرص لمثل هذه البيانات. يستخدم نظامنا كافكا كوسيط للرسائل ويمكن استخدامه كقاعدة بيانات مع KSQL. [3] لكن استخدامه سيربط بقوة حلنا بكافكا ، وقررنا عدم استخدامه. النهج الذي اتخذناه يسمح لنا باستبدال كافكا بوسيط رسائل آخر دون تغييرات كبيرة في النظام الداخلي.يلغي هذا النهج الحاجة إلى وجود تخزين ثابت على القرص لمثل هذه البيانات. يستخدم نظامنا كافكا كوسيط للرسائل ويمكن استخدامه كقاعدة بيانات مع KSQL. [3] لكن استخدامه سيربط بقوة حلنا بكافكا ، وقررنا عدم استخدامه. النهج الذي اتخذناه يسمح لنا باستبدال كافكا بوسيط رسائل آخر دون تغييرات كبيرة في النظام الداخلي.
هذا المفهوم لا يعني أننا لا نستخدم تخزين القرص وقواعد البيانات. للتحقق من أداء النظام وتحليله ، نحتاج إلى تخزين جزء كبير من البيانات على القرص الذي يمثل مؤشرات وحالات مختلفة. النقطة المهمة هنا هي أن خوارزميات الوقت الفعلي مستقلة عن هذه البيانات. في معظم الحالات ، نستخدم البيانات المخزنة للتحليل في وضع عدم الاتصال وتصحيح الأخطاء وتتبع الحالات والنتائج المحددة التي ينتجها النظام.
مشاكل نظامنا
هناك بعض المشاكل التي قمنا بحلها إلى مستوى معين ، لكنها تتطلب حلولًا أكثر تفكيرًا. في الوقت الحالي ، أود فقط ذكرهم هنا ، لأن كل نقطة تستحق مقالة منفصلة.
- , , .
- . , .
- IF-ELSE ML. - : «ML — ». , ML, , . , , .
- .
- (true positive) . — , . , , — . , , .
- , .
- : , () .
- اخيرا وليس اخرا. نحتاج إلى إنشاء نظام أساسي شامل للتحقق من الأداء يمكننا من خلاله تحليل نماذجنا. [4]