데이터 버전 제어(소프트웨어)

Data Version Control (software)
DVC
원본 작성자드미트리 페트로프
개발자반복적.아이
초기 출시2017년 5월 4일; 5년 전
안정적 방출
2.30.0 / 2022년 10월 10일, 하루 전
저장소https://github.com/iterative/dvc
작성 위치파이썬
유형기계 학습 CLI
면허증.Apache - 2.0
웹사이트dvc.org

DVC는 데이터, 기계 학습 모델 및 [1]실험을 위한 자유오픈 소스 플랫폼에 구애받지 않는 버전 시스템입니다.ML 모델을 공유할 수 있고 실험을 재현할 [2]수 있으며 모델, 데이터 [3][4][5]파이프라인의 버전을 추적할 수 있도록 설계되었습니다.DVC는 Git 저장소[6]클라우드 스토리지 [7]위에서 작동합니다.

DVC 0.6의 첫 번째 (베타) 버전은 2017년 [8]5월에 출시되었습니다.2020년 5월, DVC 1.0은 [9]Iterative.ai 에 의해 공개되었습니다.

개요

DVC는 소프트웨어 개발[10] 모범 사례를 머신 러닝 [11]워크플로우에 통합하도록 설계되었습니다.데이터셋 및 머신 러닝 [12]모델을 위한 클라우드 스토리지별로 기존 소프트웨어 Git을 확장하여 이를 수행합니다.

특히 DVC는 기계 학습 작업을 수행합니다.

  • 암호화: 데이터 파일에 대한 포인터를 클라우드 [3]스토리지에 저장하여 데이터 세트 및 모델을 암호화합니다.
  • 재현 가능: 사용자가 [13]실험을 재현하고 원시 [14]데이터에서 데이터 세트를 재구성할 수 있습니다.또한 이러한 기능을 통해 데이터 세트 구성, ML [15]모델의 교육, 평가 및 배포를 자동화할 수 있습니다.

DVC 및 Git

DVCGit [3]외부의 별도 스토리지에 대용량 파일과 데이터셋을 저장합니다.이 스토리지는 사용자의 컴퓨터에 있거나 AWS S3, Google Cloud Storage,[17][18] Microsoft Azure Blob Storage와 같은 주요 클라우드 스토리지 [16][5]공급업체에서 호스팅할 수 있습니다.또한 DVC 사용자는 모든 서버에 원격 리포지토리를 설정하고 [3]원격으로 연결할 수 있습니다.

사용자가 데이터와 모델을 원격 저장소에 저장하면 Git 저장소에 텍스트 파일이 생성되어 원격 [2][19]저장소의 실제 데이터를 가리킵니다.

특징들

DVC의 기능은 데이터 관리, 파이프라인 및 실험 [20][21][18]추적의 세 가지 범주로 나눌 수 있습니다.

데이터 관리

데이터 및 모델 버전 관리는 대용량 파일, 데이터 세트 및 머신 러닝 모델을 위한 DVC의 기본[22] 계층입니다.표준 Git 워크플로우를 사용할 수 있지만 이러한 파일을 저장소에 저장할 필요는 없습니다.대용량 파일, 디렉터리 및 ML 모델은 원래 데이터를 가리키는 작은 메타파일로 대체됩니다.데이터는 별도로 저장되므로 데이터 과학자가 대규모 데이터 세트를 전송하거나 모델을 다른 [6]사람과 공유할 수 있습니다.

DVC는 [23]코드화를 통해 데이터 버전 관리를 가능하게 합니다.사용자가 추적할 데이터셋, ML 아티팩트 및 기타 기능을 설명하는 메타파일을 생성하면 DVC는 데이터 및 모델의 버전 캡처, 스냅샷에서 생성 및 복원, 진화하는 메트릭 기록, 버전 간 전환 [6]등을 가능하게 합니다.

고유한 버전의 데이터 파일 및 디렉터리는 체계적인 방식으로 캐시됩니다[24](파일 중복 방지).작업 데이터스토어는 프로젝트를 밝게 유지하기 위해 사용자의 작업 공간에서 분리되지만 DVC에서 [25]자동으로 처리되는 파일 링크를 통해 연결된 상태를 유지합니다.

파이프라인

