モバイル開発におけるデバイス上のML:概要、フレームワーク、仕組み

著者: IT Sectr 公開日: 2026-07-29 読了時間: 11 分

デバイス上のML(on-device ML)— サーバーにデータを送信せずに、モバイルデバイス上で直接機械学習モデルを実行すること。Google AI、2025のレポートによると、70%以上のユーザーがプライバシーとネットワーク遅延のなさからon-device MLを備えたアプリを好みます。AppleのCore ML、GoogleのTensorFlow Lite、ML Kitは、Vision、NLP、顔と物体認識のタスクを完全にデバイス上で解決できます—インターネット不要、最小限の消費電力で。

重要ポイント

  • デバイス上のML — サーバー側のデータ処理なしで、モバイルデバイス上で直接機械学習モデルを実行。
  • Core ML — iOSおよびmacOS向けにNeural Engineでハードウェアアクセラレーションを提供するAppleのフレームワーク。
  • TensorFlow Lite — 量子化とGPU、NNAPI、XNNPACKデリゲートを備えたGoogleのクロスプラットフォームソリューション。
  • ML Kit — モデルを作成せずにテキスト、顔、バーコード、物体認識のための既製APIを備えたSDK。
  • VisionとNaturalLanguage — iOS上で画像とテキスト分析のための組み込みMLツール。

デバイス上のMLとは何か、なぜモバイルアプリに必要なのか

デバイス上のML(on-device ML)は、リモートサーバーにデータを送信せずにモバイルデバイス上で直接機械学習モデルを実行するアプローチです。プライバシーが主な利点です:ユーザーデータはデバイスから外部に出ません。Googleの調査(2024)によると、63%のユーザーがサーバーへのデータ送信を必要とするML機能を拒否します。On-device MLはネットワーク遅延を排除し、オフラインで動作し、ハードウェアアクセラレーションにより消費電力を削減します。

クラウドソリューションに対するon-device MLの利点

On-device MLは秒ではなくミリ秒でデータを処理します—リアルタイムの顔と物体認識に極めて重要です。インターネット接続不要ももう一つの利点です:ML機能は機内モードや不安定な接続の地域でも利用可能です。Core MLはApple A12+チップのNeural Engineを使用し、1W未満の消費電力で毎秒11兆回の演算を実現します。モバイルアプリにおいて、on-device MLはVision、NLP、物体認識タスクのデファクトスタンダードとなっています。

モバイルアプリにおけるon-device MLの主なシナリオ

モバイルアプリのMLは顔認証(Face ID)、SnapchatやInstagramのARフィルター、Pose Detection対応フィットネストラッカー、Adobe ScanのOCRスキャン、キーボードの予測入力に使用されます。特定タスク向けのカスタムモデルはCore ML(iOS)またはTensorFlow Lite(Android)で作成します。ML Kitは典型的なシナリオ—モデルを訓練せずにテキスト、顔、バーコード認識—に適しています。

Core ML:iOS向けデバイス上のMLのためのAppleのフレームワーク

Core MLはiPhone、iPad、Mac、Apple WatchでMLモデルを実行するためのAppleのフレームワークです。最適なハードウェアアクセラレーションを自動選択します:A12+搭載デバイスのニューラルネットワークにはNeural Engine(11 TOPS)、画像処理タスクにはGPU、逐次計算にはCPU。Core MLは.mlmodel(オリジナル)と.mlmodelc(コンパイル済み)形式をサポートします。PyTorchとTensorFlowからのモデル変換はcoremltoolsを介して行います—トポロジーと重みを保持するPythonライブラリです。

Create MLとcoremltools

Create MLはコードを書かずにシンプルなモデルを訓練するためのAppleのアプリです。本番環境ではcoremltoolsを使用します—PyTorch、TensorFlow、scikit-learnからの変換ツールです。Coremltoolsはfloat32→float16およびint8の量子化、色空間パレット化、モデルサイズ削減のための冗長な操作の除去をサポートします。

python
import coremltools as ct

model = ct.convert(
    "resnet50.mlmodel",
    source="pytorch",
    convert_to="mlprogram"
)
model.save("Resnet50.mlpackage")

Neural EngineとCore MLのハードウェアアクセラレーション

