වෙබ් අඩවියට අනවසරයෙන් ඇතුළුවන්නන්ට එරෙහිව සටන් කිරීම සඳහා ස්වයංක්‍රීය පද්ධතියක් නිර්මාණය කිරීම (වංචා)

පසුගිය මාස හයක පමණ කාලයක සිට මේ සඳහා කිසිදු මූලික යටිතල පහසුකම් නොමැතිව වංචා (වංචනික ක්‍රියාකාරකම්, වංචා, ආදිය) මැඩලීමේ ක්‍රමවේදයක් මම නිර්මාණය කරමින් සිටිමි. අපගේ පද්ධතිය තුළ අප විසින් සොයාගෙන ක්‍රියාත්මක කරන ලද අද දින අදහස් බොහෝ වංචනික ක්‍රියාකාරකම් හඳුනා ගැනීමට සහ විශ්ලේෂණය කිරීමට උපකාරී වේ. මෙම ලිපියෙන් මම තාක්ෂණික කොටස ගැන සොයා බැලීමකින් තොරව අපගේ පද්ධතියේ වර්තමාන තත්ත්වය සාක්ෂාත් කර ගැනීම සඳහා අප අනුගමනය කළ මූලධර්ම සහ අප කළ දේ ගැන කතා කිරීමට කැමැත්තෙමි.

අපගේ පද්ධතියේ මූලධර්ම

ඔබට "ස්වයංක්‍රීය" සහ "වංචා" වැනි යෙදුම් ඇසෙන විට ඔබ බොහෝ විට යන්ත්‍ර ඉගෙනීම, Apache Spark, Hadoop, Python, Airflow සහ Apache Foundation පරිසර පද්ධතියේ සහ දත්ත විද්‍යා ක්ෂේත්‍රයේ අනෙකුත් තාක්ෂණයන් ගැන සිතීමට පටන් ගනී. මෙම මෙවලම් භාවිතයේ සාමාන්‍යයෙන් සඳහන් නොවන එක් අංගයක් ඇතැයි මම සිතමි: ඔබට ඒවා භාවිතා කිරීමට පෙර ඔබේ ව්‍යවසාය පද්ධතියේ යම් යම් පූර්වාවශ්‍යතා තිබීම අවශ්‍ය වේ. කෙටියෙන් කිවහොත්, ඔබට දත්ත විලක් සහ ගබඩාවක් ඇතුළත් ව්‍යවසාය දත්ත වේදිකාවක් අවශ්‍ය වේ. නමුත් ඔබට එවැනි වේදිකාවක් නොමැති නම් සහ තවමත් මෙම පරිචය වර්ධනය කිරීමට අවශ්‍ය නම් කුමක් කළ යුතුද? මම පහත විස්තර කරන පහත සඳහන් මූලධර්ම, වැඩ කරන එකක් සොයා ගැනීමට වඩා අපගේ අදහස් වැඩිදියුණු කිරීම කෙරෙහි අවධානය යොමු කළ හැකි ස්ථානයට පැමිණීමට අපට උපකාර කර ඇත. කෙසේ වෙතත්, මෙය ව්යාපෘතියේ "සානුවක්" නොවේ. තාක්ෂණික සහ නිෂ්පාදන දෘෂ්ටි කෝණයෙන් සැලසුමේ තවත් බොහෝ දේ ඇත.

මූලධර්මය 1: ව්‍යාපාර වටිනාකම පළමුව

