Сайттагы бузукулар менен күрөшүү үчүн автоматтык системаны түзүү (алдамчылык)

Акыркы алты ай бою мен бул үчүн эч кандай баштапкы инфраструктурасы жок алдамчылык (алдамчылык, алдамчылык ж.б.) менен күрөшүү системасын түзүп жатам. Биздин тутумубузда тапкан жана ишке ашырган бүгүнкү идеяларыбыз көптөгөн алдамчылык аракеттерди аныктоого жана анализдөөгө жардам берет. Бул макалада мен техникалык бөлүккө кирбестен, биз карманган принциптер жана системабыздын азыркы абалына жетүү үчүн эмне кылганыбыз жөнүндө айткым келет.

Биздин системанын принциптери

"Автоматтык" жана "алдамчылык" сыяктуу терминдерди укканда, сиз Apache Foundation экосистемасынан жана Data Science тармагынан машина үйрөнүү, Apache Spark, Hadoop, Python, Airflow жана башка технологиялар жөнүндө ойлоно баштайсыз. Менимче, бул куралдарды колдонуунун адатта айтылбай турган бир аспектиси бар: аларды колдонуудан мурун алар сиздин ишкана тутумуңузда белгилүү бир шарттарды талап кылат. Кыскасы, сизге маалымат көлү жана кампа камтылган ишкана маалымат платформасы керек. Бирок, эгер сизде мындай платформа жок болсо жана дагы эле бул практиканы иштеп чыгуу керек болсочу? Төмөндө мен бөлүшө турган принциптер бизге ылайыктуу идеяны табууга эмес, өз идеяларыбызды жакшыртууга көңүл бура турган чекитке жетүүгө жардам берди. Бирок, бул долбоор платосу эмес. Планда техноло-гиялык жана продукцнялык жактан али кеп нерселер бар.

1-принцип: Биринчиден бизнестин баалуулугу

Биз бардык аракеттерибизде «бизнес баалуулугун» биринчи орунга коёбуз. Жалпысынан алганда, ар кандай автоматтык талдоо системасы автоматташтыруу жана техникалык татаалдыгы жогорку деңгээлдеги татаал системалардын тобуна кирет. Эгер сиз аны нөлдөн баштап түзсөңүз, толук чечимди түзүү көп убакытты талап кылат. Биз бизнестин баалуулугун биринчи, технологиялык толуктукту экинчи орунга коюуну чечтик. Реалдуу жашоодо бул биз алдыңкы технологияны догма катары кабыл албай турганыбызды билдирет. Биз учурда өзүбүзгө эң ылайыктуу технологияны тандайбыз. Убакыттын өтүшү менен, кээ бир модулдарды кайра ишке ашырууга туура келет окшойт. Бул биз кабыл алган компромисс.

Принцип 2: Көбөйтүлгөн интеллект

Мен машинаны үйрөнүү чечимдерин иштеп чыгууга терең катышпаган адамдардын көбү адамдарды алмаштыруу максат деп ойлошу мүмкүн деп ишенем. Чынында, машинаны үйрөнүү чечимдери идеалдуу эмес жана кээ бир аймактарда гана алмаштыруу мүмкүн. Биз бул идеяны башынан эле бир нече себептерден улам четке какканбыз: алдамчылык аракеттер боюнча балансталбаган маалыматтар жана машина үйрөнүү моделдери үчүн функциялардын толук тизмесин бере албагандыгы. Ал эми биз интеллекттин күчөтүлгөн вариантын тандадык. Бул жасалма интеллекттин альтернативалуу концепциясы, ал AIнын көмөкчү ролуна басым жасап, когнитивдик технологиялар адамдын интеллектин алмаштырууга эмес, жогорулатууга багытталгандыгын баса белгилейт. [1]

Муну эске алганда, машинаны үйрөнүүнүн толук чечимин башынан баштап иштеп чыгуу чоң күч-аракетти талап кылат, бул биздин бизнес үчүн баалуулукту түзүүнү кечеңдетет. Биз домен боюнча эксперттерибиздин жетекчилиги астында итеративдик өскөн машина үйрөнүү аспектиси менен системаны курууну чечтик. Мындай системаны иштеп чыгуунун татаал бөлүгү, ал биздин аналитиктерге ал алдамчылык аракетпи же жокпу деген жагдайларды гана эмес, көрсөтүүсү керек. Жалпысынан алганда, кардарлардын жүрүм-турумундагы ар кандай аномалия адистер кандайдыр бир иликтөө жана жооп бериши керек болгон шектүү окуя болуп саналат. Бул билдирилген иштердин бир бөлүгү гана чындап алдамчылык катары классификацияланышы мүмкүн.

