Sayta müdaxilə edənlərlə mübarizə üçün avtomatik sistemin yaradılması (fırıldaqçılıq)

Son altı aya yaxındır ki, bunun üçün heç bir ilkin infrastruktur olmadan fırıldaqçılıqla (fırıldaqçılıq, fırıldaqçılıq və s.) mübarizə sistemi yaradıram. Sistemimizdə tapdığımız və tətbiq etdiyimiz bugünkü ideyalar bizə bir çox saxtakarlığı aşkar edib təhlil etməyə kömək edir. Bu yazıda texniki hissəyə keçmədən əməl etdiyimiz prinsiplər və sistemimizin hazırkı vəziyyətinə nail olmaq üçün nələr etdiyimiz barədə danışmaq istərdim.

Sistemimizin prinsipləri

"Avtomatik" və "fırıldaqçılıq" kimi terminləri eşidəndə çox güman ki, Apache Foundation ekosistemində və Data Science sahəsində maşın öyrənməsi, Apache Spark, Hadoop, Python, Airflow və digər texnologiyalar haqqında düşünməyə başlayırsınız. Düşünürəm ki, bu alətlərdən istifadənin adətən qeyd olunmayan bir aspekti var: onlardan istifadə etməzdən əvvəl müəssisə sisteminizdə müəyyən ilkin şərtlərin olması tələb olunur. Bir sözlə, sizə məlumat gölü və saxlama daxil olan müəssisə məlumat platforması lazımdır. Bəs sizin belə bir platformanız yoxdursa və hələ də bu təcrübəni inkişaf etdirməyə ehtiyacınız varsa nə etməli? Aşağıda təsvir etdiyim aşağıdakı prinsiplər bizə işlək bir ideya tapmaqdansa, fikirlərimizi təkmilləşdirməyə fokuslana biləcəyimiz nöqtəyə çatmağa kömək etdi. Lakin bu, layihənin “platosu” deyil. Planda texnoloji və məhsul baxımından daha çox şeylər var.

Prinsip 1: İlk olaraq Biznes Dəyəri

Biz bütün səylərimizdə “biznes dəyərini” ön plana çəkirik. Ümumiyyətlə, istənilən avtomatik analiz sistemi yüksək səviyyəli avtomatlaşdırma və texniki mürəkkəbliyə malik mürəkkəb sistemlər qrupuna aiddir. Tam bir həll yaratmaq, onu sıfırdan yaratsanız, çox vaxt aparacaq. Biz iş dəyərini birinci, texnoloji yetkinliyi ikinci yerə qoymaq qərarına gəldik. Real həyatda bu o deməkdir ki, biz qabaqcıl texnologiyanı dogma kimi qəbul etmirik. Hazırda bizim üçün ən uyğun olan texnologiyanı seçirik. Vaxt keçdikcə bəzi modulları yenidən tətbiq etməli olduğumuz görünə bilər. Bu, qəbul etdiyimiz kompromisdir.

Prinsip 2: Artırılmış intellekt

Əminəm ki, maşın öyrənmə həllərinin hazırlanmasında dərindən iştirak etməyən insanların çoxu düşünə bilər ki, insan əvəzlənməsi məqsəddir. Əslində, maşın öyrənmə həlləri mükəmməllikdən uzaqdır və yalnız müəyyən sahələrdə dəyişdirilə bilər. Biz bu ideyadan bir neçə səbəbə görə imtina etdik: fırıldaqçılıq fəaliyyəti ilə bağlı balanssız məlumatlar və maşın öyrənmə modelləri üçün xüsusiyyətlərin tam siyahısını təqdim edə bilməmək. Bunun əksinə olaraq, biz artırılmış intellekt variantını seçdik. Bu süni intellektin alternativ konsepsiyasıdır ki, əsas diqqət süni intellektin dəstəkləyici roluna yönəlib, idrak texnologiyalarının insan intellektini əvəz etmək deyil, artırmaq üçün nəzərdə tutulduğunu vurğulayır. [1]

Bunu nəzərə alaraq, başlanğıcdan tam bir maşın öyrənmə həllini inkişaf etdirmək biznesimiz üçün dəyər yaratmağı gecikdirəcək böyük səy tələb edəcək. Domen ekspertlərimizin rəhbərliyi altında maşın öyrənməsinin iterativ şəkildə artan aspekti olan bir sistem qurmaq qərarına gəldik. Belə bir sistemin işlənib hazırlanmasının çətin tərəfi ondan ibarətdir ki, o, analitiklərimizə təkcə bunun fırıldaqçılıq olub-olmaması baxımından nümunə araşdırmaları təqdim etməlidir. Ümumiyyətlə, müştərilərin davranışında hər hansı bir anomaliya mütəxəssislərin araşdırmalı və bir şəkildə cavab verməli olduğu şübhəli bir haldır. Bu qeydə alınmış halların yalnız bir neçəsi həqiqətən də fırıldaqçılıq kimi təsnif edilə bilər.

