Blank white background with no objects or features visible.

Ask TFY:AIゲートウェイ内のあらゆる事象をデバッグ、分析、実行 詳細はこちら

TrueFoundryはSeldon AIの買収を発表し、エンタープライズAI向けコントロールプレーンを拡張します。プレスリリース全文はこちら→

機械学習ツール連携 その2 DVCによるデータバージョニング

By TrueFoundry

Published: July 6, 2026

データバージョン管理(DVC)は、機械学習プロジェクトにおける大規模なデータセットとモデルの管理およびバージョン管理のための強力なツールです。

DVCは、ローカルディスク、ネットワークファイルシステム、Amazon S3、Google Cloud Storageなど、幅広いストレージオプションに対応するオープンソースツールです。DVCは、TensorFlow、PyTorch、scikit-learnなどの人気のある機械学習フレームワークと組み合わせて使用できます。

データやモデルの変更を追跡するだけでなく、DVCはコード、データ、モデルなど、機械学習プロジェクトの異なるコンポーネント間の依存関係を管理するのにも役立ちます。これらの依存関係を追跡することで、DVCは機械学習の実験を再現しやすくし、プロジェクトを他の人と共有しやすくします。

機械学習におけるバージョン管理の課題

機械学習におけるバージョン管理は、以下の理由により、ソフトウェアエンジニアリングと比較してより困難なタスクです。

  1. 大規模で複雑なデータセット:機械学習では、モデルのトレーニングとテストに使用されるデータセットは膨大になる可能性があり、それらを管理し、バージョン管理することが困難になります。さらに、データは非構造化である場合があり、時間の経過とともにデータへの変更を追跡することが難しくなります。
  2. 複数のコンポーネント:機械学習プロジェクトでは、多くの場合、データ、コード、モデルなど、複数のコンポーネントが関与するため、各コンポーネントへの変更を追跡し、それらが互いにどのように相互作用するかを把握することが困難になります。
  3. 反復的な開発プロセス:機械学習では、開発プロセスはしばしば反復的であり、開発者は新しいデータに基づいてモデルを頻繁に更新したり、モデルの精度を向上させたりします。これらの変更とバージョンを管理することは、複雑で時間のかかる作業となる可能性があります。

DVCは、機械学習プロジェクトにおけるデータとモデルの両方をバージョン管理するためのシンプルで効率的な方法を提供することで、これらの問題を解決します。DVCを使用すると、コードだけでなく、データやモデルもバージョン管理でき、それらの間の関係を追跡できます。DVCを使えば、以前の実験を簡単に再現し、チームメンバーと共同作業を行い、ワークフローを自動化して開発プロセスを効率化できます。

バージョン管理システムのインストールとセットアップ

DVCを始めるには、ローカルマシンにインストールしてセットアップする必要があります。このセクションでは、DVCをさまざまなクラウドストレージサービスと連携させる方法や、新しいDVCプロジェクトを作成する方法を含め、その方法について段階的な手順を説明します。

  1. DVCのインストール:最初のステップは、ローカルマシンにDVCをインストールすることです。DVCウェブサイトで、お使いのオペレーティングシステム用のインストール手順に従って実行できます。
  2. 新しいDVCプロジェクトの作成:DVCがインストールされたら、ターミナルで以下のコマンドを実行することで、新しいDVCプロジェクトを作成できます。

dvc init

これにより、現在のディレクトリに新しいDVCプロジェクトが作成されます。

  1. DVCをクラウドストレージと連携させる設定: Amazon S3やGoogle Cloud StorageのようなクラウドストレージサービスでDVCを使用したい場合は、これらのサービスと連携するようにDVCを設定する必要があります。これは、以下のコマンドを使用して新しいリモートを追加することで行えます。

dvc remote add -d <remote-name> <storage-url>

例えば、「my-s3-remote」という名前のAmazon S3リモートを追加したい場合は、以下のコマンドを実行します。

dvc remote add -d my-s3-remote s3://my-bucket-name