අපි අපගේ සියලු උත්සාහයන්හිදී "ව්‍යාපාර වටිනාකම" ප්‍රමුඛස්ථානයට තබමු. පොදුවේ ගත් කල, ඕනෑම ස්වයංක්‍රීය විශ්ලේෂණ පද්ධතියක් ඉහළ මට්ටමේ ස්වයංක්‍රීයකරණයක් සහ තාක්ෂණික සංකීර්ණතාවයක් ඇති සංකීර්ණ පද්ධති සමූහයට අයත් වේ. ඔබ එය මුල සිටම නිර්මාණය කළහොත් සම්පූර්ණ විසඳුමක් නිර්මාණය කිරීම සඳහා බොහෝ කාලයක් ගතවනු ඇත. අපි තීරණය කළා ව්‍යාපාර වටිනාකමට මුල් තැන දෙන්න සහ තාක්ෂණික පරිණතභාවය දෙවැනි කරන්න. සැබෑ ජීවිතයේ දී, මෙයින් අදහස් කරන්නේ අපි දියුණු තාක්ෂණය ප්‍රවාදයක් ලෙස පිළිගන්නේ නැති බවයි. මේ මොහොතේ අපට වඩාත් ගැලපෙන තාක්ෂණය අපි තෝරා ගනිමු. කාලයාගේ ඇවෑමෙන්, අපට සමහර මොඩියුල නැවත ක්‍රියාත්මක කිරීමට සිදුවනු ඇති බව පෙනේ. මේක තමයි අපි පිළිගත්ත සම්මුතිය.

මූලධර්මය 2: වැඩි දියුණු කළ බුද්ධිය

යන්ත්‍ර ඉගෙනුම් විසඳුම් සංවර්ධනය කිරීමෙහි ගැඹුරින් සම්බන්ධ නොවන බොහෝ අය මිනිස් ප්‍රතිස්ථාපන ඉලක්කය යැයි සිතිය හැකි බව මම ඔට්ටු අල්ලමි. ඇත්ත වශයෙන්ම, යන්ත්‍ර ඉගෙනීමේ විසඳුම් පරිපූර්ණ නොවන අතර ප්‍රතිස්ථාපනය කළ හැක්කේ ඇතැම් ප්‍රදේශවල පමණි. හේතු කිහිපයක් නිසා අපි මෙම අදහස මුල සිටම අත්හැර දැමුවෙමු: වංචනික ක්‍රියාකාරකම් පිළිබඳ අසමතුලිත දත්ත සහ යන්ත්‍ර ඉගෙනුම් ආකෘති සඳහා සම්පූර්ණ විශේෂාංග ලැයිස්තුවක් සැපයීමට නොහැකි වීම. ඊට වෙනස්ව, අපි වැඩි දියුණු කළ බුද්ධි විකල්පය තෝරා ගත්තෙමු. මෙය කෘතිම බුද්ධියේ විකල්ප සංකල්පයක් වන අතර එය AI හි සහායක භූමිකාව කෙරෙහි අවධානය යොමු කරයි, සංජානන තාක්ෂණයන් නිර්මාණය කර ඇත්තේ මානව බුද්ධිය වැඩිදියුණු කිරීමට මිස එය ප්‍රතිස්ථාපනය කිරීමට නොවන බව අවධාරණය කරයි. [1]

මෙය මනසේ තබාගෙන, ආරම්භයේ සිටම සම්පූර්ණ යන්ත්‍ර ඉගෙනීමේ විසඳුමක් සංවර්ධනය කිරීම සඳහා අපගේ ව්‍යාපාරය සඳහා වටිනාකමක් නිර්මාණය කිරීම ප්‍රමාද කරන විශාල උත්සාහයක් අවශ්‍ය වේ. අපගේ වසම් විශේෂඥයින්ගේ මගපෙන්වීම යටතේ යන්ත්‍ර ඉගෙනීමේ පුනරාවර්තන ලෙස වර්ධනය වන අංගයක් සහිත පද්ධතියක් ගොඩනැගීමට අපි තීරණය කළෙමු. එවැනි පද්ධතියක් සංවර්ධනය කිරීමේ උපක්‍රමශීලී කොටස නම්, මෙය වංචනික ක්‍රියාකාරකමක්ද නැද්ද යන්න සම්බන්ධයෙන් පමණක් නොව අපගේ විශ්ලේෂකයින්ට සිද්ධි අධ්‍යයනයන් ලබා දීමට සිදු වීමයි. සාමාන්යයෙන්, ගනුදෙනුකරුවන්ගේ හැසිරීම් වල කිසියම් විෂමතාවයක් විශේෂඥයින් විසින් විමර්ශනය කර කෙසේ හෝ ප්රතිචාර දැක්විය යුතු සැක සහිත නඩුවකි. මෙම වාර්තාගත සිද්ධිවලින් කිහිපයක් පමණක් වංචා ලෙස වර්ග කළ හැකිය.

