ããã¯Mercari Advent Calendar 2017 ã®2æ¥ç®ã®è¨äºã§ãã
æ¨æ¥ã¯ @stanaka ã®åæ£ãã¡ã¤ã«ã·ã¹ãã ã¯ãããã¯ãã§ã¼ã³ã®å¤¢ãè¦ãã ã§ããã
ä»åã¯@Hmj_kd ããã¡ã«ã«ãªã®æ©æ¢°å¦ç¿ã®åãçµã¿ãæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã®ä»å¹´è¡ã£ã¦ããæ´»åã®ããã¤ãããç´¹ä»ãããã¨æãã¾ãã
以ä¸ãä¸é¨ã«ã¦æ©æ¢°å¦ç¿ãMLã¨ç¥ãã¾ãã
ãã®1å¹´éã§æ©æ¢°å¦ç¿ã§åãçµãã ãã¨
ç§ãå
¥ç¤¾ããã®ã¯2017/01ã§ã社å
ã§ã¯äºäººç®ã®æ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã§ããã
ãã®å½æã¯
ã«ããããã«ããããã¯ãã«MLã«é¢ãããã®ã¯ããã¾ããã§ããã
ç¾å¨ã¯ããã¼ã å ¨ä½ã§ããã¼ã¸ã£ãå«ãã¦ç´10人ã»ã©ã®çµç¹ã«ãªããæ´»çºã«å®é¨ãéçºãè¡ããã¦ãã¾ãã
ããã¤ããåæãã¾ãã¨
- åååºåæã®ä¾¡æ ¼æ¨å®ã¨ãµã¸ã§ã¹ã - ä¸é¨ã«ãã´ãªã«ã¤ãã¦ååã¿ã°ã®æ¨å® - åååºåæã®ã«ãã´ãªãåºåã¿ã¤ãã«ã®ãµã¸ã§ã¹ã
ãªã©ããããMLé¢ä¿ã®ãªãã¸ããªã ãã§ç´10åã»ã©ãä½ããã¦ãã¾ããã
ãã¡ãã«ã¤ãã¦ã¯
ã§æ¦è¦ããç´¹ä»ãã¦ãã¾ãã
æ©æ¢°å¦ç¿ã®ãããã¯ãéçºã¯ãå®è£ ãã¦ãã¹ãããããã¤ã ãã§ã¯ãªã
- ã©ããã£ã課é¡ãããã©ã解決ããããã®ã?
- 解決çã¨ãã¦æ©æ¢°å¦ç¿ã®ã¢ãã«ãé©ç¨ããã®ããã¹ãã§éãã?
- ã¢ãã«ãé©ç¨ããã¨ãã¦ãã©ã®ããã精度ãã§ãã®ã? ãªã©ããã©ã¤ã¢ã«ã§å®é¨ãã
- ä»®ã«ãããã¤ããã¦ã客ãã¾ã«æä¾ãããå¾ãæ¬å½ã«äºæ¥ä¸ã«é¢ä¿ããæ°å¤ã«æ¹åãã¿ãããã®ã?
ãªã©ãå®è£
ã®åå¾ã«ããã»ã¹ããããä¸ã¤ã®èª²é¡è§£æ±ºã§ã¿ã¦ãæ¯ã®é·ãããã¸ã§ã¯ãã¨ãªãã¾ãã
ãããã£ãä¸ã§ããä¸å¹´éã§æ°åã®MLé¢ä¿ã®æ©è½ããå®éã«ã客ãã¾ã®ç®ã«è§¦ããé¨åãªã©ã«ãªãªã¼ã¹ããããã¨ã¯ã
ç§ã®ä»ã¾ã§ã®çµé¨ã§ãããã¾ããã§ããã
éç¨ãå§ãã¦ã§ã¦ãã課é¡
ä¸å¹´éã§ããã¤ãã®MLã®ãããã¯ãããªãªã¼ã¹ã§ããã®ã¯ãé¢ä¿ããããã¸ã§ã¯ãã¡ã³ãã¼ã®ãããã§ãã·ã§ãã«ãªä»äºã¯ãã¡ããã®ãã¨ã
åæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ãä»ç¤¾ã§å®éã«éçºãéç¨ã®çµé¨ããããã¨ãã大ããå½±é¿ãã¦ããã¨ç§ã¯æã£ã¦ãã¾ãã
ä¸æ¹ã§ãããã¤ãã®ãããã¯ããéç¨ãããã«ããã課é¡ãåé¡ãã¿ãã¦ãã¾ããããç´¹ä»ããããã¨æãã¾ãã
- ãã¼ã«ã«ç°å¢ã®MeCabã¨æ¬çªç°å¢ã®MeCabãéãåé¡
- 誰ãã®ãããã¤ã«ãã£ã¦ã誰ãã®ã¢ãã«ãdegradeãã¡ãã£ãåé¡
- éçºç°å¢ã®æ§ç¯ã«æéããããåé¡
- 大è¦æ¨¡ãªã¢ãã«ã®ç®¡çã¨ãããã¤ãã©ããããåé¡
- æ¯æ稼åãã¦ããã¢ãã«ã®ç²¾åº¦ãæ°ã«ããªãããå¥ã®ã¢ãã«ã®å®é¨ã«éä¸ããªãã¨ãããªã
ãªã©ãªã©ãåæ©çãªãã¹ã«ãããã®ããã¾ããããä¸è¬çã«æ©æ¢°å¦ç¿ãå°å ¥ããç¾å ´ã§ç»å ´ãã課é¡ãã¨æãã¾ãã
ã¡ã«ã«ãªã®æ©æ¢°å¦ç¿ãæ¯ããæè¡
æ©æ¢°å¦ç¿ã®å°å
¥åæã¯ãã¤ã³ãã©ããããã¤çããã¤ãã®åé¡ã解決ããªãããã¢ãã«ããããã¤ãã¦ãããã¨ã«ãªããã¨æãã¾ããã
é·æçã«ã¿ãã°æ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã¯ã¢ãã«ä½ãã«éä¸ã§ãããã¨ããã¹ãã ã¨ç§ã¯èãã¦ãã¾ãã
ããã§ãç¾å¨ã¡ã«ã«ãªã®æ©æ¢°å¦ç¿ãã¼ã ã§ã¯ãæ©æ¢°å¦ç¿ã®ãããã¯ããå¾ã
ã«microservicesåãã¦ãã¾ãã
ã¾ããã®åºç¤ã¨ãã¦ã¯ãã¡ãã§ç´¹ä»ããã¦ããããã«ãKubernetesã¸ã®ã³ã³ããã¢ããªã±ã¼ã·ã§ã³ã§ç¨¼åããã¦ãããã¤ã«ã¯Spinnaker ãæ¡ç¨ããã¦ãã¾ãã
ã³ã³ããã¢ããªã±ã¼ã·ã§ã³ãmicroservicesåãåãå ¥ãããã¨ã¯ãæ©æ¢°å¦ç¿çãªè¦ç¹ã§ã¿ãã¨ä¸è¨ã®ãããªå©ç¹ãããã¾ããã
- ã³ã³ããã«ããéçºç°å¢ã®æ§ç¯ã®å®¹æãããã¼ã¸ã§ã³éãçã«æ©ã¾ãããªããã¨
- æ©æ¢°å¦ç¿ãã¼ã ãããããç¬ç«ãã¦å®å¿ãå®å ¨ã«ãããã¤ãè¡ãããã¨
- ç¶ç¶çãªå¦ç¿ã¨ãããã¤ããããããªã£ããã¨ï¼å¾è¿°ï¼
äºä¾ : Spinnaker ã® cron ã«ããæ©æ¢°å¦ç¿ã¢ãã«ã®ç²¾åº¦ç£è¦ã¨å¦ç¿ã®å®è¡
ã¢ãã«ã®ç²¾åº¦ç£è¦ã¨å¦ç¿ãè¡ãçç±ã§ãããæ©æ¢°å¦ç¿ã¢ãã«ã¯ã¿ã¹ã¯ã«ä¾ãã¾ãããæéãçµã¤ã«ã¤ãã¦ç²¾åº¦ãè½ã¡ã¦ãã¾ãã
ãã¨ãã°ãåååããååã«ãã´ãªãæ¨å®ããã±ã¼ã¹ãªã©ãèããã¨ãã¡ã«ã«ãªã§ã¯æ°ããååãåºåããã¦ããã¾ãã®ã§ãå¦ç¿æã«ã¯åå¨ããªãã£ãååã«ã¤ãã¦ã¯æ¨å®ãããã¨ãã§ãã¾ããã
ãã®ãããªçç±ãããæ¬çªã§ç¨¼åãã¦ããã¢ãã«ã®ç²¾åº¦ã¯å¸¸ã«æ°ã«ãªãã¨ããã§ãã
ã§ãããç¾æç¹ã§ã¯æ°åã®ã¢ãã«ã§ãããçµç¹ãæ¡å¤§ãã¦ããä¸ã§ãä»å¾ç¨¼åããã¢ãã«ãå¢ãããã¨ãè¦è¾¼ã¾ãã¾ãã
å ´åã«ãã£ã¦ã¯æ°ååã¨ãªãå¯è½æ§ããããæ¯æã¢ãã«ã®ç²¾åº¦ãã§ãã¯ã®å®æã¿ã¹ã¯ã大å¤ã«ãªãã¨æãã¾ããã
ãã®ãããªæããããå®é¨çã§ã¯ããã¾ãããSpinnakerã®Pipelineãçµã¿åããã¦ã精度ãã§ãã¯ã®jobã¨å¦ç¿ã®job, ããã¦ãããã¤ãçµã¿åããããã¨ãè¡ãã¾ããã社å ã§ã¯ãã®ã¢ã¼ããã¯ãã£ãã¼ã¼ã¿ã¨ããã§ãã¾ãã
ä¸è¨ã¯ãã®Pipelineã®ã¤ã¡ã¼ã¸å³ã¨ãªãã¾ãã
åæã¨ãã¦Supervised learningï¼æ師ããå¦ç¿ï¼ã®ã¿ã¹ã¯ã§training setã¯ãã¼ã¿ãã¼ã¹ã«æºã¾ã£ã¦ãã¦ãã¤ã§ãæ°ãããã®ãåå¾ã§ããæ³å®ã§ãã
ããã¼ã¨ãã¦ã¯
- cronã«ããããªã¬ã¼ã§Pipelineãèµ·åãã¾ã
- evaluate ã® job ã«ã¦ãææ°ã®ã¢ãã«ã¨ãè©ä¾¡ç¨ã®ãã¼ã¿ã»ãããåå¾ãã¦ããã®ã¿ã¹ã¯æ¯ã«è¨å®ãããã¹ã³ã¢ã®è¨ç®ãè¡ãã¾ããããã§ã¹ã³ã¢ãä¸ãã£ã¦ããªãã°Pipelineã¯ããã§çµäºãã¾ãã
- ããä¸ãã£ã¦ããå ´åãå¦ç¿ç¨ã®ãã¼ã¿ã»ãããåå¾ãã¦ãå¦ç¿ã¨è©ä¾¡ãè¡ãã¾ãããã®æãããã§ãã¹ã³ã¢ãããããªããã°ãã¢ã©ã¼ããéç¥ããã¾ãã
- ä¸ãã£ã¦ããªãå ´åã¯ãå¦ç¿æ¸ã¿ã®ã¢ãã«ã¨ã¢ããªã±ã¼ã·ã§ã³ã³ã¼ããå å ããDocker imageãbuildãç´ãã¦ãSpinnakerã«ããå®å¿ãå®å ¨ã«ãããã¤ããã¾ãã
ã¨ãªããã¹ã³ã¢ãããããªãã¨ããé¤ãã°ãæ©æ¢°ãåæã«ã¢ãã«ã®è³ªãæ ä¿ããç¶æ ãä¿ã£ã¦ããã¾ãã
ãããã
æ¬è¨äºã§ã¯æ©æ¢°å¦ç¿ã®åãçµã¿ãæ©æ¢°å¦ç¿ã¨ã³ã¸ãã¢ã®ä»å¹´è¡ã£ã¦ããæ´»åã®ããã¤ãããç´¹ä»ãã¾ããã
Spinnakerãªã©ã«ãããããã¤ãåºç¤ãã©ãã©ãã¹ã±ã¼ã«ãããã¨ãæãã¦ãã¾ãã
次ã«ã¹ã±ã¼ã«ããããã®ã¯ãæ©æ¢°å¦ç¿ã®ã¢ãã«è¨è¨ã®é¨åã§ããå¼·åå¦ç¿ã®å¿ç¨*1ã§ã¢ãã«ã®è¨è¨ãæé©åãã§ããããã«ãªãã°ããã®ããããã¹ã±ã¼ã«ãã¦ããã®ã§ã¯ã¨æã£ã¦ãã¾ãã
ãããã¯ã以å¤ã§ãã¨ã
ã®ããã«ãç»åèªèã«é¢ããä¼è°ãèªç¶è¨èªå¦çã®å¦ä¼ãªã©ã¸ã®åå ãã¦ããã
ä»å¾ãç»åèªèã»æ©æ¢°å¦ç¿ã®åãçµã¿ãç©æ¥µçã«è¡ã£ã¦ããããã¨æãã¾ãã
ã¾ãï¼8æã«ã¯åã®ãµãã¼ã¤ã³ã¿ã¼ã³ã·ãããå®æ½ãå®æ½ããã¾ããã
æ©æ¢°å¦ç¿/èªç¶è¨èªå¦çåéã®ã¨ã³ã¸ãã¢ãã¤ã³ã¿ã¼ã³ãç©æ¥µçã«åéãã¦ããã¾ãã®ã§ããèå³ããã¾ããããé£çµ¡ããã ããã°ã¨æãã¾ãã
Software Engineer, Machine Learning/Natural Language Processing
3æ¥ç®ã®ææ¥ã¯mhidakaã§ãã