Core ML — 機械学習モデルとiOSでの動作の解説

著者: IT Sectr 公開日: 2026-03-26 読了時間: 8 分

Core ML — iOS、macOS、watchOS、tvOSデバイス上でMLモデルを直接実行するために最適化された、Appleの機械学習フレームワークです。クラウドベースのMLサービスとは異なり、Core MLはAppleのハードウェアアクセラレーター(Neural Engine、GPU、CPU)を使用し、データ処理時のレイテンシーを最小限に抑えます。Apple Core ML Documentation (2026)によると、このフレームワークはPyTorch、TensorFlow、Create MLのモデルを統一された.mlpackage形式でサポートし、平均推論時間は5–50ミリ秒です。

主なポイント

  • Core ML — すべてのエコシステムプラットフォームでオンデバイス機械学習を実現するAppleのフレームワーク
  • Apple Neural Engine(ANE)は最大11 TOPSのパフォーマンスでニューラルネットワークにハードウェアアクセラレーションを提供
  • .mlpackage形式はモデル、メタデータ、設定を1つの便利なコンテナに統合
  • PyTorchおよびTensorFlowからのモデル変換はPythonツールcoremltoolsを使用
  • VisionおよびNatural Languageとの統合により複雑なMLパイプラインを構築可能

Core MLとは?

Core MLは、AppleがWWDC 2017でiPhone、iPad、Mac、Apple Watch、Apple TV向けの開発エコシステムの一部として発表した機械学習フレームワークです。Core MLはデバイス上でMLモデルを実行するためのランタイムを提供し、開発者をハードウェア最適化の詳細から解放します。フレームワークは各モデル操作に最適な計算エンジン(A12+チップのNeural Engine、GPU、CPU)を自動的に選択します。

Core MLの主な利点はApple Siliconとの深い統合です。ニューラルネットワークの処理は専用のNeural Engineで実行され、プロセッサのメインコアに負荷をかけません。Apple(WWDC 2025)によると、Core MLモデルは同等のAndroidデバイス上のTensorFlow Liteと比較して6倍高速に動作します。

主な機能

Core MLは、画像分類、物体検出、セマンティックセグメンテーション、自然言語処理、音声分析、表形式データなど、幅広い機械学習タスクをサポートしています。フレームワークは様々なタイプのモデル(畳み込みニューラルネットワーク、リカレントニューラルネットワーク、トランスフォーマー、ツリーアンサンブル、線形回帰、ガウス過程)に対応しています。

Core MLの仕組み

Core MLは、.mlpackage形式の学習済みモデルを入力として受け取り、特定のデバイス向けに最適化されたマシンコードにコンパイルし、統一されたAPIを通じて推論を実行します。モデルのロードから結果の取得までのパイプライン全体は、Swiftコード3–5行で完了します。

.mlpackageモデル形式

.mlpackageは、Appleが2020年に旧来の.mlmodelを置き換えるために導入したコンテナ形式です。パッケージはJSONマニフェスト、バイナリMLProgram形式のモデルファイル、メタデータ(作成者、バージョン、説明)、クラスラベルなどのリソースを含むディレクトリです。Appleによると、.mlpackageは重みの最適化により.mlmodelと比較してモデルサイズを30–50%削減します。

Apple Neural Engine

Apple Neural Engine(ANE)は、A12 Bionic(2018)以降のAppleチップに組み込まれた専用ニューラルプロセッサです。ANEは同じ消費電力でCPUよりも数十倍効率的に行列演算を処理します。ANEのパフォーマンスはA12の5 TOPSからM4 Ultra(2025)の35 TOPSに向上し、数十億のパラメータを持つモデルの実行を可能にしています。ANEはニューラルネットワークアーキテクチャを持つすべてのCore MLモデルで自動的に使用されます。

Core MLの重要な機能は、精度を損なうことなくモデルをFP16およびINT8に量子化できることです。量子化によりモデルサイズが2–4倍削減され、ANEでの推論が40–60%高速化されます。Appleは最適な精度を自動選択するXcode Model Quantizationツールを提供しています。開発者がモデルをアップロードし、許容可能な品質低下(通常0.1–0.5%)を指定すると、Xcodeが最適な重み表現形式を選択します。

Core MLパフォーマンス比較

チップTOPS(ANE)ResNet-50推論
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

モデルをCore MLに変換する

ほとんどのMLモデルはPyTorchまたはTensorFlowで作成され、Core MLで使用するには.mlpackage形式への変換が必要です。Appleはモデルの変換、最適化、検証のためのPythonパッケージcoremltoolsを提供しています。

coremltoolsツール

coremltoolsはMLモデル変換のためのApple公式ユーティリティです。PyTorch(torch.onnx経由または直接)、TensorFlow(SavedModel、H5、Frozen Graph)、ONNXからのインポートをサポートしています。変換後、FP16またはINT8量子化を有効にでき、精度を大きく損なうことなくモデルサイズを2–4倍削減できます。

PyTorchからの変換例

coremltoolsバージョン8.0を使用して、学習済みのPyTorchモデルをCore ML形式に変換する手順を見てみましょう。このプロセスはPythonで2–3ステップで完了します。

python
import torch
import coremltools as ct

# 学習済みPyTorchモデルを読み込んでいます
model = torch.load('model.pth')
model.eval()

# サンプル入力でモデルをトレースしています
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