これにより、DVCプロジェクトに新しいリモートが追加され、Amazon S3と連携するように設定されます。

  1. DVCプロジェクトにデータを追加する: DVCプロジェクトをセットアップし、クラウドストレージと連携するように設定したら、データの追加を開始できます。これは、以下のコマンドを実行することで行えます。

dvc add <path-to-data-file>

これにより、データファイルがDVCプロジェクトに追加され、そのデータへの変更を追跡する対応するDVCファイルが作成されます。

  1. リモートストレージに変更をプッシュする: DVCプロジェクトをリモートストレージと連携するように設定している場合、以下のコマンドを実行することで、そのストレージに変更をプッシュできます。

dvc push

これにより、データまたはモデルに加えた変更がリモートストレージにプッシュされます。

バージョン管理を強化するためのDVCコマンドの実行

DVCは、機械学習プロジェクトの管理とバージョン管理に役立つ多くのコマンドを提供します。以下に、最も一般的に使用されるDVCコマンドの一部をリストアップします。

  1. dvc init: 現在のディレクトリに新しいDVCプロジェクトを初期化します。
  2. dvc add <path-to-file>: ファイルをDVCに追加し、対応するDVCファイルを作成して、そのファイルへの変更を追跡します。
  3. dvc run: DVCトラッキングが有効になっているため、すべての入力と出力がDVCによって追跡されるように、コマンドまたはスクリプトを実行します。
  4. dvc repro: DVCで追跡されたコマンドやスクリプトを再現し、すべての依存関係が最新であることを保証します。
  5. dvc push: すべてのデータファイルとモデルファイルを、AWS S3やGoogle Cloud Storageなどのリモートストレージにプッシュします。
  6. dvc pull: すべてのデータファイルとモデルファイルをリモートストレージからローカルマシンにプルします。
  7. dvc status: 追跡されているファイルのステータスを、変更、追加、削除されたかどうかを含めて表示します。
  8. dvc log: ファイルのすべてのバージョンのリストを、対応するコミットメッセージやその他のメタデータとともに表示します。

DVCを使ったML実験の再現

DVCを使用する最も重要な利点の1つは、機械学習実験を再現できることです。DVCを使えば、コード、データ、モデル間の依存関係を定義し、追跡できます。そして、 dvc repro コマンドを使って以前の実験を再現できます。

ワークフローの例:
.yamlファイルを使用したsklearn irisデータセットのワークフローの例を以下に示します。

  1. まず、コマンドを実行して新しいDVCプロジェクトを初期化します dvc init
  2. を作成します data プロジェクトフォルダ内にデータセットを保存するディレクトリを作成し、このディレクトリにsklearnのirisデータセットをダウンロードします。
  3. dvc addコマンドを使用してデータファイルをDVCに追加します。例: dvc add data/iris.csv
  4. を作成します .yaml ファイルを作成します。例として、 iris.yaml。このファイルには、モデルの前処理、トレーニング、評価のためのコマンドが含まれます。
  5. の手順を定義します .yaml ファイルでDVCコマンドを使用して手順を定義します。例:

stages:
 preprocess:
   cmd: python preprocess.py data/iris.csv data/preprocessed.csv
   deps:
     - data/iris.csv
   outs:
     - data/preprocessed.csv

 train:
   cmd: python train.py data/preprocessed.csv models/model.pkl
   deps:
     - data/preprocessed.csv
   outs:
     - models/model.pkl

 evaluate:
   cmd: python evaluate.py models/model.pkl data/iris.csv
   deps:
     - models/model.pkl
     - data/iris.csv

  1. `dvc repro` コマンドを使用してパイプラインを実行します。このコマンドは、.yamlファイルで定義されたステップを正しい順序で実行し、すべての依存関係が最新であることを保証します。例: dvc repro iris.yaml.

パイプラインを .yaml ファイルで定義し、 dvc repro コマンドを使用すると、実験を簡単に再現し、データとモデルのバージョンを追跡し、機械学習プロジェクトでチームメンバーと共同作業を行うことができます。

以下にワークフローの例を示します。

  1. S3サーバーの適切な認証情報とエンドポイント情報を設定します。

