機械学習のソフトウェア ライブラリやモデルの世界は急速に進化しています。遅延、電力、セキュリティといった懸案に対処しつつ、増加を続けるメモリと計算能力の需要を満たすには、実行予定のワークロードと合わせて繰り返し試行しながらハードウェアを開発する必要があります。

RISC-V ISA は、オープンなアーキテクチャに基づき、カスタム命令をサポートし、柔軟なベクトル拡張機能を備えているので、このような協調設計にまたとない機能を提供します。また、RISC-V によるオープン ハードウェア エコシステムの活性化で、研究やイノベーションが推進され、チップ製造自体を改善する方法が生まれているため、この手法を活用してソフトウェアのニーズを今まで以上に満たせるようになっています。Google の OpenMPW Shuttle ãªã©ã®å–り組みから、ML に特化したさらに充実したオープンなソリューションを生み出すためには、オープンでソフトウェア的なハードウェア開発のアプローチが鍵となります。

HW/SW 協調設計フローによる RISC-V ベースの ML アクセラレータ

この数か月、Google Research は Antmicro と連携して、効率的なハードウェアとソフトウェアの協働設計のひな形となるチップ プロジェクトを進めてきました。安全な ML ソリューションを開発するために、Google Research チームは Antmicro のサポートを受け、Antmicro のオープンソース シミュレーション フレームワークである Renode ã‚’使ってチップ開発前の高速な ML 開発フローを完全なオープンソースで開発しました。

昨年、Antmicro はこの協力関係を活用し、RISC-V ベクトル拡張機能の Renode サポートを実装しました。この拡張機能は、Springbok というコードネームを持つ Google チームの RISC-V ベースの ML アクセラレータに使われており、今回の開発はその結果をベースに行われています。プロジェクトの一環として、デベロッパー体験をさらに向上させるため、Antmicro は土台となる SoC のサポートの改善もしました。さらに、OS に対応したデバッグ、パフォーマンスの最適化、ペイロードのプロファイリング、パフォーマンス測定機能など、たくさんのユーザー指向機能にも取り組んでいます。

Springbok は、Google の AmbiML ãƒ—ロジェクトの一部です。このプロジェクトは、プライバシーとセキュリティを中心としたオープンソース ML 開発エコシステムの作成を目的としています。Google Research チームは、RISC-V ベクトル拡張機能を活用して、標準的でありながら柔軟な方法で ML ペイロードに欠かせない行列の積和演算を並列化しました。さらに、Renode のおかげで、情報に基づいた選択によって RISC-V の柔軟性を活用する厳密な方法を決めることができます。これは、Renode が生成したデータと、ハードウェアの構成や機能を数日ではなく数分で試すことができるテキストベースの設定機能を使い、現実的な反復処理でスピード、複雑さ、特殊性のトレードオフを分析することによってできます。

HW/SW 協調設計フローによる RISC-V ベースの ML アクセラレータの図

ML ソフトウェア側のエコシステムの中心にあるのは、IREE ã§ã™。これは、LLVM MLIR をベースに、ML コンパイラと制約の強いデバイス向けのランタイムをオープンソースで開発する Google のリサーチ プロジェクトです。

IREE を使うと、TensorFlow や TensorFlow Lite などの一般的な ML フレームワークからモデルを読み込み、中間表現(MLIR)に変換できます。その後、それをグラフレベルで最適化し、LLVM コンパイル フローによって特定のターゲットに最適なランタイムにコンパイルします。IREE では、対象デバイスにモデルをデプロイする API が C と Python プログラミング言語の両方で提供されています。また、モデルの読み込み、テンソル管理、推論の起動を行えるよう、TFLite ã¨åŒã˜å¤‰æ›ã‚’提供する TFLite C API ã‚‚用意されています。

こういったランタイムを使うと、対象デバイスや Renode などのシミュレーション環境で、モデルのデプロイやテスト、デバッグ、ベンチマーク、実行が可能になります。

Spring 2022 RISC-V Week でのフローのデモ

パリで開催された Spring 2022 RISC-V Week ã¯、ここ数年で初めてとなるオープン ハードウェアの大規模カンファレンスでした。これに向けて、最初のバージョンの AmbiML ベアメタル ML フローがオープンソースとしてリリースされました。これには、インタラクティブに実行する機能とサンプル CI の両方が含まれています。サンプル CI は Antmicro の GitHub Renode Action ã‚’使っており、こういったワークフローをコミットごとに自動テストできることを示しています。現在、Google Cloud パートナーである Antmicro は、Google Cloud と連携して、このようなシナリオでの大規模な CI のテストやデプロイに Renode を利用できるようにする作業を行っています。

