すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS コネクタの AI/ML データセット処理におけるパフォーマンス

最終更新日:Mar 20, 2026

効率的なデータ読み込みは、モデルトレーニングの速度に直接影響します。以下のベンチマークでは、内部エンドポイントおよび OSS アクセラレータを用いた場合の、3 種類のデータセットアクセス方法 — `OssIterableDataset`、`OssMapDataset`、および `ossfs` と `ImageFolder` を組み合わせた方法 — のスループットを比較しています。テスト結果をもとに、ご使用のトレーニングワークロードに最適なアクセス方法およびエンドポイント構成を選択してください。

データセットタイプの選択

データセットタイプアクセスパターン推奨用途
OssIterableDataset順次ストリーミングほとんどのトレーニングワークロード — データセット全体を順序通りに反復処理する場合
OssMapDatasetインデックスによるランダムアクセスインデックス単位でのシャッフリングや非順次サンプリングを必要とするワークロード
ossfs と ImageFolder を組み合わせた方法FUSE 経由の POSIX ファイルシステムファイルシステム API を必要とするパイプラインで、スループットがやや低いことへの許容が可能な場合

テスト概要

テストシナリオ内部エンドポイント および アクセラレーテッドエンドポイント を経由したデータセットオブジェクトの読み取り。

テストデータ: 約 1 TB の画像データ(1,000 万枚)、1 枚あたり平均 100 KB。

テスト環境ネットワーク拡張型汎用 g7nex Elastic Compute Service (ECS) インスタンス(vCPU 128 個、メモリ 512 GB、内部帯域幅 160 Gbit/s)。

データセット作成方法

  • `OssIterableDataset` および `OssMapDataset` は、OSS Connector for AI/ML を使用して作成されます。

  • `ossfs` と `ImageFolder` を組み合わせた方法は、ossfs を使用して作成されます。

パフォーマンステスト

テストパラメーター

すべてのテストで、以下の DataLoader 設定を使用します:

パラメーター説明
DataLoader のバッチサイズ256各バッチで 256 サンプルを処理
DataLoader のワーカー数3232 のプロセスで並列にデータを読み込み

変換パイプラインでは、各画像に対して前処理が適用されます:

trans = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

def transform(object):
    img = Image.open(io.BytesIO(object.read())).convert('RGB')
    val = trans(img)
    return val, object.label

テスト結果

作成元データセットタイプ内部エンドポイントOSS アクセラレータ
OSS Connector for AI/MLOssIterableDataset4,582 img/s4,744 img/s
OSS Connector for AI/MLOssMapDataset4,010 img/s4,370 img/s
ossfsossfs と ImageFolder を組み合わせた方法56 img/s251 img/s

最適パフォーマンステスト

これらのテストでは、画像の前処理を含まない純粋な読み取りスループットを測定し、各アクセス方法の I/O パフォーマンスを分離して評価します。

テストパラメーター

DataLoader の設定は上記と同じです。変換関数では画像デコードをスキップし、生のオブジェクトバイトを返します:

def transform(object):
    data = object.read()
    return object.key, object.label

テスト結果

作成元データセットタイプ内部エンドポイントOSS アクセラレータ
OSS Connector for AI/MLOssIterableDataset99,920 img/s123,043 img/s
OSS Connector for AI/MLOssMapDataset56,564 img/s78,264 img/s

パフォーマンスデータの分析

ベンチマーク結果から、以下の 3 つの重要な知見が得られます:

  • OSS アクセラレータ未使用時で約 80 倍の高速化: OSS アクセラレータをいずれも使用しない場合、`OssIterableDataset` および `OssMapDataset` は、`ossfs` と `ImageFolder` を組み合わせた方法を大幅に上回ります。

  • OSS アクセラレータ使用時で約 18 倍の高速化: OSS アクセラレータを両方で使用すると差は縮まりますが、OSS コネクタベースのデータセットは依然として大幅な優位性を維持します。

  • OSS コネクタ for AI/ML に OSS アクセラレータを追加有効化することで、さらに約 1.6 倍の向上: OSS コネクタ for AI/ML に OSS アクセラレータを併用することで、内部エンドポイント単体での性能をさらに上回るスループットが実現できます。

このスループットの差異は、各手法がオブジェクトを読み込む方式に起因します。`ossfs` は POSIX ファイルシステム呼び出しを個別の OSS API リクエストに変換するため、1 枚の画像ごとにネットワーク往復が発生します。一方、`OssIterableDataset` および `OssMapDataset` はストリーム形式でオブジェクトを読み込むため、大量のバッチにわたってリクエストごとのオーバーヘッドを均等に分散でき、テストインスタンスの 160 Gbit/s の内部帯域幅を活かした高い同時実行性を維持できます。

結論

ほとんどのモデルトレーニングワークロードには、内部エンドポイント上で OSS Connector for AI/ML と `OssIterableDataset` を組み合わせた構成をご利用ください。この組み合わせにより、追加設定なしで高いスループットを実現できます。さらにスループットを向上させるには、OSS Connector for AI/ML に OSS アクセラレータを併用してください。両者は相互に連携し、本テストで確認された最高のパフォーマンスを提供します。