
æ¥æ¬ãã€ã¯ããœããã§ DeepSpeed ããŒãã¢ãããéå¬ããã®æ©èœãæŽ»çšæ³ãšã¯ïŒ2024/06/14ããã¥ãŒã¹ãªãªãŒã¹ïŒ
â»æ¥æ¬ãã€ã¯ããœããããããã°æŽæ°ã®ãç¥ããããã¥ãŒã¹ãªãªãŒã¹ã§æ¥ãŸããïŒ
+++++
æ¥æ¬ãã€ã¯ããœããã§ DeepSpeed ããŒãã¢ãããéå¬ããã®æ©èœãæŽ»çšæ³ãšã¯
+++++
ãã€ã¯ããœãããéçºãã DeepSpeed ã¯ã深局åŠç¿ãå€§èŠæš¡ãã€é«éã«å®è¡ããããã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã§ãã5 æäžæ¬ãDeepSpeed ã®ããŒãã¢ãããæ¥æ¬ãã€ã¯ããœããã®åå·æ¬ç€Ÿã«ãŠéå¬ãDeepSpeed ããŒã ã®äž»èŠã¡ã³ããŒãæŠèŠãèªã£ãã»ãããã§ã« DeepSpeed ãæ¡çšããŠãããŠãŒã¶ãŒäŒæ¥ãæŽ»çšæ³ãªã©ãèªããŸããã
â DeepSpeed ã®æ©èœã玹ä»
ä»åã®ããŒãã¢ããã§ã¯ããã€ã¯ããœãã ã³ãŒãã¬ãŒã·ã§ã³ã§ DeepSpeed ã®ããªã³ã·ãã«ãªãµãŒãã£ãŒ (Principal Researcher) ãåããç°ä»²æ£åŒãããDeepSpeed 㯠AI åéã®ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ãšããŠæãåºã掻çšãããŠãããã®ã®ã²ãšã€ããšããŠãæ©èœã®ç޹ä»ãããŸããã
深局åŠç¿ã§ã¯ã倧éã®èšç·ŽããŒã¿ãäžããŠã¢ãã«ãèšç·ŽããŸãããèšç®éãã¡ã¢ãªéãåŠçããŒã¿éãéåžžã«å€ããªããšãã課é¡ãæ±ããŠããŸãããããã£ãããŸããŸãªæè¡ç課é¡ã解決ããã®ã DeepSpeed ã§ããäŸãã°ãã¢ãã«ã倧ããã㊠GPU ã¡ã¢ãªã«åãŸããªããšãã課é¡ã«å¯ŸããŠã¯ãZeRO (Zero Redundancy Optimizer) ãšããæ©èœãçšæããŠããŸãã
ãŸããæšè«ã®ãã§ãŒãºã§ããããã¹ããé«éã«çæãã DeepSpeed-FastGen ããã¹ã±ãŒã©ãã«ã§é«éãªæšè«ã®ããã® DeepSpeed Inference ãªã©ãããŸããŸãªæ©èœãæäŸãããŠããŸãã
äžã§ã ZeRO ã¯ãDeepSpeed ã®æ©èœãšããŠæåã«æ³šç®ãããæ©èœã§ããZeRO ã¯ã深局åŠç¿ã«ãããããŒã¿äžŠåã®ã¡ã¢ãªå©çšãå¹çåãããã®ã§ã巚倧ã¢ãã«ãé«ãå¹çã§åŠç¿ããå¹
åºãã¢ãã«ã«é©çšã§ãããšããç¹åŸŽãæã£ãŠããŸãã
ZeRO ã«ã¯ãåŠç¿ãã©ã¡ãŒã¿ãªã©ã®ããŒã¿ã GPU ã¡ã¢ãªãã CPU ã¡ã¢ãªã«ãªãããŒããã ZeRO-Offload ãšããä»çµã¿ããããŸããZeRO-3 ãšçµã¿åãããããšã§ã400å ãã©ã¡ãŒã¿ãšããå€§èŠæš¡ãªã¢ãã«ã§ãäžåºã® GPU ã ãã§åŠç¿ããããšãå¯èœã§ãã
å ããŠãCPU ã¡ã¢ãªã ãã§ãªãNVMeã¹ãã¬ãŒãžã«ããªãããŒããã ZeRO-Infinity ãšããä»çµã¿ãçšæããŠããŸããããã¯ãZeRO-3 ãã¯ãããšããããããçã¡ã¢ãªæè¡ãçµã¿åãããæ¥µããŠå€§ããªã¢ãã«ã®åŠç¿ã«ææŠãããã®ã§ãã
ãã®ã»ããç°ä»²ãçŸåšåãçµãã§ããæ©èœãšããŠç޹ä»ããã®ã¯ãåŠç¿ã®éäžã§å®è¡ç°å¢ãèšå®ã倿Žããå Žåã«å©çšã§ãã Universal Checkpoint æ©èœã§ãããã®æ©èœã«ãããåŠç¿éäžã§ä¿åããã¢ãã«ã Optimizer ã®ç¶æ
ãç°ãªã䞊åèšå®ã§èªã¿èŸŒã¿ãåŠç¿ãåéã§ããããã«ãªããŸãã
ããã«é«åºŠãªæ©èœãšããŠç°ä»²ã¯ãZeRO++ãDeepSpeed Mixture of Experts (MoE)ãDeepSpeed-FastGen ã«ã€ããŠã玹ä»ããŸããã
ZeRO++ ã¯ãZeRO ã®éä¿¡éãæžããå·¥å€«ãæœãããã®ã§ããé信垯åãéãããŠããå Žåã«ç¹ã«é¡èãªé«éåãå¯èœã§ããMoE ã¯ãæ°ããã¿ã€ãã®ã¢ãã«ã¢ãŒããã¯ãã£ã§ããå
¥åããŒã¿ã«å¿ããŠã¢ãã«ã®äžéšã®ã¿ãèšç®ããããšã§ãZeRO ãªã©ã®äžŠååã§ã¯åæžã§ããªãèšå€§ãªèšç®éãæéãã³ã¹ããåæžãããã®ã§ããDeepSpeed MoE ã¯ããã® MoE ã®ã¢ãã«ãå€§èŠæš¡ãã€é«éã«åŠç¿ããããã®ãã®ã§ããDeepSpeed-FastGen ã¯ãããã¹ãçæãé«éåããé«å¹çã«å®è¡ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ããããã¹ãçææã«èª²é¡ãšãªãããã³ãŒãæã® GPU å©çšçã®äœããšããã³ããåŠçæã®ã¬ã€ãã³ã·ã®é·ãã解決ããæ©èœã§ãã
æåŸã«ç°ä»²ã¯ãPyTorch ã®ã³ã³ãã€ã«æ©èœãšã®çµ±åã I/O é«éåãªã©ãçŸåšé²è¡äžã®ãããžã§ã¯ãã«ã€ããŠãè§ŠãããDeepSpeed 㯠OSS ã³ãã¥ããã£ããã®è²¢ç®ãéèŠãªã®ã§ããã²ãåå ãã ããããšåŒã³ãããŸããã
â æ¥œå€©ã°ã«ãŒãã® LLMãRakuten AI 7Bã
楜倩ã°ã«ãŒãããã¯ãMachine Learning and Deep Learning Engineering Department (ãã·ã³ã©ãŒãã³ã°ã»ãã£ãŒãã©ãŒãã³ã°ãšã³ãžãã¢ãªã³ã°éš) ã§ Senior Machine Learning Engineer ãåãã髿©çŽçŽæ°ãšãSearch Department (ãµãŒãéš) ã® Data Scientist ã§ããçæšå
æ°ãç»å£ããå瀟ãä»å¹Ž 3 æã«å
¬éããå€§èŠæš¡èšèªã¢ãã« (LLM)ãRakuten AI 7Bãã«ã€ããŠèª¬æããŸããã
楜倩ã°ã«ãŒããå
¬éããã®ã¯ãLLM ã®åºç€ã¢ãã«ãšãªããRakuten AI 7Bããšãåã¢ãã«ãåºã«ããã€ã³ã¹ãã©ã¯ã·ã§ã³ãã¥ãŒãã³ã°æžã¢ãã«ã®ãRakuten AI 7B InstructãããããŠãã®ã€ã³ã¹ãã©ã¯ã·ã§ã³ãã¥ãŒãã³ã°æžã¢ãã«ãåºã«ãã¡ã€ã³ãã¥ãŒãã³ã°ãè¡ã£ããã£ããã¢ãã«ã®ãRakuten AI 7B Chatãã§ããããããæ¥æ¬èªã«æé©åãã髿§èœãªã¢ãã«ã§ãNejumi ãªãŒããŒããŒãäžã§ã¯åçšåºŠã®ãµã€ãºã®ä»ã¢ãã«ããã粟床ã倧å¹
ã«äžåã£ãŠããŸã (2024 幎 3 ææç¹)ã
ãã®ã¢ãã«ã¯ãMistral AI 瀟ã®ãªãŒãã³ã¢ãã«ã§ãããMistral-7B-v0.1ããããŒã¹ã«ããŠããŸãã髿©æ°ã«ãããšãMistral ãæ¥æ¬èªã«é©å¿ããããããããŒã¯ãã€ã¶ãŒã®æ¥æ¬èªãžã®æé©åã远å äºååŠç¿ããã¡ã€ã³ãã¥ãŒãã³ã°ãããªã·ãŒæé©åãªã©ã宿œããããããã®åŠç¿ã«ãããŠããDeepSpeed ã®ãã¬ãŒã ã¯ãŒã¯ãå©çšããããšã§åæ£åŠçããŠããã(髿©æ°) ãšã®ããšã§ãã
髿©æ°ã¯ãããŒã¯ãã€ã¶ãŒã®æé©åãšè¿œå äºååŠç¿ã«äœ¿çšããããŒã¿ã®çææ¹æ³ã«ã€ããŠã解説ããŸãããMistral ã¢ãã«ã掻çšããã«ããã£ãŠã¯ãæ¥æ¬èªããŒã¯ã³ã远å ããŠã¹ããŒã ãæ¹åããä»ã®æ¥æ¬èªã«åŒ·ã LLM ãããå¹ççã«æ¥æ¬èªããã¹ããå§çž®ã§ãããšããŠããŸãã
ãŸããäºååŠç¿ã远å äºååŠç¿ã«äœ¿çšããããŒã¿ããŒã¹ã®ãã€ãã©ã€ã³ã«ã€ããŠã¯ãç¹ã«éè€æé€ãéèŠã ãšããŠãMin hashãšããã¢ã«ãŽãªãºã ãæ¡çšãããšã®ããšã§ãã
ç¶ããŠçæ°ã¯ãã¢ãã«ã®ãã¬ãŒãã³ã°ã«ã€ããŠè§£èª¬ãLLM ã®èšèªçè§£èœåãè©äŸ¡ãã LM-harness ããSupervised Fine-Tuning (SFT) ã«ãããã¬ãŒãã³ã°ãSFT ã®æ¬ ç¹ãã«ããŒããããã® Reinforcement Learning from Human Feedback (RLHF) ãªã©ã«ã€ããŠèªããŸããã
æåŸã«çæ°ã¯ãä»å楜倩ãå
¬éãã 3 ã€ã®ã¢ãã«ã¯ãApache 2.0 ã©ã€ã»ã³ã¹ã®äžã§æäŸãããæ¥œå€©ã®å
¬åŒ Hugging Face ãªããžããªããããŠã³ããŒãã§ãããšè¿°ã¹ãããèªç±ã«ããŠã³ããŒãããŠã䜿ããã ããããšã¢ããŒã«ããŸããã
â Turing ã®ãã«ãã¢ãŒãã«åŠç¿ã©ã€ãã©ãªãHeronã
å®å
šèªåé転è»ã®éçºã«åãçµã Turing æ ªåŒäŒç€Ÿã§ Director of AI ãåããå±±å£ç¥æ°ã¯ãå瀟ã®ãã«ãã¢ãŒãã«åŠç¿ã©ã€ãã©ãªãHeronãã«ã€ããŠè§£èª¬ããŸããã
ãã«ãã¢ãŒãã«ã¢ãã«ãšã¯ãè€æ°ã®å
¥å圢æ
(ã¢ãŒãã«) ã«å¯Ÿå¿ããã¢ãã«ã®ããšã山壿°ã¯ããé«åºŠãªèªåé転ã«ã¯ãèŠèŠæ
å ±ãšèšèªççè§£ãèåãããã«ãã¢ãŒãã«çãªçè§£ãå¿
èŠã§ãããšè¿°ã¹ãçŸåš LLM ãããŒã¹ãšããèšèªä»¥å€ã®å
¥åã»åºåã»ã¿ã¹ã¯ã«å¯Ÿå¿ããã¢ãã«ãå°é ããŠããŠãããšèªããŸãã
山壿°ã¯ã代衚çãªãã«ãã¢ãŒãã«ã¢ãã«ãè€æ°ç޹ä»ãDeepMind ãéçºããç»åããããªãããã¹ããåæã«åŠçãã Flamingo ããç»åãšèšèªã®é«åè³ªãªæç€ºãã¥ãŒãã³ã°ããŒã¿ã§é«ãæ§èœãå®çŸãããã€ã¯ããœããã® LLaVAãããŸããŸãªå·¥å€«ãéããŠè»œéã¢ãã«ã§æé«ã¬ãã«ã®æ§èœãéæãã Hugging Faceã®Idefics2 ã«ã€ããŠèª¬æããŸããã
Turing ã®ãã«ãã¢ãŒãã«åŠç¿ã©ã€ãã©ãª Heron ã¯ããããŸããŸãªã¢ãžã¥ãŒã«ãåŠç¿èšå®ãèªç±ã«çœ®ãæããŠç°¡åã«åŠç¿ã§ããã®ãç¹åŸŽã§ãããšå±±å£æ°ããŸããã忣åŠç¿ã«ã察å¿ããŠãããããã« DeepSpeed ãæ¡çšããŠããŸãããšãããŸããHeronã¯ãOSS ãšããŠå
¬éããŠããŸãã
山壿°ã¯ãç»åãšèšèªäž¡æ¹ã®æ
å ±åŠçãã§ããæ¥æ¬èª V&L (Vision and Language) ã¢ãã«ã§ã®æšè«äŸã玹ä»ããé転äžã®æ åããã©ãã«æ°ãã€ããã¹ãã質åãæãããããšãé路工äºã®äœæ¥å¡ãã«ã©ãŒã³ãŒã³ã®äœçœ®ãææ¡ãã亀éèŠåãéµå®ãã€ã€å®å
šã«è¿åãããäžæåæ¢ãããããããä¿ãåçãæ»ã£ãŠããŸãããšèª¬æããŸããã
ãŸã Turing ã¯ãV&L ãè©äŸ¡ãããã³ãããŒã¯ãšããŠãHeron-Benchããå
¬éããŠããŸããããã«ã€ããŠã¯ãWandB 瀟ãšé£æºãããªãŒãã³ãªãªãŒããŒããŒããšããŠæ¡çšããããšãæºåäžã ãšãããŸãã
Heronã©ã€ãã©ãªã§ã¯ãDeepSpeed ã忣åŠç¿ã®ããã¯ãšã³ããšããŠæ¡çšããå€§èŠæš¡ã¢ãã«ã®åŠç¿ãå¹ççã«é²ããŠããŸããç¹ã«ããã«ãã©ã¡ãŒã¿ãã¡ã€ã³ãã¥ãŒãã³ã°ãªã©ã«ãããŠã¯ãã«ãããŒãåŠç¿ãå¿
é ãšãªããHeron ã®ããŒã¹ãšãªã£ãŠãã Transformers ãšã®èŠªåæ§ãé«ã DeepSpeed ãæŽ»çšããŠããŸãã
Turing ã¯ä»åŸãå€§èŠæš¡ãªGPUã¯ã©ã¹ã¿ã掻çšãããããã«ãã¢ãŒãã«ã¢ãã«ã®åæ£åŠç¿ã®æºåãé²ããŠããŸããçŸåšãåœã®æ¯æŽã«ãããããžã§ã¯ãã«ãŠãã«ãã¢ãŒãã«ã¢ãã«ã®åŠç¿ãé²ããŠããã»ãããèªç€Ÿã§ã GPU ã¯ã©ã¹ã¿ãæ§ç¯ããããšåãçµãã§ããŸãããšã山壿°ã¯è¿°ã¹ãŸããã
â æ¥æ¬ã® AI æè¡ãçºå±ãããã«ã¯
ããŒãã¢ããã®æåŸã«ã¯ãç°ä»²ã®åžäŒã«ããããã«ãã£ã¹ã«ãã·ã§ã³ãè¡ãããŸããããããªã¹ããšããŠåå ããã®ã¯ãSakana AI æ ªåŒäŒç€Ÿ ãªãµãŒããµã€ãšã³ãã£ã¹ãã®ç§èæåæ°ãæ±äº¬å·¥æ¥å€§åŠ ææã®æšªç°ç倮æ°ãå
ã»ã©è¬æŒã«ç«ã£ã Turing ã®å±±å£æ°ããããŠæ ªåŒäŒç€Ÿãã£ãã¯ã¹ã¿ãŒãº LLM R&D Center éçºè²¬ä»»è
ã®åè€å°çæ°ã§ãã
ãã£ã¹ã«ãã·ã§ã³ã§ã¯ã䜿çšããŠããèšç®æ©ç°å¢ã®æ§ç¯ãéçšã«ãããç¹åŸŽããŸãéçºã®äœå¶ãšãã®èª²é¡ã«ã€ããŠããããèªã£ãåŸãç°ä»²ããæ¥æ¬ã® AI æè¡ãçºå±ãããããã«æ³šåãã¹ãããšã¯äœãããšåããããŸããã
ãã®ãããã¯ã¯ãåçŽã«ç±³åœã®å€§æãã¯ãããžäŒæ¥ã§äœãããåºç€ã¢ãã«ããœãããŠã§ã¢ã䜿ãã ãã§ã¯ã€ãŸããªãããšããèãããåãäžãããããã®ã§ãããç§èæ°ã¯ãSakana AI ã§ã¯ãç±³åœå€§æäŒæ¥ãšã¯ç°ãªãé¢çœãæè¡ãäœããããšèããŠããŸããæ¥æ¬ã¯ç±³åœãšé©åºŠã«è·é¢ãé¢ããå Žæã§ããã£ããç ç©¶ã«åãçµãããšãã§ããŸããç±³åœã«ãããšããŸããŸãªææ°æ
å ±ãå
¥ã£ãŠããŠåºæ¿ã«ã¯ãªããŸãããããããè·é¢ã®ããæ¥æ¬ã§ãæéããããŠæè¡ã«æè³ããã¹ã¿ã³ã¹ãäœããããšã¯ã¢ããã³ããŒãžã ãšæãã®ã§ãããã°ã£ãŠããããã§ããããšè¿°ã¹ãŸããã
äžçã§ããããã¯ã©ã¹ã®æè¡ãçã¿åºããããžã§ã¯ãã«æºãã人æã倿°è²ãŠãŠããæšªç°æ°ã¯ã人æè²æãå«ãã芳ç¹ããããæ¥æ¬åœå€ã§ã掻èºã§ãã人ã«ãªã£ãŠããããããåœå¢ãè¶
ããŠç«¶äºãããããªäººæãããããè²ã€ããã«ãªãã°ãç«¶äºåãé«ãŸãã§ãããããšèªããŸãã
山壿°ã¯ããWe overtake Teslaã(ãã¹ã©ã远ãè¶ã) ãšãã Turing ã®äŒæ¥ããã·ã§ã³ã«ã€ããŠè§Šããäžã§ããèªåè»ç£æ¥ã¯æ¥æ¬ã®åºå¹¹ç£æ¥ã®ãããçæAIãšããŸã飿ºããŠãã£ãŠããããšã¯éåžžã«éèŠã§ãæ¥æ¬ã§ãªããã°ã§ããªãéšåããããšèããŠããŸããOpenAI ã®ããã«åŒ·åãªã¢ãã«ã次ã
çºè¡šããäŒæ¥ããããŸãããTuring ã¯æ¥çã«ç¹åããŠä»ç€Ÿã«ã¯ã§ããªãããšããã£ãŠããããã§ããããšãææ¬²ãèŠããŸãã
山壿°ã®ã³ã¡ã³ããåããåè€æ°ã¯ã远ãã€ãã»è¿œãè¶ãã®ç²Ÿç¥ãæã€ããšã¯ãšãŠã倧åãæ°ããæè¡ãç»å Žãããããã£ãããã®æè¡ãåã蟌ãã§ããŸãã¯è¿œãã€ãããšã§ãã远ãã€ããªããã°è¿œãè¶ããŸããããããšè©±ããŸããããã®ãããªç²Ÿç¥ã§ããäººã®æ¹ããæè¡åãé«ãåŸåã«ãããšæããŸãã(åè€æ°)
ãããŠãAI åéã«è¿œãã€ãã远ãè¶ãã«ã¯ãã·ã¹ãã ã®å¹çåãå¿
é ã ãšåè€æ°ã¯ä»ãå ããŸãããã®ããã«ãããGPU ã®é«éåã«åãçµãã ããDeepSpeed ã®ãããªæè¡ãããŸã䜿ã£ããããŠã»ãããšæããŸãããšè¿°ã¹ããã£ã¹ã«ãã·ã§ã³ãç· ãããããŸããã
---
ã»æ¥æ¬ãã€ã¯ããœããã§ DeepSpeed ããŒãã¢ãããéå¬ããã®æ©èœãæŽ»çšæ³ãšã¯
https://news.microsoft.com/ja-jp/2024/06/14/240614-deepspeed-meetup-at-microsoft-japan-what-are-its-features-and-how-to-use-them/