3-принцип: Rich Analytics Platform

Биздин системанын эң татаал бөлүгү бул системанын иштөө процессин аягына чейин текшерүү. Аналитиктер жана иштеп чыгуучулар талдоо үчүн колдонулган бардык көрсөткүчтөр менен тарыхый маалыматтар топтомун оңой эле алыш керек. Кошумчалай кетсек, маалымат платформасы учурдагы көрсөткүчтөрдү жаңылары менен толуктоо үчүн жеңил жолду камсыз кылышы керек. Биз түзгөн процесстер, бул жөн гана программалык процесстер эмес, мурунку мезгилдерди оңой кайра эсептөөгө, жаңы метрикаларды кошууга жана маалыматтардын болжолун өзгөртүүгө мүмкүндүк бериши керек. Биз буга өндүрүш системабыз түзгөн бардык маалыматтарды топтоо аркылуу жетише алабыз. Бул учурда, маалыматтар бара-бара түйшүк болуп калат. Биз колдонбогон маалыматтардын өсүп жаткан көлөмүн сактап, аларды коргошубуз керек. Мындай сценарийде маалыматтар убакыттын өтүшү менен көбүрөөк мааниге ээ болбой калат, бирок дагы эле аны башкаруу үчүн биздин күч-аракетибизди талап кылат. Биз үчүн маалыматтарды топтоо мааниси жок болчу, ошондуктан биз башка ыкманы колдонууну чечтик. Биз классификациялоону каалаган максаттуу объекттердин айланасында реалдуу убакыт режиминде маалымат дүкөндөрүн уюштурууну чечтик жана эң акыркы жана тиешелүү мезгилдерди текшерүүгө мүмкүндүк берген гана маалыматтарды сактоону чечтик. Бул аракеттин кыйынчылыгы - биздин система гетерогендүү, бир нече маалымат кампалары жана ырааттуу иштөө үчүн кылдат пландаштырууну талап кылган программалык модулдар.

Биздин системанын концепциялары

Биздин системада төрт негизги компонент бар: жутуу системасы, эсептөө, BI талдоо жана көзөмөлдөө системасы. Алар конкреттүү, обочолонгон максаттарга кызмат кылышат жана биз аларды конкреттүү долбоорлоо ыкмаларын колдонуу менен обочолонуп турабыз.

Сайттагы бузукулар менен күрөшүү үчүн автоматтык системаны түзүү (алдамчылык)

Келишимге негизделген дизайн

Биринчиден, биз компоненттери алардын ортосунда өткөн белгилүү бир маалымат структураларына (келишимдерге) гана таянышы керек деп макулдаштык. Бул алардын ортосунда интеграциялоону жеңилдетет жана компоненттердин белгилүү бир курамын (жана тартибин) таңуулабайт. Мисалы, кээ бир учурларда бул бизге сигналды көзөмөлдөө системасы менен кабыл алуу системасын түздөн-түз интеграциялоого мүмкүндүк берет. Мындай учурда бул макулдашылган эскертүү келишимине ылайык жүргүзүлөт. Бул эки компонент тең башка компонент колдоно ала турган келишимди колдонуу менен бириктирилет дегенди билдирет. Киргизүү тутумунан байкоо тутумуна эскертүүлөрдү кошуу үчүн кошумча келишимди кошпойбуз. Бул ыкма келишимдердин алдын ала белгиленген минималдуу санын колдонууну талап кылат жана системаны жана байланыштарды жөнөкөйлөтөт. Негизи, биз "Контракттын биринчи дизайны" деп аталган ыкманы колдонобуз жана аны агымдык келишимдерге колдонобуз. [2]

Бардык жерде агым

Системада абалды сактоо жана башкаруу сөзсүз түрдө аны ишке ашырууда кыйынчылыктарга алып келет. Жалпысынан алганда, мамлекет ар кандай компоненттен жеткиликтүү болушу керек, ал ырааттуу болушу керек жана бардык компоненттер боюнча эң учурдагы маанини бериши керек жана туура маанилер менен ишенимдүү болушу керек. Кошумчалай кетсек, акыркы абалды алуу үчүн туруктуу сактагычка чалуулардын болушу I/O операцияларынын санын жана реалдуу убакыт түтүктөрүбүздө колдонулган алгоритмдердин татаалдыгын жогорулатат. Ушундан улам биз мамлекеттик сактагычты, мүмкүн болсо, системабыздан толугу менен алып салууну чечтик. Бул ыкма бардык керектүү маалыматтарды берилүүчү маалымат блогуна (билдирүү) киргизүүнү талап кылат. Мисалы, кээ бир байкоолордун жалпы санын (белгилүү мүнөздөмөлөргө ээ болгон операциялардын же учурлардын санын) эсептөө керек болсо, биз аны эс тутумда эсептеп, ушундай маанилердин агымын түзөбүз. Көз каранды модулдар агымды объекттерге бөлүү жана эң акыркы баалуулуктар боюнча иштөө үчүн бөлүүнү жана топтоону колдонот. Бул ыкма мындай маалыматтар үчүн туруктуу диск сактагычка ээ болуу зарылдыгын жок кылды. Биздин система Кафканы билдирүү брокери катары колдонот жана аны KSQL менен маалымат базасы катары колдонсо болот. [3] Бирок аны колдонуу биздин чечимибизди Кафка менен тыгыз байланыштырмак жана биз аны колдонбоону чечтик. Биз тандаган ыкма бизге Кафканы башка билдирүү брокери менен алмаштырууга мүмкүндүк берет, системада олуттуу ички өзгөрүүлөр жок.

