AI プロジェクトのための Git
git init、データ・モデル用の .gitignore、ノートブックのコミット、データバージョン管理の DVC を学びます。
「AI プロジェクトのための Git」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
AIプロジェクトでのGit
Gitはコードの変更を追跡するため、共同作業、ミスの取り消し、履歴の確認ができます。しかしAIプロジェクトには、巨大なデータファイルやバイナリモデルをGitで管理しないという注意点があります。
このレッスンでは、適切な .gitignore と、データのバージョン管理に使うDVCを扱います。
Gitが得意なもの
Gitはテキストの管理を得意としています。ソースコード、設定ファイル、出力を消去したノートブック、ドキュメントなどです。テキストファイルの差分を効率的に保存できます。
一方、大きなバイナリの扱いは苦手です。すべてのバージョンが完全な形で保存されるため、リポジトリがいつまでも肥大化します。
データやモデルをコミットしない理由
2 GBのデータセットや500 MBのモデルをコミットすると、次の問題が起こります。
- リポジトリが肥大化し、クローンのたびに時間がかかる
- 意味のある差分を比較できない
- 削除した後も履歴に永久に残る
解決策は、Gitでは無視し、専用ツールでバージョン管理することです。
.gitignoreファイル
.gitignoreには、Gitが追跡しないパターンを記述します。プロジェクトのルートに作成してください。各行にはglobパターンを1つ記述します。
# .gitignore
*.pkl
*.joblib
*.h5
data/raw/*
data/processed/*
models/*
__pycache__/
*.pyc
.ipynb_checkpoints/
.envモデルとキャッシュファイルを無視する
AIプロジェクトでよく使う無視パターンは次のとおりです。
*.pkl、*.joblib、*.h5— シリアライズ済みモデル__pycache__/、*.pyc— Pythonのバイトコード.ipynb_checkpoints/— Jupyterの自動保存ファイル.env— シークレットとAPIキー(決してコミットしないでください!)
.gitkeepで空のフォルダーを保持する
Gitは空のディレクトリを無視します。内容を無視しながらリポジトリの構成に data/raw/ を残すには、空の .gitkeep ファイルと否定パターンを追加します。
# .gitignore
data/raw/*
!data/raw/.gitkeepDVCの紹介
DVC(Data Version Control)は、大きなデータやモデルをGitとともにバージョン管理します。Gitでは小さな .dvc ポインターファイルを追跡し、実際のデータはリモートストレージ(S3、GCSなど)に保存します。
Gitリポジトリを肥大化させずに、再現可能なデータバージョンを得られます。
dvc init
既存のGitリポジトリ内でDVCを初期化します。.dvc/ディレクトリと設定ファイルが作成されるので、これらをGitにコミットします。
# in your git repo
dvc init
git add .dvc .gitignore
git commit -m "Initialize DVC"dvc add — データを追跡する
dvc addは、ファイルまたはフォルダーの追跡を開始します。DVCはデータをキャッシュに移動し、小さな .dvc ポインターファイルを作成します。Gitにコミットするのはデータではなく、ポインターファイルです。
dvc add data/raw/dataset.csv
# creates data/raw/dataset.csv.dvc
git add data/raw/dataset.csv.dvc data/raw/.gitignore
git commit -m "Track dataset with DVC"dvc pushとdvc pull
リモートを設定すると、dvc pushでデータをリモートにアップロードし、dvc pullで現在のGitコミットに対応するバージョンをダウンロードできます。これが、チームメンバー間でデータを共有する方法です。
dvc remote add -d storage s3://my-bucket/dvcstore
dvc push # upload data to the remote
# teammate after git clone + git checkout:
dvc pull # fetch the matching data versionチームでのワークフロー
GitとDVCのループによって、コードとデータのバージョンを結び付けられます。
git pullで最新のコードと.dvcポインターを取得するdvc pullで対応するデータとモデルを取得する- 作業後に、
dvc add、git commit、dvc pushを実行する
古いコミットをチェックアウトして dvc pull を実行すれば、その時点の状態を正確に再現できます。
クイックチェック:大きなファイル
プロジェクトに1 GBの学習用データセットと300 MBのモデルファイルがあるとします。
振り返り:AIプロジェクトのGit
AIに適したバージョン管理を学びました。
- Gitはテキスト(コード、設定、ノートブック)に使い、大きなバイナリには使わない
*.pkl、data/raw/*、__pycache__、.envには.gitignoreを使う- 空のフォルダーを保持するには
.gitkeepを使う - DVCの
dvc init、dvc add、dvc push/pullでデータとモデルをバージョン管理する - GitとDVCのワークフローによって、コードとデータを同期させる
次は、実験を再現可能にする方法です。
よくある質問
「AI プロジェクトのための Git」レッスンは無料ですか?
はい。「AI プロジェクトのための Git」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「AI プロジェクトのための Git」で何を学びますか?
git init、データ・モデル用の .gitignore、ノートブックのコミット、データバージョン管理の DVC を学びます。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「AI プロジェクトのための Git」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。