グーグル社員による Google I/O 2019 徹底解説のメモ
開催概要
- 日時:2019.6.19
- 主催:IT Search
- URL: https://news.mynavi.jp/itsearch/seminar/294
- スピーカー:鈴木 拓生, Google, Developer Relations Team Program Manager
How to markup
- 料理やDIYのHow to検索に対応する技術
- Googleの検索結果のページに表示される情報を制御できる。主要なステップを表示するなど
- Google Assistantでの操作にも対応する制御を行える
ML Kit
- とりあえず、一般物体検知のような機械学習を使いたいユーザ向け
Google Cloud
- データは持っていて、ちゃんと機械学習を使いたい人向け
TensorFlow
- アルゴリズムを組み上げたいユーザ向け
ML Kit
- Computer Vision
- Text recognition
- Barcode scanning
- Image labeling
- Landmark detection
- Face detection
- Object Detection & Tracking(New)
- NLP
- Language identification
- Smart reply
- ML Kit On Device Translation(New)
- 通信なしでローカルで動作
- Custom
- TensorFlowで作ったモデルのModel serving
- AutoML Vision Edge(New)
- 学習データを元に自動でモデルを生成する。生成されたモデルはオフラインで実行可能
Google Cloud
- 一瞬でスライドが変わったのでメモれず
TensorFlow
- version 2.0 リリース
- TensorFlow.js
- Web上で実行可能
- ユーザが誤って個人情報をUPしようとしたら、UPする前にTensorFlow.jsで検知してアラートを上げられる
- TensorFlow Lite
Android 10 Q
- プライバシーに関する機能強化
Kotlin first
- Googleでは、SDKやサンプルアプリを提供する際に、Kotlinで実装したものを第一に提供していく
- Javaより、少ないコード行数で実装できるよ
- Google Driveなどで利用されている
CameraX(Jetpack camera support library)
android studio 3.5のRC1リリース
- Project Marble
- 新機能の開発ではなく、品質向上をする取り組みをしてきた
Google Playにおけるアプリのレーティング方法の変更
- すべてのレーティングの平均値ではなく、直近6ヶ月の値を元に算出
Android Design
- Dark Themeサポート
- ダークと言っても、色は真っ黒ではなく、ほどよい色に調整している
- 彩度も下げている
- バッテリー消費を最大60%削減
- 今後、Dark Themeにおけるサンプルを提供していく
People + AI Guidebook
- Designing human-centered AI products https://pair.withgoogle.com/
Web, Chrome
- Lazy loading
- 2G, 3Gといった通信速度が遅い環境への対応
Live Caption
- Youtubeに限らず、動画の音声からリアルタイムで文字の書き起こしをする
- オフラインのAndroidで動作。Googleにはデータが送信されない
- https://pc.watch.impress.co.jp/docs/news/1183402.html
New Devices
- Nest Hub Max
- Pixel 3a
Federated Learning
- エッジで学習して、クラウドにはモデルだけUPし、ユーザの他端末と共有
ML Fairness: Open Images Extended
- 様々な国、人種に対応するデータのバイアスを低減させるための多様なデータセット https://ai.google/tools/datasets/open-images-extended-crowdsourced/
- 概要: https://ai.google/static/documents/datasets/open-images-extended-crowdsourced.pdf
TFUG ハード部:Jetson Nano, Edge TPU & TF Lite micro 特集のメモ
以下の勉強会に参加。
以下、メモ
Getting Started with Jetson Nano
NVIDIA 橘 幸彦さん
Jetson Nanoを使い始める際に参照してもらいたいサイトを紹介しながら、 簡単に楽しくJetson Nanoを使い始めてもらうためのTipsをシェアします。
Jetson Nano
- 5-10W, 0.5 TFLOPS(FP16)
- GTC 2019で発表
- ラズパイに仕様を寄せており、ラズパイフレンドリーになっている
- ラズパイのエコシステムに入って、一緒に皆さんに使っていただきたい
- メジャーなDLフレームワークはTensorRTで最適化して実行可能
Jetson AGX XAVIER
- 10-30W, 10 TFLOPS
Jetson Nanoと類似製品に対する各種ディープラーニングでのベンチマーク
全般
- ラズパイのようにmicroSDにイメージを入れて起動可能。
- リソース使用状況はtegrastatsでモニタリング可能
JetBot
- カメラを用いたデータ収集および学習
- 衝突回避やObject Following, Road FollowingといったAI機能が実装されている
Jetson Nano Mouse(仮称)
- ラズパイマウスの後継
- ラズパイマウスについて
- https://products.rt-net.jp/micromouse/raspberry-pi-mouse
- (最初、パソコンを操作するマウスのことかと思ったのは内緒。。。)
- ラズパイマウスについて
- Robot OS(ROS)を入れて動かすネズミのマウスを模擬したデバイス
- Full HD x 8チャネルに録画された動画を流して、同時にObject Detectionを30fpsで実行可能
- 実際の推論はFull HDそのままではなく、小さくリサイズしている
- 今回のデモではResNet10の推論を実行している。モデルは8つではなく、これ1つのみ
- XAVIER は 30チャネル同時に可能で、Object Detectionに加えてClassificationが可能
スライド
Jetson Nano x TensorFlowで始めるモバイルAI画像認識
からあげさん
ユーザー目線でのJetson Nanoの紹介と、 Jetson NanoでTensorFlowを使って画像認識する方法を話します。
全般
- 簡単にインストールできるスクリプトを作ってGitHubで公開している。
- Jetson NanoはCUDAインストール済みなので、ハマらなくていい
- GoogleのObject Detection APIを利用するためのToolsを作って公開している
- SSD Lite Mobilenet v2をラズパイにデプロイしたところ、なぜか45分かかったが、 Jetson Nanoは50倍高速に起動できた
- 同モデルをJetson Nanoで使った場合に、TensorRTの使用前後で2倍の高速化できた
- 骨格検出がラズパイでは遅く実用的でなかったが、Jetson Nanoならスムーズに実行できた
スライド
AI Robot Car 最前線
株式会社GClue/FaBo 佐々木 陽さん
Donkey Car, JetBot, AWS DeepRacerなどのAI Robot Carの最新動向と、 Deep Learningの使われ方や、ハードウェアの構成や開発方法など解説します。
自動運転プラットフォーム
- AutoML
- apollo
Robot Car
DeepTesla
- NVIDIAの自動運転に関する論文
シリコンバレーではDonkeyCarが流行っているらしい
- DIY Robotcarsという自動運転ラジコンのコミュニティがある
- 駐車場にロボットカー用コースを作って走らせられる
- DoenkeyCarの教師データは人間がリモコンで操作して作れる
- 今までは推論性能がラスパイでは遅いので、人間の操作より遅かったが、 Jetson Nanoが出たことで、近い内に人間より速くなるだろう
★ここで急用が入り、泣く泣く退席。以下の発表聞きたかった。。。
Edge TPU と GCP / AutoML を組み合わせるといい話
Google Cloud 吉川 隼人さん
エッジ側のアクセラレータである Edge TPU と、クラウドの GCP は TensorFlow のエコシステムにとてもマッチしています。 ここでは Edge TPU の概要と、GCP(特に AutoML) を組み合わせることでどんなことができるのか紹介します。
(TF Lite for Microの話)Google proppyさん
LTタイム(各5分)
Google Edge TPUでTensorFlow Liteを使った時に何をやっているのかを妄想してみる
@Vengineerさん
スライド
Jetson Nano + Coral USBでつくるセルフレジシステム
田原 大輔さん
スライド
パネルティスカッション
スピーカーの皆さん、太田さん、TxRacingさん
USENIX OpML'19 登壇・参加報告会のメモ
USENIX OpML'19 登壇・参加報告会(Hadoopソースコードリーディング 第26回)
USENIX OpML全体紹介
- 参加者:210名
- 日付:2019.5.20
- 場所:サンタクララ
- 採択率は約5割。投稿62件
- Practiceの傾向が強かった
- 参加者もシステム系の人の方が多かった印象
USENIX OpML発表資料
登壇内容紹介:Low-latency Job Scheduling with Preemption for the Development of Deep Learning
薮内 秀仁 /東京大学大学院
発表資料はUSENIXのページで公開されている
- 本論文はPFNでインターンしていた時の研究内容
- 効率的なリソースマネジメントがDL開発では重要
- 最適なパラメータ探索のためにジョブを多数実行する。Try & Error(TE)
- それ以外ではパラメータ決定後に大規模データで評価するBest-Effortなジョブ(BE)
- TEとBEなジョブの混在環境において、スケジューリングするアルゴリズムを提案
- TE jobの時間をLow-latencyにするために、BE jobはサスペンドされ得ることを許容した
- System Model
- Grace Period
- サスペンドする前の停止前処理が実行される期間のこと
- Fitting Grace Period Preemption(FitGpp)
- Minimizing Re-scheduling Intervals
- Avoiding Starvation
- 1つのBE jobがサスペンドされる最大回数を設定
- Evalution
- PFNで実際に実行されていたジョブの傾向を見て、それをシミュレーションした環境で評価
登壇内容紹介:A Distributed Machine Learning for Giant Hogweed Eradication
梅森 直人 /NTTデータ
発表資料はUSENIXのページで公開されている
分散学習の話。
Giant Hogwed Eradication Project
- デンマークでのプロジェクト
- Hogweedという毒性のある植物を手作業で切り出している
- デンマーク国土:3217 km平方メートル。農耕地は62%。これをターゲットとした
- 課題:データ量:200TB
- ドローンが撮影した4K動画
- 課題:Preparation of Supervised Data
- 空撮動画から判別するのが困難
- Hogweedに詳しくない人でもラベリングできるツールを開発
- 課題:Coordinate Calculation at Pinpoint
- 空撮動画の撮影範囲が20m程度あるので、正確な位置座標がわからない
- 考察
- データ量が200TBなので、マシンは自然と複数台構成の分散構成となる
- 単一ノードとは性質が異なる
- 運用はどうする
- データ量が200TBなので、マシンは自然と複数台構成の分散構成となる
- Data Pipelines
- Distributed-ML Code
- シーケンス図を書いて、コンポーネント間のやりとりが複雑になることがわかった
- これを出発点として、やりとりが減るようにパイプラインの設計を改良した
OpML 聴講内容紹介:参加者による注目すべきセッションの紹介
Relevance Debugging and Explainable xxx
- Linkedinのシステムで、ユーザの関連情報提供サービスのデバッグ
- 関連情報を提供するアーキテクチャは階層化されており、複雑。デバッグ難しい
- デバッグの難しさ
- 複雑なインフラ
- 再現性。その時の本番データでないと再現できないことが多い
- 時間がかかる
- デバッグのための仕掛け
- MPP: Model Performance Predictor
- 機械学習をプロダクションで運用する際に、モデルの良し悪しを知りたい
- しかし、プロダクションでは正解データがない
- パフォーマンス値自体を推定しよう
- 推定時と同じ特徴量を入力として、出力は推定が正解、不正解になるという2値判定を行う
MLOp Lifecycle xxx
- Sumsungの話
- 製造した製品の不良検知に機械学習を適用
- 課題:ステークホルダーごとにニーズが異なる
- ステークホルダー
- Product inspector(品質検査官)
- Model developer(機械学習モデル開発者)
- Product manager
- Operations manager
- ステークホルダーごとにシステムアーキテクチャを分けた
Deep Learning Inference xxx
- Microsoftの話
- 早く、自由に組み替えられるアーキテクチャが必要
- Deep Learning Inference Service(DLIS)アーキテクチャ
- モデルによって必要なハードウェアが異なるので、最適配置を行う
- CNN型のニューラルネットワークモデルであればGPU
- 再帰型のニューラルネットワークモデルであればFPGA, CPU
- 数万のモデルインスタンスを用いて秒間数百万のリクエストを処理できる
- QA
- オンラインの推論処理の話
Tensorflow Extended(TFX)
- ML-metadata
- Data driven。ある処理の出力(artifact)があったら、次の処理が動く
- TFXではTask drivenでもサポートする
Katib: A Distributed General AutoML Platform on Kubernetes
気になるPythonライブラリ 2019.6.2
videoflow
Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment
AKIBA.AWS #13 ガチ編〜監視(モニタリング)のメモ
AKIBA.AWS #13 ガチ編〜監視(モニタリング) - https://classmethod.connpass.com/event/130740/
AWSと監視SaaSの動向から探る監視(モニタリング)の「現在」
資料:https://dev.classmethod.jp/cloud/aws/201905-akiba-aws-13-monitoring-s01/
ペットと家畜モデル
- ペットは丁寧に色々なメトリクスを収集
- 家畜は10ノードの全体のパフォーマンスに注目し、ノードごとの細かなメトリクスはあまり気にしない
Design for failuer: 1つ2つサーバが落ちてもサービス継続可能な設計
昔はマシン再起動に時間がかかったので、プロセスだけを再起動していたが、 今は再起動にかかる時間が少ない。コンテナなら破棄して再作成するだけ。
Apdex(アプリケーション性能指標)
- アプリケーションの応答時間やサービスの応答時間を基に ユーザー満足度を測定するための業界標準の指標
- 簡潔なサービス品質保証契約 (SLA:Service Level Agreement) ソリューション
IoT Botの監視(re:Invent 2018 DEV311)
資料紹介:運用自動化、不都合な真実(波多野)
監視 SaaS(網羅的で汎用的)
- Datadog, Mackerel, Stackdriver
Stackdriver
New Relic
- https://newrelic.co.jp/
- APMに強い
- アプリ寄りの出自。ログはこれから
sumoLogic
- https://www.sumologic.jp/
- ログ解析重点
- リアルタイムよりは分析で威力を発揮
Pingdom
- 外形監視特化
- 複数拠点からの死活監視
これまでの監視を振り返って、最近の監視で変わったことを考える
監視環境はいつでも構成変更できるようにすべき
Grafanaが可視化レイヤーを担うことで、内部のコンポーネントを変更可能になった。
- (これにより、アップグレードの単位が小さくなり、特に可視化レイヤーのアップグレードしやすくなったと思われる)
最近のトレンド
Googleトレンド検索によると、Zabbixの一強
- (これは監視SaaSは検索しなくても使えるからと思われる。Zabbixはノウハウを検索しないと使いこなせない)
最近の監視(モニタリング)は非技術者も見るようになってきている。
- (これはビジネスのKPIをダッシュボード化しているためと思われる)
「監視」でつくる「安全な自動デプロイ環境」
資料:https://www.slideshare.net/ssusere269e9/cicd-148257692
デプロイにはリスクがつきものなので監視が必要。
自動デプロイ失敗時は必ずアラートを通知すること
- CircleCIにはSlack通知機能がある
- CodePipelineでは、Lambdaなどを使って作る必要がある
デプロイするモジュールなどは事前にビルドしておきデプロイする時にしない方がエラー発生のリスクを減らせる。
Blue/Green deploymentによるデプロイリスク低減
- Blueを本番とした場合、Greenにデプロイしてリリースは切り替えるだけにする
REDメソッド
- Rate, Error, Durationに着目したアラート通知条件の設定
- レート(Rate) - 秒あたりのリクエスト数
- エラー(Errors) - リクエストの失敗数
- 時間(Duration) - リクエストの処理にかかる時間
勉強会で説明はなかったが、USEメソッドというのもある
- すべてのリソースについて、使用率(Utilization)、飽和状態(Saturation)、エラー(Errors)を確認する
- リソース(Resources):すべての物理サーバーの機能コンポーネント(CPU、ディスク、バスなど)
- 使用率(Utilization):リソースが処理中でbusyだった時間の平均
- 飽和状態(Saturation):リソースにサービスできない余分な作業がある度合い。(処理できてないものは大抵キューに入れられいる)
- エラー(Errors):エラーイベントの数
- 参考: http://febc-yamamoto.hatenablog.jp/entry/2019/02/17/152014
REDメソッドとUSEメソッドは両方一緒に使うべきらしい
複数ノードで構成されるクラスタをローリングアップグレードする際にあるノードがデプロイが失敗しても、通常の監視では気づきにくいので、デプロイの失敗は明示的にアラート通知すべき。
いまふたたびの CloudWatch Dashboards へ
2018年からCloudWatch Dashboardsのアップデートが多く発表された
- AWSのすべてのリソースがAutomatic Dashboardsで見れるようになった
- Metric Math により複数の CloudWatch メトリクスをクエリし、数式を使用して、これらのメトリクスに基づく新しい時系列を作成できるようになった
- 検索条件式が使えるようになった
Four of the Observability
- Monitoring
- Alerting/Visualization
- Distributed systems tracing infrastructure
- Log aggregation/analytics
Observabilityとは
- 複雑化するシステムの動作を追跡、把握できること
CloudWatchではグラフに注釈を追加でき、グラフ上に表示可能
- 未来の注釈も事前に追加可能
- (分析する時に便利そう)
その他
AWS Systems Manager
- 以下、引用
- AWS リソースの運用実態を把握して迅速に対応
- AWS でご利用のインフラストラクチャを可視化し、制御するためのサービスです。 Systems Manager を使用すると、統合ユーザーインターフェイスで AWS のさまざまなサービスの運用データを確認でき、AWS リソース全体に関わる運用タスクを自動化できます
- https://aws.amazon.com/jp/systems-manager/
DMM x ZOZOを支える基盤技術のメモ
DMM x ZOZOを支える基盤技術 https://dmm.connpass.com/event/129128/
参加者数:200
DMMを支えるプラットフォーム基盤の裏側
ユーザーの回遊・リテンションを最大化するサイクルとは? 石垣 雅人, DMM.com, @i35_267
資料:https://speakerdeck.com/i35_267/dmmwozhi-erupuratutohuomuji-pan-falseli-ce
複数サービスを支えるアカウント管理、決済といった共通機能を基盤として提供。
ユーザに複数サービスを回遊してもらいたい。
送客のリコメンド技術で数%向上しただけでも、売り上げに大きく貢献できる。
ZOZOSUITEによる計測システムの裏側と今後の展開について
初代ZOZOSUITE計測システムの構成
- プライベートブランドを世界展開したかったので、 AWSバージニアリージョンにシステムを構築した。 日本からはレイテンシが高いが、全体を考慮した上で決定した
問題1:Lambdaのコールドスタート問題
問題2:GDPR
問題3:商品サイズ管理の組合せが柔軟がゆえに膨大になる
- 商品の仕様変更もあるので、スキーマレスのDynamoDBで管理
レコメンド/検索の大規模展開に関する課題と解決策
藤井 亮太, DMM.com, @r_megane
レコメンドの種類は167種類
ABテスト用ダッシュボードを作成。
- 1本/月だったのが、5本/2週間に高速化
課題
- Solrのver 4を8にアップグレード
- しかし、多くのサービスにSolrが利用されているため、無停止アップグレードが困難
- 検索ライブラリからSearchAPI→Solrにして検索リクエストをSearchAPIに集約
- 巨大なプログラムファイルがあり、リファクタリングが困難。。。
- ログベーステストを実施
ZOZOTOWN HTTPS化におけるSREチームのアプローチ
Forward Secrecy(ECDHE)
- クライアントとサーバ間で使い捨ての共通鍵を利用してセキュリティ向上
SSL Labs
過去のシステム構成
- LBがHTTPSの複合処理を担当
- FW兼LBの役割が多く、アクセス増の場合に負荷が懸念されていた
- 使っている機器でECDHEに変更するとカタログスペックよりも、大幅に低い性能が出てしまう問題があった
変更後のシステム構成
アクセス数、WAFの検知率など実際の運用負荷に近い状態を 1/Nの規模で再現して負荷テストを実施
DMMの不正対策システムと運用サイクル
寺西 一平, DMM.com
本日の不正の対象
- アカウント乗っ取り、
- 不正種別の割合として、アカウントの乗っ取りが70%
- 対策することで、乗っ取りを50%以上防止できた
対策の施行1
- 過去の購入時と、その時のIPアドレス、ブラウザ情報に変化があったら 不正と判断したが、正当判定率が2%と全然ダメだった
- なぜ?
対策の施行2
- 確実に本人の購入である操作を検出
- 不正ユーザの特徴を含む購買の検出
- 日本語のページに台湾からロシア語でアクセス
- 正当安定率13%まで改善
しかし、対策を行うと不正ユーザも対策を行うので、いたちごっこになる
- 不正ユーザ検出パターンを追加する体制を整え、毎週追加/削除を実施
- 昨年11月から360パターンが追加された
伝えたいこと
- 不正被害の継続的モニタリング
- 不正の分類をすべき。乗っ取り、クレカ不正利用など
- 横連携が大事
- 守りが一番薄いところが狙われるので、システム、サービス全体で連携することが必要
- 1社では難しいことがあるので、会社横断で連携したい
ZOZOTOWN Azure SQL Database 節約術
宣伝:コーデ相談をリリース
- Amazon Alexaを使ってコーディネートをAIに相談できる
オンプレでDBをセールの時だけスケールアップさせるのがツライ
- 参照系DBをAzureに移行。しかし、費用が高い。。。
コスト低減の施策
- SQL Database オートスケール
- アクセス負荷が時間帯によって変わるので、それに応じてインスタンスタイプを変更
- これをAzure Automationで自動化
- ただし、スケール変更に30分以上かかる
- スケール変更時に10秒程度の切断がある
- スケールダウン時に必要なデータがメモリに乗らなくなる可能性がある
- SQL Database Read scale-out
- いわゆる、DBのマスタスレーブ構成
- Secondary Read Replicaのメトリクス取得が困難で、工夫が必要
上記課題に対してカスタムメトリクスを収集できるようにして、Datadogを利用
k8sのCronJobで定期ジョブスケジューラでメトリクス収集を実行
- メリット
- 実行用コンテナが毎回、作成・破棄されるので、実行環境にゴミがたまらない
- 環境設定の変更が容易なため、1種類のジョブを複数の環境に対して実行しやすい
- Nodeの空きスペースを考慮して実行してくれるため、リソース不足になりにくい
Datadog
- アラートをSlackに通知
- 高アラートはPagerDutyでオンコール
メトリクス収集を行っているk8sシステムの監視はDatadogで行っている
- Datadogにはk8s integrationがある
上記の施策の結果、当初から70%のコスト削減を実現
気になるPythonライブラリ 2019.5.17
Python weeklyからの抜粋
Interesting Projects, Tools and Libraries
openpilot
openpilot is an open source driving agent. Currently, it performs the functions of Adaptive Cruise Control (ACC) and Lane Keeping Assist System (LKAS) for selected Honda, Toyota, Acura, Lexus, Chevrolet, Hyundai, Kia. It's about on par with Tesla Autopilot and GM Super Cruise, and better than all other manufacturers.
GitHub - commaai/openpilot: open source driving agent
pysot
SenseTime Research platform for single object tracking research, implementing algorithms like SiamRPN and SiamMask.
stumpy
stumpy is a powerful and scalable Python library that can be used for a variety of time series data mining tasks
creme
Online machine learning in Python
GitHub - creme-ml/creme: Online machine learning in Python
koalas
GitHub - databricks/koalas: Koalas: pandas API on Apache Spark
conveiro
Visualization of filters in convolutional neural networks.
GitHub - Showmax/conveiro: Visualization of filters in convolutional neural networks