මූලධර්මය 3: Rich Insights වේදිකාව

අපගේ පද්ධතියේ වඩාත්ම දුෂ්කර කොටස වන්නේ පද්ධතියේ කාර්ය ප්‍රවාහය අවසානයේ සිට අවසානය දක්වා සත්‍යාපනය කිරීමයි. විශ්ලේෂකයින් සහ සංවර්ධකයින් විශ්ලේෂණය සඳහා භාවිතා කරන ලද සියලුම ප්‍රමිතික සමඟ ඓතිහාසික දත්ත කට්ටල පහසුවෙන් ලබා ගත යුතුය. මීට අමතරව, දැනට පවතින දර්ශක කට්ටලයක් නව එකක් සමඟ අතිරේක කිරීමට දත්ත වේදිකාව පහසු මාර්ගයක් සැපයිය යුතුය. අපි නිර්මාණය කරන ක්‍රියාවලි, සහ මේවා මෘදුකාංග ක්‍රියාවලි පමණක් නොවේ, පෙර කාල පරිච්ඡේද නැවත ගණනය කිරීම, නව ප්‍රමිතික එකතු කිරීම සහ දත්ත පුරෝකථනය වෙනස් කිරීම පහසු කළ යුතුය. අපගේ නිෂ්පාදන පද්ධතිය උත්පාදනය කරන සියලුම දත්ත සමුච්චය කිරීමෙන් අපට මෙය සාක්ෂාත් කරගත හැකිය. එවැනි අවස්ථාවක, දත්ත ක්රමයෙන් බාධාවක් වනු ඇත. අප භාවිතා නොකරන වැඩිවන දත්ත ප්‍රමාණය ගබඩා කර ඒවා ආරක්ෂා කිරීමට අපට අවශ්‍ය වනු ඇත. එවැනි තත්වයක් තුළ, කාලයත් සමඟ දත්ත වඩ වඩාත් අනදාල වනු ඇත, නමුත් එය කළමනාකරණය කිරීමට අපගේ උත්සාහය තවමත් අවශ්‍ය වේ. අප සඳහා, දත්ත රැස් කිරීම අර්ථවත් නොවන අතර, අපි වෙනස් ප්රවේශයක් භාවිතා කිරීමට තීරණය කළා. අපට වර්ගීකරණය කිරීමට අවශ්‍ය ඉලක්කගත ආයතන වටා තත්‍ය කාලීන දත්ත ගබඩා සංවිධානය කිරීමට සහ අපට වඩාත්ම මෑතකාලීන සහ යාවත්කාලීන කාල පරිච්ඡේද පරීක්ෂා කිරීමට ඉඩ දෙන දත්ත පමණක් ගබඩා කිරීමට අපි තීරණය කළෙමු. මෙම ප්‍රයත්නය සමඟ ඇති අභියෝගය නම්, අපගේ පද්ධතිය බහු දත්ත ගබඩා සහ මෘදුකාංග මොඩියුල සමඟ විෂමජාතීය වීම, ඒවා ස්ථාවර ආකාරයකින් ක්‍රියා කිරීමට ප්‍රවේශමෙන් සැලසුම් කිරීම අවශ්‍ය වේ.

අපගේ පද්ධතියේ සැලසුම් සංකල්ප

