æ©æ¢°åŠç¿ã¯Yandex.Taxiã®èªåè»æ³šæãµã€ã¯ã«å
šäœã§äœ¿çšãããŠãããMLã®ãããã§æ©èœãããµãŒãã¹ã³ã³ããŒãã³ãã®æ°ã¯åžžã«å¢å ããŠããŸãã ããããåäžã«æ§ç¯ããã«ã¯ãå¥ã®ããã»ã¹ãå¿
èŠã§ããã Machine Learning and Data Analysis Serviceã®ãããã§ããRoman Khalkachevã¯ãããŒã¿ã®ååŠçãçç£ã«ãããã¢ãã«ã®äœ¿çšããããã¿ã€ãã³ã°ãµãŒãã¹ããã³é¢é£ããŒã«ã«ã€ããŠè©±ããŸããã
-ç§ã®æèŠã§ã¯ãããã€ãã®æ°ããäºæã¯ãããã€ãã®ç°¡åãªäŸã§èšããããšããããç°¡åã«ç¥èŠã§ããŸãã ãããã£ãŠãã¬ããŒãããã©ã€ã«ä¿ã€ããã«ãç§ãã¡ã解決ããããšããŠããã¿ã¹ã¯ã®1ã€ã«ã€ããŠè©±ãããšã«ããŸããã 圌女ã®äŸã䜿çšããŠããã®ããã«è¡åããçç±ã瀺ããŸãã
åé¡ãå®åŒåããŸãããã ãã€ã³ãAãããã€ã³ãBã«è¡ãå¿
èŠãããã¿ã¯ã·ãŒãŠãŒã¶ãŒãããŸãããŸãããã€ã³ãAãããã€ã³ãBã«ãããã®ãŠãŒã¶ãŒãå±ããæºåãã§ããŠãããã©ã€ããŒãããŸãããŠãŒã¶ãŒã«ã¯ãããã€ãã®å·ããããŸãã 圌ã¯ã¿ã¯ã·ãŒãåŒã³åºãããã€ã³ãAããã€ã³ãBãéè³ãªã©ãéžæããã¿ã¯ã·ãŒã®çéžãè¡ããä¹è»ããæçµçã«çéžããŸãã ä»æ¥ãç§ã¯è»ã«å
¥ãããšãšèµ·ããããåé¡ã«ã€ããŠè©±ãããããšæããŸãã
ååãšããŠããããã®åé¡ã¯ãã¿ã¯ã·ãŒãæ¥ãå Žæãéžæããå¿
èŠããããšããäºå®ã«é¢é£ããŠããŸãã ãããŠãå€ãã®å°é£ããããŸãã ãããã®åé¡ã¯ãã¹ã©ã€ãã«ãªã¹ããã4ã€ã®ããšãšé¢é£ããŠããŸãã
ãŸã第äžã«ããã®å Žæã¯ãŠãŒã¶ãŒã«ãšã£ãŠãªãã¿ã®ãªããã®ãããããŸããã äŸãšããŠãããªããããã»ã©é »ç¹ã§ã¯ãªã倧ããªã·ã§ããã³ã°ã»ã³ã¿ãŒã«æ¥ãèªåãæ³åããããšãã§ããŸãã åºçºãããã®ã§ãããããã§ã¿ã¯ã·ãŒãåŒã¶ããšãã§ããå Žæãè»ãç«ã¡å¯ãããšãã§ããå ŽæããŸãã¯ããªã¢ã®ããã«ã§ããªãå Žæãªã©ãæ¬åœã«ããããŸããã äžéšã®å Žæã«ã¯å€ãã®äººãå€ãã®è»ããããè»ãèŠã€ããã®ãé£ãããšããåé¡ããããŸãã 人ãéåžžè»ã«ä¹ãå ŽæããããŸãããããã«çãã®ã¯ç°¡åã§ãã ãããŠãããªãã¯æ°ããå Žæã«ããããšãç¥ããªããããããŸãããå¿
ãããã·ã§ããã³ã°ã»ã³ã¿ãŒã«ãããšã¯éããŸããã å°é£ã¯ããã©ã€ããŒãã¿ã¯ã·ãŒãåŒãã å Žæã«é転ã§ããªããšããäºå®ã«é¢é£ããŠããå¯èœæ§ããããŸãïŒåœŒã¯æ
è¡ããããšãçŠããããŠãããã·ã§ããã³ã°ã»ã³ã¿ãŒããã¯å€§ããªåºå£ããããå察åŽã«ã¯æ¢ãŸããªããªã©ããããŸãã
äžæ¹ããŠãŒã¶ãŒãšããŠåé¡ãçºçããå ŽåããããŸãã ãã©ã€ããŒãå°çããŸããããäœãåé¡ãããŸããããçãæãèµ·ãããã®ã§ãããªãã¯åº§ã£ãŠäžå¿«ã§ãã ãã©ã€ããŒã«å¥ã®å Žæãé転ããããã«äŸé ŒããŸãã ä»ã«ãçç±ããããŸãã
æã説æçãªäŸãäžèšã®ãã¹ãŠã®çé«ã¯ã空枯ã§ãããã»ãŒãã¹ãŠãè¡ãããŸãã ããšãé »ç¹ã«ã·ã§ã¬ã¡ãŒããšãŽã©ããé£ã³åºããŠããå€ãã®ç©äºãé »ç¹ã«å€åãããããããã¯ããªãã«ãšã£ãŠãŸã 銎æã¿ã®ãªãå Žæã§ãã å€ãã®äººã
ãå€ãã®è»ãçéžã«äŸ¿å©ãªå Žæãäžå¿«ãªå ŽæããããŸãããååãšããŠãç§ãã¡ã®èª°ãããã«ã€ããŠèŠããŠããŸããã
ãœãªã¥ãŒã·ã§ã³ã¯ãã¹ã©ã€ãã®ã¿ã€ãã«ããèªã¿åãããŸãã ç§ãã¡ã®æèŠã§ã¯ãçéžããã®ã«äŸ¿å©ãªå ŽæããŠãŒã¶ãŒã«æšå¥šããŸãããã èãã¯æãããªããã§ãããããã«ã¯å€ãã®ãã¥ã¢ã³ã¹ããããŸãã
ãŸããã䟿å©ãã¯äž»èŠ³çãªæŠå¿µã§ãã åé¡ã解決ããåã«ãåé¡ãæ£ãã解決ããããšããäºå®ã®ããã€ãã®åºæºãçå®ããå¿
èŠãããããã§ãã ç§ãã¡ã¯èªåèªèº«ã®ããã«3ã€ã®äž»èŠãªãã®ãçå®ããŸããã æåã®åºæºã¯ãæšå¥šäºé
ã®ã¿ã¹ã¯ãšåæ§ã§ãããããããæšå¥šäºé
ã䜿çšãããŠããå Žåã¯æšå¥šäºé
ãé©åã§ãã ãŠãŒã¶ãŒãæ¬åœã«å»ããã®ãããªãã€ã³ãã衚瀺ããå Žå-ãããã¯ããããè¯ããã€ã³ãã§ãã ãã ããããã¯ãã¹ãŠã§ã¯ãããŸãããäœããæšå¥šããããèŠãããããŠãŒã¶ãŒã«äœ¿çšãä¿ãããããããšã¯ã§ããŸãããç®ã«èŠããå©çã¯åŸãããŸããïŒã·ã¹ãã ãšããŠãããŠãŒã¶ãŒãšããŠãããã©ã€ããŒãšããŠãç²åŸã§ããŸããïŒã ãããã£ãŠãä»ã®ã¡ããªãã¯ã確èªããããšã¯éåžžã«éèŠã§ãã 2ã€éžæããŸããã
é転æãç°¡åã«é転ã§ããçéžå Žæã«ã€ããŠèª¬æããå Žåãè»äž¡ã®é
éæéãççž®ããå¿
èŠããããŸãã äžæ¹ããŠãŒã¶ãŒããã®å Žæã§è»ãèŠã€ããããå Žåã¯ãçéžããããããããã©ã€ããŒã«ãããã©ã€ããŒã®åŸ
æ©æéãççž®ããå¿
èŠããããŸãã ããã¯ä»®èª¬ã®äžéšã§ãããåœç¶ã®ããšãšèããŠããŸãããããã¯ããããã®æšå¥šäºé
ãäœæããéã«æ€èšããææšã§ãã ãããããã¡ããããããã泚ç®ãã¹ãå¯äžã®ææšã§ã¯ãããŸããã ããã«12åãèãåºãããšãã§ããŸãã çããããããããããã®100ã®ææšãæãã€ãããšãã§ãããšæããŸãã
次ã«äŸã瀺ããŸãã ããã¯ãæ
è¡åã®ãã£ã³ã»ã«ã®å²åã§ãã çè«çã«ã¯ããŠãŒã¶ãŒãçéžããããå Žåã¯æžå°ããã¯ãã§ãã åŸæ¥ããããã¯ããŠãŒã¶ãŒããã©ã€ããŒãåŒã³åºããŠãã©ã€ããŒãèŠã€ããããšãããšãããŸãã¯éã«ãæ
è¡ãå§ãŸãåã«ãã©ã€ããŒããŠãŒã¶ãŒãåŒã³åºãããšãã®åŒã³åºãã§ãã ãã®ã¢ããŒã«ã¯æ¯æãããŠãããä»ã«ãå€æ°ãããŸãã
åé¡ãå®åŒåããŸããã ãã®åé¡ã解決ã§ããåºæºã倧ãŸãã«ç解ããŸããã ãã®åé¡ã解決ããæ¹æ³ã«ã€ããŠèããŠã¿ãŸãããã æåã«é ã«æµ®ãã¶ã®ã¯ããã®ãããªå®èšŒæžã¿ã§ç解å¯èœãªçéžå°ç¹ããå§ãããŸãããã ãã®ã¹ã©ã€ãã¯ããšãŒãããã·ã§ããã³ã°ã»ã³ã¿ãŒã®äŸã§ãã ãããŠããã®ã·ã§ããã³ã°ã»ã³ã¿ãŒã®åºå£ãŸã§é転ã§ããããšã¯ç¢ºãã§ããããã¯ããŠãŒã¶ãŒããã©ã€ããŒãèŠã€ããããšãã§ããäœããã®ã¬ã€ãã©ã€ã³ã§ãã ã©ããªçµç¹ã§ãããŸããŸããã ããã€ãã®ã·ã§ããã³ã°ã»ã³ã¿ãŒã«ã¯ããã€ã¹ãã®ABCã®äŸããããŸãã ç§ã®æèŠã§ã¯ãããã¯ãšã¬ãã³ãã©ã¶ã§ãã ããã¯ããŠãŒã¶ãŒãšãã©ã€ããŒã®ããã®ããçš®ã®ã¬ã€ãã©ã€ã³ã§ããããŸãã
ãããã¯ç§ã話ãã空枯ã®ã©ã³ãããŒã¯ãããããŸããã åŸæ¥ãã·ã§ã¬ã¡ãŒããšãŽã©ã«ã¯æ°åã§ãã®ãããªæ¥µããããŸãã ã¿ã¯ã·ãŒãåŒãã§è»ã«ä¹ãã®ã¯äŸ¿å©ã§ãã è¯ã解決çã§ãããéåžžã«ã¹ã±ãŒã©ãã«ã§ã¯ãªããšãããã€ãã¹ç¹ããããŸãã å€ãã®åœãæ°çŸã®éœåžãèšå€§ãªæ°ã®ã·ã§ããã³ã°ã»ã³ã¿ãŒã空枯ãå°é£ãªã€ã³ã¿ãŒãã§ã³ãžããããã®ãã€ã³ããæåã§äœæããã®ãé£ããäžæ
£ããªå Žæããããããããææ°ã®ç¶æ
ã«ä¿ã€ããšã¯ããã«å°é£ã§ãã 倧声ã§ã人工ç¥èœããšåŒã°ãããã®ãç§ãã¡ã®å©ãã«ãªããŸãã ããŒã¿ãã€ãã³ã°ãŸãã¯æ©æ¢°åŠç¿ãšåŒã³ãŸãã
æ©æ¢°åŠç¿ã«ã¯äœããã®çš®é¡ã®ããŒã¿ãå¿
èŠã§ãããå®éã«ã¯ãã®ããŒã¿ããããŸãã åé¡ãèªåçã«è§£æ±ºããå¥ã®æ¹æ³ã¯ããã®ããŒã¿ã䜿çšããããšã§ãã é«åºŠãªã¢ã€ãã¢ã¯ãGPSãã¢ããªã±ãŒã·ã§ã³ãã°ãããã³éè·¯ã°ã©ãã«é¢ããããŒã¿ãããããšã§ãã ãããŠããŠãŒã¶ãŒãå®éã«è»ã«å
¥ãå Žæãç解ã§ããŸãã è»ãåŒã¶å Žæã§ã¯ãªããçéžããå Žæã§ãã ãããŠããã«åºã¥ããŠããã®ãããªããšãããŠãã ããã
ãããã¯ãYandex.TaxiããŒã ãçŸåšåº§ã£ãŠããAuroraããžãã¹ã»ã³ã¿ãŒã§æ¢ã«èªåçã«ç²åŸãããã€ã³ãã§ãã
ç§ãã¡ã®ä»äºã«ã€ããŠé«ã¬ãã«ã§è©±ããŸããã 次ã«ããã®åé¡ã®è§£æ±ºçãã©ã®æ®µéã§æ§æãããŠãããã«ã€ããŠè©³ãã説æããŸãã ããŒã¿æºåã®æ®µéãããããšã¯æããã§ãã
ã©ããªããŒã¿ããããŸããïŒ ãŸãããŠãŒã¶ãŒã®GPSããŒã¿ãšãã©ã€ããŒã®GPSããŒã¿ããããŸãã ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã䜿çšãããšããŠãŒã¶ãŒã®ããããã®äœçœ®ãããããŸãã GPSã«ã¯13ã15ã¡ãŒãã«ã®ç¯å²ã§å€§ããªèª€å·®ããããŸãããããã§ãäœãããããŸãã 第äºã«ããã©ã€ããŒãã¹ããŒã¿ã¹ããŠãŒã¶ãŒã®åŸ
æ©äžãããã¹ããŒã¿ã¹ããŠãŒã¶ãŒã®é転äžãã«åãæ¿ãã£ããšãã®ã¢ããªã±ãŒã·ã§ã³ãã°ã«å«ãŸããæ
å ±ããããŸãã ãã®é ãé転æã¯ãŠãŒã¶ãŒãåŸ
ã£ãŠããããŠãŒã¶ãŒã¯è»ã«ä¹ã蟌ãã§ãè»ãé転ãããšèããããŸãã ãã®å Žæã®åšãã«çéžãè¡ãããŸããã ãããŠãéè·¯ã°ã©ãããããŸãã éè·¯ã°ã©ãã¯ããšããžãéè·¯ã®ã»ããã ãã§ãªããè¿œå ã®ã¡ã¿æ
å ±ïŒéå£ãé§è»å Žã«é¢ããæ
å ±ãªã©ïŒã§ããããŸãããã®ããŒã¿ã«åºã¥ããŠããã§ã«äœããã®çš®é¡ã®èªåãã€ã³ããååŸã§ããŸãã
ããããœãŒã¹ããŒã¿ã§ããã ãããŠãåºå£ã§ã¯ã2ã€ã®ããšãå¿
èŠã§ãã ãããã¯ãããããçéžå°ç¹ã®åè£ã§ãã 圌ãã¯ã©ã®ããã«çãŸããŸããïŒ åç»ã衚瀺ã§ããªãã£ãããšã¯æ®å¿µã§ãã 以äžã¯å€§äœèµ·ãããŸãã ãã©ã€ããŒãã¹ããŒã¿ã¹ãä¹å®¢ãåŸ
ã£ãŠããŸãããããè¡ãããã«åãæ¿ããããšãç¥ã£ãŠããå€ãã®GPSãã€ã³ãããããŸãã æ¡ä»¶ä»ãã§ãããããã°ã©ãã«æç»ããããšãã§ããŸããã€ãŸããéè·¯ã°ã©ãã«æ圱ããããšãã§ããŸããããã¯ãååãšããŠãè»ãéè·¯ãã移åãå§ããããã§ãã ãã®ã°ã©ãã§ããããã®ãã€ã³ãã®ããçš®ã®ã¯ã©ã¹ã¿ãªã³ã°ãå®è¡ããŸãã ãããŠãå€æ°ã®åè£è
ãç²åŸããããã«-ãããã¯ãäžéšã®ãŠãŒã¶ãŒãè»ã«ä¹ã£ãå Žæã§ããã圌ãã«ãšã£ãŠã¯æ®éã§äŸ¿å©ã§ããã 圌ããé»è©±ããå Žæã§ã¯ãªãã座ã£ãå Žæã§ãã
ãã®åŸãåè£è
ãå€ãããŠãŒã¶ãŒããªã³ã©ã€ã³ã«ãªã£ããã圌ã®å Žæãç¥ã£ãŠããã®ã§ã圌ã¯ã¢ããªã±ãŒã·ã§ã³ãéããŠã¿ã¯ã·ãŒãåŒã³åºãããã®ã§ãå€æ°ã®åè£è
ãããã¹ã5ãéžæããŠè¡šç€ºã§ããŸãã æé«ã®5ã€ã¯æ©æ¢°åŠç¿ã¢ãã«ã«ãã£ãŠæ±ºå®ãããŸãããã®ã¢ãã«ã¯ãçŸåšã®ãŠãŒã¶ãŒãèªåã®äœçœ®ãšæ
è¡å±¥æŽãèæ
®ããŠãçŸæç¹ã§ãŠãŒã¶ãŒãå»ãã®ã«æã䟿å©ã§ããå¯èœæ§ã«åŸã£ãŠãã¹ãŠã®åè£ãã©ã³ã¯ä»ãããããšãåŠç¿ããŸãã ãããŠã»ãŒãã®æ¹æ³ã§ããããã®ãã€ã³ããèªåçã«çæã§ããŸãã ããã«ãããæç¹ã§æ¡ä»¶ä»ãã§æãèµ·ããå Žåãã€ãŸããã¿ã¯ã·ãŒãåŒã¶ã®ãäžå¿«ã«ãªã£ãããåè»ãçŠæ¢ããæšèã眮ããããããšããã©ã€ããŒãšãŠãŒã¶ãŒã¯å®éã«ãã®å Žæã«çéžããã®ããããŸããã¢ã«ãŽãªãºã ããããç解ããããŒã¿ãæŽæ°ãããç¬éã
ããã¯ãã»ãŒããŒã¿ã®æºåæ¹æ³ã®ãããã¯å³ã§ãã ãããã£ãŠãæ©æ¢°åŠç¿ãã€ãã©ã€ã³ã®ããã«ãããªãæšæºçã§ãã ããŒã¿ã®æºåããããã¢ã«ãŽãªãºã ã«ããåè£ã®çæããããŸããç§ã¯ç°¡æçã«èªããŸããã ãããã®åè£ãç¹å®ã®ããŒã¿ããŒã¹ã«ä¿åããŸãã ãã®åŸããã¬ãŒãã³ã°çšã®ç¹å®ã®ããŒã«ïŒãã¬ãŒãã³ã°ãµã³ãã«ïŒãæºåããŸãããã®ããŒã«ã«ã¯ãæ¡ä»¶ä»ãã§ããŠãŒã¶ãŒãæéãã¡ã¿æ
å ±ãåè£ã®ã»ãããããããŠãŒã¶ãŒãæçµçã«ã©ãããå»ã£ãããããããŸãã ããã«ã€ããŠãåé¡ã¢ãã«ãèšç·ŽããŸãã ãããŠã確çã®äºæž¬ã«åŸã£ãŠãåè£ãã©ã³ã¯ä»ãããŸãã ã¢ãã«ã®æºåãã§ããããã¯ã©ãŠãã«ã¢ããããŒãããŠãé©åã«ä¿åããŸãã
ããŒã¿ã®æºåã«äœ¿çšããããŒã«ã¯äœã§ããïŒ åºæ¬çã«ãPythonã¹ã¿ãã¯äžã®Pythonã§äœæãããã¹ãŠã®ããŒã¿æºåã¯ãæšæºã®NumPyãPandasãScikit-learnãªã©ã§ãã倧éã®ããŒã¿ããããŸãã æã«äœçŸäžãã®æ
è¡ããããŸãã GPSããã©ã€ããŒã®ãã©ãã¯ãã¢ããªã±ãŒã·ã§ã³ãã°ã«é¢ããå€ãã®ããŒã¿ããããŸãã®ã§ãã¯ã©ã¹ã¿ãŒäžã§ãã¹ãŠåãããã«åŠçããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãYTãšåŒã°ããYandexå
ããŒãžã§ã³ã®MapReduceã䜿çšããŸããPythonçšã«èšè¿°ãããã©ã€ãã©ãªããããäžéšã®ããããŒãšãªãã¥ãŒãµãŒãèµ·åãããã倧èŠæš¡ãªã¯ã©ã¹ã¿ãŒã§èšç®ãå®è¡ãããã§ããŸãã
æåŸã«ããã€ãã©ã€ã³ã®æºåãã§ããããããŒã¿ãææ°ã«ãªãããã«ãã€ãã©ã€ã³ãèªååããå¿
èŠããããŸãããã®ããã«ãNirvanaãHitmanãªã©ã䜿çšããŸãã ããã¯ãYandexå
ã§ã®éçºã§ããããŸãã Nirvanaã¯ã¯ã©ã¹ã¿ãŒã³ã³ãã¥ãŒãã£ã³ã°ç®¡çãã¬ãŒã ã¯ãŒã¯ã§ãã å®éã圌女ã¯ã©ã®ãããªããã°ã©ã ã§ãå®è¡ããæ¹æ³ããã©ãŒã«ããã¬ã©ã³ãã«ãªãæ¹æ³ãDCã暪æããæ¹æ³ïŒ00:14:53ïŒãç¥ã£ãŠããŸãã ãããŠãäœããèœã¡ãå Žåã圌女ã¯ãããåèµ·åããã€ãã³ãã®çºçæã«èµ·åãäœæããæ¹æ³ãç¥ã£ãŠããŸãã ãªã©
ããã¯ãããããMapReduceã¯ã©ã¹ã¿ãŒã®Webã€ã³ã¿ãŒãã§ã€ã¹ã®å€èŠ³ã§ãã ããã§ã¯ãèšç®ãå®è¡ãããããŒããªã©ãå€æ°ã®ãã·ã³ãããããšãããããŸãã
ãã®ãããWebã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãããçš®ã®ããŒã¿ã®ååŠçãšã¢ãã«ãã¬ãŒãã³ã°ã®å
žåçãªããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã ããã¯ããã®ãããªäŸåé¢ä¿ã°ã©ãã§ãã äŸåé¢ä¿ã¯ãããéšåïŒ1ã€ã®ãã¥ãŒãïŒãå¥ã®ãã¥ãŒãããã®ããŒã¿ãåŸ
ã£ãŠãããšãã®ããŒã¿ã®ãããªãã®ã§ãã è«ççãªäŸåé¢ä¿ïŒæåã«ãã¹ãŠã®ããŒã¿ãæºåããŠããããã¬ãŒãã³ã°ãéå§ããŸããïŒã ããã¯ããçš®ã®èªååã·ã¹ãã ã§ãã ããããã¹ãŠã®ããã«ãéåžžPythonã䜿çšããŸãã
åé¡ãå®åŒåããæååºæºãå®åŒåãããªãã©ã€ã³ã§äœããã®æ¹æ³ã§è§£æ±ºããããšãåŠã³ãäœããã®ã¢ãã«ãäœæããŸããããããã€ãã®ãªãã©ã€ã³ææšã«åŸã£ãŠåäœããŠããããã§ã-ãŠãŒã¶ãŒãåºçºãããã€ã³ããå®éã«äºæž¬ãããããã®ãã€ã³ããèŠã€ããŸãããã¯ãåŸ
ã¡æéãšè»ã®é
éãæžããã¯ãã§ãã
ãããã®ã¢ãã«ãè©ŠããŠããã®ããŒã¿ã䜿çšããŠã¿ãŸãããã ãããè¡ãã«ã¯ãYandex.TaxiãµãŒãã¹ãäœã§ããããæ³åããŠãã ããã
éåžžã«è¡šé¢çãªå³ã¯ãã®ããã«èŠããŸãã ãŠãŒã¶ãŒãããŠãã¢ããªã±ãŒã·ã§ã³ãããããã©ã€ããŒãããããã¿ãã¡ãŒã¿ãŒããšåŒã°ããã¢ããªã±ãŒã·ã§ã³ããããŸãã ãããã®ã¢ããªã±ãŒã·ã§ã³ã¯äœããã®åœ¢ã§ããã¯ãšã³ããšéä¿¡ããããã¯ãšã³ãã¯çžäºã«éä¿¡ããäžé£ã®ãã€ã¯ããµãŒãã¹ã§ã-ã€ãªã€ã¯ããã«ã€ããŠè©±ããŸããã ãã€ã¯ããµãŒãã¹ã®1ã€ã¯ç§ãã¡ã®ãµãŒãã¹ã§ããç§ãã¡ã®ããŒã ã¯ãããè¡ããŸããããã¯ML as a ServiceãMLaaSãšåŒã°ããŸãã
ç¥ã£ãŠããå¿
èŠãããã®ã¯ãããããFastcgi Daemonã«åºã¥ããC ++ã§èšè¿°ãããMLaaSã§ãã ããã¯ã倧ãŸãã«èšã£ãŠãèŠæ±ãååŸããã³æçš¿ã§ããWebãµãŒããŒãäœæããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããªãŒãã³ãœãŒã¹ã©ã€ãã©ãªã§ããããã¹ãŠãæšæºã§ãã ããã¯ãã€ãŠYandexã§æžããããªãŒãã³ãœãŒã¹ã§ã¬ã€ã¢ãŠããããŠããŸããã ãããããŒãžã§ã³ã䜿çšããŸãã ãã®ãµãŒãã¹ã¯äœãã§ããŸããïŒ åœŒã¯ã¢ãã«ã®æäœæ¹æ³ãç¥ã£ãŠããŸããã¢ãã«ãé©çšããèªå®
ã§ä¿åããæã
æŽæ°ããã¢ãã«ãå®æçã«æŽæ°ãä¿åãããŠã³ããŒãããããã®çŽ æŽãããã¯ã©ãŠãã«ç§»åããŸãã
åæ©èœãããšãã°ãããã®çéžãã€ã³ãïŒå
éšã§ã¯ããã¯ã¢ãããã€ã³ããšåŒã³ãŸãïŒããŸãã¯ããšãã°ãåã®ã¬ããŒãã§ã€ãªã€ã話é¡ã«ããŠçµ¶ããç Žã£ããã€ã³ãBã®ãã³ãã¯ãããããã®æ©æ¢°åŠç¿ããããããªæ©èœã«å¯Ÿå¿ããŸããã³ãã©ãŒãèŠæ±ãåä¿¡ããæ©æ¢°åŠç¿èŠçŽ ãçæããã¢ãã«ãé©çšããå¿çãçæããããžãã¯ãæ ŒçŽããŸãã ãã¡ããããã®ãµãŒãã¹ã¯åé¢ãããŠããããè¿œå ã®ããŒã¿ãœãŒã¹ãããŒã¿ããŒã¹ããã®ä»ã®ãã€ã¯ããµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã
ããã¯ãé
眮æ¹æ³ã§ãããããªãåçŽãªã¢ãŒããã¯ãã£ãåããŠããŸãã ãã®ã¹ã©ã€ãã«ã€ããŠè©³ãã説æããããããŸããã§ããããæ
£äŸã«ãããã¢ãŒããã¯ãã£ã¯éåžžã«åçŽã§ãããšèšãããã ãã§ãã èŠæ±ãå°çãããšãã¢ãã«ã®å·¥å Žãããã€ãããããããã®å·¥å Žã¯æã
ã¯ã©ãŠããããããã®ã¢ãã«ãããŠã³ããŒãããŸãã ã¡ã¢ãªã§ã¯ããããã¯åäžã®ã³ããŒã«ä¿åãããŸãã åãªã¯ãšã¹ãã«å¯ŸããŠãããªã軜éãªã¢ãã«ãªããžã§ã¯ããäœæãããŸããããã¯ãæ©èœãæœåºãããããé©çšããŠãå¿çãçæããŸãã
ããããçŸæç¹ã§ã¯äœããããŸããïŒ ããŒã¿ã®æºåããã¬ãŒãã³ã°ãããŸããŸãªç 究ãå®éšãããããããã¯ãã¹ãŠPython Stackã§èšè¿°ãããŠããããšããããŠå¹çæ§ãšçç£æ§ã«å€§ããªèŠæ±ããããšããçç±ã ãã§ãC ++ã§èšè¿°ããããããã¯ã·ã§ã³ãããã€ãããããšãæ¢ã«èª¬æããŸããã ãã®ãããªãšã³ã·ã¹ãã ã«äœãã§ãããšã2ã€ã®åé¡ãçºçããŸãã
ãŸã第äžã«ãããã¯å®éšã®åé¡ã§ãã ããšãã°ãç§ãã¡ã®ããŒã ã§åãããŒã¿ãµã€ãšã³ãã£ã¹ããã¢ã€ãã¢ãåŸãŸããã ãããã«ç°ãªããã©ã¡ãŒã¿ãŒã䜿çšããŠãããçš®ã®ã¯ã©ã¹ã¿ãªã³ã°ãŸãã¯åé¡ã¢ã«ãŽãªãºã ãå®è¡ãããšãå質ãåäžããŸãã 圌ã¯èªåã®ä»®èª¬ããªãã©ã€ã³ã§ãã¹ãããç§ãã¡ã®Pythonããã»ã¹ã«çµã¿èŸŒã¿ãèšç®ããŠã¿ãŸããããå®éã«å€æããŸããã ãããŠä»ã圌ã¯ABå®éšãã€ãŸãããŠãŒã¶ãŒã®äžéšãæ°ããã¢ã«ãŽãªãºã ã瀺ãããã§ã«ãªã³ã©ã€ã³ã«ãªã£ãŠããããã€ãã®ã¡ããªãã¯ã枬å®ããããšãæãã§ããŸãã ãããè¡ãããã«ã圌ã¯æ¡ä»¶ä»ãã§5ã€ã®ããŒãžã§ã³ã®ã¢ã«ãŽãªãºã ãææããŠããããã®äžã§ãªãã©ã€ã³ã§è¯è³ªãæäŸããŸããC++ã§å®è£
ããABå®éšãå®æœããŸãã ãããŠããã®ABã®å®éšã®åŸããããã5ã€ãã¹ãŠãç¡é§ã«ãªããŸããã€ãŸãããªã³ã©ã€ã³ã®å質ã¯ãªãã©ã€ã³ãããæªããªããŸããã€ãŸããæ¬çªç°å¢ãããæªããªããŸãã ã€ãŸããæ¡ä»¶ä»ãã§2ã€ã®ç°ãªãèšèªã2ã€ã®ç°ãªãæè¡ãšããäºå®ã«ãããå®éšããã»ã¹ã«æéãããããŸãã
ããã¯æ¢åã®æ©èœçšã§ãã ãããŠãæ°ãããã®ããããŸãã ãã€ãŠãããã®ããã¯ã¢ãããã€ã³ãã¯ãããã«ç¢ºèªãããã¢ã€ãã¢ã§ããããŸããã 2ãæã®éçºã«è²»ãããªãã§ãã ããã3é±é以å
ã«äœããå
¥æããããšããå§ãããŸãã ãã®ãããªãããã¿ã€ãã®äœæã«ã¯éåžžã«æéãããããŸãã ãŸããPythonã§ç¹åŸŽæœåºãèšè¿°ããŸããããã¯åã«äŸ¿å©ã ããã§ã-圌ããèšãããã«ãéãåããŸãããã Pythonã§ä»»æã®ãããã¿ã€ããæ§ç¯ã§ããŸããããŒã¿åæçšã®ã©ã€ãã©ãªãå€æ°ãããŸãã ã©ãããããã§å®éšãè¡ã£ãåŸããŠãŒã¶ãŒã確èªããå¿
èŠããããŸãã ãããŠããããã¿ã€ããäœæããããšã¯ããªãå°é£ã§ããã ãã®ãããªãããã¿ã€ããããªãè¿
éã«ïŒæ¡ä»¶ä»ãã§ã1é±éãããã«ã¯1æ¥ã§ïŒçµã¿ç«ãŠãããã«ABå®éšãè¡ãã«ã¯ãäœããã®è¿œå ãµãŒãã¹ãå¿
èŠã§ãããšããçµè«ã«éããŸããã
PyMLaaSãšåŒã°ãããã®ãããªãµãŒãã¹ãäœæããŸããã 圌ã¯ã©ããªäººã§ããïŒ å®éãããã¯ä»¥åã«è©±ããMLaaSã®å®å
šãªé¡äŒŒç©ã§ãããFlaskãnginxãGunicornã«åºã¥ããŠPythonã§èšè¿°ãããŠããŸãã ã¢ãŒããã¯ãã£ã¯éåžžã«ã·ã³ãã«ã§ãMLaaSã®ã¢ãŒããã¯ãã£ãšåãã§ããããªãã©ã€ã³ã®å®éšããããã€ãã®ãããã¿ã€ãããã°ããåãåãæ©äŒããããŸãã ããã«ãnginxã¬ãã«ã§ãã®ãããªãããã·ãé
眮ãããããæ¡ä»¶ä»ãã§ãè² è·ã®äžéšãMLaaSããPyMLaaSã«è»¢éããŠå®éšããæ©äŒããããŸããã
ã€ãŸããããã€ãã®ãã©ã¡ãŒã¿ãŒã移åããããããŠãŒã¶ãŒã«ã©ã®ããã«åœ±é¿ãããã確èªããå¿
èŠããããŸãã PyMLaaSã®è² è·ã®5ïŒ
ãéå§ããå®éšã§äœãèµ·ãããã確èªããŸãã æåŸã«ããããã¿ã€ããäœæãããšäŸ¿å©ã§ãã ããã€ãã®æ°æ©èœã®ãããã¿ã€ããäœæããPyMLaaSã§èŠãŸãããå®çšŒåç°å¢ã§ããã«ãã¹ãã§ããŸãã
ç§ãã¡ã¯ããããšãŠãæ°ã«å
¥ã£ãã®ã§ãã¢ã€ãã¢ãæµ®ãã³ãŸãã-åžžã«ããã䜿çšããªãã®ã¯ãªãã§ããïŒ æ¡ä»¶ä»ãã§ã倧ããªè² è·ã1000 RPSã倧ããªã¡ã¢ãªèŠä»¶ãå¿
èŠãšããæ©èœãããããã§ãã ããªãæè»ãªäžŠååŠçãå¿
èŠã§ãã ãã ããäžéšã®æ©èœãè² è·ãããã©ãŒãã³ã¹ãRPSãªã©ã«ããã»ã©å€§ããªèŠæ±ããªãäžéšã®è£œåãŸãã¯ãµãŒãã¹ã§ã¯ããã®ãµãŒãã¹ãéåžžã«ããŸã䜿çšããŠããŸãã
ãŸãšãããšã çŸåšãæ©æ¢°åŠç¿ã䜿çšãã補åãäœæããããã®äœæ¥ã¹ããŒã ããããŸããã¢ã€ãã¢ãæåã«è¡šç€ºãããŸããç§ãã¡ã¯ãã¡ãã·ã§ããã«ãªç·ã«ãªãããšãããã®ã¢ã€ãã¢ãããŒã¿ã§ãã¹ãããŸããããŒã¿ã調ã¹ãŠæºåããããã€ãã®å®éšãèšå®ããã¢ãã«ããã¬ãŒãã³ã°ãããªãã©ã€ã³ã¡ããªãã¯ã¹ãåæããŸãã次ã«ãPyMLaaSã§äœããã®ãã³ãã©ãŒã®åœ¢åŒã§å®è£
ããABå®éšãå®è¡ãããã®ãµãŒãã¹ã®è² è·ã®äžéšãéå§ããŸããæ©èœãé£ã¶å ŽåããããMLaaSã«è»¢éããŸããããã¯åç¬ã§æ©èœãããŠãŒã¶ãŒãšãã©ã€ããŒã«å¹žçŠããããããŸãã
ããã¯ã¢ãããã€ã³ãã®åé¡ã«æ»ããšã仮説ã¯çå®ã§ããããšãå€æããŸããããã®ãããªãã€ã³ãã®å©ç¹ãšäŸ¿å©ãªçéžå°ç¹ã®æšå¥šã¯éåžžã«æ確ã§ããè»äž¡ã®ãã£ãŒãæéãççž®ãããåŸ
ã¡æéãççž®ãããŸãããçŸåšããã¹ãŠã®æ
è¡ã®çŽ30ïŒ
ãæšå¥šãã€ã³ãããã§ãããæž
èŽããããšãããããŸããã