DVC는 [26][27]파이프라인을 정의하고 실행하는 메커니즘을 제공합니다.파이프라인은 데이터가 사전 처리되는 방법에서 모델이 교육 [28]및 평가되는 방법에 이르기까지 ML 데이터 세트 및 모델을 구축하는 프로세스를 나타냅니다.파이프라인을 사용하여 모델을 프로덕션 환경에 배포할 수도 있습니다.

DVC 파이프라인은 ML 프로세스의 실험 단계에 초점을 맞추고 있습니다.사용자는 Git 저장소를 파이프라인으로 복제하거나 ML 실험을 실행하여 DVC 파이프라인의 여러 복사본을 실행할 수 있습니다.또한 워크플로우를 파이프라인으로 기록하고[29] 나중에 복제할 수도 있습니다.

파이프라인은 코드로 다음과 같이 표시됩니다.yaml [30]구성 파일.이러한 파일은 파이프라인의 단계와 데이터 및 정보가 한 단계에서 다음 단계로 이동하는 방법을 정의합니다.

파이프라인이 실행되면 해당 파이프라인에서 생성된 아티팩트가dvc.lock file[31]lockfile실행된 단계를 기록하고 각 [26]단계에 대한 결과 출력의 해시를 저장합니다.파이프라인 실행 기록일 뿐만 아니라,[28][20] 파이프라인의 후속 실행에서 어떤 단계를 다시 실행해야 하는지 결정할 때 유용합니다.

실험 추적

실험 추적을 통해 개발자는 다양한 기계 학습 [22][20]실험을 탐색, 반복 및 비교할 수 있습니다.

각 실험은 작업 공간의 변경으로 정의된 데이터 과학 프로젝트의 변형을 나타냅니다.실험은 현재 분기(Git)의 커밋에 대한 링크를 유지합니다.HEAD)를 부모 또는 기준선으로 지정합니다.[32]그러나 영구적으로 [33]만들지 않는 한 일반 Git 트리의 일부를 형성하지 않습니다.이렇게 하면 임시 커밋 및 분기가 사용자의 리포지토리에 오버플로되는 것을 방지할 수 있습니다.

실험의 일반적인 사용[34] 사례는 다음과 같습니다.

  1. 모델 아키텍처 비교
  2. 교육 또는 평가 데이터 세트의 비교
  3. 모델 하이퍼 파라미터 선택

DVC 실험은 VS Code[35] IDE를 사용하거나 Replicate Studio를 [36]사용하여 온라인으로 관리 및 시각화할 수 있습니다.시각화를 통해[37] 각 사용자는 실험 결과를 시각적으로 비교하고, 플롯을 추적하고, 라이브러리 통합을 통해 생성할 수 있습니다.

DVC는 일반 워크플로우에서 시각화를 사용하기 위한 몇 가지[37] 옵션을 제공합니다.

  • DVC는 JSON, YAML, CSV 또는 TSV 형식의 데이터 시리즈에서 대화형 플롯을 포함하는 HTML 파일을 생성할 수 있습니다.
  • DVC는 교육/평가 스크립트에서 플롯[38] 출력으로 생성된 이미지 파일을 추적할 수 있습니다.
  • DVCLive[39] 통합은 교육 중에 자동으로 플롯을 생성할 수 있습니다.

DVC VS 코드 확장

2022년에 Repeatic은 마이크로소프트가 만든 소스 코드 편집기인 VS Code(VS Code)의 무료[40] 확장을 출시했으며, VS Code 사용자는 추가 사용자 인터페이스 [41][42]기능과 함께 편집기에서 DVC를 사용할 수 있습니다.

역사

2017년에 DVC 0[45].[43][44]6의 첫 번째 (베타) 버전이 공개되었습니다(단순한 명령줄 [44]도구로).이를 통해 데이터 과학자들은 기계 학습 프로세스와 파일 종속성을 깃과 같은 간단한 명령 형태로 추적할 수 있었습니다.또한 기존 기계 학습 프로세스를 재현 가능한 DVC 파이프라인으로 변환할 수 있습니다.DVC 0.6은 머신 러닝 엔지니어와 데이터 과학자가 [46]직면한 일반적인 문제의 대부분을 해결했습니다. 머신 러닝 실험의 재현성뿐만 아니라 데이터 버전 관리와 팀 간의 낮은 수준의 협업입니다.