අපගේ පද්ධතියේ ප්‍රධාන කොටස් හතරක් ඇත: ශරීරගත කිරීමේ පද්ධතියක්, පරිගණක පද්ධතියක්, BI විශ්ලේෂණයක් සහ ලුහුබැඳීමේ පද්ධතියක්. ඔවුන් නිශ්චිත හුදකලා අරමුණු සඳහා සේවය කරන අතර, ඇතැම් සංවර්ධන ප්‍රවේශයන් අනුගමනය කිරීමෙන් අපි ඒවා හුදකලා කර තබමු.

වෙබ් අඩවියට අනවසරයෙන් ඇතුළුවන්නන්ට එරෙහිව සටන් කිරීම සඳහා ස්වයංක්‍රීය පද්ධතියක් නිර්මාණය කිරීම (වංචා)

කොන්ත්රාත් පදනම මත නිර්මාණය

ප්‍රථමයෙන්ම, අපි එකඟ වූවේ සංරචක ඒවා අතර සම්මත වන ඇතැම් දත්ත ව්‍යුහයන් (කොන්ත්‍රාත්තු) මත පමණක් රඳා පැවතිය යුතු බවයි. මෙය ඒවා අතර ඒකාබද්ධ කිරීම පහසු කරවන අතර සංරචකවල නිශ්චිත සංයුතිය (සහ අනුපිළිවෙල) පැනවීම නොවේ. උදාහරණයක් ලෙස, සමහර අවස්ථාවල දී, මෙමගින් අපට ලබා ගැනීමේ පද්ධතිය සෘජුවම අනතුරු ඇඟවීමේ ලුහුබැඳීමේ පද්ධතිය සමඟ ඒකාබද්ධ කිරීමට ඉඩ සලසයි. එවැනි අවස්ථාවක, එකඟ වූ දැනුම්දීමේ කොන්ත්රාත්තුවට අනුව මෙය සිදු කරනු ලැබේ. මෙයින් අදහස් කරන්නේ වෙනත් ඕනෑම සංරචකයක් භාවිතා කළ හැකි කොන්ත්රාත්තුවක් භාවිතයෙන් සංරචක දෙකම ඒකාබද්ධ කරනු ඇති බවයි. අපි ආදාන පද්ධතියෙන් ලුහුබැඳීමේ පද්ධතියට ඇඟවීම් එක් කිරීමට අමතර ගිවිසුමක් එකතු නොකරමු. මෙම ප්‍රවේශය සඳහා කලින් තීරණය කළ අවම කොන්ත්‍රාත්තු සංඛ්‍යාවක් භාවිතා කිරීම අවශ්‍ය වන අතර පද්ධතිය සහ සන්නිවේදනය සරල කරයි. මූලික වශයෙන්, අපි "කොන්ත්‍රාත් පළමු නිර්මාණය" නමින් ප්‍රවේශයක් ගෙන එය ප්‍රවාහ ගිවිසුම් සඳහා යොදන්නෙමු. [2]

සෑම තැනකම ප්‍රවාහය

