WWDC Quick Look 💓 By SwiftGGTeam
What’s new in Create ML

What’s new in Create ML

元の動画を見る

ハイライト

Create ML は Apple のオンデバイス機械学習トレーニングツールで、App(クリック式トレーニング)、Framework(コードベーストレーニング)、基盤 Components(組み合わせ可能なモデル構築ブロック)の 3 層に分かれます。今年の更新はこの 3 層すべてをカバーします。


主要内容

画像検出モデルをトレーニングしてデプロイしたら、同じコーヒーカップが 2 回検出される — 1 回はコーヒー液面に、1 回はカップ本体にラベル付け。この「重複検出」問題の原因はモデルではなく、アノテーションデータ自体にあります。しかし従来の Create ML App では、アノテーションを 1 件ずつ確認する方法がありませんでした。今年追加された Explore 機能がこれを解決 — データソースをクリックし、クラスラベルを選択すれば、各画像のアノテーションボックスの位置とサイズを確認できます(03:12)。トレーニング前にチェックし、「ゴミを入れればゴミが出る」を回避。

もう 1 つの重大な更新はオブジェクトトラッキング(Object Tracking) — visionOS 向けに設計された新テンプレートで、実物体の空間位置と向きを追跡するモデルをトレーニング。トレーニングデータは 3D アセット 1 つだけで、Create ML がすべてのトレーニングサンプルを自動生成。デモでは実物の地球儀をトラッキングし、app が月の軌道と地核の可視化を周囲に重ね表示(04:14)。

Components レベルでは、2 つの汎用コンポーネントが追加 — 時系列分類と時系列予測。分類は「このデータは何を表すか?」(例:腕時計加速度計からジェスチャー認識)、予測は「次に何が起きるか?」(例:売上予測)。両方とも汎用型で、加速度計、GPS、販売データなど各種時系列データに対応。


詳細

データソース Explore 機能

Create ML App で左側のデータソースを選択するとデータ分布が表示。新しい Explore オプションでクラスラベルを深掘りし、画像ごとにアノテーションボックスを可視化。画像分類、物体検出、手のポーズ分類など画像系テンプレートに適用(03:36)。

オブジェクトトラッキングテンプレート

Create ML App に Spatial カテゴリが追加され、オブジェクトトラッキングテンプレートで物体の空間位置と向きを追跡するモデルをトレーニング。トレーニング入力は 3D アセット 1 つのみ — App が必要なトレーニングデータを自動生成。完全なワークフローは専用動画「Explore object tracking for visionOS」を参照(05:01)。

時系列予測:データ準備からトレーニングまで

セッションはフードトラック売上予測 app を例に、Create ML Components の使用フロー全体をデモ。

データ前処理 — 取引ごとのデータを日次売上に集約:

// Create DateFeatureExtractor, extract month and weekday features
let featureExtractor = DateFeatureExtractor(
    featureComponents: [.month, .weekday]
)

// Combine ColumnSelector and featureExtractor into a pipeline
let pipeline = PipelineComposer()
    .compose(ColumnSelector("date"), featureExtractor)
    .append(ColumnConcatenator())

// Fit DataFrame with pipeline to get preprocessor
let preprocessor = pipeline.fit(dataFrame)

// Extract feature and target columns as MLShapedArray
let features = preprocessor.transform(dataFrame)["features"].typedValues()
let targets = dataFrame["quantity"].typedValues()

キーポイント:

  • DateFeatureExtractor は日付列から .month.weekday などの特徴コンポーネントを抽出し、モデルが周期的パターンを学習(09:08
  • ColumnSelector で特定列を選択し、featureExtractor と pipeline に組み合わせ
  • ColumnConcatenator で複数特徴列を 1 つの MLShapedArray に統合し、モデル入力に
  • pipeline.fit() が返す preprocessor で生 DataFrame をモデル必要形式に変換

モデルトレーニングと予測

// Split data into training and validation sets
let (training, validation) = data.split(ratio: 0.8)

// Create time series forecaster, configure history and forecast windows
let forecaster = TimeSeriesForecaster(
    inputWindowSize: 15,
    forecastWindowSize: 3
)

// Train
let model = forecaster.fit(training)

// Predict sales for the next 3 days
let predictions = model.applied(input: recentData)

キーポイント:

  • inputWindowSize はモデルが参照する履歴データ長、forecastWindowSize は予測する未来ステップ数(10:32
  • 履歴ウィンドウは予測ウィンドウより長く — 3 日予測するなら最低 15 日の履歴データを提供
  • fit() でトレーニング、applied() で推論
  • オンデバイストレーニングの利点:各フードトラックの売上パターンは異なる — オンデバイストレーニングで特定データにパーソナライズ(08:26

重要ポイント

  • やること:画像モデルトレーニング前に Explore 機能でアノテーション品質を確認。価値:アノテーション不一致はモデル異常動作の最大原因で、トレーニング前にはほぼ発見不可能。始め方:Create ML App でデータソースを開き、Explore をクリック、クラスラベルごとにアノテーションボックス位置の一貫性を確認。

  • やること:visionOS app にオブジェクトトラッキングを導入し 3D コンテンツを重ね表示。価値:3D アセットが唯一のトレーニング入力 — ハードルが極めて低く、空間コンピューティングで最も没入感のある体験を実現。始め方:対象物体の 3D アセット(USDZ 形式)を準備し、Create ML App の Spatial カテゴリでオブジェクトトラッキングテンプレートを選択。

  • やること:app 内オンデバイスで時系列予測モデルをトレーニングし、パーソナライズ予測を実現。価値:時系列データ(売上、センサー読み取り)はユーザー/シナリオごとに異なり、クラウド統一モデルでは個別差を捉えられない。始め方:Create ML Components の TimeSeriesForecaster を使用し、inputWindowSizeforecastWindowSize を設定、ユーザーアイドル時にトレーニングをトリガー。

  • やることDateFeatureExtractor で日付列から周期的特徴を抽出。価値:販売データやセンサーデータには週周期や年周期が多い — .weekday.month を抽出すればモデルが自動的にこれらのパターンを学習。始め方:データ前処理 pipeline に DateFeatureExtractor(featureComponents: [.month, .weekday]) を追加。


関連セッション

コメント

GitHub Issues · utterances