dvc remote add -d s3remote s3://your-s3-bucket-name/path/to/models

  1. S3サーバーから必要なモデルファイルをローカルマシンに取得します。

dvc pull -r s3remote path/to/models/model.pkl

  1. ダウンロードしたモデルファイルをターゲットのリモートサーバーにコピーします。

scp path/to/models/model.pkl user@target-remote-server:/path/to/models/

  1. コピーしたファイルをターゲットのリモートサーバーで推論に使用します。

# モデルをロード
import pickle
with open('/path/to/models/model.pkl', 'rb') as f:
   model = pickle.load(f)

# 予測を行う
X_test = [[5.1, 3.5, 1.4, 0.2], [7.7, 3.0, 6.1, 2.3], [6.0, 3.0, 4.8, 1.8]]
y_pred = model.predict(X_test)
print(y_pred)

このワークフローは、S3サーバーに必要な認証情報とエンドポイント情報が設定されており、ローカルサーバーとターゲットのリモートサーバーの両方にアクセスできることを前提としています。特定のニーズや設定に基づいて、ワークフローを変更できます。

TrueFoundryとDVCの連携方法:

TrueFoundryはDVCモデルレジストリとシームレスに統合されており、DVCにログされたモデルをTrueFoundryを使用してKubernetesクラスターにデプロイできます。

📌

モデル管理と実験追跡にDVCを使用する以外に、Truefoundryの実験追跡機能であるMLFoundryも利用できます。

ステップ1 - インストールとセットアップ:

  • DVCのセットアップ

# DVCとS3サポートのインストール
pip install dvc dvc-s3

# ローカルディレクトリでGitを初期化
git init

# ローカルディレクトリでDVCを初期化
dvc init

# DVCのリモートストレージをバケットとして設定
dvc remote add s3://<your_bucket_name>

注意: これが機能するためには、s3 CLIを設定する必要があります。

  • dvcのインポート

import dvc

x

  • servicefoundryのインストール

pip install -U "servicefoundry"

  • truefoundryにログイン

sfy login

ステップ2 - モデルのトレーニングとログ記録:

MLモデルをトレーニングし、joblibファイルとして保存します。
次に、モデルと評価指標を **`dvc add`**
次に、joblibファイルをDVCに **`dvc push`**

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
import joblib
import os

# データをロードして前処理する
X, y = load_iris(as_frame=True, return_X_y=True)
X = X.rename(columns={
       "sepal length (cm)": "sepal_length",
       "sepal width (cm)": "sepal_width",
       "petal length (cm)": "petal_length",
       "petal width (cm)": "petal_width",
})

X_train, X_test, y_train, y_test = train_test_split(
   X, y, test_size=0.2, random_state=42, stratify=y
)

# モデルを初期化
clf = LogisticRegression(solver="liblinear")

# モデルを学習させる
clf.fit(X_train, y_train)

# モデルを評価
preds = clf.predict(X_test)

# joblibとDVCを使ってモデルを保存する
joblib.dump(clf, "model.joblib")
os.system("dvc add model.joblib")

# 評価指標をログに記録する
report = classification_report(y_test, preds, output_dict=True)
with open("classification_report.txt", "w") as f:
   f.write(str(report))

# モデルと評価指標をリモートストレージにプッシュする
os.system("dvc push")

ステップ3 - 推論アプリケーションと依存関係ファイルを作成する:

Truefoundryにデプロイするために、2つのファイルを作成する必要があります。それは、 app.py アプリケーションコードを含むファイルと、 requirements.txt 依存関係を含むファイルです。

.
├── app.py
├── deploy.py
└── requirements.txt

  • app.py:

import os
import joblib
import pandas as pd
from fastapi import FastAPI

# DVCを使用してS3からモデルを取得
os.system("dvc pull model.joblib.dvc")

# モデルをロード
model = joblib.load("model.joblib")

# モデルをロード
app = FastAPI()