전 마이크로소프트 데이터 과학자 Dmitry Petrov가 만든 DVC는 기존 최고의 소프트웨어 개발 관행을 머신러닝 [46]운영에 통합하는 것을 목표로 했습니다.

2018년 [47]Dmitry Petrov는 엔지니어이자 기업가인 Ivan Shchecklein과 함께 DVC의 개발을 계속하는 MLOps 회사인 [4][48]Iterative.ai 를 설립했습니다.Iterative.ai 은 DVC 외에도 CML, MLEM 및 기업용 오픈 소스 도구인 Studio와 같은 오픈 소스 도구를 지원합니다.

2020년 [49]6월, Iterative.ai 팀은 DVC 1.0을 출시했습니다.커뮤니티의 논의와 기여의 결과로 다단계 DVC 파일, 실행 캐시, 플롯, 데이터 전송 최적화, 하이퍼파라미터 추적 및 안정적인 릴리스 주기와 같은 새로운 기능이 추가되었습니다.

2021년 [50]3월, DVC는 ML 실험(실험 관리), 모델 체크포인트 및 메트릭 로깅을 도입한 DVC 2.0을 출시했습니다.

ML 실험:Git 오버헤드 문제를 해결하기 위해 DVC 2.0은 하루에 수백 개의 실험을 실행해야 하고 각 실험 실행에 추가 Git 명령이 필요할 때 경량 실험 기능을 도입했습니다.사용자는 ML 실험을 자동으로 추적하고 코드 변경 사항을 캡처할 수 있습니다.

이를 통해 데이터 버전을 [52]외부 데이터베이스나 API에 저장하는 대신 Git에 메타데이터로 저장함으로써 추가[51] 서비스에 대한 의존성을 제거할 수 있었습니다.

ML 모델 체크포인트 버전 관리:또한 새 릴리스에서는 모든 체크포인트를 해당 코드와 데이터로 버전화할 수 있습니다.

메트릭 로깅: DVC 2.0은 모델 메트릭을 추적하고 DVC가 Git 내역을 탐색하여 시각화할 수 있는 방식으로 메트릭을 구성하는 기능을 제공하는 새로운 오픈 소스 라이브러리 DVC-Live를 도입했습니다.

DVC에 대한 대체 솔루션

Git LFS, DoltlakeFS와 같은 DVC와 [53]유사한 데이터 버전 제어 기능을 제공하는 여러 오픈 소스 프로젝트가 있습니다.이러한 프로젝트는 확장성, 지원되는 파일 형식, 표 형식 데이터 및 비정형 데이터 지원, 지원되는 데이터 볼륨 등 데이터 엔지니어 및 데이터 과학자의 다양한 요구사항에 따라 달라집니다.