Prinsip 3: Zəngin Analitika Platforması

Sistemimizin ən çətin hissəsi sistemin iş axınının başdan sona yoxlanılmasıdır. Analitiklər və tərtibatçılar təhlil üçün istifadə edilmiş bütün göstəricilərlə tarixi məlumat dəstlərini asanlıqla əldə etməlidirlər. Bundan əlavə, məlumat platforması mövcud göstəricilər toplusunu yenisi ilə tamamlamaq üçün asan bir yol təqdim etməlidir. Yaratdığımız proseslər və bunlar sadəcə proqram təminatı prosesləri deyil, əvvəlki dövrləri yenidən hesablamağı, yeni ölçüləri əlavə etməyi və məlumat proqnozunu dəyişməyi asanlaşdırmalıdır. İstehsal sistemimizin yaratdığı bütün məlumatları toplamaqla buna nail ola bilərik. Belə olan halda, məlumatlar tədricən maneəyə çevriləcək. İstifadə etmədiyimiz artan məlumat miqdarını saxlamalı və onları qorumalıyıq. Belə bir ssenaridə məlumatlar zaman keçdikcə daha çox əhəmiyyətsiz olacaq, lakin hələ də onu idarə etmək üçün səylərimizi tələb edir. Bizim üçün məlumatların yığılmasının mənası yox idi və biz fərqli yanaşmadan istifadə etmək qərarına gəldik. Biz təsnif etmək istədiyimiz obyektlər ətrafında real vaxt rejimində məlumat anbarlarını təşkil etmək və yalnız ən son və ən yeni dövrləri yoxlamağa imkan verən məlumatları saxlamaq qərarına gəldik. Bu səyin çətinliyi ondan ibarətdir ki, sistemimiz ardıcıl şəkildə işləmək üçün diqqətli planlaşdırma tələb edən çoxsaylı məlumat anbarları və proqram modulları ilə heterojendir.

Sistemimizin dizayn konsepsiyaları

Sistemimizdə dörd əsas komponent var: qəbuletmə sistemi, hesablama sistemi, BI analizi və izləmə sistemi. Onlar xüsusi təcrid olunmuş məqsədlərə xidmət edir və biz müəyyən inkişaf yanaşmalarına əməl etməklə onları təcrid edirik.

Sayta müdaxilə edənlərlə mübarizə üçün avtomatik sistemin yaradılması (fırıldaqçılıq)

Müqavilə əsasında dizayn

Əvvəla, biz razılaşdıq ki, komponentlər yalnız onlar arasında ötürülən müəyyən məlumat strukturlarına (müqavilələrə) etibar etməlidirlər. Bu, onların arasında inteqrasiyanı asanlaşdırır və komponentlərin müəyyən bir tərkibini (və nizamını) tətbiq etmir. Məsələn, bəzi hallarda bu, bizə qəbuledici sistemi xəbərdarlıq izləmə sistemi ilə birbaşa inteqrasiya etməyə imkan verir. Bu halda, bu, razılaşdırılmış bildiriş müqaviləsinə uyğun olaraq həyata keçiriləcək. Bu o deməkdir ki, hər iki komponent hər hansı digər komponentin istifadə edə biləcəyi müqavilədən istifadə etməklə inteqrasiya olunacaq. Daxiletmə sistemindən izləmə sisteminə xəbərdarlıq əlavə etmək üçün əlavə müqavilə əlavə etməyəcəyik. Bu yanaşma əvvəlcədən müəyyən edilmiş minimum sayda müqavilələrin istifadəsini tələb edir və sistemi və rabitəni sadələşdirir. Əsasən, biz "Müqavilənin İlk Dizaynı" adlı bir yanaşma tətbiq edirik və onu axın müqavilələrinə tətbiq edirik. [2]

Hər yerdə axın

