利益:
- プライバシー、オフラインのニーズ、モデルのサイズ、バッテリーの基準に基づいて、オンデバイスかクラウドを決定し、適切なツール (ML Kit、Core ML、TensorFlow Lite) を選択する機能
- モデル統合におけるモデルのドキュメントからの入力前処理 (サイズと正規化) を検証することにより、サイレント エラーを防ぐ機能
- 信頼性の低い予測を絶対的な真実として提示することなく、ユーザーの承認を得て実際のデバイス上で信頼性スコアを評価し、結果を測定する機能。
これまで、開発プロセスをスピードアップするための補助として AI を活用してきました。次に、AI の 2 番目の役割、つまりアプリケーションに組み込まれた人材に移ります。最新の携帯電話には、画像認識、テキスト翻訳、音声文字起こしなどの AI モデルをデバイス上で直接 (サーバーにアクセスせずにデバイス上、つまり携帯電話自体のプロセッサ内で) 実行する機能があります。デバイス上の AI。速度、プライバシー、オフライン操作の点で、クラウド ソリューションに比べて大きな利点があります。この単元では、iOS の Core ML、クロスプラットフォームの TensorFlow Lite (現在は LiteRT として知られています)、Google の既製ソリューション ML Kit を使用してアプリケーションに AI を埋め込む方法と、この統合のアシスタントとして AI を使用する方法を学びます。
オンデバイスかクラウドか?
これは最初で最も重要なアーキテクチャ上の決定です。オンデバイス AI は携帯電話からデータを削除しません。これはプライバシーにとって大きなメリットとなります。また、ネットワーク遅延がないため、瞬時に実行され、オフラインでも動作します。ただし、デバイスの処理能力とメモリによって制限されます。非常に大きなモデル (巨大な舌モデルなど) は電話機に収まらないか、バッテリーを消耗します。一方、クラウド AI は無制限のパワーを提供しますが、データをサーバーに送信し、ネットワークを必要とし、遅延が発生します。
基準
オンデバイス
クラウド(クラウドAPI)
プライバシー
データはデバイス上に残ります、強力です
データはサーバーに送信されます。注意が必要です
速度
インスタント、ネットワーク不要
ネットワーク遅延に依存する
オフライン
それは機能します
機能しない
モデルサイズ
限られた(電話リソース)
無制限
バッテリー/熱
頻繁に使用した場合の効果
サーバーに負荷がかかり、デバイスがリラックスしている
コスト
無料(デバイスソース)
1回あたりの料金
決定ルール: 個人/機密データが処理されている場合、オフラインで作業する必要がある場合、または即時応答が不可欠な場合は、オンデバイスを選択します。非常に大規模なモデルが必要な場合は、クラウドに頼ってください。このユニットはオンデバイスに重点を置いています。次の単元ではクラウド AI について説明します。
ヒント: 機密データ (健康状態、生体認証、位置情報) を処理する機能のデフォルトは、常にデバイス上に設定してください。 「データはデバイスから出ない」というフレーズは、プライバシー コンプライアンスとユーザーの信頼の両方にとって非常に貴重であり、ストアのプライバシー ラベルに大きな違いをもたらします。
3 つの方法: ML キット、Core ML、TensorFlow Lite
ML Kit (Google) は、始めるのが最も簡単な方法です。ML Kit は、テキスト認識 (OCR - 画像内のテキストの読み取り)、顔検出、バーコード読み取り、翻訳などの既製の機能を数行で提供します。独自のモデルをトレーニングする必要はありません。 Core ML (Apple) は、iOS 上で独自のモデルまたは既製のモデルを実行する最も効率的な方法です。 Apple の Neural Engine (人工ニューラル ネットワーク プロセッサ) ハードウェアを使用します。 TensorFlow Lite/LiteRT は、Android と iOS の両方で独自のトレーニング済みモデルを実行できるクロスプラットフォーム ソリューションです。
AI との一般的な統合フローは次のようになります。
- 才能の定義。 「写真に写っている文字を読みたい」など、明確な目的。
- パスの選択。準備ができている人材がいる場合は、ML キットを使用します。 Core ML/TF Lite (特別モデルが利用可能な場合)。
- モデル形式。 .mlmodel (Core ML)、.tflite (TF Lite)。 AI変革の手順を解説します。
- 統合コード。モデルのロード、入力の前処理、出力の解釈。
- パフォーマンステスト。実機での速度、メモリ、バッテリーの測定。
注意: オンデバイス モデルの統合における最も一般的な AI の間違いは、入力の前処理、つまり画像をモデルが期待するサイズとカラー形式に変換することです。モデルが 224x224 ピクセルを想定しているのに 300x300 を指定した場合、結果は無意味になりますが、エラー メッセージは表示されません。モデルのドキュメントから前処理値を確認します。
モデルの限界を知る
オンデバイス モデルは、トレーニングされたデータに基づいて意思決定を行います。日中に撮影された写真のみでトレーニングされた物体認識モデルは、夜間の画像では正しく動作しません。モデルには信頼スコア (信頼度 - モデルがその答えについてどれだけ自信があるか、通常は 0 から 1 の間) があります。信頼性の低い結果を正確なものとしてユーザーに示すのは危険です。たとえば、皮膚スポット スキャン アプリケーションでは、「間違いなく良性」と言うべきではなく、「モデルの予測はこうです。医師に相談してください」と言うべきです。モデルの結果は推奨事項であり、診断ではありません。
ミニケース3個
ケース 1 — OCR による高速化。経費追跡アプリでは、ML Kit のテキスト認識を使用して領収書を手動で入力する負担がなくなりました。ユーザーがレシートの写真を撮ると、金額と日付が自動的に入力されます。手動入力時間は、レシートごとに 40 秒から 8 秒に短縮されました。チームは常にユーザーにAIが読み取った量を確認させた。しわのあるレシートには 6% の誤差があるからです。自動化と人間の承認が適切なバランスでした。
ケース 2 — 前処理エラー。あるチームは植物認識モデルを TensorFlow Lite と統合しました。テスターでは、結果はランダムでした。問題は、AI が生成したコードが画像をモデルが期待する [0,1] 範囲に正規化していないことでした (ピクセル値は 0 ~ 255 のままでした)。正規化を追加すると、精度が 30% から 89% に向上しました。教訓: 前処理は静かですが致命的です。
ケース 3 — プライバシーの獲得。ヘルスケアアプリケーションは、オンデバイスの Core ML モデルを使用して心拍数データから異常を検出しました。データがサーバーに送信されることはありませんでした。この選択により、アプリケーションは App Store のプライバシー ラベルで「データを収集しない」という表現を受け取ることができ、競合他社と比較してダウンロード率が向上しました。オンデバイスの選択は、倫理的にも商業的にも有益でした。
弱いプロンプト / 強いプロンプト
弱いプロンプト: 「アプリに画像認識を追加します。」
強力なプロンプト: 「Android/Kotlin アプリケーションに金額と日付の読み取り機能を追加します。 - Google ML Kit のテキスト認識を使用します (デバイス上、オフライン) - カメラまたはギャラリーから画像を取得します - 正規表現を使用して、認識されたテキストから金額と日付を抽出します - 編集可能フィールドで承認のために結果をユーザーに提示し、自動保存します - カメラの許可フローと拒否を処理します。前処理とエラーの状況を書き留め、手順を説明します。」
コピー可能なテンプレート
パス選択テンプレート: 「次の機能を作成したいです: [機能]。オンデバイスとクラウドのどちらにするべきですか? プライバシー、オフラインのニーズ、モデルのサイズ、バッテリー、コストに基づいて比較します。適切なツール (ML Kit / Core ML / TF Lite) を推奨し、正当化します。」
統合テンプレート:「[プラットフォーム] の [モデル/機能] 統合を作成します。1) モデルの読み込み2) 入力前処理 (予想されるサイズと正規化)3) 推論呼び出し 4) 出力の解釈と信頼スコアのチェック5) 信頼性の低い結果に関するユーザーへの警告モデルのドキュメントから前処理の値を確認するよう通知します。」
信頼スコア テンプレート:「この推論コードの信頼スコアを考慮します:- しきい値 (例: 0.6) を下回る「正確な」結果を提示します。 - ユーザーに「これは推定値です」というメモを表示します。 重要な領域 (健康、安全) の場合は専門家に問い合わせます [コード]"
パフォーマンス検証テンプレート: 「このオンデバイス モデルの統合について、実際のデバイスで測定する必要があるメトリクスをリストします。推論時間、メモリの増加、バッテリーへの影響、発熱。それぞれの測定方法を教えてください。」
よくある間違い
- 前処理を省略したか、間違った処理を行っています。間違ったサイズ/正規化により、暗黙のうちに間違った結果が生成されます。
- 信頼度スコアを無視します。信頼性の低い推定値を正確なものとして提示すると、ユーザーに誤解を与えることになります。
- エミュレータでモデルをテストします。実際のデバイスの速度とバッテリーは大きく異なります。常に実際のハードウェアで測定してください。
- 機密データを不必要にクラウドに送信する。オンデバイスが可能な場合にクラウドを選択すると、プライバシーのリスクが生じます。
- モデルのサイズは無視します。大きなモデルのアプリはダウンロード サイズが増大し、低ハードウェアではクラッシュします。
- モデルのトレーニング限界を忘れています。モデルは見えない状態(夜、違う言語)で間違えられます。これをユーザーに明確にしてください。
要約すれば
オンデバイス AI は、データを電話上に保持することでプライバシー、スピード、オフライン操作を提供します。制限はデバイスの電力とモデルのサイズです。 ML Kit はすぐに使える機能に使用され、Core ML (iOS) および TensorFlow Lite (クロスプラットフォーム) はカスタム モデルに使用されます。統合のサイレントキラーは不適切な前処理です。入力サイズと正規化は、モデルのドキュメントから検証されます。各結果には信頼度スコアが付いており、信頼度の低い予測は絶対的な真実としては表示されません。決定はエミュレータではなく実際のデバイスで測定されます。
アプリケーションタスク
「写真からのテキスト読み取り」または「バーコード読み取り」機能の場合は、「パス選択テンプレート」を使用してオンデバイスにするかクラウドにするかを AI に尋ね、次に「統合テンプレート」を使用して ML Kit ベースのブループリントを求めます。前処理ステップとユーザーの承認/編集フローがコード内に存在することを確認します。信頼スコアのしきい値を設定し、結果が信頼性の低い場合にどうするかを記述します。
チェックリスト
- [ ] 基準に基づいてオンデバイスかクラウドかを決定しました
- [ ] 適切なツールを選択しました (ML Kit / Core ML / TF Lite)
- [ ] モデルのドキュメントから前処理次元と正規化を検証しました
- [ ] 信頼スコアを確認し、信頼結果が低いことを警告しました
- [ ] 結果を承認/編集してユーザーに提示しましたが、やみくもに保存したわけではありません
- [ ] エミュレータではなく実機でパフォーマンスを測定しました