@app.post("/predict")
def predict(
   sepal_length: float, sepal_width: float, petal_length: float, petal_width: float
):
   data = dict(
       sepal_length=sepal_length,
       sepal_width=sepal_width,
       petal_length=petal_length,
       petal_width=petal_width,
   )
   prediction = int(model.predict(pd.DataFrame([data]))[0])
   return {"prediction": prediction}

  • requirements.txt:

fastapi
pandas
joblib
dvc

ステップ4 - truefoundryのPython SDKを使用し、デプロイメントを設定します

  • deploy.py:

import argparse
import logging
from servicefoundry import Build, PythonBuild, Service, Resources, Port

# ロガーを設定
logging.basicConfig(level=logging.INFO)

# 引数パーサーを設定
parser = argparse.ArgumentParser()
parser.add_argument("--workspace_fqn", required=True, type=str)
args = parser.parse_args()

service = Service(
   name="fastapi",
   image=Build(
       build_spec=PythonBuild(
           command="uvicorn app:app --port 8000 --host 0.0.0.0",
           requirements_path="requirements.txt",
       )
   ),
   ports=[
       Port(
           port=8000,
           host="ml-deploy-aditya-ws-8000.demo.truefoundry.com",
       )
   ],
   resources=Resources(
       cpu_request=0.25,
       cpu_limit=0.5,
       memory_request=200,
       memory_limit=400,
       ephemeral_storage_request=200,
       ephemeral_storage_limit=400,
   ),
)
service.deploy(workspace_fqn=args.workspace_fqn)

ステップ5 - Truefoundry経由でサービスをデプロイする

次のコマンドを実行し、あなたの

  • ワークスペースFQN: をダッシュボードで見つけることができます

python deploy.py --workspace_fqn your_workspace_fqn

そして、完了です!ログからデプロイされたサービスのダッシュボードを確認でき、右上隅にはデプロイされたアプリケーションのエンドポイントが表示されます。

TrueFoundry は、Kubernetes上で動作するMLデプロイメントPaaSであり、開発者のワークフローを加速させ、モデルのテストとデプロイにおいて完全な柔軟性を与えつつ、インフラチームには完全なセキュリティと制御を保証します。私たちのプラットフォームを通じて、機械学習チームは デプロイおよび監視 モデルを15分で、100%の信頼性、スケーラビリティ、そして数秒でのロールバック機能を提供し、コストを削減し、モデルをより迅速に本番環境にリリースできるようになり、真のビジネス価値の実現を可能にします。  

Try now.

One gateway for all your models, MCP servers, and agents.
No credit card needed.

Start free
Table of Contents

One Gateway for Every LLM, Agent and MCP Server

Book a 30-min with our AI expert

Book a Demo

The fastest way to build, govern and scale your AI

Book Demo
Summarize with
ChatGPT logo by OpenAI
Perplexity AI logo
Blurry red snowflake on white background, symmetrical frosty design with soft edges and abstract shape.

Discover More

November 5, 2025
|
5 min read

エージェンティックAI時代におけるデータレジデンシー:AIゲートウェイはいかに主権的規模とコンプライアンスを実現するか

October 5, 2023
|
5 min read

<Webinar> 企業向け生成AIショーケース

Best Fine Tuning Tools for Model Training
May 3, 2024
|
5 min read

モデルトレーニング向けファインチューニングツール主要6選:2026年版

May 25, 2023
|
5 min read

オープンソースLLM:受け入れるか、滅びるか

August 17, 2026
|
5 min read

Sandboxed Code Agents: Let Models Execute Without Letting Them Roam

No items found.
Portkey AI Gateway Pricing
August 15, 2026
|
5 min read

2026年版 Portkey AI Gateway 料金:完全ガイドと比較

No items found.
MCP registry connecting agents to governed MCP servers
August 15, 2026
|
5 min read

2026年版 最高のMCPレジストリ:開発者と企業向け比較

No items found.
TrueFoundry AI gateway powers enterprise AI platform engineering at scale
August 15, 2026
|
5 min read

AIプラットフォームエンジニアリングとは?エンタープライズチームのための実践ガイド

No items found.
No items found.

Recent Blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.
Take a quick product tour
Start Product Tour
Product Tour