Sistemdə dövlətin saxlanması və idarə olunması istər-istəməz onun həyata keçirilməsində fəsadlara gətirib çıxaracaq. Ümumiyyətlə, dövlət istənilən komponentdən əlçatan olmalıdır, o, ardıcıl olmalı və bütün komponentlər üzrə ən müasir dəyəri təmin etməli və düzgün dəyərlərlə etibarlı olmalıdır. Bundan əlavə, ən son vəziyyəti əldə etmək üçün davamlı yaddaşa zənglərin olması I/O miqdarını və real vaxt boru kəmərlərimizdə istifadə olunan alqoritmlərin mürəkkəbliyini artıracaq. Bu səbəbdən biz dövlət yaddaşını mümkünsə sistemimizdən tamamilə silmək qərarına gəldik. Bu yanaşma bütün lazımi məlumatların ötürülən məlumat vahidinə (mesajına) daxil edilməsini tələb edir. Məsələn, bəzi müşahidələrin ümumi sayını (müəyyən xüsusiyyətlərə malik əməliyyatların və ya halların sayını) hesablamaq lazım gələrsə, onu yaddaşda hesablayırıq və belə dəyərlər axını yaradırıq. Asılı modullar axını obyektlər üzrə bölmək və ən son dəyərlər üzərində işləmək üçün bölmə və qruplaşdırmadan istifadə edəcək. Bu yanaşma bu cür məlumatlar üçün davamlı disk yaddaşına ehtiyacı aradan qaldırdı. Sistemimiz Kafkadan mesaj brokeri kimi istifadə edir və KSQL ilə verilənlər bazası kimi istifadə edilə bilər. [3] Lakin ondan istifadə bizim həllimizi Kafka ilə güclü şəkildə bağlayacaq və biz ondan istifadə etməmək qərarına gəldik. Seçdiyimiz yanaşma sistemdə böyük daxili dəyişikliklər etmədən Kafkanı başqa bir mesaj brokeri ilə əvəz etməyə imkan verir.

Bu konsepsiya disk saxlama və verilənlər bazalarından istifadə etməməyimiz demək deyil. Sistemin işini yoxlamaq və təhlil etmək üçün müxtəlif göstəriciləri və vəziyyətləri təmsil edən əhəmiyyətli miqdarda məlumatı diskdə saxlamalıyıq. Burada vacib məqam real vaxt alqoritmlərinin belə məlumatlardan asılı olmamasıdır. Əksər hallarda biz sistem tərəfindən yaradılan xüsusi halların və nəticələrin oflayn təhlili, sazlanması və izlənilməsi üçün yadda saxlanılan məlumatları istifadə edirik.

Sistemimizdəki problemlər

Müəyyən problemlər var ki, biz onları müəyyən səviyyədə həll etmişik, lakin onlar daha düşünülmüş həllər tələb edir. Hələlik mən onları burada qeyd etmək istərdim, çünki hər bir maddə öz məqaləsinə dəyər.

  • Biz hələ də məlumatların avtomatlaşdırılmış təhlili, kəşfi və tədqiqi üçün mənalı və müvafiq məlumatların yaradılmasına kömək edən proseslər və siyasətləri müəyyən etməliyik.
  • Sistemin ən son məlumatlarla yeniləməsi üçün avtomatik tənzimləmə prosesində bir şəxs tərəfindən analiz nəticələrinin təqdim edilməsi. Bu, təkcə modelimizi yeniləmək deyil, həm də proseslərimizi yeniləmək və məlumatlarımızı daha yaxşı başa düşməkdir.
  • IF-ELSE və ML-nin deterministik yanaşması arasında tarazlığın tapılması. Biri dedi: "ML çarəsizlər üçün bir vasitədir." Bu o deməkdir ki, alqoritmlərinizi necə optimallaşdırmağı və təkmilləşdirməyi artıq başa düşmədiyiniz zaman ML-dən istifadə etmək istəyəcəksiniz. Digər tərəfdən, deterministik yanaşma nəzərdə tutulmayan anomaliyaları aşkar etməyə imkan vermir.
  • Bizə fərziyyələrimizi və ya verilənlərdəki ölçülər arasında əlaqəni yoxlamaq üçün asan bir yola ehtiyacımız var.
  • Sistem çox səviyyəli həqiqi müsbət nəticələrə malik olmalıdır. Fırıldaqçılıq halları sistem üçün müsbət hesab edilə bilən bütün halların yalnız bir hissəsidir. Məsələn, analitiklər bütün şübhəli işləri nəzərdən keçirmək üçün almaq istəyirlər və onların yalnız kiçik bir hissəsi saxtakarlıqdır. Sistem analitiklərə real fırıldaqçılıq və ya sadəcə şübhəli davranış olsun, bütün halları effektiv şəkildə təqdim etməlidir.
  • Məlumat platforması yaradılan və hesablanan hesablamalarla tarixi məlumat dəstlərini əldə edə bilməlidir.
  • Sistem komponentlərindən hər hansı birinin ən azı üç müxtəlif mühitdə sadə və avtomatik yerləşdirilməsi: istehsal, eksperimental (beta) və tərtibatçılar üçün.
  • Və son olaraq. Biz modellərimizi təhlil edə biləcəyimiz geniş müqayisəli platforma yaratmalıyıq. [4]

References

  1. Artırılmış İntellekt nədir?
  2. API-First Dizayn Metodologiyasının həyata keçirilməsi
  3. Kafka "Hadisə axını verilənlər bazasına" çevrilir
  4. AUC-ROC əyrisini başa düşmək

Mənbə: www.habr.com

Добавить комментарий