Neural EngineはApple A12以降のチップに搭載された専用ニューロプロセッサです。16コアが1W未満の消費電力で毎秒最大11兆回の演算を実行します。Core MLはニューラルネットワーク計算を自動的にNeural Engineに、GPU互換の計算をMetal GPUにルーティングします。開発者がデバイスを選択する必要はありません—Core MLがPerformance Reportを通じてモデルと利用可能なハードウェアを分析して行います。

TensorFlow Lite:Googleのクロスプラットフォームデバイス上のML

TensorFlow Lite(TFLite)はAndroid、iOS、LinuxでMLモデルを実行するためのGoogleのクロスプラットフォームソリューションです。モデルは.tflite形式で、TensorFlowエコシステムのTFLiteConverterを介して作成されます。TFLiteはfloat32→int8の量子化をサポートし、分類タスクで97–99%の精度を維持しながらモデルサイズを4分の1に削減します。Google Play Services for TFLiteはアプリを再リリースせずに自動的にランタイムを更新します。

TFLiteConverterとモデル量子化

TFLiteConverterはTensorFlowモデルを.tflite形式に変換する主要ツールです。学習後int8量子化は完全なデータセットにアクセスせずにモデルを300MBから75MBに圧縮します。量子化認識トレーニング(QAT)はImageNetで1%未満の最小限の精度低下しかもたらしません。TFLiteConverterはグラフのプルーニングやTFLiteランタイムがサポートしない操作の削除もサポートします。

python
import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(
    "saved_model_dir"
)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

TFLiteデリゲート:GPU、NNAPI、XNNPACK

デリゲートがない場合、TFLiteはハードウェアアクセラレーション使用時より3–5倍遅くCPUでモデルを実行します。GPUデリゲートはAndroidでOpenCLとOpenGL ES 3.1を、Core MLデリゲートはiOSでNeural Engineを使用します。NNAPIデリゲートはAndroid 8.1+でNPUとDSPを活用します。XNNPACKデリゲートはモバイルプロセッサ向けの最適化を施したARM CPU上でクロスプラットフォームアクセラレーションを提供します。デリゲートを選択するには、結果のnullチェック付きでTfLiteGpuDelegate.create()を使用します。

ML Kit:モバイル開発におけるMLのための既製ソリューション

ML Kitはon-device ML向けの既製APIを備えたGoogleのSDKです。モバイルアプリでは、ML Kitはテキスト認識(手書きを含む50+言語)、顔検出(468の顔キーポイント)、バーコードスキャン(QR、EAN-13、Code 128、PDF417、Data Matrix)、物体検出に使用されます。すべてのAPIはインターネット不要で完全にデバイス上で動作します。ML Kitは統一APIでiOSとAndroidで利用可能です。

ML Kitの顔検出とテキスト認識

顔検出は顔の輪郭、眉、目、鼻、唇の座標、さらに頭部傾斜角度と目の状態を返します。ARマスクとカメラフィルターが最も一般的な使用シナリオです。テキスト認識は印刷文字で最大99%の精度で写真からテキストを抽出します。APIはCameraXを介したリアルタイム認識をサポートします。

kotlin
val recognizer = TextRecognition.getClient()
val image = InputImage.fromBitmap(bitmap)

recognizer.process(image)
    .addOnSuccessListener { result ->
        result.textBlocks.forEach { block ->
            println(block.text)
        }
    }

ML Kitのバーコードスキャンと物体検出

バーコードスキャンはカメラのビデオストリームからリアルタイムでバーコードを認識します。物体検出はバウンディングボックスとクラスラベル(人、車、動物)で画像内の物体を識別します。ポーズ検出はフィットネスアプリと動作分析のために33の身体キーポイントを特定します。画像ラベリングは最大10のセマンティック画像ラベル(「自然」「都市」「食べ物」)を返します。

VisionとNaturalLanguage:iOSとAndroidの組み込みMLツール

