ã³ã³ããå ã®æ©æ¢°åŠç¿
仿¥ã¯ãã³ã³ããå ã®æ©æ¢°åŠç¿ãšãæ©æ¢°åŠç¿ã®å®è·µè ã®ããã«éçºç°å¢ãšæ¬çªç°å¢ã®éã®ã®ã£ãããåããæ¹æ³ã«ã€ããŠã話ãããŸãã
ãžã³ãžã³ã§ãã ç§ã¯ TensorChord åºèº«ã§ãCTO å Œå ±ååµèšè ã§ãã åè·ã¯AWSãšã³ãžãã¢ãšããŠåããŠããŸããã äž»ã«ã°ã©ãã®æ·±å±€åŠç¿ã«åãçµãã§ããŸãã ç§ã¯ãç§åŠè ãã°ã©ãäžã®æ©æ¢°åŠç¿ã«é©çšããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããã£ãŒãã°ã©ãã©ã€ãã©ãªãããžã§ã¯ãã®åµèšã¡ã³ããŒã§ãããã³ã¢éçºè ã§ãã çŸåšãTensorChord ã§ã¯ãenvdãopenmodelzãpgvecto.rs ã® 3 ã€ã®è£œåã管çããŠããŸãã ç§ãã¡ã¯AIã€ã³ãã©ã¹ãã©ã¯ãã£äŒæ¥ã§ããããªãŒãã³ãœãŒã¹ãéåžžã«æããŠããŸãã ãã®ãããåœç€Ÿã®äž»èŠè£œåã¯ãã¹ãŠãªãŒãã³ãœãŒã¹ã§ãããAIã€ã³ãã©ã¹ãã©ã¯ãã£ã«çŠç¹ãåœãŠãŠããŸãã GitHubã¬ããŒããã芧ãã ãããç§ã®GitHubã¢ã«ãŠã³ãã¯@VOVAllenãªã®ã§ãããã§ã話ãã§ããŠããããã§ãã
envdãšããããŒã«ã§æ©æ¢°åŠç¿éçºç°å¢ãå°ã蟌ããæ¹æ³ã«ã€ããŠã話ããŸããå·ŠåŽã«ã¯çŽ æµãªããŽããããŸããããŽã«envdã®æåãåãå ¥ããŸããããããŠãã¿ããªç«ã倧奜ããªã®ã§ãç«ã®ããŽã«ããŸããã
ãªãã³ã³ãããªã®ã?
æåã®è³ªåã¯ããªãã³ã³ãããªã®ããšããããšã§ããããªãã³ã³ããã¯ããŒã¿ãµã€ãšã³ãã£ã¹ããéçºç°å¢ãšããŠäœ¿çšããã®ã«é©ããŠãããšèããã®ã§ããããã ããã§ãããŒã¿ãµã€ãšã³ãã£ã¹ãã倧ãã«æ©ãŸãã質åããããŸãã 1ã€ç®ã¯ã補åããšã«ç°å¢ãæŽããã®ãé£ããããšã§ãã äž»ãªçç±ã¯ãæ©æ¢°åŠç¿ã®åéã§ã¯ Python ãš C++ ãé »ç¹ã«äœ¿çšãããC++ ã©ã€ãã©ãªã«ã¯åžžã«æ··æ²ãšããäŸåé¢ä¿ã®åé¡ãããããã§ãã ãŸããCUDAã§ã¯ããã«æªåããGPUçãCUDAçã§ã¯ãã£ãŒãã©ãŒãã³ã°ãã¬ãŒã ã¯ãŒã¯çã§è£ãå¿ èŠããããããŒã¿ãµã€ãšã³ãã£ã¹ãã«ãšã£ãŠã¯æªå€¢ãšãªããŸãã 補åããšã«åé¢ãããç°å¢ãèšå®ããã®ã¯å°é£ã§ãã
2ã€ç®ã®åé¡ã¯ãããŒã¿ãµã€ãšã³ãã£ã¹ãã¯ã¢ãã«ãã¢ã«ãŽãªãºã ã«ã€ããŠå€ããåŠã³ãŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã€ããŠã¯ããŸãç¥ããŸããã 調æ»ã®çµæãDockerã«ã€ããŠèããããšãããã®ã¯äžéšã®ããŒã¿ãµã€ãšã³ãã£ã¹ãã®ã¿ã§ã䜿çšããããšãããã®ã¯ããäžéšã§ããããšãããããŸããã ããŒã¿ãµã€ãšã³ãã£ã¹ãããé©åãªDockerã€ã¡ãŒãžãæ§ç¯ããããã®åªããDockerfileã®æžãæ¹ãå®éã«ç¥ã£ãŠããããšã¯éåžžã«ãŸãã§ãã
äžéšã®äŒæ¥ã§ã¯ãç§åŠè ãDockerã®ã³ããããè¡ãã ãã§ããããšãããããŸãã ãããã£ãŠãDockerã§ãã¹ãŠãå®è¡ããã¬ã€ã€ãŒããšã«ã³ãããããã ãã§ãã æåŸã«ããã㯠20ã®ã¬ãã€ãã®ç»åã®ããã«ãªãããã®äžã«äœããããã¯èª°ã«ãããããŸããã 誰ã«ãšã£ãŠãããªãæªãç¿æ £ã ãšæããŸãã ããŒã¿ãµã€ãšã³ãã£ã¹ãã¯ãç°å¢ã«å®éã«äœãããã®ããç¥ãããããŒã ã¯ããã®ã€ã¡ãŒãžãå®å šãã©ããããŸãã¯ãã®å éšã«ã»ãã¥ãªãã£äžã®åé¡ããããã©ãããç¥ããŸããã
3ã€ç®ã®åé¡ã¯ãããŒã¿ãµã€ãšã³ãã£ã¹ããä»äººã®ä»äºãåçŸããã®ãé£ããããšã§ãã æ¯æ¥å€ãã®æ°ããã¢ã«ãŽãªãºã ãç»å ŽããŠããŸãã ãããŠãç§åŠè ã®äž»èŠãªä»äºã¯ãä»ã®äººã®ç ç©¶ãåçŸããããã«å€ãã®æéãè²»ããå¿ èŠããããåçŸæ§ã¯å·¥åŠåéã§ã¯åžžã«åé¡ã§ãã ã³ã³ããã¯ããã®ç¶æ³ãæ¹åããããã®è¯ãããŒã«ã ãšèããŠããã䜿ããããããŠæšæºã«ãªãã°ã誰ããç°¡åã«ä»äººã®ç°å¢ãåäœãåçŸã§ããããã«ãªããŸãã
ããŒã«
ããã¯ãPython ãšã³ã·ã¹ãã ã®è€éãã瀺ãå³ã§ãã éåžžãmacOSãªã©ã®éçºãã·ã³ã§ã¯ãPythonã ãã§ã¯ãã·ã¹ãã ã«çµã¿èŸŒãŸããŠããPythonãèªäœã®Pythonãªã©ãã©ãããããã«è€æ°ã®Pythonããããå®éã«å¿ èŠãªPythonãäœã§ãããããããªãããšããããããŸãã pip install somethingãå®è¡ãããããã·ã¹ãã ã«çµã¿èŸŒãŸããPythonã«ç§»åããPython 3ã§èŠã€ãããªããšããŸãã ãã·ã³å šäœã§ãã¹ãŠãè¡ããšãéåžžã«äžè¬çã§ããããšãããããŸããã
ãŸããAnacondaãªã©ãããã«å¯Ÿããæ¢åã®ãœãªã¥ãŒã·ã§ã³ãããã€ããããŸããããããã¯äž»ã«Pythonãšã³ã·ã¹ãã ã«çŠç¹ãåœãŠãŠãããããã¯åé¡ã®äžéšã«ãããŸããã ããã§ã¯ãPythonç°å¢ããŒã«ã«å«ãŸããŠããªããã®ããªã¹ãã¢ããããŸããã ãã®ãããPythonãšã³ã·ã¹ãã ã«å«ãŸããŠããªãéçºããŒã«(ãšãã£ã¿èšå®ãCUDAãªã©)ããããŸãã PyTorch ãªã©ã®ãã£ãŒã ã©ãŒãã³ã° ãã¬ãŒã ã¯ãŒã¯ã«ã¯ãè€é㪠CUDA äŸåé¢ä¿ã®åé¡ããããŸãã å€ãã®ããŒã«ãç¹å®ã®ããŒãžã§ã³ã«ãã€ã³ããããŠããŸãã ã§ããããããã ãã§ã¯ååã§ã¯ãªããšèããŠããŸãã ãŸããOpenCVãOpenMMLabãMMDetectionãªã©ãããã«å€ãã®C ++ã©ã€ãã©ãªããããŸãã C++ ã§ãããPython ãšã³ã·ã¹ãã ã«å«ãŸããŠããªãã©ã€ãã©ãªã倿°ãããŸãã ã³ã³ããã¯ãæ©æ¢°åŠç¿ã®ç§åŠè ããããžã§ã¯ããéçºç°å¢ã管çããããã®åªããããŒã«ã§ãããšèããŠããŸãã ãã®ããããããžã§ã¯ãããšã«åå¥ã®ç»åãäœæã§ããŸãã
envdã®
æ©æ¢°åŠç¿ãµã€ãšã³ãã£ã¹ããéçºç°å¢ãã³ã³ããåããã®ãã©ã®ããã«æ¯æŽããŸãã? ããã§ããŠãŒã¶ãŒãæ©æ¢°åŠç¿çšã®ã³ã³ããããŒã¹ã®ç°å¢ãäœæã§ããããã«ãCLIããŒã«ã«æ»ããŸãã æ§æã¯ Python ãšãŸã£ããåãã§ãã å®ã¯ãããšããšGoogleãè²ãŠãStarlarkãšããPythonã®æ¹èšã§ãã å®éã«ã¯ãåºç€æ§ç¯ã·ã¹ãã ã䜿çšããèšèªã§ãã ãŸãããŠãŒã¶ãŒãPythonã®ãããªæ§æã䜿çšããŠç°å¢èŠä»¶ãäžããããšãã§ããããã«ããããã«äœ¿çšããŠããŸãã 圌ãã¯ãã§ã«Pythonã®æ§æã«ç²ŸéããŠããã®ã§ããããã®ããŒã«ã«ç°¡åã«æ £ããããšãã§ããŸãã ãã«ã颿°ãå®çŸ©ããåºæ¬ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã€ã¡ãŒãžãCUDA ããŒãžã§ã³ãå¿ èŠãªããã±ãŒãžãªã©ã®ç°å¢ã®ããŒãºãèšè¿°ããã ãã§ãã ãããŠããã®ãã¡ã€ã«ã§ã¯ããenvd upããå®è¡ããã ãã§ãããã ãã§ãã ã³ã³ããæš©éã®éçºç°å¢ã¯ããã®ãããªãã®ã§ãã ãã§ã«ææ°ããŒãžã§ã³ã§ããããšãããããŸãããenvdç°å¢ã«ããããšãããããŸãã
ããäžã€ã®çŽ æŽãããæ©èœã¯ãäžè¬çãªãŠãŒã¶ãŒããŒã«ã®å€ãã®ã¬ã·ããäºåã«å®çŸ©ã§ããããšã§ãã ããã§ã¯ãäŸãšã㊠TensorChord ã䜿çšããŸãã Envd lib ã¯ã¡ã€ã³ã®ã¬ã·ããªããžããªã§ãã äžè¬çãªãŠãŒã¶ãŒããŒã«ã®ã¬ã·ãã倿°çšæãããŠããã®ã§ãenvd lib ã®ããŒã«ãçŽæ¥åŒã³åºããŠã»ããã¢ããããããšãã§ããŸãã ãããã£ãŠãTensorChordã®å Žåãšåæ§ã«ãTensorChordã»ããã¢ãããã€ã³ã¹ããŒã«ããå¿ èŠããããã³ã³ããã«ãããŸãã envdããªããšãã€ã¡ãŒãžã®ãšã³ããªãã€ã³ãã倿Žããå¿ èŠããããŸãããããã¯1ã€ã®éšåã«ãããŸããã Docker ã§åæã«å®è¡ããå¿ èŠãããè€æ°ã®ããã»ã¹ãããå ŽåããããŸãã ãã®ãããçŽç²ãªDockerãã¡ã€ã«ãäœæããŠããå Žåã¯è€éã«ãªããŸãã
3 çªç®ã®æ©èœã Python æ§æã«ãã£ãŠæå¹ã«ãªããŸãã äžè¬çãªç¶æ³ã¯ãéçšç°å¢ãéçºç°å¢ãšãããã«ç°ãªãããšã§ãã ãã®ãããéçºããŒã«ãã§ããã ãéçºã«å«ãããã®ã§ããããããåé€ããŠãéçšã€ã¡ãŒãžãã§ããã ãæå°éã«æããããšèããŠããŸãã ããã§ã¯ãäžäœé¢æ°ãã³ã¢ã®äŸåé¢ä¿ãå®çŸ©ããŸãã éçºãšéçšã®äž¡æ¹ã§çµ±åãããŠãã Python ããã±ãŒãžããããŸãã ãããŠãéçºã€ã¡ãŒãžã§ã¯ãå¿ èŠãªããŒã«ãããã«å®£èšããããšãã§ãããµãŒãã³ã°ã€ã¡ãŒãžã§ã¯ãããããåé€ããã ãã§æžã¿ãŸãã ãã®ãããå¥ã®ãã®ãå®çŸ©ãããããšã³ããªãã€ã³ããå®çŸ©ãããã§ããŸãã ãã®ããããµãŒãã³ã°ç»åã¯ç®±ããåºããŠããã«å®è¡ã§ããŸãã
ãã¢æé
次ã«ãã¡ãã£ãšãããã¢ãããŸãã ããã¯build.envdã®ç©ºã®ãã©ã«ãã®ãããªãã®ã§ãã ããã¯ãenvd ãšåŒã°ããã«ã¹ã¿ã æ¡åŒµæ©èœåã§ãã ããã§ã¯ãç°¡åãªãã«ã颿°ãèšè¿°ããŸãã ãããã£ãŠãããŒã¹ãå®çŸ©ããPythonããã±ãŒãžãå®çŸ©ããŸãã ãã¢ãå®è¡ããããã®ç©ºã®ããã±ãŒãžã ããå¿ èŠã§ãJupyter Notebook ãã»ããã¢ããã㊠envd ãåŒã³åºãã ãã§ãã ãã§ã«é»è©±ããã£ããšæãã®ã§ãæåã«ãããåé€ããå¿ èŠããããŸãã ãããŠãç§ã¯ãã ãenvd upããããŸãã ãã®ãããæ§ç¯ããã»ã¹ãéå§ããããã¹ãŠãã€ã³ã¹ããŒã«ãããŸãã 以åã«ãã«ã ããã»ã¹ãå®è¡ããã®ã§ããã¹ãŠããã£ãã·ã¥ãããŠããããšãããããŸãã ãŠãŒã¶ãŒã¯ãç°å¢ããã®ãŸãŸäœ¿çšã§ããŸãã ããã§ã¯ããã§ã«ã³ã³ããå ã®envdç°å¢ã«ããŸãã
ããã«ã³ã³ãããèŠããŸãã ãããPythonã®åºæ¬ã§ãããå®çŸ©ãããããŒããå ¬éããŸãã ãŸããã³ã³ããå ã«sshdãµãŒããŒãåã蟌ãŸããŠãããããæ©æ¢°åŠç¿ã¯ãŒã«ãŒã®äžè¬çãªã·ããªãªã§ãããªã¢ãŒããã·ã³ã§ç°å¢ãç°¡åã«äœ¿çšã§ããŸãã éåžžã¯ãç¬èªã®éçºãã·ã³ã§å°ãéçºããŠãããGPU ã®ãã¯ãŒãå¢ãã匷åãªã¯ã©ã¹ã¿ãŒã«ç§»åããŸãã ãã®ãããSSHã®ãããªãªã¢ãŒãéçºãå¿ èŠã ãšèããŠããŸãã SSHèšå®ãã¡ã€ã«ã«ãšã³ããªã远å ããã®ã§ã "ssh python-basic.envd"ãå®è¡ããã ãã§æžã¿ãŸãã ãŸããç°å¢ã«å ¥ãããšãã§ããŸãã
ãªãDockerfileã§ã¯ãªãã®ã§ãã?
ãªãDockerfileã§ã¯ãªãã®ã§ãã? ãªãç¬èªã®ãã«ããã¡ã€ã«åœ¢åŒãå®çŸ©ããå¿ èŠãããã®ã§ãã? æåã«èŠã€ãã£ãåé¡ã¯ãDockerfile ã®äžéšã®ããŒããåå©çšããã®ãé£ããããšã§ãã ããšãã°ãMMDetection ãã«ã¹ã¿ã æŒç®åãªã©ãã€ã³ã¹ããŒã«ãå°é£ãªã©ã€ãã©ãªãããã圢åŒãååã«åæ£ãããŠããªããšããŸãã ãã®ãããäžåºŠèšè¿°ããã°ããããåå©çšããå¿ èŠãããå Žåã¯ããã Dockerfile ããå¥ã® Dockerfile ã«ã³ããŒããŠè²Œãä»ããã ãã§æžã¿ãŸãã æåŸã«ããããã®éšåãæŽæ°ããå¿ èŠããããšãã«æ··ä¹±ããŸãã
2ã€ç®ã®åé¡ã¯ãDockerfileã®ãã¡ã€ã³ç¥èãããŒã¿ãµã€ãšã³ãã£ã¹ãã«ã¯ããŸãé©ããŠããªããšèããŠããããšã§ãã åè¿°ããããã«ãããŒã¿ãµã€ãšã³ãã£ã¹ãã¯ã¢ã«ãŽãªãºã ãã¢ããªã³ã°ãåŸæã§ãããDockerfileã®éšåã«ã€ããŠã¯ããã®çµéšãããŸããªãå¯èœæ§ãé«ãã§ãã 圌ãã«ãšã£ãŠãåªãã Dockerfile ãæžãã®ã¯å°é£ã§ãã ãŸããä»ã®ãšã³ãžãã¢ãæ¬åœã«åªãã Dockerfile ãäœæããã®ãé£ãããšæããŸãã ã¬ã€ã€ãŒãé©åã«èšèšããæ¹æ³ãããã£ãã·ã¥ãåå©çšããæ¹æ³ãªã©ãèæ ®ãã¹ãããšã¯ãããããããŸãã ããšãã°ãã€ã¡ãŒãžãå¿ èŠã§ãPyTorch ãã€ã³ã¹ããŒã«ããããšããŸãã ãããã®éã§pipãã£ãã·ã¥ãã©ã®ããã«åå©çšã§ããŸããããŸããã€ã¡ãŒãžãæ§ç¯ãããšãã«ããã¹ãäžã®ãã¡ã€ã«ãã©ã®ããã«äœ¿çšããŸãã? ã³ã³ãããŒã§ Jupyter Notebook ãå®è¡ããã«ã¯ã©ãããã°ããã§ãã? ãŸããJupyter Notebook ãš TensorChord ãã³ã³ãããŒã§åæã«å®è¡ããã«ã¯ã©ãããã°ããã§ããããã ãããã¯ãã¹ãŠãéçºç°å¢ãšããŠã³ã³ããã䜿çšããå Žåã®å®éã®åé¡ã®ãããªãã®ã§ãã
ããŒã¿ãµã€ãšã³ãã£ã¹ãããã®ãããªããŒã«ã䜿ãã®ã¯é£ãããšæããŠããŸãã ãã®ãããStarlarkããŒã¹ã®æ§æã¯ãããŒã¿ãµã€ãšã³ãã£ã¹ãã«ãšã£ãŠããã·ã³ãã«ã§éŠŽæã¿æ·±ããã®ã ãšæããŸãã
BuildKit
ãããenvdã®å éšã§ããç§ãã¡ã¯BuildKitã«å€§ããäŸåããŠããŸããBuildKit ã¯ãå®éã«ã¯ Docker ã®æ¬¡äžä»£ãã«ã ãšã³ãžã³ã§ããããã¯å®éã«ã¯ãDockerã€ã¡ãŒãžãæ§ç¯ããããã®äœã¬ãã«ã®ãã«ãã©ã€ãã©ãªã§ãããDockerfileã«äŸåããŸããããããã£ãŠãDockerfileããŒãžã§ã³ 2 ã¯BuildKitããµããŒãããŠããŸãããDockerfileãå®è¡ããå¿ èŠã¯ãããŸãããéçºè ã¯èª°ã§ããç¬èªã®ããã³ããšã³ãèšèªãå®çŸ©ããŠäœ¿çšã§ããŸãã
BuildKitã®ããäžã€ã®çŽ æŽãããæ©èœã¯ã䞊åãã«ãããµããŒãããŠããããšã§ãã Dockerfile ã§ã¯ããã¹ãŠãçŽç·çã«ããå®è¡ã§ããªãããã1 ã€ã®ã¹ãããã¯ãä»ã®ã¹ããããçµäºããåŸã«å®è¡ããå¿ èŠããããŸãã ããããBuildKit ã§ã¯ãããŸããŸãªã¹ãããã䞊ååã§ããŸãã ãããã¯ãŒã¯éè·¯ãšéãªããããäºãã«éãªãåãå¯èœæ§ã®ããã¹ããããããå Žåã¯ãå€§å¹ ã«é«éåã§ããŸãã ãã®åŸãåŸã§ 2 ã€ã®ã¹ããããããŒãžããŠããã«ãé床ãåäžãããããšãã§ããŸãã
3 çªç®ã®éšåã¯ãBuildKit ãšåæ§ã«ãã£ãã·ã¥å¹çãé«ããªããŸãã ãã£ãã·ã¥ã©ã€ãã©ãªçšã«ç¹å¥ãªèšèšã«ãªã£ãŠãããããç°ãªããã«ãéã§ãã£ãã·ã¥ãç°¡åã«å ±æã§ããŸãã ãã®ãããPyTorch ã䜿çšããå¥ã®ãããžã§ã¯ããããããã«ããããã®ãã«ãéã§ pip ãã£ãã·ã¥ãå ±æã§ããŸãã ããããéèŠãªã®ã¯ãBuildKit ã¯éåžžã«äœã¬ãã«ã§ããããããŠãŒã¶ãŒåãã®ã€ã³ã¿ãŒãã§ãŒã¹ãåå®çŸ©ããå¿ èŠããããšããããšã§ãã
以äžã¯ãBuildKit ã䜿çšããã¢ãŒããã¯ãã£ã§ãã ããã§ã補åãã©ã«ããšè¿œå ã®build.envdããããŸãã envd ãã¡ã€ã«ã¯ãéçºããéçšãŸã§ã®ç°å¢ã«å¯Ÿå¿ããæºåãã§ããŠããŸãã ãŸããenvd å ã«ã¯ãenvd ãã¡ã€ã«ãå éšã®äžé衚çŸã«å€æããããã® StarLark èšèªã³ã³ãã€ã«ããããŸãã æ¬¡ã«ãããã BuildKit LLB ã«å€æããŸãã ãããã£ãŠãLLBã¯äœã¬ãã«ãã«ãã®ç¥ã§ãã ããã¯ãã€ã¡ãŒãžãæ§ç¯ããããã« BuildKit å ã§è¡šãããŸãã ãããŠãLLBã®æ§ç¯ãå®äºãããããããBuildKitããŒã¢ã³ã«éä¿¡ããŸãã ãã®ãããããŒã¢ã³ã¯ãã«ãã«é¢ãããã¹ãŠãåŠçããã€ã¡ãŒãžãçæããŸãã æåŸã«ãã€ã¡ãŒãžãDockerããŒã¢ã³ã«éä¿¡ããŸãã ãã®ãããDocker pså ã®ã€ã¡ãŒãžãå¥ã®ã€ã¡ãŒãžãšããŠèŠãããšãã§ããŸãã
ããã§ã¯ãenvd ãš Dockerfile ãæ¯èŒãããã³ãããŒã¯ãããã€ã玹ä»ããŸãã æåã®ãã«ãã§ã¯ãDockerfileãããçŽ2åã®é床ã§é«éã§ãã ããã¯ãPython ã®ã€ã³ã¹ããŒã«æé ãš APT ã€ã³ã¹ããŒã«ãã¹ã®æé ã䞊ååããããšã§è¡ãããŸãã ãŠãŒã¶ãŒãã¹ã¯ãªããããã«ãããã®ã䞊ååããããã®è峿·±ã圹å²ã¯ä»ã«ããããŸãã ãŸããã¬ãã¥ãŒã®æé©åã«ãç¹åããŠããŸãã éçºè ãéçºç°å¢ã倿Žããããšã¯éåžžã«äžè¬çã§ãããããããã«ããã±ãŒãžã远å ããããšããå§ãããŸãã ãã®ãããªã·ããªãªã«æé©åããŠãããããåæ§ç¯ã·ããªãªã§ã¯ Dockerfile ã®çŽ 6 åã®é床ã«ãªããŸãã
ãªã¢ãŒããã«ã
ç§ãã¡ããµããŒãããä»ã®éšåã¯ããªã¢ãŒããã«ãã«é¢ãããã®ã§ãã ãã®ããããŠãŒã¶ãŒã¯ build.envd ãã¡ã€ã«ãããŒã«ã«ã«èšè¿°ãããªã¢ãŒããã·ã³ã§ãã«ããå®è¡ã§ããŸãã ã§ããããenvdã«ã¯ã³ã³ããã¹ãã®æŠå¿µããããŸãã ãããã£ãŠãremote build ãšããæ°ããã³ã³ããã¹ããäœæããæå®ããããã«ããŒã TCP ã¢ãã¬ã¹ãšããŠäœæããã ãã§æžã¿ãŸãã ãŸããBuildKit ãæèŒããŠããŸãã
ããã¯ãããšãã°ãæ©æ¢°åŠç¿ã¯ãŒã¯ãããŒãªã©ããœãŒã¹ ã³ãŒããªã© C++ ããäœããã³ã³ãã€ã«ããå¿ èŠãããå Žåãªã©ããã«ã ããã»ã¹ã§å€§éã® CPU ãªãœãŒã¹ãå¿ èŠãªå Žåã«éåžžã«äŸ¿å©ã§ãã 倧éã®CPUãªãœãŒã¹ãå¿ èŠã§ãããæ©æ¢°åŠç¿ã®ã©ã€ãã©ãªãTensorCordãPyTorchã®ããã«ã®ã¬ãã€ãã¬ãã«ãšããªã倧ããã§ãã ãã®ããããã«ããé«éåããã«ã¯ãé©åãªãããã¯ãŒã¯åž¯åå¹ ãå¿ èŠã§ãã ãªã¢ãŒããã·ã³ã§ãããå®çŸããã«ã¯ããªã¢ãŒããã·ã³ããããªãã¯ã¯ã©ãŠãã«é 眮ããŸãã ãããã£ãŠããããªãã¯ã¯ã©ãŠããã·ã³ã¯ãããã¯ãŒã¯åž¯åå¹ ã倧ãããããå€ãã®CPUã³ã¢ãå²ãåœãŠãããšãã§ããããããã¹ãŠãåãããã«æ©èœããŸãããã¯ããã«é«éã«ãªããŸãã éçºè ã«ãšã£ãŠã¯ãéçºãšã¯ã¹ããªãšã³ã¹ã®åäžã«ã圹ç«ã¡ãŸãã macOSã§ãã¹ãŠãå®è¡ããå¿ èŠã¯ãªãããã·ã³ãéåžžã«ããŒãã«ãªããã€ã¡ãŒãžã®æ§ç¯ã«éåžžã«é·ãæéãè²»ãããªã©ãæ°åãæªããªããŸãã æéã®ç¡é§ã§ãã
ãªã¢ãŒããã«ãã¯ãç¹ã«ããŒã ã®CI/CDã¯ãŒã¯ãããŒã«é©ããæ©èœã§ããããšãããããŸããã ãã«ããããžã§ã¯ããéäžç®¡çããããã·ã³ã«ã¢ãŠããœãŒã·ã³ã°ããããšãã§ããŸãã ãã®ããããã£ãã·ã¥ã®ç®¡çãã¯ããã«ç°¡åã«ãªããã¯ã©ã¹ã¿ãŒã®ããã«ãã£ãã·ã¥ãå¯èœãªéãåå©çšã§ããŸãã
次ã®å³ã¯ CI/CD ãã·ã³ã瀺ããŠãããã³ã³ããã¹ã ã¯ãªãšãŒã¿ãŒãè¡ããããã³ã¢ã 1 ã€ã 2 ã€ãããªã GitHub Actions ãã·ã³ããå°çšã®ãã«ã ã¯ã©ã¹ã¿ãŒã«èµ·åã§ããŸãã ãããŠãæåŸã«ããããªã¢ãŒãã¬ãžã¹ããªã«ããã·ã¥ããŠããã¹ãŠãç®±ããåºããŠããã«æ©èœããããã«ããŸãã CI/CDã®æéãå€§å¹ ã«ççž®ã§ããéçºè ã®æéãç¯çŽã§ãããšæããŠããŸãã
çµè«
仿¥ã¯ä»¥äžã§ãããæ¬æ¥ã¯ããããšãããããŸããã ãŸãããããã®ã¹ã©ã€ããšenvdã§å€ãã®ã®ãæäŒã£ãŠãããååã®Kemingã«ãæè¬ããŸãã
GitHub ã® TensorChord ã§ã¹ã¿ãŒãä»ããŠããã ããã°å¹žãã§ã â å ã»ã©ç޹ä»ããããã«ãenvd ãšãã 3 ã€ã®ãããžã§ã¯ãããããŸãã ãŸããopenmodelzã¯ãéçºè ãã¯ã©ã¹ã¿ãŒã«ã¢ãã«ããããã€ããã®ã«åœ¹ç«ã€ãã¬ãŒã ã¯ãŒã¯ã§ãã ããã«ãšã³ãžãã¢ãªã³ã° ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããããã¯ã©ã¹ã¿ãŒã«ãã·ã³ã远å ããã¢ãã«ã®ãããã€ãäŸé Œããã ãã§æžã¿ãŸãã 3ã€ç®ã¯ pgvecto.rsã ããã¯Postgresã®ãã¯ãã«æ€çŽ¢æ¡åŒµæ©èœã§ãããããPostgreså ã§çŽæ¥ãã¯ãã«æ€çŽ¢ãå®è¡ã§ããŸãã ããã ãã§ãã ã©ããããããšãããããŸãã
ããã«è©³ãã
- Docker ã«ãã人工ç¥èœã𿩿¢°åŠç¿
- Docker ãã«ãããã
- Docker ãã¹ã¯ãããã®ææ°ãªãªãŒã¹ãå ¥æããŸãã
- 質åããããŸãã? Docker ã³ãã¥ããã£ããæäŒãããŸãã
- ããã«ãŒã¯åããŠã§ãã? å§ããŸãããã
- Docker Newsletter ã賌èªããŠãã ããã