Бул түшүнүк биз диск сактагычты жана маалымат базаларын колдонбойбуз дегенди билдирбейт. Системанын иштешин текшерүү жана талдоо үчүн биз дискте ар кандай көрсөткүчтөрдү жана абалдарды чагылдырган олуттуу көлөмдөгү маалыматтарды сакташыбыз керек. Бул жерде маанилүү жагдай - реалдуу убакыт алгоритмдери мындай маалыматтарга көз каранды эмес. Көпчүлүк учурларда биз сакталган маалыматтарды оффлайн талдоо, мүчүлүштүктөрдү оңдоо жана система чыгарган конкреттүү учурларды жана натыйжаларды көзөмөлдөө үчүн колдонобуз.

Биздин системанын көйгөйлөрү

Белгилүү бир деңгээлде биз чечкен көйгөйлөр бар, бирок алар тереңирээк ойлонулган чечимдерди талап кылат. Эми мен бул жерде аларды жөн эле айтып кетким келет, анткени ар бир пункт өзүнүн макаласына арзыйт.

  • Биз дагы деле автоматташтырылган маалыматтарды талдоо, ачуу жана чалгындоо үчүн маанилүү жана тиешелүү маалыматтардын топтолушун колдогон процесстерди жана саясаттарды аныкташыбыз керек.
  • Адамдын анализинин натыйжаларын системаны акыркы маалыматтар менен жаңыртуу үчүн автоматтык түрдө орнотуу процессине киргизүү. Бул биздин моделибизди жаңыртуу гана эмес, процесстерибизди жаңылоо жана маалыматтарыбызды түшүнүүбүздү жакшыртуу.
  • IF-ELSE жана ML детерминисттик мамилесинин ортосундагы балансты табуу. Кимдир бирөө: "ML - айласыздардын куралы" деди. Бул алгоритмдериңизди кантип оптималдаштырууну жана жакшыртууну түшүнбөй калганыңызда MLди колдонгуңуз келет дегенди билдирет. Экинчи жагынан, детерминисттик ыкма күтүлбөгөн аномалияларды аныктоого мүмкүндүк бербейт.
  • Бизге гипотезаларды же маалыматтардагы метрикалардын ортосундагы корреляцияларды текшерүү үчүн жөнөкөй жол керек.
  • Системада чыныгы оң натыйжалардын бир нече деңгээли болушу керек. Алдамчылык учурлары система үчүн оң деп эсептелген бардык иштердин бир бөлүгү гана. Мисалы, талдоочулар текшерүү үчүн бардык шектүү иштерди алууну каалашат жана алардын аз гана бөлүгү алдамчылык болуп саналат. Система, бул иш жүзүндө алдамчылыкпы же жөн эле шектүү жүрүм-турумбу, карабастан, бардык учурларды талдоочуларга натыйжалуу көрсөтүшү керек.
  • Маалымат платформасы түз жана эсептелген эсептөөлөр менен тарыхый маалымат топтомдорун ала алышы керек.
  • Жок дегенде үч түрдүү чөйрөдө тутум компоненттеринин каалаганын оңой жана автоматтык түрдө жайгаштырыңыз: өндүрүштүк, эксперименталдык (бета) жана иштеп чыгуучулар үчүн.
  • Жана акыркы, бирок жок дегенде эмес. Биз моделдерибизди талдай турган бай натыйжалуу тестирлөө платформасын түзүшүбүз керек. [4]

шилтемелер

  1. Augmented Intelligence деген эмне?
  2. API-биринчи долбоорлоо методологиясын ишке ашыруу
  3. Кафка "Окуя агымынын маалымат базасына" айланууда
  4. AUC - ROC ийри сызыгын түшүнүү

Source: www.habr.com

Комментарий кошуу