用語集 / どう聞き取るか

Core ML

別名:CoreML、Apple Core ML

更新日:

定義

Core MLは、App内の機械学習モデルをデバイス上で動かすためのAppleのフレームワークです。CPU、GPU、Neural Engineを使い、予測を行うのにネットワーク接続は必要ありません。

Core MLは2017年、macOS 10.13とiOS 11からAppleのOSに含まれています。Appがモデルと、音声や画像、テキストなどの入力を渡すと、モデルの答えを返します。どこで計算するかは、Core MLが決めます。

Core MLをインストールしたり、開いたりすることはありません。macOSの一部です。名前を目にするのは、Appの説明やモデルのファイル名の中、またはダウンロードにCore MLの重みが含まれていると書かれているときです。

できること

Appleの説明はこうです:Core MLはすべてのモデルを統一された形で表し、Appはそれを使って予測を行ったり、モデルを学習・ファインチューニングしたりでき、すべてがその人のデバイス上で行われます。

性能について、AppleはCore MLが、CPU、GPU、Neural Engineを活用してデバイス上での性能を最適化し、メモリ使用量と消費電力を最小限に抑えると説明しています。Neural EngineはAppleのチップのうち、この種の計算のために作られた部分で、AppがNeural Engineを使うには通常Core MLを通します。

デバイス上で動くことが大切な理由

Apple自身がこう説明しています:モデルを完全にその人のデバイス上で動かせば、ネットワーク接続はまったく不要になり、その人のデータのプライバシーを守り、Appの応答性を保つのに役立つ。

音声で言えば、テキストにするために音声がMacの外に出る必要はない、ということです。特定のAppが実際に音声をMacに留めるかどうかはそのAppしだいですが、フレームワークはそれを可能にしています。

ファイルの種類

Core MLのモデルには3つの形式があり、拡張子でどれかがわかります。

  • `.mlmodel`:元のモデル定義ファイル。
  • `.mlpackage`:新しいパッケージ形式で、重みをプログラムと分けて保持します。Xcode 13から対応しています。
  • `.mlmodelc`:コンパイル済みのモデルで、Appが読み込むのはこれです。Appの中やそのダウンロードの中にこの拡張子のフォルダがあれば、すぐに動かせるCore MLモデルです。

モデルの入手元

ほとんどのモデルは、ほかのツールで学習してから変換されます。Appleはそのために、PyTorchやTensorFlowなどの学習用ライブラリからCore ML形式にモデルを変換するCore ML Toolsを公開しています。

同じツールで、変換の際に量子化やパレット化でモデルを圧縮することもできます。これでモデルが小さくなり、Neural Engine上では速くなることもよくあります。

Core MLとMLX

Appleは2つを違うものとして説明しています。Core MLはモデルをAppに組み込むためのものです。MLXは、Apple silicon上で生成モデルを試したり、学習させたり、ファインチューニングしたりするためのオープンソースの配列フレームワークです。Appleのドキュメントによると、MLXはCPUとGPUで動き、Core MLはNeural Engineも使えます。

Appleのページでは現在、最新のモデルアーキテクチャを扱う開発者に、別のフレームワークであるCore AIも案内しています。Appでモデルを動かす方法としては、Core MLが長く使われてきた定番であることに変わりはありません。

よくある質問。

Core MLは何に使われる?

Appleデバイス上のApp内で機械学習モデルを動かすためです。音声認識、画像の分類、テキストの読み取りなどを、データをサーバに送らずに行います。

Core MLにインターネットは必要?

いいえ。Appleによると、モデルを完全にデバイス上で動かせば、ネットワーク接続はまったく不要になります。

Core MLはNeural Engineを使う?

はい。Appleによると、Core MLはCPU、GPU、Neural Engineを活用します。

.mlmodelcファイルとは?

コンパイル済みのCore MLモデルです。Appが読み込んで実行する形式です。

Core MLとMLXの違いは?

AppleはCore MLをモデルをAppに組み込むための手段、MLXをApple silicon上で生成モデルを試したりファインチューニングしたりするための配列フレームワークと説明しています。Core MLはNeural Engineを使えますが、MLXはCPUとGPUで動きます。

Core MLはIntelベースのMacにもある?

はい。Core MLはmacOS 10.13からmacOSの一部です。Neural EngineはApple siliconにしかないので、IntelベースのMacではCPUとGPUを使います。

関連用語

いつだって、声のほうが速かった。

7日間無料、その後は$19 USDの買い切り。アカウント不要、サブスクリプションなし、アップロードなし。

macOS 14以降 · Apple silicon