ãªã¢ã«ã¿ã€ã æšè«ã®ããã®ã¢ãã«ãµãŒãã³ã°ã培åºè§£èª¬ãã¢ãŒããã¯ãã£ããããã€æŠç¥ãããã©ãŒãã³ã¹æé©åãã°ããŒãã«ã¢ããªã®ç£èŠã«ã€ããŠåŠã³ãŸãã
ã¢ãã«ãµãŒãã³ã°ïŒãªã¢ã«ã¿ã€ã æšè«ã®ããã®æ±ºå®çã¬ã€ã
æ©æ¢°åŠç¿ã®ãã€ãããã¯ãªäžçã«ãããŠããªã¢ã«ã¿ã€ã æšè«ã®ããã«ã¢ãã«ãæ¬çªç°å¢ã«ãããã€ããããšã¯æ¥µããŠéèŠã§ããã¢ãã«ãµãŒãã³ã°ãšããŠç¥ããããã®ããã»ã¹ã¯ãèšç·Žæžã¿ã®æ©æ¢°åŠç¿ã¢ãã«ããµãŒãã¹ãšããŠå©çšå¯èœã«ããå ¥ã£ãŠãããªã¯ãšã¹ããåŠçããŠãªã¢ã«ã¿ã€ã ã§äºæž¬ãè¿ãããšãå«ã¿ãŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãã¢ãã«ãµãŒãã³ã°ã®çްéšã«ããããã¢ãŒããã¯ãã£ããããã€æŠç¥ãæé©åæè¡ãç£èŠãã©ã¯ãã£ã¹ãããã¹ãŠã°ããŒãã«ãªèŠç¹ããæ¢æ±ããŸãã
ã¢ãã«ãµãŒãã³ã°ãšã¯ïŒ
ã¢ãã«ãµãŒãã³ã°ãšã¯ãèšç·Žæžã¿ã®æ©æ¢°åŠç¿ã¢ãã«ããå ¥åããŒã¿ãåãåã£ãŠãªã¢ã«ã¿ã€ã ã§äºæž¬ãæäŸã§ããç°å¢ã«ãããã€ããããã»ã¹ã§ããããã¯ã¢ãã«éçºãšå®äžçã®ã¢ããªã±ãŒã·ã§ã³ãšã®éã®ã®ã£ãããåããçµç¹ãæ©æ¢°åŠç¿ãžã®æè³ã掻çšããŠããžãã¹äŸ¡å€ãåµåºããããšãå¯èœã«ããŸãã宿çã«å€§éã®ããŒã¿ãåŠçãããããåŠçãšã¯ç°ãªãããªã¢ã«ã¿ã€ã æšè«ã¯ã峿ã®ãŠãŒã¶ãŒãã·ã¹ãã ã®ããŒãºã«å¿ããããã«è¿ éãªå¿çæéãèŠæ±ãããŸãã
ã¢ãã«ãµãŒãã³ã°ã·ã¹ãã ã®äž»èŠã³ã³ããŒãã³ãïŒ
- ã¢ãã«ãªããžããªïŒ ã¢ãã«ã®ããŒãžã§ã³ãä¿åã»ç®¡çããããã®äžå çãªå Žæã
- æšè«ãµãŒããŒïŒ ã¢ãã«ãããŒããããªã¯ãšã¹ããåãåããæšè«ãå®è¡ããäºæž¬ãè¿ãã³ã¢ã³ã³ããŒãã³ãã
- APIã²ãŒããŠã§ã€ïŒ å€éšã¯ã©ã€ã¢ã³ããæšè«ãµãŒããŒãšå¯Ÿè©±ããããã®ãšã³ããªãŒãã€ã³ãã
- ããŒããã©ã³ãµãŒïŒ ã¹ã±ãŒã©ããªãã£ãšé«å¯çšæ§ã®ããã«ãè€æ°ã®æšè«ãµãŒããŒã€ã³ã¹ã¿ã³ã¹ã«çä¿¡ãªã¯ãšã¹ãã忣ããŸãã
- ç£èŠã·ã¹ãã ïŒ ã¬ã€ãã³ã·ãŒãã¹ã«ãŒãããããšã©ãŒçãªã©ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã远跡ããŸãã
ã¢ãã«ãµãŒãã³ã°ã®ããã®ã¢ãŒããã¯ãã£
å ç¢ã§ã¹ã±ãŒã©ãã«ãªã¢ãã«ãµãŒãã³ã°ã·ã¹ãã ãæ§ç¯ããããã«ã¯ãé©åãªã¢ãŒããã¯ãã£ãéžæããããšãéèŠã§ããäžè¬çã«äœ¿çšãããããã€ãã®ã¢ãŒããã¯ãã£ãã¿ãŒã³ããããããããã«ãã¬ãŒããªãããããŸãã
1. REST APIã¢ãŒããã¯ãã£
ããã¯æãäžè¬çã§åºãæ¡çšãããŠããã¢ãŒããã¯ãã£ã§ããæšè«ãµãŒããŒã¯ãã¯ã©ã€ã¢ã³ããHTTPãªã¯ãšã¹ãã䜿çšããŠåŒã³åºãããšãã§ããREST APIãšã³ããã€ã³ããå ¬éããŸããããŒã¿ã¯éåžžãJSON圢åŒã§ã·ãªã¢ã©ã€ãºãããŸãã
ã¡ãªããïŒ
- å®è£ ãšçè§£ã容æã
- æ§ã ãªããã°ã©ãã³ã°èšèªããã¬ãŒã ã¯ãŒã¯ã§åºããµããŒããããŠããã
- æ¢åã®ã·ã¹ãã ãšã®çµ±åã容æã
ãã¡ãªããïŒ
- HTTPã®ãªãŒããŒãããã®ããã倧ããªããŒã¿ãã€ããŒãã«ã¯å¹çãæªãå Žåãããã
- ã¹ããŒãã¬ã¹ãªæ§è³ªã®ããããªã¯ãšã¹ã远跡ã«è¿œå ã®ã¡ã«ããºã ãå¿ èŠã«ãªãå Žåãããã
äŸïŒ ããéèæ©é¢ããäžæ£æ€åºã¢ãã«ãæäŸããããã«REST APIã䜿çšããŠããŸããæ°ããååŒãçºçãããšãååŒã®è©³çްãAPIã«éä¿¡ãããAPIã¯äžæ£ã®å¯èœæ§ã瀺ãäºæž¬ãè¿ããŸãã
2. gRPCã¢ãŒããã¯ãã£
gRPCã¯ãGoogleã«ãã£ãŠéçºããã髿§èœãªãªãŒãã³ãœãŒã¹ã®ãªã¢ãŒãããã·ãŒãžã£ã³ãŒã«ïŒRPCïŒãã¬ãŒã ã¯ãŒã¯ã§ããããŒã¿ã·ãªã¢ã©ã€ãºã«ã¯JSONãããå¹ççãªProtocol Buffersã䜿çšããŸãããŸãããã©ã³ã¹ããŒãã«ã¯HTTP/2ã䜿çšããå€éåãã¹ããªãŒãã³ã°ãªã©ã®æ©èœããµããŒãããŸãã
ã¡ãªããïŒ
- ãã€ããªã·ãªã¢ã©ã€ãºãšHTTP/2ã«ããé«ãããã©ãŒãã³ã¹ã
- 倧ããªããŒã¿ãã€ããŒããé£ç¶çãªäºæž¬ã®ããã®ã¹ããªãŒãã³ã°ããµããŒãã
- Protocol Buffersã䜿çšããå³å¯ã«åä»ããããã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ã
ãã¡ãªããïŒ
- REST APIãããå®è£ ãè€éã
- ã¯ã©ã€ã¢ã³ããšãµãŒããŒãgRPCã䜿çšããå¿ èŠãããã
äŸïŒ ããã°ããŒãã«ãªç©æµäŒç€Ÿããã«ãŒãæé©åã¢ãã«ãæäŸããããã«gRPCãå©çšããŠããŸããã¢ãã«ã¯é éè»äž¡ããäœçœ®æ å ±ã®ã¹ããªãŒã ãåãåãããªã¢ã«ã¿ã€ã ã§ç¶ç¶çã«æé©åãããã«ãŒããæäŸããããšã§ãå¹çãåäžãããé éæéãççž®ããŸãã
3. ã¡ãã»ãŒãžãã¥ãŒã¢ãŒããã¯ãã£
ãã®ã¢ãŒããã¯ãã£ã¯ãã¡ãã»ãŒãžãã¥ãŒïŒäŸïŒKafka, RabbitMQïŒã䜿çšããŠã¯ã©ã€ã¢ã³ããæšè«ãµãŒããŒããåé¢ããŸããã¯ã©ã€ã¢ã³ãã¯ã¡ãã»ãŒãžããã¥ãŒã«çºè¡ããæšè«ãµãŒããŒãã¡ãã»ãŒãžãæ¶è²»ããŠæšè«ãå®è¡ããäºæž¬ãå¥ã®ãã¥ãŒãŸãã¯ããŒã¿ããŒã¹ã«çºè¡ããŸãã
ã¡ãªããïŒ
- éåæåŠçã«ãããã¯ã©ã€ã¢ã³ãã¯å¿çãåŸ ããã«åŠçãç¶è¡ã§ããã
- ã¡ãã»ãŒãžããã¥ãŒã«ãããã¡ãªã³ã°ã§ãããããã¹ã±ãŒã©ãã«ã§å埩åãé«ãã
- è€éãªã€ãã³ãåŠçãã¹ããªãŒã åŠçããµããŒãã
ãã¡ãªããïŒ
- RESTãgRPCãšæ¯èŒããŠã¬ã€ãã³ã·ãŒãé«ãã
- ã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã®èšå®ãšç®¡çãå¿ èŠã
äŸïŒ ããå€åœç±eã³ããŒã¹äŒæ¥ããååæšèŠã¢ãã«ãæäŸããããã«ã¡ãã»ãŒãžãã¥ãŒã䜿çšããŠããŸãããŠãŒã¶ãŒã®é²èЧã¢ã¯ãã£ããã£ããã¥ãŒã«çºè¡ããããããããªã¬ãŒãšãªã£ãŠã¢ãã«ãããŒãœãã©ã€ãºãããååæšèŠãçæããŸãããã®æšèŠã¯ãªã¢ã«ã¿ã€ã ã§ãŠãŒã¶ãŒã«è¡šç€ºãããŸãã
4. ãµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£
ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã䜿çšãããšããµãŒããŒã®ããããžã§ãã³ã°ã管çãªãã§ã³ãŒããå®è¡ã§ããŸããã¢ãã«ãµãŒãã³ã°ã®æèã§ã¯ãæšè«ãµãŒããŒããµãŒããŒã¬ã¹é¢æ°ïŒäŸïŒAWS Lambda, Google Cloud Functions, Azure FunctionsïŒãšããŠãããã€ã§ããŸããããã«ãããèªåã¹ã±ãŒãªã³ã°ãšåŸé課éå¶ãæäŸãããŸãã
ã¡ãªããïŒ
- èªåã¹ã±ãŒãªã³ã°ãšé«å¯çšæ§ã
- åŸé課éå¶ã«ããã€ã³ãã©ã³ã¹ããåæžã
- ç°¡çŽ åããããããã€ãšç®¡çã
ãã¡ãªããïŒ
- ã³ãŒã«ãã¹ã¿ãŒããã¬ã€ãã³ã·ãŒãåŒãèµ·ããå¯èœæ§ãããã
- å®è¡æéãšã¡ã¢ãªã®å¶çŽãããã
- ãã³ããŒããã¯ã€ã³ã
äŸïŒ ããã°ããŒãã«ãªãã¥ãŒã¹ã¢ã°ãªã²ãŒã¿ãŒããææ åæã¢ãã«ãæäŸããããã«ãµãŒããŒã¬ã¹é¢æ°ãå©çšããŠããŸããæ°ããèšäºãå ¬éããããã³ã«ã颿°ãããã¹ããåæããææ ïŒããžãã£ãããã¬ãã£ãããã¥ãŒãã©ã«ïŒã倿ããŸãããã®æ å ±ã¯ãç°ãªããŠãŒã¶ãŒã»ã°ã¡ã³ãåãã«ãã¥ãŒã¹èšäºãåé¡ããåªå é äœãä»ããããã«äœ¿çšãããŸãã
ãããã€æŠç¥
ã¹ã ãŒãºã§ä¿¡é Œæ§ã®é«ãã¢ãã«ãµãŒãã³ã°äœéšãä¿èšŒããããã«ã¯ãé©åãªãããã€æŠç¥ãéžæããããšãéèŠã§ãã
1. ã«ããªã¢ãããã€
ã«ããªã¢ãããã€ã¯ãã¢ãã«ã®æ°ããããŒãžã§ã³ãå°æ°ã®ãŠãŒã¶ãŒãµãã»ããã«ãªãªãŒã¹ããããšãå«ã¿ãŸããããã«ããããã¹ãŠã®ãŠãŒã¶ãŒã«åœ±é¿ãäžããããšãªããæ¬çªç°å¢ã§æ°ããã¢ãã«ããã¹ãããããšãã§ããŸããæ°ããã¢ãã«ãè¯å¥œã«æ©èœããã°ãåŸã ã«ããå€ãã®ãŠãŒã¶ãŒã«å±éããŠããããšãã§ããŸãã
ã¡ãªããïŒ
- ãã¹ãŠã®ãŠãŒã¶ãŒã«ãã°ãããã©ãŒãã³ã¹ã®åé¡ãå°å ¥ãããªã¹ã¯ãæå°éã«æããã
- æ°ããã¢ãã«ã®ããã©ãŒãã³ã¹ãå€ãã¢ãã«ãšå®äžçã®èšå®ã§æ¯èŒã§ããã
ãã¡ãªããïŒ
- åé¡ãæ©æã«æ€åºããããã«æ³šææ·±ãç£èŠãå¿ èŠã
- ä»ã®ãããã€æŠç¥ãããå®è£ ãè€éã«ãªãå Žåãããã
äŸïŒ ããã°ããŒãã«ãªã©ã€ãã·ã§ã¢äŒæ¥ããæ°ããæéäºæž¬ã¢ãã«ããã¹ãããããã«ã«ããªã¢ãããã€ã䜿çšããŠããŸããæ°ããã¢ãã«ã¯æåã«ãŠãŒã¶ãŒã®5%ã«å±éãããŸããæ°ããã¢ãã«ãæéãæ£ç¢ºã«äºæž¬ãããŠãŒã¶ãŒäœéšã«æªåœ±é¿ãäžããªãå ŽåãåŸã ã«æ®ãã®ãŠãŒã¶ãŒã«å±éãããŸãã
2. ãã«ãŒ/ã°ãªãŒã³ãããã€
ãã«ãŒ/ã°ãªãŒã³ãããã€ã¯ã2ã€ã®åäžã®ç°å¢ãå®è¡ããããšãå«ã¿ãŸããçŸåšã®ããŒãžã§ã³ã®ã¢ãã«ãæã€ãã«ãŒç°å¢ãšãæ°ããããŒãžã§ã³ã®ã¢ãã«ãæã€ã°ãªãŒã³ç°å¢ã§ããã°ãªãŒã³ç°å¢ããã¹ãããæ€èšŒããããšããã©ãã£ãã¯ã¯ãã«ãŒç°å¢ããã°ãªãŒã³ç°å¢ã«åãæ¿ããããŸãã
ã¡ãªããïŒ
- ã¯ãªãŒã³ã§ç°¡åãªããŒã«ããã¯ã¡ã«ããºã ãæäŸã
- ãããã€äžã®ããŠã³ã¿ã€ã ãæå°éã«æããã
ãã¡ãªããïŒ
- 2åã®ã€ã³ãã©ãªãœãŒã¹ãå¿ èŠã
- ä»ã®ãããã€æŠç¥ãããã³ã¹ããé«ããªãå¯èœæ§ãããã
äŸïŒ ããå€åœç±éè¡æ©é¢ããä¿¡çšãªã¹ã¯è©äŸ¡ã¢ãã«ã«ãã«ãŒ/ã°ãªãŒã³ãããã€æŠç¥ãå©çšããŠããŸããæ°ããã¢ãã«ãæ¬çªç°å¢ã«ãããã€ããåã«ãå®äžçã®ããŒã¿ã䜿çšããŠã°ãªãŒã³ç°å¢ã§åŸ¹åºçã«ãã¹ãããŸããæ€èšŒåŸããã©ãã£ãã¯ãã°ãªãŒã³ç°å¢ã«åãæ¿ãããµãŒãã¹ãžã®åœ±é¿ãæå°éã«æããªããã·ãŒã ã¬ã¹ãªç§»è¡ãå®çŸããŸãã
3. ã·ã£ããŠãããã€
ã·ã£ããŠãããã€ã¯ãæ¬çªãã©ãã£ãã¯ãå€ãã¢ãã«ãšæ°ããã¢ãã«ã®äž¡æ¹ã«åæã«éä¿¡ããããšãå«ã¿ãŸãããã ãããŠãŒã¶ãŒã«ã¯å€ãã¢ãã«ããã®äºæž¬ã®ã¿ãè¿ãããŸããæ°ããã¢ãã«ããã®äºæž¬ã¯ãã°ã«èšé²ãããå€ãã¢ãã«ããã®äºæž¬ãšæ¯èŒãããŸãã
ã¡ãªããïŒ
- ãŠãŒã¶ãŒã«åœ±é¿ãäžããããšãªããå®äžçã®èšå®ã§æ°ããã¢ãã«ã®ããã©ãŒãã³ã¹ãè©äŸ¡ã§ããã
- ã¢ãã«ã®æ¯ãèãã®åŸ®åŠãªéããæ€åºããããã«äœ¿çšã§ããã
ãã¡ãªããïŒ
- 远å ã®ãã©ãã£ãã¯ãåŠçããããã«ååãªãªãœãŒã¹ãå¿ èŠã
- ãã°ã«èšé²ãããããŒã¿ã®åæãå°é£ãªå Žåãããã
äŸïŒ ããã°ããŒãã«ãªæ€çŽ¢ãšã³ãžã³ããæ°ããã©ã³ãã³ã°ã¢ã«ãŽãªãºã ããã¹ãããããã«ã·ã£ããŠãããã€ã䜿çšããŠããŸããæ°ããã¢ã«ãŽãªãºã ã¯æ¢åã®ã¢ã«ãŽãªãºã ãšäžŠè¡ããŠãã¹ãŠã®æ€çŽ¢ã¯ãšãªãåŠçããŸããããŠãŒã¶ãŒã«ã¯æ¢åã®ã¢ã«ãŽãªãºã ããã®çµæã®ã¿ã衚瀺ãããŸããããã«ãããæ€çŽ¢ãšã³ãžã³ã¯æ°ããã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããæ¬çªç°å¢ã«ãããã€ããåã«æœåšçãªåé¡ãç¹å®ã§ããŸãã
4. A/Bãã¹ã
A/Bãã¹ãã¯ããã©ãã£ãã¯ã2ã€ä»¥äžã®ç°ãªãããŒãžã§ã³ã®ã¢ãã«ã«åå²ããç¹å®ã®ã¡ããªã¯ã¹ïŒäŸïŒã¯ãªãã¯ã¹ã«ãŒçãã³ã³ããŒãžã§ã³çïŒã«åºã¥ããŠã©ã¡ãã®ããŒãžã§ã³ãããåªããããã©ãŒãã³ã¹ãçºæ®ããããæž¬å®ããããšãå«ã¿ãŸãããã®æŠç¥ã¯ãã¢ãã«ã®ããã©ãŒãã³ã¹ãæé©åãããŠãŒã¶ãŒäœéšãåäžãããããã«äžè¬çã«äœ¿çšãããŸãã
ã¡ãªããïŒ
- ããŒã¿é§ååã®ã¢ãããŒãã«ããã¢ãã«éžæã
- ç¹å®ã®ããžãã¹ç®æšã«åãããŠã¢ãã«ãæé©åã§ããã
ãã¡ãªããïŒ
- æ éãªå®éšèšç»ãšçµ±èšåæãå¿ èŠã
- A/Bãã¹ãã®å®è¡ã«ã¯æéããããå Žåãããã
äŸïŒ ããã°ããŒãã«ãªeã©ãŒãã³ã°ãã©ãããã©ãŒã ããã³ãŒã¹æšèŠãšã³ãžã³ãæé©åããããã«A/Bãã¹ãã䜿çšããŠããŸãã圌ãã¯ç°ãªãããŒãžã§ã³ã®æšèŠã¢ã«ãŽãªãºã ãç°ãªããŠãŒã¶ãŒã°ã«ãŒãã«æç€ºããã³ãŒã¹ç»é²çããŠãŒã¶ãŒæºè¶³åºŠã¹ã³ã¢ãªã©ã®ã¡ããªã¯ã¹ã远跡ããŸããæãé«ãç»é²çãšæºè¶³åºŠã¹ã³ã¢ããããããããŒãžã§ã³ãããã¹ãŠã®ãŠãŒã¶ãŒã«ãããã€ãããŸãã
ããã©ãŒãã³ã¹æé©å
ãªã¢ã«ã¿ã€ã æšè«ã§äœã¬ã€ãã³ã·ãŒãšé«ã¹ã«ãŒããããéæããããã«ã¯ãã¢ãã«ã®ããã©ãŒãã³ã¹ãæé©åããããšãéèŠã§ãã
1. ã¢ãã«éåå
ã¢ãã«éååã¯ãéã¿ãšæŽ»æ§åãæµ®åå°æ°ç¹æ°ããæŽæ°ã«å€æããããšã«ãããã¢ãã«ã®ãµã€ãºãšè€éããåæžããŸããããã«ãããæšè«é床ãå€§å¹ ã«åäžããã¡ã¢ãªäœ¿çšéãåæžãããŸãã
äŸïŒ ã¢ãã«ãFP32ïŒ32ãããæµ®åå°æ°ç¹ïŒããINT8ïŒ8ãããæŽæ°ïŒã«å€æãããšãã¢ãã«ãµã€ãºã4åã®1ã«åæžãããæšè«é床ã2ã4ååäžããããšããããŸãã
2. ã¢ãã«æåã
ã¢ãã«æåãã¯ãã¢ãã«ããäžèŠãªéã¿ãšæ¥ç¶ãåé€ãã粟床ã«å€§ããªåœ±é¿ãäžããããšãªããµã€ãºãšè€éããåæžããŸãããããæšè«é床ãåäžãããã¡ã¢ãªäœ¿çšéãåæžããããšãã§ããŸãã
äŸïŒ å€§èŠæš¡èšèªã¢ãã«ã®éã¿ã®50%ãæåããããšããµã€ãºã50%åæžãããæšè«é床ã1.5ã2ååäžããããšããããŸãã
3. æŒç®åãã¥ãŒãžã§ã³
æŒç®åãã¥ãŒãžã§ã³ã¯ãè€æ°ã®æŒç®ãåäžã®æŒç®ã«çµåããåã ã®æŒç®ã®èµ·åãšå®è¡ã®ãªãŒããŒããããåæžããŸããããã«ãããæšè«é床ãåäžããã¡ã¢ãªäœ¿çšéãåæžãããŸãã
äŸïŒ ç³ã¿èŸŒã¿æŒç®ãšReLU掻æ§å颿°ãèåããããšãæŒç®æ°ãæžããæšè«é床ãåäžããŸãã
4. ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³
GPUãTPUãFPGAãªã©ã®ç¹æ®ãªããŒããŠã§ã¢ã掻çšããããšã§ãæšè«é床ãå€§å¹ ã«å éã§ããŸãããããã®ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã¿ã¯ãæ©æ¢°åŠç¿ã¢ãã«ã§äžè¬çã«äœ¿çšãããè¡åä¹ç®ããã®ä»ã®æŒç®ãCPUãããã¯ããã«é«éã«å®è¡ããããã«èšèšãããŠããŸãã
äŸïŒ æšè«ã«GPUã䜿çšãããšãCPUãšæ¯èŒããŠæšè«é床ã10ã100ååäžããããšããããŸãã
5. ãããåŠç
ãããåŠçã¯ãè€æ°ã®ãªã¯ãšã¹ããåäžã®ãããã§ãŸãšããŠåŠçããããšãå«ã¿ãŸããããã«ãããã¢ãã«ã®ããŒããšæšè«å®è¡ã®ãªãŒããŒããããååŽããããšã§ã¹ã«ãŒããããåäžãããããšãã§ããŸãã
äŸïŒ 32ä»¶ã®ãªã¯ãšã¹ãããŸãšããŠãããåŠçãããšãåãªã¯ãšã¹ããåå¥ã«åŠçããå Žåãšæ¯èŒããŠã¹ã«ãŒãããã2ã4ååäžããããšããããŸãã
人æ°ã®ã¢ãã«ãµãŒãã³ã°ãã¬ãŒã ã¯ãŒã¯
ããã€ãã®ãªãŒãã³ãœãŒã¹ãã¬ãŒã ã¯ãŒã¯ãã¢ãã«ãµãŒãã³ã°ã®ããã»ã¹ãç°¡çŽ åããŸããããã§ã¯ãæã人æ°ã®ãããã®ãããã€ã玹ä»ããŸãïŒ
1. TensorFlow Serving
TensorFlow Servingã¯ãæ©æ¢°åŠç¿ã¢ãã«ãç¹ã«TensorFlowã¢ãã«åãã«èšèšããããæè»ã§é«æ§èœãªãµãŒãã³ã°ã·ã¹ãã ã§ãããµãŒãã¹ãäžæããããšãªãæ°ããã¢ãã«ããŒãžã§ã³ããããã€ã§ããA/Bãã¹ãããµããŒãããä»ã®TensorFlowããŒã«ãšããŸãçµ±åããŸãã
2. TorchServe
TorchServeã¯PyTorchã®ããã®ã¢ãã«ãµãŒãã³ã°ãã¬ãŒã ã¯ãŒã¯ã§ãã䜿ãããããã¹ã±ãŒã©ãã«ã§ãæ¬çªç°å¢ã«å¯Ÿå¿ã§ããããã«èšèšãããŠããŸããåçãããåŠçãã¢ãã«ããŒãžã§ãã³ã°ãã«ã¹ã¿ã ãã³ãã©ãªã©ã®æ§ã ãªæ©èœããµããŒãããŠããŸãã
3. Seldon Core
Seldon Coreã¯ãKubernetesäžã§æ©æ¢°åŠç¿ã¢ãã«ããããã€ããããã®ãªãŒãã³ãœãŒã¹ãã©ãããã©ãŒã ã§ããèªåãããã€ãã¹ã±ãŒãªã³ã°ãã¢ãã¿ãªã³ã°ãA/Bãã¹ããªã©ã®æ©èœãæäŸããŸããTensorFlowãPyTorchãscikit-learnãªã©ãæ§ã ãªæ©æ¢°åŠç¿ãã¬ãŒã ã¯ãŒã¯ããµããŒãããŠããŸãã
4. Clipper
Clipperã¯ãããŒã¿ããªãã£ãšäœã¬ã€ãã³ã·ãŒã«çŠç¹ãåœãŠãäºæž¬ãµãŒãã³ã°ã·ã¹ãã ã§ããæ§ã ãªæ©æ¢°åŠç¿ãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšã§ããç°ãªããã©ãããã©ãŒã ã«ãããã€ã§ããŸããããã©ãŒãã³ã¹åäžã®ããã®é©å¿çã¯ãšãªãªããã£ãã€ãŒãŒã·ã§ã³ãåããŠããŸãã
5. Triton Inference Server (æ§ TensorRT Inference Server)
NVIDIA Triton Inference Serverã¯ãNVIDIA GPUããã³CPUäžã§æé©åãããããã©ãŒãã³ã¹ãæäŸãããªãŒãã³ãœãŒã¹ã®æšè«ãµãŒãã³ã°ãœãããŠã§ã¢ã§ããTensorFlowãPyTorchãONNXãTensorRTãå«ãå¹ åºãAIãã¬ãŒã ã¯ãŒã¯ãããã³ãã¥ãŒã©ã«ãããã¯ãŒã¯ãåŸæ¥ã®MLã¢ãã«ãããã«ã¯ã«ã¹ã¿ã ããžãã¯ãšãã£ã倿§ãªã¢ãã«ã¿ã€ãããµããŒãããŸããTritonã¯é«ã¹ã«ãŒããããšäœã¬ã€ãã³ã·ãŒåãã«èšèšãããŠãããèŠæ±ã®å³ãããªã¢ã«ã¿ã€ã æšè«ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãã
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§ã¯ãã¢ãã«ãµãŒãã³ã°ã·ã¹ãã ã®å¥å šæ§ãšããã©ãŒãã³ã¹ã確ä¿ããããã«äžå¯æ¬ ã§ããç£èŠãã¹ãäž»èŠãªã¡ããªã¯ã¹ã¯æ¬¡ã®ãšããã§ãïŒ
- ã¬ã€ãã³ã·ãŒïŒ ãªã¯ãšã¹ããåŠçããã®ã«ãããæéã
- ã¹ã«ãŒãããïŒ 1ç§ãããã«åŠçããããªã¯ãšã¹ãã®æ°ã
- ãšã©ãŒçïŒ ãšã©ãŒã«çµãããªã¯ãšã¹ãã®å²åã
- CPU䜿çšçïŒ æšè«ãµãŒããŒã«ãã£ãŠæ¶è²»ãããCPUãªãœãŒã¹ã®éã
- ã¡ã¢ãªäœ¿çšçïŒ æšè«ãµãŒããŒã«ãã£ãŠæ¶è²»ãããã¡ã¢ãªãªãœãŒã¹ã®éã
- ã¢ãã«ããªããïŒ æéã®çµéã«äŒŽãå ¥åããŒã¿ãã¢ãã«äºæž¬ã®ååžã®å€åã
PrometheusãGrafanaãELKã¹ã¿ãã¯ãªã©ã®ããŒã«ã䜿çšããŠããããã®ã¡ããªã¯ã¹ãåéãèŠèŠåãåæã§ããŸããäºåå®çŸ©ããããããå€ã«åºã¥ããŠã¢ã©ãŒããèšå®ããããšã§ãåé¡ãè¿ éã«æ€åºããŠè§£æ±ºããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒ ããå°å£²äŒæ¥ããååæšèŠã¢ãã«ã®ããã©ãŒãã³ã¹ãç£èŠããããã«PrometheusãšGrafanaã䜿çšããŠããŸããã¬ã€ãã³ã·ãŒãç¹å®ã®ãããå€ãè¶ ãããããšã©ãŒçãå€§å¹ ã«å¢å ãããããå Žåã«éç¥ããã¢ã©ãŒããèšå®ããŠããŸããããã«ããããŠãŒã¶ãŒäœéšã«åœ±é¿ãäžããå¯èœæ§ã®ããåé¡ãäºåã«ç¹å®ãã察åŠããããšãã§ããŸãã
ãšããžã³ã³ãã¥ãŒãã£ã³ã°ã«ãããã¢ãã«ãµãŒãã³ã°
ãšããžã³ã³ãã¥ãŒãã£ã³ã°ã¯ãæ©æ¢°åŠç¿ã¢ãã«ãããŒã¿ãœãŒã¹ã«è¿ãå Žæã«ãããã€ããã¬ã€ãã³ã·ãŒãåæžããŠå¿çæ§ãåäžãããããšãå«ã¿ãŸããããã¯ãã»ã³ãµãŒãä»ã®ããã€ã¹ããã®ããŒã¿ããªã¢ã«ã¿ã€ã ã§åŠçããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã«ç¹ã«åœ¹ç«ã¡ãŸãã
äŸïŒ ã¹ããŒããã¡ã¯ããªãŒã§ã¯ãæ©æ¢°åŠç¿ã¢ãã«ããšããžããã€ã¹ã«ãããã€ããŠãã»ã³ãµãŒããã®ããŒã¿ããªã¢ã«ã¿ã€ã ã§åæããç°åžžãæ€åºããããæ©åšã®æ éãäºæž¬ãããã§ããŸããããã«ãããäºé²ä¿å šãå¯èœã«ãªããããŠã³ã¿ã€ã ãåæžãããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
ã»ãã¥ãªãã£ã¯ã¢ãã«ãµãŒãã³ã°ã®éèŠãªåŽé¢ã§ãããç¹ã«æ©å¯ããŒã¿ãæ±ãå Žåã«ã¯éèŠã§ãã以äžã®ã»ãã¥ãªãã£å¯Ÿçãæ€èšããŠãã ããïŒ
- èªèšŒãšèªå¯ïŒ æšè«ãµãŒããŒãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããããã«èªèšŒãšèªå¯ã®ã¡ã«ããºã ãå®è£ ããŸãã
- ããŒã¿æå·åïŒ è»¢éäžããã³ä¿åäžã®ããŒã¿ãæå·åããŠãäžæ£ã¢ã¯ã»ã¹ããä¿è·ããŸãã
- å ¥åæ€èšŒïŒ ã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ãããã«å ¥åããŒã¿ãæ€èšŒããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒ è匱æ§ãç¹å®ããŠå¯ŸåŠããããã«ã宿çãªã»ãã¥ãªãã£ç£æ»ã宿œããŸãã
äŸïŒ ããå»çæäŸè ã¯ãå»ç蚺æã¢ãã«ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããããã«å³æ ŒãªèªèšŒãšèªå¯ããªã·ãŒãå®è£ ããŠããŸããèªå¯ãããæ åœè ã®ã¿ãã¢ãã«ã«ã¢ã¯ã»ã¹ããæšè«ã®ããã«æ£è ããŒã¿ãéä¿¡ããããšãèš±å¯ãããŠããŸãããã¹ãŠã®ããŒã¿ã¯ããã©ã€ãã·ãŒèŠå¶ã«æºæ ããããã«è»¢éäžããã³ä¿åäžã®äž¡æ¹ã§æå·åãããŠããŸãã
MLOpsãšèªåå
MLOpsïŒMachine Learning OperationsïŒã¯ãã¢ãã«éçºãããããã€ãã¢ãã¿ãªã³ã°ãŸã§ã®æ©æ¢°åŠç¿ã©ã€ããµã€ã¯ã«å šäœãèªååããã³åçåããããšãç®çãšããäžé£ã®ãã©ã¯ãã£ã¹ã§ããMLOpsã®ååãå®è£ ããããšã§ãã¢ãã«ãµãŒãã³ã°ã·ã¹ãã ã®å¹çãšä¿¡é Œæ§ãå€§å¹ ã«åäžãããããšãã§ããŸãã
MLOpsã®äž»èŠãªåŽé¢ã¯æ¬¡ã®ãšããã§ãïŒ
- èªååãããã¢ãã«ãããã€ïŒ æ°ããã¢ãã«ããŒãžã§ã³ãæ¬çªç°å¢ã«ãããã€ããããã»ã¹ãèªååããŸãã
- ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšç¶ç¶çããªããªãŒïŒCI/CDïŒïŒ ã¢ãã«ã®æŽæ°ã®ãã¹ããšãããã€ãèªååããããã«CI/CDãã€ãã©ã€ã³ãå®è£ ããŸãã
- ã¢ãã«ããŒãžã§ãã³ã°ïŒ ã¢ãã«ã®ç°ãªãããŒãžã§ã³ã远跡ããã³ç®¡çããŸãã
- èªååãããã¢ãã¿ãªã³ã°ãšã¢ã©ãŒãïŒ ã¢ãã«ã®ããã©ãŒãã³ã¹ã®ã¢ãã¿ãªã³ã°ãèªååããåé¡ãããã°éç¥ããã¢ã©ãŒããèšå®ããŸãã
çµè«
ã¢ãã«ãµãŒãã³ã°ã¯æ©æ¢°åŠç¿ã©ã€ããµã€ã¯ã«ã®éèŠãªæ§æèŠçŽ ã§ãããçµç¹ããªã¢ã«ã¿ã€ã æšè«ã®ããã«ã¢ãã«ã掻çšã§ããããã«ããŸããããŸããŸãªã¢ãŒããã¯ãã£ããããã€æŠç¥ãæé©åæè¡ãç£èŠãã©ã¯ãã£ã¹ãçè§£ããããšã§ãç¹å®ã®ããŒãºã«åã£ãå ç¢ã§ã¹ã±ãŒã©ãã«ãªã¢ãã«ãµãŒãã³ã°ã·ã¹ãã ãæ§ç¯ã§ããŸããæ©æ¢°åŠç¿ãé²åãç¶ããã«ã€ããŠãå¹ççã§ä¿¡é Œæ§ã®é«ãã¢ãã«ãµãŒãã³ã°ã®éèŠæ§ã¯ãŸããŸãé«ãŸãã§ãããã