äž»æš
åŸæ¥ãGitãLFSãçšããŠæ©æ¢°åŠç¿ã®ããŒã¿ã管çããŠãããæè¿ããã®ä»£ããã«DVCã䜿ãããã«ãªã£ãã®ã§ããã®éçšã§æããããšã瀺ããDVCãã©ã䜿ã£ãŠããã®ããäœ¿ãæ¹ã«è¿·ã£ãŠãã人ã®åèã«ãªãã°å¹žãã§ãã
Git LFS ã®ç¶æ³
- æ©æ¢°åŠç¿ã®ããŒã¿ãæå®ã®ãã©ã«ã以äžããã¡ã€ã«åäœã®ç²åºŠã§ç®¡çã§ããããŒã«ã§ããã
- 倿Žããã£ããã¡ã€ã«åãç¥ãããšãã§ããããããã¹ããã¡ã€ã«ã®å Žåã«ã¯diffã衚瀺ããããšãã§ããã
- Githubãªã©ã§PRã®å·®åãwebãã©ãŠã¶ã§è¡šç€ºãããå Žåã«ã¯ãç»åãã¡ã€ã«ã®å€æŽåãšå€æŽåŸãšã衚瀺ãããããšãã§ããã
- ãGit LFSã¯ããªããžããªã«å®éã®ãã¡ã€ã«ã§ã¯ãªãããã¡ã€ã«ãžã®åç §ãä¿åããããšã§å€§ããªãã¡ã€ã«ãæ±ããŸãã
- éåžžã®Gitãšã®éãã¯ãLFSã§ç®¡çãããã¡ã€ã«ããã¡ã€ã«ãã¿ãŒã³ã§æå®ããŠããã®ãã¡ã€ã«ã«ã€ããŠã¯ããã¡ã€ã«ãžã®åç §ãä¿åããããã«ãªã£ãŠããŸãã
- github ãªã©ã®gitã®ãµãŒãã¹ã§ã¯ã2 GBãè¶ ãããªããžããªãäœã£ãŠã¯ãªããªãå¶éããããŸãã
- Git LFSã䜿ãããšã§ãäŸãã° *.jpg ã®ãã¡ã€ã«ã¯
git lfs track "*.jpg"ãšããããšã§ãLFSã«å¯Ÿè±¡ã«ããããšãã§ããŸãã - ãã®çµæãGit LFSã䜿ãããšã§ã倧éãªããŒã¿ããã£ãŠã2GBã®å¶çŽã®ç¯å²ã«ãªããžããªãçããããšãã§ããŸããïŒLFSã§ç®¡çããŠããããŒã¿ã¯ããªããžããªãšã¯å¥ã«å®¹éãæ¶è²»ããŠããã®ã¯å€ãããªãïŒ
è€æ°ã®ããŒã¿ã»ãããããªãããŒã¿ã»ããã®å Žå
- è€æ°ã®ããŒã¿ã»ãããããªãããŒã¿ã»ããã®å Žåã«ãgit submoduleã§ç®¡çããããšãããã
- git submoduleã®äœ¿ãæ¹ã¯webäžã«å€æ°èª¬æãããã®ã§ããã§ã¯çç¥ããã
- git ã®ãªããžããªã®äžã«ãä»ã®ãªããžããªãå«ããŠç®¡çããããæ¹ã§ãã
git submodule, git lfs ã®äœµçšã¯è€éããé«ããããã
- ããæ©æ¢°åŠç¿ã®ããŒã¿ã»ãããsubmodule ã§è€æ°ã®ãªããžããªã«åå²ãããšãããããã®submodule ã§ã®ç®¡çãšãsubmoduleãšããŠã®ç®¡çãšã管çäœæ¥ãæ Œæ®µã«å¢ããã
- ææ³ïŒ
- äžäººã§ç®¡çéçšããŠãããªããžããªã ããã§ããäœæ¥
- è€æ°åã§åæ¥ããŠç»é²ã»æ¹å€äœæ¥ãããã«ã¯ãããããããªãã
DVCã®å°å ¥
- DVCã®ãµã€ãã®äŸé¡ãvideoã§èŠãŠã©ããªããšãã§ããã®ããã©ã®ãããªæé ã§è¡ãã®ããèŠãŠã¿ããã
DVC ã¯äœãã©ãããããŒã«ãªã®ã
- 察象ã®ãã©ã«ãããŸãšããŠç®¡çããããŒã«ã
- ããæç¹ã®ã¹ãããã·ã§ããããªã¢ãŒããã©ã«ãã«ä¿åããã
- ãã®ã¹ãããã·ã§ããããã©ã«ãã«å¯Ÿããmd5sumã§ç¶æ ãèŠããŠãã(*.dvc)ã
- *.dvcãã¡ã€ã«èªäœã¯ãgit ã§ç®¡çãããã
- *.dvcã®å€ãå ã«ãdvc pull ã§ãã®ãšãã®ãã©ã«ãæ§æãããªã¢ãŒããã©ã«ãããåæ§ç¯ããã
- DVCèªäœã¯ããã¡ã€ã«ä¿åã®ãµãŒãã¹ãè¡ã£ãŠããªããæ¢åã®ãªã¢ãŒããã©ã«ããµãŒãã¹ã®ã©ããããŠãŒã¶ãŒãéžæããŠå©çšãããïŒGoogle Drive, Google Cloud Storage, AWS(S3)ãªã©ïŒ
- ã¡ãªã¿ã«ãã©ã®æç¹ã®ã¹ãããã·ã§ããã§ãåçŸã§ããããã«ããŠãããªã¢ãŒãã®ãã©ã«ãã¯ãDVCãä»ããŠæ±ããããã«ãªã£ãŠããã®ã§ãDVCãä»ããã«ã¢ã¯ã»ã¹ããŠããæå³äžæã®ç¶æ³ã«ãªãã
DVCã§ã¯ããªãããš
- ããæç¹ã§ã®dvcãgit ãžã®ç»é²å
容ãšãå¥ã®æç¹ã®dvc, gitãžã®ç»é²å
å®¹ã®æ¯èŒ
- ç¥ãããã®ã¯ãsizeãšnfilesãšhashå€ã ã
- ãã®ãããã©ã®ãã¡ã€ã«ã倿Žã«ãªã£ãã®ãããç¥ãããšãã§ããªãã
DVCãããŒã¿ç®¡çã«å©çšãã
- DVCã®ãããªãšDVCã®å ¬åŒãµã€ãã®ããã¥ã¡ã³ãããã©ãããã«èšå®ãè¡ãããšã§ãDVCãå©çšããããŒã¿ç®¡çãå°å ¥ã§ããã
å人çã«å²ãåã£ãäœ¿ãæ¹
- 倿Žã¯ãsubfolderã®è¿œå ãåºæ¬ãšãããã
- subfolderãžã®ãã¡ã€ã«ã®è¿œå ã¯ããªãã
- DVC管çäžã®ãã©ã«ãæ§æã®æ å ±ã¯ãããã¹ããã¡ã€ã«ã«èªåã§ä¿åãããããã®ãã¡ã€ã«ãgit ã§ç®¡çããã
- ããããã°ãgitã§èŠããšãã«ãsubfolder ã®ç¶æ³ã®å€åãGithubäžãªã©ã§ç¢ºèªã§ããã
- Github ã®PRã®äžã§ã倿Žç¹ã«ã€ããŠã®ãã³ããèšèŒããgitã®åŽã§å€æŽç¶æ³ããã©ããããã«ããã
DVC 以éã®å©ç¹
- åç §ããã ãã®å©çšè ã«ãšã£ãŠã®å©ç¹
$ git checkout main
$ git pull
$ dvc pull
ããã ãã®äœæ¥ã§æžãã
ãã®ãããgit submodule, git LFS ã䜿ã£ããšãã®å Žåã«ããã¹æé ãåçŽã«ãªãã
DVC ã«ç§»è¡ããäžã§å¿ èŠãªçºæ³ã®è»¢æ
- å šãŠã®æäœã«ãããŠãã©ããã©ã倿Žãããšããå·®åã衚瀺ããŠã倿Žç¹ãæç€ºçã«ç®¡çããããšèããæå¿µãããã
- ã©ãããæé ã§ãå ç»åãå å·¥ããŠåŠç¿çšã®ç»åã«å€æãããšãçµç·¯ãšãã¯ãDVCã§ç®¡çããã¹ãã§ã¯ãªãã
- ããšã¯å©çšããã ãã«ãªã£ãããŒã¿ã ããsubfolderã§è¿œå ããã ããšããåçŽåãããã
- dvc add; dvc push ãšããããæç¹ã§ã®å¯Ÿè±¡ãã©ã«ãã®ãã¡ã€ã«æ§æã»ãã¡ã€ã«ããšã«ããæ£ãããšãããã®ã§ãããas-isïŒããããŸãŸïŒã®ããŒã¿ç®¡çã§ãããšããã®ãåãæ¢ããããšã
- äžçšæã«æå³ããªã倿Žã察象ãã©ã«ãã«å¯ŸããŠããªãããšã
- subfolderãsubfolderäžã®ãã¡ã€ã«ãåé€ã»ç Žå£ããŠããŠããdvcã¯èŠåãããªãã
ãŸãšã
- DVCã䜿ãããã«ã¯ãGitãšçºæ³ãéãããšãçè§£ããå¿ èŠãããã
- ãã®ããšãçè§£ããŠéçšããã°ãéçšã®æé èªäœã¯git submodule, git LFS ã䜿ãããã¯ã¯ããã«ç°¡åã§ããã
- git ã¯ããŒã«ã«ã«å±¥æŽãæã€ã®ã§ãgit ã®ç®¡ç察象ãå¢ããã°å¢ããã»ã©ãããŒã«ã«PCã§ã®é åãå§è¿«ããŠããŸããããããDVCã§ã¯*.dvcãã¡ã€ã«ãgit ã§ç»é²ãããã ããªã®ã§ãããŒã«ã«ã«æã€å±¥æŽãå°ãªããªãã
- ãã®ãããªéãæ¹ãçè§£ããã°DVCã¯äœ¿ãããã
é¢é£èšäº
DVC(Data Version Control) ã䜿ã£ãŠç»åããŒã¿ã»ããã管çãã