පද්ධතිය තුළ රාජ්යය සුරැකීම සහ කළමනාකරණය කිරීම අනිවාර්යයෙන්ම එය ක්රියාත්මක කිරීමේදී සංකූලතා ඇති කරයි. සාමාන්‍යයෙන්, ප්‍රාන්තය ඕනෑම සංරචකයකින් ප්‍රවේශ විය යුතුය, එය ස්ථාවර විය යුතු අතර සියලුම සංරචක හරහා වඩාත්ම යාවත්කාලීන අගය සැපයිය යුතු අතර එය නිවැරදි අගයන් සමඟ විශ්වාසදායක විය යුතුය. මීට අමතරව, නවතම තත්ත්වය ලබා ගැනීම සඳහා ස්ථීර ගබඩා කිරීමට ඇමතුම් තිබීම I/O ප්‍රමාණය සහ අපගේ තත්‍ය කාලීන නල මාර්ගවල භාවිතා වන ඇල්ගොරිතමවල සංකීර්ණත්වය වැඩි කරයි. මේ නිසා, හැකි නම්, අපගේ පද්ධතියෙන් සම්පූර්ණයෙන්ම ඉවත් කිරීමට අපි තීරණය කළෙමු. මෙම ප්රවේශය සම්ප්රේෂණය කරන ලද දත්ත ඒකකය (පණිවිඩය) තුළ අවශ්ය සියලු දත්ත ඇතුළත් කිරීම අවශ්ය වේ. උදාහරණයක් ලෙස, අපට සමහර නිරීක්ෂණවල සම්පූර්ණ සංඛ්‍යාව ගණනය කිරීමට අවශ්‍ය නම් (මෙහෙයුම් සංඛ්‍යාව හෝ ඇතැම් ලක්ෂණ සහිත අවස්ථා), අපි එය මතකයේ ගණනය කර එවැනි අගයන් ප්‍රවාහයක් ජනනය කරමු. යැපෙන මොඩියුලයන් විසින් ප්‍රවාහය ආයතන අනුව බෙදීමට සහ නවතම අගයන් මත ක්‍රියා කිරීමට කොටස් කිරීම සහ බැච් කිරීම භාවිතා කරනු ඇත. මෙම ප්‍රවේශය එවැනි දත්ත සඳහා අඛණ්ඩ තැටි ගබඩා කිරීමේ අවශ්‍යතාවය ඉවත් කළේය. අපගේ පද්ධතිය Kafka පණිවිඩ තැරැව්කරුවෙකු ලෙස භාවිතා කරන අතර එය KSQL සමඟ දත්ත ගබඩාවක් ලෙස භාවිතා කළ හැක. [3] නමුත් එය භාවිතා කිරීම අපගේ විසඳුම කෆ්කා සමඟ දැඩි ලෙස ගැටගැසෙනු ඇත, අපි එය භාවිතා නොකිරීමට තීරණය කළෙමු. අප විසින් තෝරාගෙන ඇති ප්රවේශය පද්ධතියට ප්රධාන අභ්යන්තර වෙනස්කම් නොමැතිව වෙනත් පණිවිඩ තැරැව්කරුවෙකු සමඟ Kafka වෙනුවට ආදේශ කිරීමට අපට ඉඩ සලසයි.

මෙම සංකල්පයෙන් අදහස් වන්නේ අප තැටි ගබඩා කිරීම සහ දත්ත සමුදායන් භාවිතා නොකරන බව නොවේ. පද්ධතියේ කාර්ය සාධනය පරීක්ෂා කිරීම සහ විශ්ලේෂණය කිරීම සඳහා, අපි විවිධ දර්ශක සහ ප්රාන්ත නියෝජනය කරන තැටියේ සැලකිය යුතු දත්ත ප්රමාණයක් ගබඩා කළ යුතුය. මෙහි ඇති වැදගත් කරුණ නම් තත්‍ය කාලීන ඇල්ගොරිතම එවැනි දත්ත මත රඳා නොපවතින බවයි. බොහෝ අවස්ථාවන්හිදී, අපි සුරකින ලද දත්ත නොබැඳි විශ්ලේෂණය, නිදොස්කරණය සහ පද්ධතිය නිපදවන විශේෂිත අවස්ථා සහ ප්‍රතිඵල ලුහුබැඳීම සඳහා භාවිතා කරමු.

අපගේ පද්ධතියේ ගැටළු

