Translate

2017年11月15日水曜日

TensorFlow Lite が発表された件

今朝のタイムラインには驚いた。



リンク先のブログ記事をとりあえず勝手に翻訳してみた。
以下、その翻訳文です。
#参照する人は at your own risk でお願いします。


-----

TensorFlow Lite を発表





本日、我々は TensorFlow モバイルと組み込み機器向けの  軽量ソリューションである TensorFlow Lite の開発者向けプレビューを発表します。


TensorFlowは、サーバのラックから小型のIoTデバイスまで、常に多くのプラットフォーム上で動作していますが、機械学習モデルの採用が過去数年間で急激に増加しているため、モバイルデバイスや組み込みデバイスに展開する必要があります。TensorFlow Liteを使用すると、デバイス上の機械学習モデルのレイテンシを低く抑えることができます。

TensorFlow Lite は、次のように設計しています:

  • 軽量 バイナリサイズが小さく、初期化/起動が速いオンデバイスマシン学習モデルの推論を可能にする
  • クロスプラットフォーム AndroidやiOSの複数のプラットフォームで動作 するように設計されたランタイム
  • 高速 モバイルデバイスに最適化され、モデルの読み込み時間が大幅に短縮、ハードウェアアクセラレーションをサポート
今日、ML ワークロードをより効率的に処理するための専用ハードウェアを組み込んだモバイルデバイスが続々と登場しています。TensorFlow Liteは、Android ニューラルネットワークAPI をサポートし、これらの新しいアクセラレータを利用できるようにします。
 

ハードウェアのアクセラレータが利用できない場合、 TensorFlow Lite は最適化された CPU 実行に戻ります。これにより、モデルが大量のデバイスで高速に動作することが保証されます。
 

アーキテクチャ

 次の図は、TensorFlow Lite のアーキテクチャ設計を示しています。


 個々のコンポーネントは次のとおりです:


  • TensorFlow Model:ディスクに保存された訓練された TensorFlow モデル
  • TensorFlow Lite コンバータ:モデルをTensorFlow Liteファイル形式に変換するプログラム
  • TensorFlow Liteモデルファイル:最大速度と最小サイズに最適化された FlatBuffers に基づくモデルファイル形式
TensorFlow Liteモデルファイルは、モバイルアプリケーション内にデプロイされます。モバイル・アプリケーション内では:


  • Java API: Android 上のC++ APIに関する便利なラッパー
  • C++ API:TensorFlow Liteモデルファイルを読み込み、Interpreterを呼び出す。AndroidとiOSの両方で同じライブラリが利用可能
  • Interpreter:Operatorの集合を使ってモデルを実行する。Interpreter は限られたOperatorのみローディングをサポートします:Operatorなしで70KB、すべてのOperatorをロードして300KBです。TensorFlowが必要とする1.5M (通常のOperatorの集合を使用)から大幅に削減
  • 限られたAndroidデバイスでは、InterpreterはAndroid Neural Networks APIを使用してハードウェアアクセラレーションを行い、使用できない場合はCPUの実行をデフォルトにする

開発者は、インタプリタで使用できるC ++ APIを使用してカスタムカーネルを実装することもできます。
 


モデル

TensorFlow Lite は、すでに訓練され、モバイル向けに最適化された多数のモデルをサポートしています。


  • MobileNet:モバイルおよび組み込み機器での効率的な実行のために特別に設計された1000種類のオブジェクトクラスを識別できるビジョンモデルクラス
  • Inception v3:MobileNetと機能的に類似しているが、より高い精度を提供するが、より大きなサイズを有する画像認識モデル
  • Smart Reply:着信した会話型チャットメッセージにワンタッチで返信するオンデバイスの会話モデル。ファーストパーティとサードパーティのメッセージングアプリはAndroid Wearでこの機能を使用する。
Inception v3 と MobileNets は ImageNet データセットで訓練されています。転移学習(Transfer Learning)を行うことで、自分の画像データセットでこれらを簡単に再学習することができます。
 


TensorFlow Mobile はいかが?

ご存じのように、TensorFlowはすでに、 TensorFlow Mobile API を通じてモデルのモバイルおよび組み込み展開をサポートしています。今後、 TensorFlow Lite は TensorFlow Mobile の進化と見なされるべきです。成熟するにつれて、TensorFlow Mobile はモバイルデバイスや組み込みデバイスにモデルを導入するための推奨ソリューションになるでしょう。この発表により、TensorFlow Lite は開発者のプレビューとして利用可能になり、TensorFlow Mobileはまだプロダクションアプリをサポートします。

TensorFlow Liteの範囲は大きく、依然として積極的に開発中です。この開発者プレビューでは、最も重要な共通モデルの一部でパフォーマンスを保証するために、意図的に制約のあるプラットフォームを使用しています。私たちは、ユーザのニーズに基づいて将来の機能拡張を優先させる予定です。継続的な開発の目標は、開発者の経験を簡素化し、モバイルデバイスや組み込みデバイスのモデル展開を可能にすることです。

開発者が TensorFlow Lite に手を差し伸べていることに、私たちは興奮しています。私たちは、TensorFlowプロジェクトの残りの部分と同じ強度で外部コミュニティをサポートし、取り組むことを計画しています。TensorFlow Lite で何ができるのかを待つことはできません。

詳細については、TensorFlow Liteのドキュメントページを参照してください。
より多くのアップデートをお待ちしております。

ハッピー TensorFlow Liteコーディング!

------

実は、転移学習でカスタマイズした学習済みモデルをKeras.js で縮退させたモデル使ってHTML5アプリにしてうごかしてやろうと思っていたら..

そうか..Andoroid系のハードにGPUリソース入れる気なんだ..

..でそれでアクセラレーションした機械学習モデルネイティブアプリ動かして
クラウド上のコグニティブとか抜かしているAPIサービス群をまるっとぶっ飛ばす気だ..




...やられた..コカコーラの記事でなんとなく怪しいとは思ってたんだよな..

 そうなると..Appleは対抗でiPhone/iPadにGPUを入れてくるよな..

..モバイルGPU市場の株式アツくなるかもしれないなあ..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...