# データの段階
## 定義
データの段階とは、ML訓練パイプラインへデータを投入するまでの過程を、作成(creation)・取り込み(ingestion)・前処理(preprocessing)・後処理(postprocessing)の4段階に分けて捉えるモデルである。作成は運用システムのログやイベント記録などデータ保存システムへデータを生成・取り込むプロセスを、取り込みはフィルタリングとサンプリングを伴うストレージへの書き込みを、前処理は検証・クレンジングと一貫性確保・拡張(ラベリングを含む)を、後処理は保管(ストレージ設計)・管理(アクセス制御)・分析と可視化を指す。データはこの段階モデルの通過中、作成された瞬間から削除されるまで管理下にあると考える必要がある。(Source: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]] §2.2, §2.3)
## データの分類(構造化・半構造化・非構造化)
作成段階で収集されるデータは、事前定義されたスキーマと表形式を持つ**構造化データ**(氏名・住所・決済情報など)、タグや識別マーカーはあるが厳密なスキーマを持たない**半構造化データ**(送信者・受信箱などで検索できる電子メール、ハッシュタグ付きのSNSコンテンツ)、スキーマを持たない定性的な**非構造化データ**(メール本文・テキスト・動画・画像)の3つに分類される。この内部構造の違いは、後続の全段階(処理・保存・利用方法)に大きな影響を与える。(Source: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]] §2.3.1)
## 各段階の実務
- **作成**: データセットには、画像認識データセットのように静的なままで機能するものと、不正検知のように継続的に更新しないと陳腐化するものがある。データ作成の状況(誰がどう集めたか)はモデルの偏りに深い意味を持ち、モデルカードなどで偏りを検証するプロセスを組織的に持つことが推奨される。訓練データが少量の場合はSnorkelのようなツールでプログラム的に拡張する選択肢もある。
- **取り込み**: 有用でないデータ種別のフィルタリングと、計算コスト削減のためのサンプリングが発生する。サンプリングは時間帯や関心のあるスライスに比例させ、特定の時間帯やスライスの詳細が集中的に欠落しないようにする必要がある。信頼性の懸念は主に正確性(正しい場所への読み書き)とスループットで、API経由の取り込みが受信確認・監査・ガバナンス適用の明白な場所を提供する。
- **前処理**: 検証(スキーマや過去の有効データとの比較)、クレンジングと一貫性確保(標準化技法: 一定範囲へのスケーリング・クリッピング・対数スケーリング・Zスコア標準化、およびバケット化)、拡張(最も一般的な方法はラベリングだが、詳細は[[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 4 特徴量と訓練データ]]が扱う)から成る。クレンジングを担うコードは訓練パイプライン全体に分散させず1箇所に集約する方が、前提条件の増大による脆弱化を防げる。
- **後処理**: 保管(モデル開発は反復的であるためほぼ全データが何度も読み込まれる前提でのストレージ設計。特徴の異なるサブセットを読む複数モデルが存在するなら列指向ストレージが有利)、管理(モデル開発者に限定した特徴量アクセスなどきめ細かいアクセス制御)、分析と可視化(データセットの各レコードの意味・外れ値の有無を人に説明するための可視化)を含む。
(Source: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]] §2.3.1–§2.3.6)
## 横断的知見
- **後処理段階が挙げる「監視のためのデータスライス選択」という活動を、別ソースの探索的データ分析(EDA)の定義と突き合わせると、EDAは「モデル化前の意思決定ツール」と「モデル運用中の監視設計ツール」という2つの異なる文脈で独立に重要性を持つことがわかる**: 本概念のソースは、データ監視で重要な洞察は様々な軸に沿ったデータのスライスであり、「どの軸でデータをスライスするのが最適かを決めることは探索的データ分析(EDA)における重要な活動である」と述べるにとどまり、EDA自体の手順には立ち入らない。一方 [[探索的データ分析]] が扱う『仕事ではじめる機械学習』第9章は、EDAをモデルを作る**前**に生データを眺め機械学習が必要かどうかを判断する活動として定義する。両者を並べると、EDAは「モデル化前にモデルの要否を判断する」文脈と、「モデル運用中に監視すべきデータの軸を選ぶ」文脈の双方で有効な、段階を横断する汎用的な作業だと位置づけ直せる。(Source: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]] §2.2, [[@2021__OReillyJapan__仕事ではじめる機械学習 - Chapter 9 Kickstarterの分析、機械学習を使わないという選択肢]])
- **「データレイク」という同じ語を、本概念のソースは段階モデルの一部品として、DDIAは独立したアーキテクチャ概念として扱っており、両者を突き合わせると段階モデルの取り込み段階が指す実装の具体像が補える**: 本概念のソース(図2-2)は、作成段階の非構造化・半構造化・構造化データが「データレイク(ログ、ウェブ、キュレーションされた行動データ)」という単一のボックスに集約されたのち前処理へ渡ると図示するのみで、データレイクというアーキテクチャそのものの技術的性質(スキーマを課さない・オブジェクトストア上に構築される等)には立ち入らない。[[データレイク]] が扱う DDIA 第1章・第11章は、まさにこの「スキーマを課さない中央集権的リポジトリ」という技術的性質と、その物理実装(分散ファイルシステム/オブジェクトストア)を詳述する。段階モデルが「取り込み段階の出力先」として素朴に描くボックスは、DDIA側の定義に沿って読むと「業務系システムからETLで取得した生ファイルの集合」であり、前処理段階(検証・クレンジング・拡張)はこのデータレイクから訓練用データへの変換に相当すると解釈できる。(Source: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]] §2.3(図2-2), [[@2026__OReilly__Designing Data-Intensive Applications 2E - Chapter 1 Trade-Offs in Data Systems Architecture]] "From data warehouse to data lake")
## 未解決の問い
- ラベリング(拡張段階の主要な手法)の詳細な収集手段・品質担保プロセスは本概念のソースでは意図的に4章へ先送りされている。4章ingest時に、本概念の「拡張」節との接続を具体化する必要がある。
- 列指向ストレージが有利になる条件(「特徴の異なるサブセットを読む複数モデルが存在する」)は、[[データレイク]]が扱うデータレイクハウス(Iceberg等のテーブルフォーマット層)とどう接続するか。段階モデルの「保管」はデータレイクハウスのどの層に相当するか未整理。
- バケット化戦略の変更(例: 年齢のビン幅を10年から5年へ)は、[[データ統合]]が扱う全順序ブロードキャストやCDCのような形式的なデータフロー管理と、実務上どう両立させるべきか。
## 関連
- ソース: [[@2024__OReillyJapan__信頼性の高い機械学習 - Chapter 2 データマネジメント]]
- 概念: [[データレイク]] / [[探索的データ分析]] / [[データの保守性]] / [[データ品質SLO]]
- 書籍: [[信頼性の高い機械学習]]
## 出典
- Cathy Chen ほか, 『信頼性の高い機械学習 ―SRE 原則を活用した MLOps』, オライリー・ジャパン, 2024, 2 章(§2.2, §2.3).