パリのイベントでは、Antmicro と Google はソフトウェア協調開発フローを発表し、1 つのコアで AmbiML Springbok ペイロードを実行し、別のコアで Zephyr を実行するという混在マルチコア ソリューションのデモをしました。

発表したシナリオでは、Springbok コアがメイン CPU から ML 計算をオフロードする装置となって MobileNetv1 ネットワークの推論をし、RISC-V カスタム命令を通じてアプリケーションのコアに作業結果を報告しました。Renode では、カスタム命令の追加や変更は簡単に行えます。Python や C# を使って 1 行で記述することも、RTL で協調シミュレーションもできます。

ML デベロッパーやチップ設計者は、Renode をソリューションのテストや実行に活用できます。それだけでなく、ソフトウェアが実際に何を行っているかを詳しく知るために利用することもできます。Antmicro と Google は、パリのデモの一環として、実行した命令数や特定のオペコードの使用頻度を数える方法を紹介しました。こういった機能は、ソリューションのパフォーマンスを評価するために活用でき、実行指標分析や実行関数ロギング、そして最近開発された実行トレース生成と合わせれば、ML エミュレーション環境の詳しい挙動を把握できます。

このような機能が、Renode のさまざまなハードウェアやソフトウェアの協調開発ソリューションに加わります。そのようなソリューションの例として、Antmicro と Microchip が共同開発している RTL 協調シミュレーションや、Verilator 対応のカスタム命令のサポートなどが挙げられます。後者は、RISC-V Custom Function Units ã‚’担当している別の ML に特化した Google のチームとの共同開発によるもので、EU が資金提供する VEDLIoT ãƒ—ロジェクトでも使われています。

今後の計画

この取り組みは、ソフトウェアやハードウェアのコンポーネントや、安全な ML 開発のための協調設計エコシステムをサポートするツールをリリースするために、Antmicro が進めている Google Research チームとの幅広い活動の始まりでしかありません。Renode や RISC-V、協調開発を今後の ML 中心のプロダクト開発に役立てられると思った方は、ぜひご自分で AmbiML フローを試してみてください。

GitHub の iree-rv32-springbok ãƒªãƒã‚¸ãƒˆãƒªã«ã‚¢ã‚¯ã‚»ã‚¹ã—、ローカルにクローンして、README.md ã®æ‰‹é †ã«å¾“ってください。

Renode リポジトリ

Renode は公式リポジトリからも取得できます。すぐに実行できるデモを試すことも、Renode のドキュメントを確認して Verilator 協調シミュレーションなどの ML アクセラレーション開発に役立つ機能について学ぶこともできます。


Posted by Johan Euphrosine and Takuo Suzuki - Developer Relations Team

Google は 11 月 25 日 (金)に、機械学習の分野で優れた活躍をする女性をフィーチャーするイベント「Google Cloud Women in ML」を開催いたします。

女性の目線によるデータのビジネス活用も重要になってくる可能性が高く、女性データサイエンティストのさらなる活躍が期待されます。データサイエンスに関わる女性技術者からいろいろな分野の話を聞き、技術者同士のネットワーキングを深めたいと考えております。

データサイエンスに関わるよりすぐりの女性スピーカーを集めてのイベントとなりますので、ぜひ Women in ML にご参加ください。

《イベント 詳細の確認、お申し込み》

https://goo.gle/3tpWRO8


《開催概要》

• 名 称 :「Women in ML」

• 会 期 : 2022 å¹´ 11 月 25 日(木)15 : 00 - 18 : 20

• 会 å ´ : ハイブリッド開催

• 主 催 : グーグル・クラウド・ジャパン合同会社


《プログラム》

❏ AI / データ分析 の分野で活躍する女性エンジニアによるパネル ディスカッション

葛木 美紀 , Google Cloud AI Consultant

曲沼 宏美 , 株式会社インテージ DX 部 データサイエンティスト データエンジニア

福島 ゆかり , 株式会社電通デジタル PF 部門ソリューション戦略部 Senior Consultant

浦田 純子 , Google Cloud Software Engineer

野上 和加奈 , 株式会社ソウゾウ 機械学習チーム ソフトウェアエンジニア

栗原 理央 , 株式会社ブレインパッド アナリティクス本部 リード機械学習エンジニア


❏ Vertex AI 入門 ~ 実践

浦田 純子 , Google Cloud Software Engineer


❏ Vertex AI Forecast - AutoML ではじめる需要予測

栗原 理央 , 株式会社ブレインパッド アナリティクス本部 リード機械学習エンジニア


❏ 機械学習認定資格「TensorFlow Developer Certificate」のススメ

Fran Marmousez(フラン マーモセズ), Google Cloud Conversational AI Engineer - Strategic Cloud Engineer


❏ Vertex AI ではじめる「大規模言語モデル」

葛木 美紀 , Google Cloud AI Consultant






1 週間を通じて、Android のオンデバイス機械学習(ML)のさまざまな側面を取り上げてきました。私たちは、実に多様な ML ツールを利用しています。この点は、できたてのアプリから定着しているアプリまで、開発のどの段階でも変わりません。また、設計や製造、エンジニアリングなどの役割や、初心者からエキスパートまでのスキルレベルによって変わるものでもありません。

設計 - 差別化のための ML


「ユーザーに目を向ければ他はすべてついてくる」というのは Google 社内でよく使われる寸言ですが、現在の機械学習の時代にあって、この言葉がますます意味を持つようになっています。Google のデザイン アドボケートである Di Dang は、ユーザーの問題と ML の長所が交わる唯一の交差点を見つけることの重要性を強調しています。往々にして、チームはユーザーのニーズを見失った機械学習のアイデアを追い求めがちです。





Di は、ML 製品の意思決定を行う際に「人にうれしいAIのための UXデザインガイド People + AI Guidebook(日本語・コミュニティによる翻訳版)」を活用する方法と、ML の設計や開発に特有の精度や再現率などのトピックについて Read Along アプリを例に挙げて説明しています。チームがインスピレーションを得るために、Di による Read Along チームへのインタビューもご覧ください。


オンデバイスに完全フォーカスした新しい ML Kit


オンデバイス機械学習をソリューションとして使うべきだと判断した場合、それを最も簡単に実装する方法は、ML Kit のようなすぐに使える SDK を活用することです。Google がトレーニングした洗練されたモデルや処理パイプラインが、使いやすい Kotlin / Java のインターフェースを通して提供されています。ML Kit はオンデバイス ML 用に設計、構築されました。オフラインで動作し、プライバシーが強化されており、リアルタイム ユースケースで高いパフォーマンスを発揮します。しかも、無料です。また先日、ML Kit をスタンドアロン SDK にして、Firebase アカウントがなくても利用できるようにしました。build.gradle ファイルに 1 行追加するだけで、アプリに ML 機能を組み込むことができます。






Jetpack ライフサイクル サポートや、Google Play Services を通して顔の輪郭モデルを使用することでアプリのサイズを 20 MB も節約できるオプションなど、新機能も追加しています。また最近、大きな期待を寄せられていた機能がもう 1 つ追加され、画像のラベル付けと物体検知および物体トラッキングにおいて、Google モデルを独自のモデルと交換できるようになりました。これは、特に簡単に TensorFlow Lite モデルをアプリに追加する方法の 1 つです。ByteArray を操作する必要は一切ありません!

TensorFlow Lite と Android ツールによるカスタマイズ


ML Kit が提供するベースモデルでは満足できないデベロッパーはどうすればいいでしょうか?まず参照すべき場所は、TensorFlow Hub です。ここから Google や多数のコミュニティが提供する TensorFlow Lite モデルをダウンロードして、すぐに使うことができます。米国のスーパーマーケットの 10 万点の商品からトマトの病気の分類まで、選択は皆さん次第です。





Firebase AutoML Vision Edge を利用できるだけでなく、TensorFlow Model Maker(イメージ分類 / テキスト分類)を使えば、Python で数行書くだけで独自のモデルを構築することもできます。TensorFlow Hub か Model Maker で TensorFlow Lite モデルを取得したら、ML Kit の画像のラベル付けや物体検知および物体トラッキングを使って Android アプリに簡単に組み込むことができます。オープンソースのソリューションを使いたい方は、Android Studio 4.1 ベータ版に含まれている ML モデル バインディングを利用すると、使いやすい Kotlin / Java ラッパーで TensorFlow Lite モデルをラップできます。Android アプリにカスタムモデルを追加する作業は、今までになく簡単になっています。詳しくは、こちらのブログをご覧ください

今こそオンデバイス ML の時代



Android Developer Challenge の入賞者からもわかるように、今まさにオンデバイス機械学習の時代が到来しています。かつてはクラウドやスーパーコンピュータだけのものだった ML 機能が Android スマートフォンで利用できるようになりました。一歩踏み出して、11 Weeks of Android のコードラボに挑戦してみましょう。

Android オンデバイス機械学習は急速に進化を続けているプラットフォームです。機能強化リクエストや改善案のフィードバックは、ユースケースと合わせてお知らせください(TensorFlow Lite / ML Kit)。今こそオンデバイス ML の時代です。

機械学習の関連情報


#11WeeksOfAndroid 動画コンテンツの全プレイリストはこちらから、それぞれの週の詳しい内容はこちらからご覧いただけます。毎週新しい分野を取り上げますのでご期待ください。Twitter や YouTube のフォローもお願いします。ご覧いただき、ありがとうございました!


Reviewed by Khanh LeViet - Developer Advocate and  Hidenori Fujii - Google Play Developer Marketing APAC