# Core ML .mlpackageに変換しています
mlmodel = ct.convert(
    traced_model,
    convert_to='mlprogram',
    inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')

コードは学習済みのPyTorchモデルを読み込み、サンプル入力でJITトレーシングを実行し、mlprogram形式(Core MLバイナリ形式)に変換します。生成された.mlpackageはXcodeにドラッグして、すぐにSwiftコードで使用できます。

iOSアプリへのCore MLの統合

モデル変換後、SwiftでのiOSアプリへの統合は数行で完了します。Xcodeは.mlpackageのメタデータに基づいてモデルのSwiftクラスを自動生成します。

Swiftコード例

Core MLとVisionフレームワークを使用した画像分類の例を見てみましょう。Visionは自動的に画像を必要なサイズとピクセル形式に変換します。

swift
import CoreML
import Vision

// Core MLモデルを読み込んでいます
guard let model = try? VNCoreMLModel(
    for: MobileNetV2.configuration.model
) else { return }

// VNCoreMLRequestを作成しています
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    // トップ3の予測を出力
    for result in results.prefix(3) {
        print("\(result.identifier):
              \(result.confidence)")
    }
}

// 画像処理を開始しています
let handler = VNImageRequestHandler(
    url: imageURL
)
try? handler.perform([request])

SwiftコードはVisionフレームワークを通じてMobileNetV2モデルをロードし、分類リクエストを作成し、結果(クラスラベルと信頼度パーセンテージを含むVNClassificationObservationオブジェクトの配列)を処理します。ロードから結果出力までのパイプライン全体は、モデルに応じて5–50ミリ秒かかります。

起動時間を最適化するために、Core MLは初回使用時にモデルをコンパイルします。プリコンパイル済みモデルはコールドスタートを2–3秒から100–200ミリ秒に短縮します。アプリの初回起動時ではなく、Xcodeのビルド時にモデルをコンパイルすることを推奨します。これは複数のMLモデル(例:物体検出+分類+NLP)を持つアプリで特に重要です。

Core ML vs ML Kit

Core MLとML Kitは同様のオンデバイスMLタスクを解決しますが、対象とするエコシステムが異なります。Core MLはApple Siliconと深く統合されており、Appleプラットフォームのみをサポートします。GoogleのML KitはAndroidとiOS向けのクロスプラットフォームソリューションです。

特徴Core MLML Kit
プラットフォームiOS、macOS、watchOS、tvOSAndroid、iOS
組み込みAPIVision、Natural Language経由15以上の組み込みAPI
カスタムモデル.mlpackage(PyTorch、TF)TFLite(アダプター経由)
ハードウェアアクセラレーションANE、GPU、CPUGPU(Android)、CPU
導入の容易さモデル変換が必要データサイエンス不要の既製API
パフォーマンス2–50 ms(ANE)80–200 ms(CPU/GPU)

エコシステムがAppleのみで、ANEを通じて最大のパフォーマンスが必要な場合はCore MLを選びましょう。クロスプラットフォーム対応や変換不要の既製APIが必要な場合は、ML Kitの方が実用的です。

実際には、多くのプロジェクトが両方のフレームワークを使用しています。高いパフォーマンスのためにiOS Core MLを、AndroidではML KitやTensorFlow Liteを使用します。統一されたPyTorchモデルはApple向けに.mlpackage、Android向けに.tfliteに変換され、両方のプラットフォームで一貫したML機能品質を維持できます。このアプローチにはDevOpsの労力がやや多くかかりますが、最大のユーザーカバレッジを提供します。

よくある質問

Core MLの最小要件は?

iOS 11+が基本モデル、iOS 14+が.mlpackage形式に対応。Apple Neural EngineにはA12 Bionic以降のチップが必要です。Core MLは2017年以降のすべてのiPhone、iPad、Macをサポートしています。

Core MLはTensorFlowで使用できますか?

はい、coremltoolsツールを使用します。TensorFlowモデルは精度を維持したまま.mlpackageに変換されます。TensorFlow 2.x、SavedModel、H5、Frozen Graph形式に対応しています。

.mlpackageと.mlmodelの違いは?

.mlpackageは最新のコンテナ形式で、メタデータ、バイナリMLProgramファイル、リソースを含むディレクトリ構造です。従来の.mlmodelより2–3倍コンパクトで、量子化にも対応しています。

Core MLはデータプライバシーをどのように扱いますか?

すべての計算はデバイス上で厳密に実行されます。Core MLはAppleのサーバーにデータを送信しません。機内モードでも動作し、推論にインターネット接続は不要です。

Core MLはどのプログラミング言語をサポートしていますか?

SwiftがiOS/macOSアプリにCore MLを統合するための主要言語です。Pythonはcoremltoolsによるモデル変換に使用されます。Objective-Cも下位互換性のためにサポートされています。

まとめ

  • Core ML — Apple Neural Engine対応の全エコシステムプラットフォーム向けオンデバイスMLフレームワーク
  • .mlpackage — モデル、メタデータ、リソースを1つのパッケージにまとめた最新コンテナ形式
  • Apple Neural EngineはM4 Ultraで最大35 TOPSのパフォーマンスでニューラルネットワークにハードウェアアクセラレーションを提供
  • coremltoolsはPythonを使用して3ステップでPyTorch、TensorFlow、ONNXからのモデル変換を実現
  • Visionフレームワークとの統合には、画像上でモデルを実行するのに5–10行のSwiftコードが必要
  • 推論パフォーマンスはモデルとチップに応じて2–50ミリ秒
  • データプライバシー — すべての計算は厳密にローカルで実行され、サーバーにデータは送信されない

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください