スキップしてメイン コンテンツに移動

【勉強会】GDG DevFest Osaka 2019 の

GDG DevFest Osaka 2019
日時: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 様

  • 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アプリそのものをパッケージングできる。

コメント

このブログの人気の投稿

sendmailでの転送設定

某システムにてメールを配信する機能を開発へ依頼。 受け取った後、PHPの mb_send_mail はsendmailが無いと動かない事実を伝えられる。 うちのメールサーバはPostfixですよ。。。 Σ(|||▽||| ) 仕方が無いので、WEBサーバにsendmailを立て DMZ 内のpostfixへリレーするようする。 意外と内部のメールサーバに転送する文献がなかったので、備忘録として残すことにした。 ■sendmail-cf-8.13.8-8.el5.i386.rpmのインストール 設定ファイルをコンパイルするm4コマンドを使う為に必要。     ・モジュールの確認           # rpm -qa | grep sendmail         sendmail-8.13.8-8.el5         sendmail-cf-8.13.8-8.el5         「sendmail-cf-8.13.8-8.el5」がインストールされていなければ以下を実施     ・パッケージのインストール           # rpm -ivh sendmail-cf-8.13.8-8.el5.i386.rpm     ・再度モジュールの確認           # rpm -qa | grep sendmail         sendmail-8.13.8-8.el5         sendmail-cf-8.13.8-8.el5 ■hostsファイルの確認           ・hostnameの確認           # hostname        ...

Android端末の操作を自動化する

システムの運用保守をやってると、必ず実機確認(サービス正常性確認)というモノをやらされる訳であります。 スマホアプリ操作なんかだと、複雑なうえに素早く実施しないとイケない。 はっきり言って、アラフォー男子には限界があります。そこで 自動化 を思いつきます。 FRep - Finger Replayer が有力そうだけど、Root化しないとイケない?業務端末では無理です!! 有償で良さ気なソフトもありそうですが、まずは自力でチャレンジ。調べて見るとadbコマンドを使ってタップやスワイプのイベントを端末に送信できることがわかりました。早速、作業に取り掛かります。 2015/05/05 時点でリリースされている最新版を使って開発環境を構築します。 開発環境となるPCのOSはWindows7 Professional SP1 64bit。 作業は全て管理者権限が付与されたユーザで実施しています。 1. Android SDK をインストール ここ からAndroid SDKをダウンロードします。 サイトの下の方に「SDK Tools Only」があるので、そこから[installer_r24.2-windows.exe]をダウンロードしてインストールします。 次にシステム環境変数の中の[Path]変数を編集し、以下のパスを登録します。 "C:\android-sdk-windows\platforms" "C:\android-sdk-windows\tools"    ※"C:\"はご自身のインストール先によって異なります。 2. PCにAndroid端末を繋げる ①Android端末本体の「設定」から「アプリケーション」>「開発」>「USBデバッグ」にチェック。 ②Android端末をUSBでPCに接続。 ③コマンドプロンプトを立ち上げ、adbコマンドで端末の接続を確認。  > adb devices 以上で準備が整いました。 3. 画面キャプチャを撮って、座標を調べる 次に画面を操作する為、座標を調べます。画面キャプチャをペイント等のアプリで開いてみましょう。図の左下に座標が表示されます。ここではFace...