AppleはサードパーティSDKをインストールせずにVisionとNaturalLanguageを通じて組み込みMLソリューションを提供します。Vision(VNRequest)はデバイス上で顔、テキスト、バーコード、輪郭の検出を実行します。NaturalLanguage(NLTokenizer)はトークン化、レンマ化、言語識別、感情分析を提供します。Androidでは、同等機能はML Kit(認識)とandroid.speechのSpeechRecognizer(音声)を介して実装されています。組み込みツールはモデルのダウンロードを必要としません—システムにプリインストールされています。

Visionフレームワーク:VNRequestとVNCoreMLRequest

VisionにはVNDetectFaceRectanglesRequest(顔検出)、VNRecognizeTextRequest(テキスト認識)、VNDetectBarcodesRequest(バーコード)、VNDetectHumanBodyPoseRequest(骨格)が含まれます。VNCoreMLRequestはカスタムCore MLモデルをVisionパイプラインに統合します—例えば、検出された顔の感情分類。すべてのリクエストは最小レイテンシでNeural Engine上で実行されます。

swift
let request = VNRecognizeTextRequest { request, error in
    guard let observations = request.results
        as? [VNRecognizedTextObservation] else { return }
    for observation in observations {
        let topCandidate = observation
            .topCandidates(1).first
        print(topCandidate?.string as? String ?? "")
    }
}

let handler = VNImageRequestHandler(
    cgImage: image, options: [:]
)
try? handler.perform([request])

iOSのNaturalLanguageとSFSpeechRecognizer

NaturalLanguageはテキストをトークンに分割するNLTokenizer、言語識別用のNLLanguageRecognizer(72言語)、NLSentimentAnalyzerによるテキスト感情分析を提供します。SFSpeechRecognizerはデバイス上で50+言語をサポートする音声認識APIです(iOS 13+)。使用前にSFSpeechRecognizerAuthorizationStatusの許可が必要です。結果はSFSpeechRecognitionResultHandlerを介して非同期で返されます。

よくある質問

デバイス上のMLとは?

デバイス上のML(on-device ML)は、サーバーにデータを送信せずにモバイルデバイス上で直接機械学習モデルを実行するアプローチです。Core ML、TensorFlow Lite、ML Kitがon-device MLの主要フレームワークです。

Core MLとTensorFlow Liteの違いは?

Core MLはiOSおよびmacOS向けにNeural EngineでアクセラレーションするAppleのフレームワークです。TensorFlow LiteはAndroid、iOS、Linux向けのGoogleのクロスプラットフォームソリューションです。Core MLはAppleデバイスでより良いパフォーマンスを、TFLiteは汎用性を提供します。

ML Kitはどのようなタスクを解決しますか?

ML Kitは典型的なコンピュータビジョンとNLPタスクを解決します:テキスト、顔、バーコード、物体、姿勢認識。すべてのAPIはインターネット不要でデバイス上で動作し、独自モデルの作成は不要です。

on-device MLにインターネットは必要ですか?

いいえ、on-device MLは完全にローカルで動作します。モデルはデバイスにロードされ、インターネット接続なしで実行されます。ML Kitはより高精度なクラウド版APIも提供しますが、on-deviceモードはオフラインで利用可能です。

モバイル開発にはどのフレームワークを選ぶべきですか?

iOS専用ならCore ML—Neural Engineを使用しAppleエコシステムと緊密に統合されています。クロスプラットフォームプロジェクトならTensorFlow Lite。カスタムモデル不要の典型的なタスクなら既製APIのML Kitを選んでください。

まとめ

  • デバイス上のML — サーバーにデータを送信せず、ゼロネットワーク遅延で直接モバイルデバイス上でモデルを実行。
  • Core ML — iOSおよびmacOS向けにNeural Engineでハードウェアアクセラレーションを提供するAppleのフレームワーク。
  • TensorFlow Lite — int8量子化とGPU、NNAPI、XNNPACKデリゲートを備えたGoogleのクロスプラットフォームソリューション。
  • ML Kit — モデルを作成せずにテキスト、顔、バーコード認識のための既製APIを備えたSDK。
  • VisionとNaturalLanguage — サードパーティライブラリ不要でiOS上の組み込みMLツール。
  • 量子化は最小限の精度低下でモデルサイズを4分の1に削減—モバイルアプリの標準。
  • On-device MLは機密データとオフライン使用シナリオを持つアプリの必須標準です。

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

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

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