ArtiVC始動、ラージデータセットにおけるバージョン管理 open source project

> “In many industries where giant data sets simply don’t exist, I think the focus has to shift from big data to good data. Having 50 thoughtfully engineered examples can be sufficient to explain to the neural network what you want it to learn.”
—Andrew Ng, CEO & Founder, Landing AI (source: [IEEE Spectrum](https://spectrum.ieee.org/andrew-ng-data-centric-ai))


データサイエンスや機械学習プロジェクトが共通なデータ管理の苦しみことは

+ データは分散されるが、マルチデータソースを統一バージョン管理は難しい
+ ラージファイルデータセットのバージョン管理
+ Gitはラージファイルバージョン管理はなさそう、1ファイルのサイズ上限100MB ([File size limits on GitHub](https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-large-files-on-github#about-size-limits-on-github) )
+ データリネージトレーシング
+ ...


## DVC+ DagsHub

現在あるソリューションの一つは*DVC* + *DagsHub*

+ [DVC](https://dvc.org/)はデータにおけるバージョン管理ツール (Git必要)

https://qiita.com/meow_noisy/items/a644547930e6f2dea12d

+ [DagsHub](https://dagshub.com/)はGitHubようなデータ管理バージョンであり、Gitウェアハウス、DVC、MLflowの3つの部分で構成されている。

詳しいチュートリアルは

https://towardsdatascience.com/dagshub-a-github-supplement-for-data-scientists-and-ml-engineers-9ecaf49cc505

https://towardsdatascience.com/deploying-gradio-app-on-spaces-using-dagshub-a-beginners-tutorial-a42664abcc14


https://zephyrnet.com/ja/a-guide-to-dvc-and-dagshub-for-machine-learning-experiments/

## ArtiVC、始動

も一つ新たな選択肢はArtiVCです。

AWS S3 object storageはよくラージファイフ保存のために使われているから、S3 storageを直接にバージョン管理すればいいじゃないですが、その考えの上で[ArtiVC](https://github.com/InfuseAI/ArtiVC) open source プロジェクトが始動した。

https://github.com/InfuseAI/ArtiVC

ドキュメント

https://artivc.io/

### Redditで討論

https://www.reddit.com/r/MachineLearning/comments/t9yo7d/p_artiv_version_control_system_for_large_files/

#### 特点は

+ Command Lineツール（CLI)
+ Git不要
+ ローカルクローン不要
+ S3 storageで直接にリポジトリをバージョン管理する
+ 良いPerformance (追記)　[[Benchmark]](https://artivc.io/design/benchmark/)



### Quick Start

まず[aws-cli](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-welcome.html)をインストールすると、S3を使えるのため`~/.aws/credentials`を準備する。



https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html


ArtiVCををインストールするや[ダウンロード](https://github.com/InfuseAI/ArtiVC/releases)する

```
brew tap infuseai/artivc 
brew install artivc
```

#### コマンド

詳しい使い方は[リポジトリ](https://github.com/InfuseAI/ArtiVC#usage)や[ドキュメント](https://artivc.io)へ

https://asciinema.org/a/XP7AWyrCszebm1KuF3PcYfnRK?autoplay=1


##### 検証
```bash
art version
#version.BuildInfo{"Version":"...","GitCommit":"...","GitTreeState":"clean","GoVersion":"go..."}
```


#### リポジトリへPushする
```bash
cd /path/to/large/dataset
# ローカルディレクトリがS3リポジトリに繋がる
art init s3://mybucket/path/to/repo
# S3へデータPushする
art push
```

##### Tag
```bash
art tag v0.0.1
```

#### Log

```bash
art log
```

#### S3リポジトリからPullする
```bash
cd /path/to/pull
# ローカルディレクトリがS3リポジトリに繋がる
art init s3://mybucket/path/to/repo
# S3からデーPullする
art pull
```

#### Get
データをダウンロードのみ
```bash
art get -o /path/to/download s3://mybucket/path/to/repo

art get -o /path/to/download s3://mybucket/path/to/repo@v0.1.0
```



### ArtiVC物語 (English)

https://blog.infuseai.io/a-modern-approach-to-versioning-large-datasets-for-machine-learning-fca2f541dd85

ArtiVCはまた若いプロジェクトが、色々な成長可能性があるから、良ければCommunityに感想を語ってください。


## InfuseAIについて

[InfuseAI (インフューザーアイ)公式サイト](https://www.infuseai.io/) |[ブログ](https://blog.infuseai.io/)| [GithHub](https://github.com/InfuseAI/) | [Discord](https://discord.gg/CrAxQznedH) |  [ツイッター](https://twitter.com/InfuseAI) | [Newsletter](https://www.infuseai.io/community)