GDG DevFest Osaka 2019
日時:2019年12月08日 10:30~
#DevFest19 #gdgosaka #Japan #Osaka #Google
TensorFlow Lite, Edge TPU and Auto ML(Google 佐藤 様)
日時:2019年12月08日 10:30~
#DevFest19 #gdgosaka #Japan #Osaka #Google
TensorFlow Lite, Edge TPU and Auto ML(Google 佐藤 様)
- 機械学習のお話。
- なんでML?→新しいプログラミング。AIはアプリケーションの1つ。
- IoT膨大な情報。いちいちコーディングしていられない。MLは『なんとなく』を実現してくれる。新しい手段。
- とにかく情報を集め、そこからパターンを作り出すのがML。自動プログラミング。精度100%はでないが、強力(近似までもっていける)。
- 最近は小さいコンピュータにもMLが乗っている。スマホ、ラズパイ等。
- エッジ側にMLがあると
- レイテンシが少ない。
- ネットに繋がってなくても動く
- データがローカルで完結する
- 必要なデータのみを圧縮しクラウドへ
- モバイル用に『TensorFlow Lite』登場。
- Firebase ML KiTにも『TensorFlow Lite』含まれている。
- CPUクロックの向上が飽和状態、専用プロセッサに特化し始めている。
- ランタイムで専用プロセッサとの間を取り持つ
- モデルを作り、コンバーターで最適化
- Dance Like(スマホアプリ) セグメイテーション 体の部位を特定して判断
- Smart Mirror 鏡にカメラを埋め込みリアルタイムで画像を認識変換
- Edge TPU Googleが1から開発したCPU。
- Efficientnet Googleの最も早いニューラルネットワーク
- 60fpsで物体を判断検知。工場の外観検査(京セラ)で使っている
- Coral Googleのハードウェアプラットフォームで買えます。
- データサイエンティストが少ない⇒半自動化がクラウド側のAutoML
- AutoML Vision(京セラの事例:工場の製品に傷)独自の機械学習を作る。
- 高い品質のデータと機械学習の基礎知識があれば短期間で構築可能
- 数万円で始められる
- Q.アノテーションを自動でしてくれないか。
- A.傷⇒多種多様なので、キューピーではAutoインコーラーでハズレ値検知を行うモデルを使った。正常値をたくさん見せて、外れたら異常と判断。
- A.アノテーションを人手でやってくれるサービスがGoogleであります。
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話(@natsutan 夏谷様)
- AIのトレンド
- Deep Learning
- エッジAIとは、AIを処理するサーバがなく、それぞれの装置がAIを搭載
- カメラだと検知した物体のみをサーバに送る
- レイテンシ◎
- 通信量◎
- 消費電力○
- エッジAIを使う理由
- 自動運転など、応答速度が非常に重要なケース
- コストが重要なケース
- 通信環境が悪くても動く必要があるケース
- プライバシーを守りたいケース
- 世の中にAIが普及するにつれ、エッジAIの重要性も増えていく
- 業界標準フォーマット ONNIX
- ONNIXフォーマット Python、Rust対応
- 機械学習の精度を上げる技術:NAS NNアーキテクチャ探索
- AutoMLの実力
- 物体検出 6万円ぐらいで、70%の精度
- 30個ぐらい上げてから事例を増やした方がいいよ。
- 料金:モデルによって金額が異なる。
- 物体検出のネットワーク(フロー)はかなり複雑
- Qumicoの紹介
- DeepL学習結果をエッジ用にC言語変換
- Tree Stage Compiler 中間にONNIXを使ってる
- AutoMLが出力するNN例
- データエンジニアを育成
- MLの精度があがるから、サイエンティストよりデータエンジニアを沢山つくりたい。
- エッジAIの難しいところ
- JOB HUB アノテーションをやってくれる会社。クラウドワーカーを使ってる。
スポンサーセッション
- カスタメディア様 プラチナスポンサー
- SNS シェアリングエコノミーのパッケージ会社
- マッチングサービスが売り(例:お坊さんと、画家と依頼人[ピクトマ])
- クラウドファンディング[en,try 地域密着型、雪かきマッチング]
- 大手企業 設備・人材をシェアリングしたい要望
- シェアBUY HR
- InB シェアリング 大企業でのシェアリング(社員&家族)
- シェアリング、マッチングで社会に貢献
プログラミング言語 Go のススメ(@mattn様)
- Go言語の紹介
- https://go.dev
- 10周年
- Docker, kubernetes, terraform
- なぜDockerはGoなの
- スタティックコンパイル
- マルチアーキテクチャビルドなど
- Googleが開発したプログラミング言語
- Goの特徴
- コンパイル型の言語
- プロジェクト構成ファイルがいらない。
- libcに依存しないバイナリ
- go get でインストール可能
- とても決め事が多い、でもそれが良い
- シングルバイナリ
- 依存が少ない
- C言語のライブラリに頼ってない
- OpenSSLすら
- libcに依存しない
- バイナリ1つでどこでも動く
- 配布やデプロイが簡単
- マルチプラットフォーム向けのビルドができる。
- LinuxでWindows、WindowsでLinuxのバイナリが作れる
- コーヒーブレイクが難しい問題
- 静的型つけ言語
- C言語の良い部分を引き継いでいる
- 型での束縛
- 安心してソースコードを壊すことができる
- テストは安全に壊す為の方法
- GCによりメモリ管理
- C言語に似ているけどメモリ安全
- GC Stop The World 気にならないレベルに。
- マルチコアの活用
- マルチスレッドプログラミング
- 同じ処理を複数起動するのは楽
- 異なる処理をマルチにするのは難しい。
- goroutine スレッドに比べ軽量
- その他
- 問題をコードで書く文化
- 私的Go言語の使い方
- ドキュメントを書く習慣
- ベンチマークを気にする習慣
- Go言語のこれから
- エラーチェック
- ジェネリック
- Go言語は簡単で速い
- スケールする
- 配布が楽
- マスコットが可愛い
Cloud Run(Kuma Arakawa 様)
- Cloud Runの概要
- Cloud Run for Anthos
- 2つある
- マネージドとK8S + K native
- 今日はマネージドの方の話
- Cloud Run ステートレスなコンテナ化されたアプリケーションをデプロイできる。ステートレス - サーバの中に状態を持たない、DBとか他に移す。
- デプロイ するとrevisionで管理されイミュータブルにデプロイされる。イミュータブル-古いものを残して新しいアプリをデプロイ。
- Knative互換のためベンダーロックされない
- 0からスケールする
- デプロイが簡単。デプロイと同時にコンテナが起動する。
- Cloud Function/App Engine/Cloud Run/App Engine Flex/K8s/Compute Engine
- 左から右へカスタマイズ性が向上、右から左へデプロイの容易さ
- 新たなリリース
- GA(Generally Available)をリリース
- 自動スケーリング(最大インスタンスを指定可能)
- エコシステム
- circleciでもサポート
- DataDogでもCloudRunをサポート
- トラフィックをスプリットできる機能がサポート?
- カナリアデプロイができたりと、使えそう。
- できること、できないこと
- Cloud Memorystore/Filestore/Cloud Load Balancing には繋がらない
- Run→pub/subを挟んで⇒Runの非同期呼び出し
- Cloud TasksかCloud Pub/Subかの選択
- https://cloud.google.com/run/docs/comp-pub-sub?hl=ja
- App Engine Flex 使わない方がいい。
- イミュータブルにしないといけない。せざるを得ない。
- まとめ
- 小さめのサービスのコンテナを動かすもの
- 用途によるので、無理やり使わない
- 色々なマネージドサービスと組み合わせる
- 頻繁にアップデートがある。常にウォッチを。
How to distribute your web app
インストール可能なウェブアプリ(Shunya Shishido 様)
インストール可能なウェブアプリ(Shunya Shishido 様)
- PWA WEBアプリをよりNativeアプリに近い形へ指向したものを目指すデザインパターン。オフラインで読める、プッシュ通知などの機能をもつ
- 信頼性
- 高速な表示
- エンゲージメント性
- スタバアプリ Nativeアプリのようだが、React.jsで作られている
- こんな感じ
- フルスクリーン
- Web Share API
- ストレージ上限の緩和
- PWAのインストール
- ホームから起動
- タスクスイッチャー
- シェア・クリップボード etc
- 重要なのはインストール後、ユーザはネイティブアプリと同じような振る舞いを期待している
- サンタトラッカー(Santa Tracker)もPWAの事例
- Web App Manifest
- mini infobar ベストなUXではないがデフォルトで出る。これもカスタマイズ可。
- Navive App & PWA Nativeアプリがあった場合に振る舞いを変えることができる。
- Spofify PWA webのプレイヤーを作成し、SNSの繋がりを強化。
- PWA利用ユーザの30%がNativeアプリをDL
- ディスクトップPWAも増えている hulu/STADIA
- Trusted Web Activities PWAをAndroidアプリに埋め込む
- Chromeのcookieなどと共有される為、常に最新
- G Suiteから配信もできる
- Llama Pack apkを出力できるライブラリ
- Rakuten Pasha 軽量
- Lighthuouse でスコアを80点以上とらないと配信できない。
- Web Packaging コンテンツの帰属と配信の役割・責務を分ける
- 帰属先をデジタル署名して書き換えられないようにする。
- AMPキャッシュ(CDN)を使うとURLは配信先になるため、帰属者に変更することができる。
- Web Bundle WEBリソースをパッケージ(zip)してシェアできる。
- ChromeでCanaryを有効。wbnのファイルへ送る。
- Webアプリそのものをパッケージングできる。
コメント
コメントを投稿