레퍼런스

  1. ^ Hewage Nipuni, Meedeniya Dulani (February 2022). "Machine Learning Operations: A Survey on MLOps Tool Support". ResearchGate.
  2. ^ a b Barrak Amine, Eghan Ellis E., Adams Bram (March 2021). "On the Co-evolution of ML Pipelines and Source Code - Empirical Study of DVC Projects". IEEE Xplore.
  3. ^ a b c d Ivancic, Kristijan. "Data Version Control With Python and DVC". Real Python.
  4. ^ a b Wiggers, Kyle. "MLOps startup Iterative.ai nabs $20M". VentureBeat.
  5. ^ a b "MLOps Company Iterative Achieves Significant Customer and Company Growth in 2021". Business Wire.
  6. ^ a b c Hall, Susan. "Iterative.ai: Git-Based Machine Learning Tools for ML Engineers". The New Stack.
  7. ^ "What is DVC?". MLOps Guide.
  8. ^ Petrov, Dmitry. "DVC 3 Years and 1.0 Pre-release". Iterative.ai.
  9. ^ Anadiotis, George. "Streamlining data science with open source: Data version control and continuous machine learning". ZDNET.
  10. ^ Petrov, Dmitry. "The Road to AI Hell Starts with Good MLOps Intentions". The New Stack.
  11. ^ Ejaz, Nimra. "Data Version Control Explained". Crowdbotics.
  12. ^ Lardinois, Frederic. "Iterative raises $20M for its MLOps platform". TechCrunch.
  13. ^ "AITech interview with Dmitry Petrov, Co-Founder & CEO at Iterative.ai". AI Tech Park.
  14. ^ "Data Versioning for CD4ML – Part 2". AI Singapore.
  15. ^ Baena, Daniel. "How to build an efficient Machine Learning project workflow using Data Version Control (DVC)". Rappi Tech.
  16. ^ "DVC Documentation. Supported storage types". dvc.org/doc.
  17. ^ Vizard, Michael. "Iterative.ai updates MLOps platform to streamline and support cloud provisioning". VentureBeat.
  18. ^ a b Kulkarni, Amit. "Tracking ML Experiments With Data Version Control". Analytics Vidhya.
  19. ^ Tran, Khuyen. "Introduction to DVC: Data Version Control Tool for Machine Learning Projects". Towards Data Science.
  20. ^ a b c "Introduction to Data Version Control(DVC)". Kaggle.
  21. ^ Guerrapin, Basile. "Using DVC to create an efficient version control system for data projects". The Qonto Way.
  22. ^ a b "DVC Documentation. Get Started". dvc.org/doc.
  23. ^ "DVC Documentation. Versioning Data and Models". dvc.org/doc.
  24. ^ "DVC Documentation. Internal Directories and Files". dvc.org/doc.
  25. ^ "DVC Documentation. Large Dataset Optimization". dvc.org/doc.
  26. ^ a b "Working with Pipelines". MLOps Guide.
  27. ^ "DVC Documentation. Get Started: Data Pipelines". dvc.org/doc.
  28. ^ a b Idowu Samuel, Strüber Daniel, Berger Thorsten. "Asset Management in Machine Learning: A Survey". Astrophysics Data System (ADS).
  29. ^ Kapoor Sayash, Narayanan Arvind. "Leakage and the Reproducibility Crisis in ML-based Science". ResearchGate.
  30. ^ "DVC Documentation. dvc.yaml". dvc.org/doc.
  31. ^ "DVC Documentation. dvc.lock file". dvc.org/doc.
  32. ^ "DVC Documentation. DVC Experiments Overview". dvc.org/doc.
  33. ^ "DVC Documentation. Persisting Experiments". dvc.org/doc.
  34. ^ "How we keep track of our data experiments". Kapernikov.
  35. ^ "DVC Extension for Visual Studio Code". Visual Studio. Marketplace.
  36. ^ "Iterative Introduces First Git-based Machine Learning Model Registry". Yahoo Finance.
  37. ^ a b "DVC Documentation. Get Started: Visualization with Plots". dvc.org/doc.
  38. ^ "DVC Documentation. Metrics and Plots outputs". dvc.org/doc.
  39. ^ "DVC Documentation. DVCLive with DVC". dvc.org/doc.
  40. ^ Nicholls, Emily. "Iterative Announces A Free Extension To Microsoft Visual Studio Code To Accelerate ML Model Development Experience". TFiR.
  41. ^ Bhartiya, Swapnil. "Iterative's DVC Extension Turns VS Code Into ML Experimentation Platform". TFiR.
  42. ^ Awan, Abid Ali. "12 Essential VSCode Extensions for Data Science". KDnuggets.
  43. ^ "DVC 3 Years and 1.0 Pre-release". Iterative.ai.
  44. ^ a b "Data Version Control Explained". Crowdbotics.
  45. ^ Petrov, Dmitry. "Data Version Control: iterative machine learning". KDnuggets.
  46. ^ a b Vázquez, Favio. "Data version control with DVC. What do the authors have to say?". Towards Data Science.
  47. ^ Smolaks, Max. "Iterative.ai pitches open source alternative to AWS SageMaker and Azure ML Engineer". AI Business.
  48. ^ Singh, Swastik. "An open-source startup Iterative.ai raises USD 20 Million". VCBay.
  49. ^ "DVC 1.0 release: new features for MLOps". Iterative.ai.
  50. ^ "DVC 2.0 Release". Iterative.ai.
  51. ^ "DVC Documentation. Experiment Management". dvc.org/doc.
  52. ^ "DVC Documentation. Related Technologies". dvc.org/doc.
  53. ^ Orr, Einat. "Data versioning as your 'Get out of jail' card – DVC vs. Git-LFS vs. dolt vs. lakeFS". lakeFS.

외부 링크