デバイス上のML(on-device ML)— サーバーにデータを送信せずに、モバイルデバイス上で直接機械学習モデルを実行すること。Google AI、2025のレポートによると、70%以上のユーザーがプライバシーとネットワーク遅延のなさからon-device MLを備えたアプリを好みます。AppleのCore ML、GoogleのTensorFlow Lite、ML Kitは、Vision、NLP、顔と物体認識のタスクを完全にデバイス上で解決できます—インターネット不要、最小限の消費電力で。
重要ポイント
デバイス上のML(on-device ML)は、リモートサーバーにデータを送信せずにモバイルデバイス上で直接機械学習モデルを実行するアプローチです。プライバシーが主な利点です:ユーザーデータはデバイスから外部に出ません。Googleの調査(2024)によると、63%のユーザーがサーバーへのデータ送信を必要とするML機能を拒否します。On-device MLはネットワーク遅延を排除し、オフラインで動作し、ハードウェアアクセラレーションにより消費電力を削減します。
On-device MLは秒ではなくミリ秒でデータを処理します—リアルタイムの顔と物体認識に極めて重要です。インターネット接続不要ももう一つの利点です:ML機能は機内モードや不安定な接続の地域でも利用可能です。Core MLはApple A12+チップのNeural Engineを使用し、1W未満の消費電力で毎秒11兆回の演算を実現します。モバイルアプリにおいて、on-device MLはVision、NLP、物体認識タスクのデファクトスタンダードとなっています。
モバイルアプリのMLは顔認証(Face ID)、SnapchatやInstagramのARフィルター、Pose Detection対応フィットネストラッカー、Adobe ScanのOCRスキャン、キーボードの予測入力に使用されます。特定タスク向けのカスタムモデルはCore ML(iOS)またはTensorFlow Lite(Android)で作成します。ML Kitは典型的なシナリオ—モデルを訓練せずにテキスト、顔、バーコード認識—に適しています。
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はコードを書かずにシンプルなモデルを訓練するためのAppleのアプリです。本番環境ではcoremltoolsを使用します—PyTorch、TensorFlow、scikit-learnからの変換ツールです。Coremltoolsはfloat32→float16およびint8の量子化、色空間パレット化、モデルサイズ削減のための冗長な操作の除去をサポートします。
import coremltools as ct
model = ct.convert(
"resnet50.mlmodel",
source="pytorch",
convert_to="mlprogram"
)
model.save("Resnet50.mlpackage")
Neural EngineはApple A12以降のチップに搭載された専用ニューロプロセッサです。16コアが1W未満の消費電力で毎秒最大11兆回の演算を実行します。Core MLはニューラルネットワーク計算を自動的にNeural Engineに、GPU互換の計算をMetal GPUにルーティングします。開発者がデバイスを選択する必要はありません—Core MLがPerformance Reportを通じてモデルと利用可能なハードウェアを分析して行います。
TensorFlow Lite(TFLite)はAndroid、iOS、LinuxでMLモデルを実行するためのGoogleのクロスプラットフォームソリューションです。モデルは.tflite形式で、TensorFlowエコシステムのTFLiteConverterを介して作成されます。TFLiteはfloat32→int8の量子化をサポートし、分類タスクで97–99%の精度を維持しながらモデルサイズを4分の1に削減します。Google Play Services for TFLiteはアプリを再リリースせずに自動的にランタイムを更新します。
TFLiteConverterはTensorFlowモデルを.tflite形式に変換する主要ツールです。学習後int8量子化は完全なデータセットにアクセスせずにモデルを300MBから75MBに圧縮します。量子化認識トレーニング(QAT)はImageNetで1%未満の最小限の精度低下しかもたらしません。TFLiteConverterはグラフのプルーニングやTFLiteランタイムがサポートしない操作の削除もサポートします。
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はハードウェアアクセラレーション使用時より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はon-device ML向けの既製APIを備えたGoogleのSDKです。モバイルアプリでは、ML Kitはテキスト認識(手書きを含む50+言語)、顔検出(468の顔キーポイント)、バーコードスキャン(QR、EAN-13、Code 128、PDF417、Data Matrix)、物体検出に使用されます。すべてのAPIはインターネット不要で完全にデバイス上で動作します。ML Kitは統一APIでiOSとAndroidで利用可能です。
顔検出は顔の輪郭、眉、目、鼻、唇の座標、さらに頭部傾斜角度と目の状態を返します。ARマスクとカメラフィルターが最も一般的な使用シナリオです。テキスト認識は印刷文字で最大99%の精度で写真からテキストを抽出します。APIはCameraXを介したリアルタイム認識をサポートします。
val recognizer = TextRecognition.getClient()
val image = InputImage.fromBitmap(bitmap)
recognizer.process(image)
.addOnSuccessListener { result ->
result.textBlocks.forEach { block ->
println(block.text)
}
}
バーコードスキャンはカメラのビデオストリームからリアルタイムでバーコードを認識します。物体検出はバウンディングボックスとクラスラベル(人、車、動物)で画像内の物体を識別します。ポーズ検出はフィットネスアプリと動作分析のために33の身体キーポイントを特定します。画像ラベリングは最大10のセマンティック画像ラベル(「自然」「都市」「食べ物」)を返します。
AppleはサードパーティSDKをインストールせずにVisionとNaturalLanguageを通じて組み込みMLソリューションを提供します。Vision(VNRequest)はデバイス上で顔、テキスト、バーコード、輪郭の検出を実行します。NaturalLanguage(NLTokenizer)はトークン化、レンマ化、言語識別、感情分析を提供します。Androidでは、同等機能はML Kit(認識)とandroid.speechのSpeechRecognizer(音声)を介して実装されています。組み込みツールはモデルのダウンロードを必要としません—システムにプリインストールされています。
VisionにはVNDetectFaceRectanglesRequest(顔検出)、VNRecognizeTextRequest(テキスト認識)、VNDetectBarcodesRequest(バーコード)、VNDetectHumanBodyPoseRequest(骨格)が含まれます。VNCoreMLRequestはカスタムCore MLモデルをVisionパイプラインに統合します—例えば、検出された顔の感情分類。すべてのリクエストは最小レイテンシでNeural Engine上で実行されます。
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])
NaturalLanguageはテキストをトークンに分割するNLTokenizer、言語識別用のNLLanguageRecognizer(72言語)、NLSentimentAnalyzerによるテキスト感情分析を提供します。SFSpeechRecognizerはデバイス上で50+言語をサポートする音声認識APIです(iOS 13+)。使用前にSFSpeechRecognizerAuthorizationStatusの許可が必要です。結果はSFSpeechRecognitionResultHandlerを介して非同期で返されます。
よくある質問
デバイス上のML(on-device ML)は、サーバーにデータを送信せずにモバイルデバイス上で直接機械学習モデルを実行するアプローチです。Core ML、TensorFlow Lite、ML Kitがon-device MLの主要フレームワークです。
Core MLはiOSおよびmacOS向けにNeural EngineでアクセラレーションするAppleのフレームワークです。TensorFlow LiteはAndroid、iOS、Linux向けのGoogleのクロスプラットフォームソリューションです。Core MLはAppleデバイスでより良いパフォーマンスを、TFLiteは汎用性を提供します。
ML Kitは典型的なコンピュータビジョンとNLPタスクを解決します:テキスト、顔、バーコード、物体、姿勢認識。すべてのAPIはインターネット不要でデバイス上で動作し、独自モデルの作成は不要です。
いいえ、on-device MLは完全にローカルで動作します。モデルはデバイスにロードされ、インターネット接続なしで実行されます。ML Kitはより高精度なクラウド版APIも提供しますが、on-deviceモードはオフラインで利用可能です。
iOS専用ならCore ML—Neural Engineを使用しAppleエコシステムと緊密に統合されています。クロスプラットフォームプロジェクトならTensorFlow Lite。カスタムモデル不要の典型的なタスクなら既製APIのML Kitを選んでください。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。