අපි යම් මට්ටමකට විසඳා ඇති සමහර ගැටලු ඇත, නමුත් ඒවාට වඩා කල්පනාකාරී විසඳුම් අවශ්ය වේ. දැනට, මම ඒවා මෙහි සඳහන් කිරීමට කැමතියි, මන්ද සෑම අයිතමයක්ම තමන්ගේම ලිපියක් වටී.

  • අපගේ ස්වයංක්‍රීය විශ්ලේෂණය, සොයා ගැනීම සහ දත්ත ගවේෂණය සඳහා අර්ථවත් සහ අදාළ දත්ත උත්පාදනය කිරීමට උපකාර වන ක්‍රියාවලි සහ ප්‍රතිපත්ති නිර්වචනය කිරීමට අපට තවමත් අවශ්‍ය වේ.
  • නවතම දත්ත සමඟ එය යාවත්කාලීන කිරීම සඳහා පද්ධතිය ස්වයංක්‍රීයව සුසර කිරීමේ ක්‍රියාවලියේදී පුද්ගලයෙකු විසින් විශ්ලේෂණයේ ප්‍රති results ල හඳුන්වා දීම. මෙය අපගේ ආකෘතියට යාවත්කාලීන කිරීමක් පමණක් නොව, අපගේ ක්‍රියාවලි සඳහා යාවත්කාලීන කිරීමක් සහ අපගේ දත්ත පිළිබඳ වඩා හොඳ අවබෝධයක් ද වේ.
  • IF-ELSE සහ ML හි නියතිවාදී ප්‍රවේශය අතර සමබරතාවයක් සොයා ගැනීම. යමෙක් මෙසේ පැවසීය: "ML යනු මංමුලා සහගත අයට මෙවලමකි." මෙයින් අදහස් කරන්නේ ඔබට ඔබේ ඇල්ගොරිතම ප්‍රශස්ත කිරීම සහ වැඩිදියුණු කරන්නේ කෙසේද යන්න තවදුරටත් නොතේරෙන විට ඔබට ML භාවිතා කිරීමට අවශ්‍ය වනු ඇති බවයි. අනෙක් අතට, නියතිවාදී ප්‍රවේශය අපේක්ෂා නොකළ විෂමතා හඳුනා ගැනීමට ඉඩ නොදේ.
  • දත්තවල ඇති ප්‍රමිතික අතර අපගේ උපකල්පන හෝ සහසම්බන්ධතා පරීක්ෂා කිරීමට අපට පහසු ක්‍රමයක් අවශ්‍ය වේ.
  • පද්ධතියට සැබෑ ධනාත්මක ප්‍රතිඵල බහු මට්ටම් තිබිය යුතුය. වංචා සිද්ධීන් යනු පද්ධතියට ධනාත්මක ලෙස සැලකිය හැකි සියලුම සිද්ධීන්ගෙන් කොටසක් පමණි. නිදසුනක් වශයෙන්, විශ්ලේෂකයින්ට සියලු සැක සහිත සිද්ධීන් සමාලෝචනය සඳහා ලබා ගැනීමට අවශ්‍ය වන අතර, ඒවායින් කුඩා කොටසක් පමණක් වංචාකාරී වේ. පද්ධතිය සැබෑ වංචාවක් හෝ සැක සහිත හැසිරීමක් වේවා, සියලු සිද්ධීන් සමඟ විශ්ලේෂකයින්ට ඵලදායී ලෙස සැපයිය යුතුය.
  • දත්ත වේදිකාවට පියාසර කරන ලද සහ ගණනය කරන ලද ගණනය කිරීම් සමඟ ඓතිහාසික දත්ත කට්ටල ලබා ගැනීමට හැකි විය යුතුය.
  • අවම වශයෙන් විවිධ පරිසර තුනක ඕනෑම පද්ධති සංරචක සරල සහ ස්වයංක්‍රීයව යෙදවීම: නිෂ්පාදනය, පර්යේෂණාත්මක (බීටා) සහ සංවර්ධකයින් සඳහා.
  • සහ අවසාන වශයෙන්. අපගේ ආකෘති විශ්ලේෂණය කළ හැකි පුළුල් මිණුම් සලකුණු වේදිකාවක් අප නිර්මාණය කළ යුතුය. [4]

යොමු

  1. ඔග්මන්ටඩ් බුද්ධිය යනු කුමක්ද?
  2. API-පළමු සැලසුම් ක්‍රමවේදයක් ක්‍රියාත්මක කිරීම
  3. කෆ්කා "සිදුවීම් ප්‍රවාහ දත්ත ගබඩාව" බවට පරිවර්තනය වීම
  4. AUC-ROC වක්‍රය අවබෝධ කර ගැනීම

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න