フレームワーク

Core ML

アプリに機械学習モデルを組み込みます。

概要

Core MLを使って、機械言語モデルをアプリに統合します。Core MLはすべてのモデルを統一された方法で扱えます。アプリは、Core ML APIとユーザーデータを使用して、予測の作成、モデルのトレーニングや微調整をすべてユーザーのデバイス上で行います。

左から右へと進むフローチャート。一番左にCore MLモデルのファイルアイコンがあります。次に、Core MLフレームワークアイコンが真ん中にあり、右側に「自分のアプリ」というラベルが付いた一般的なアプリのアイコンがあります。

モデルは、機械学習のアルゴリズムを一連のトレーニングデータに適用した成果です。モデルを使用して、新しい入力データに基づいて予測を作成します。モデルは、コードで記述するのが難しい、または非現実的な、さまざまなタスクを実現できます。たとえば、写真を分類するモデルや、写真に写っている特定の被写体をピクセルから直接検出するモデルをトレーニングできます。

XcodeにバンドルされているCreate MLアプリを使って、モデルの構築とトレーニングができます。Create MLを使用してトレーニングされたモデルはCore MLのモデル形式であり、アプリで使う準備ができています。別の方法として、ほかのさまざまな機械学習ライブラリを使って作成した後、Core ML Tools(英語)でモデルをCore ML形式に変換できます。デバイス上にモデルを配布した後、そのユーザー固有のデータを使った再トレーニングや微調整を、Core MLを使ってオンデバイスで行うことも可能です。

Core MLは、CPU、GPU、ニューラルエンジンを活用して、オンデバイスのパフォーマンスを最適化しながら、メモリフットプリントと電力消費を最小限に抑えます。ユーザーのデバイスでのみモデルを実行することにより、ネットワーク接続の必要がなくなるため、ユーザーデータのプライバシーが保護され、アプリのレスポンスも改善されます。

Core MLは、特定の用途に対応したフレームワークと機能のための基礎です。Core MLは、画像を分析するVision(英語)、テキストを処理するNatural Language(英語)、オーディオをテキストに変換するSpeech(英語)、何の音かを特定するSoundAnalysis(英語)をサポートします。Core ML自体は、Accelerate(英語)BNNS(英語)Metal Performance Shaders(英語)といったローレベルの基盤上に構築されます。

機械言語のスタックを表すブロック図。一番上の層には「You App」と書かれたブロックが1つあり、ブロック図の幅全体に広がっています。2番目の層には4つのブロックがあり、それぞれ「Vision」「Natural Language」「Speech」「SoundAnalysis」と書かれています。3番目の層は、「Core ML」と書かれたブロックが横幅全体に広がっています。一番下の4番目の層には2つのブロックがあり、それぞれ「AccelerateとBNNS」「Metal Performance Shaders」と書かれています。

トピック

最初のステップ

Core MLモデルの入手

アプリで使用するCore MLモデルを入手します。

Core MLモデルをアプリに組み込む(英語)

アプリにシンプルなモデルを追加し、モデルに入力データを渡し、モデルの予測を処理します。

トレーニング済みモデルのCore MLへの変換

他社製の機械学習ツールで作成したトレーニング済みのモデルを、Core MLのモデル形式に変換します。

コンピュータビジョン

VisionとCore MLでの画像の分類(英語)

Visionのフレームワークを使用して写真を前処理し、Core MLモデルを使用して分類します。

Visionとオブジェクト検出によるサイコロの目の判断(英語)

カメラフレームに表示されるサイコロの位置と目の数を検出し、サイコロ検出モデルを活用してサイコロが止まったときの目の数を判断します。

Natural Language

テキスト文書での質問の答え探し(英語)

BERT(Bidirectional Encoder Representations from Transformers)モデルに質問をして、文書内で関連する記述の場所を特定します。

アプリのサイズ管理

Core MLアプリのサイズの縮小

App Bundle内でCore MLモデルが使用するストレージを減らします。

Core ML API

Core ML API

Core ML APIを直接使用して、カスタムワークフローや高度なユースケースをサポートします。