SlideShare a Scribd company logo
1 of 54
ピクセラIoTプラットフォーム
株式会社ピクセラ
製品事業本部
ソフトウェア開発部門
先端技術開発部
© 2017 PIXELA CORPORATION|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
2019年4月27日
アジェンダ
1. 株式会社ピクセラとは
2. スマートスピーカー連携サービス
3. ユーザーID管理サービス
4. テレビデータ解析サービス
5. オススメ番組サービス
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
2
株式会社ピクセラとは
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
3
株式会社ピクセラとは
事業内容
ホームAV事業、家電事業
これまで創業時から取り組んで来た画像・音声の
コ ー デ ッ ク 技 術 、 画 像 処 理 技 術 を 活 か し 、 Mac /
Windows対応テレビキャプチャーボードやテレビチュー
ナーをワンストップで開発してきました。
そして時代の変化に合わせ、現在はスマホ・タブレット用
テレビチューナーや4K放送対応機器、IoTホームサービス、
VR視聴アプリなどを開発しています。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
4
ピクセラの開発戦略
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
5
新商品の特徴とラインナップ
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
6
PIXELA 4Kテレビはここが違う!
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
7
リアルタイム視聴表示(時系列ポイント)
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
8
リアルタイムで数値が変動する
(但し「全国ランキング」は再ロード必要)
(当然ですが)夜中は少ない
飛び出ているのは大河ドラマと思う
参照したタイミングの視聴者数ランキング
(番組別)
放送別の過去の視聴者数の推移
(この場合はNHK総合・東京)
ピクセラのIoTプラットフォームはマイクロソフトのクラウドプラットフォーム
「Microsoft Azure」をベースに開発しています。
ユーザーID管理サービス
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
9
Azure Active Directory B2Cを選んだ理由
○ ピクセラの各種サービスで共通のID管理を作りたい
○ 残念ながら今までに運用していたID管理は使い回しがしづらく、サービスごとに運用が分
かれていた。
○ 他社クラウドサービスとも紐づけできるID管理にしたい
○ 後で説明する連携サービスに使える
○ ID管理を最速で構築したい
○ 外部 ID Provider(Google, Twitter, Facebook, …)も楽に連携させたい
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
10
Azure Active Directory B2C (AAD B2C)
○ AAD B2C
https://azure.microsoft.com/ja-jp/services/active-directory-b2c/
作り方、セットアップ説明は今回省きます
○ 名前の通りB2C向けなID管理サービス
○ Azure Active Directory(Azure AD)上の追加サービスのような形
○ OpenID Connect サポート
○ WeiboやWeChatもプレビューながらIDPとして対応済み
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
11
1.ユーザーフロー(ポリシーのこと)を用意する
○ サインアップ、サインイン、パスワードリセット、プロファイル編集画面
ごとに入力欄を設定できる
○ 姓、名、メールアドレス、市町村名、・・・
○ Webページ断片を用意しておくことでデザインも変更可能
2.ユーザーフローへ飛ぶアクセス元を定義する
○ 対象サービスにアクセスした後、AAD B2Cにリダイレクト
3.アクセストークン等を取得し処理する
○ トークンをAAD B2Cに問い合わせて取得、連携サービスの認証に使う
⇒ 1,2,3を設定すれば簡単に使えちゃう。
AAD B2C もう少し解説
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
12
同じID管理サービスだけど、UIとURLを変えることが可能。
AAD B2C 気になるところ・その1
1. Sign-inのみのポリシーでは、デザイン適用してくれない
(2018初頭までの話で、現在は未確認)
○ ポータルサイトでActive Directoryの「会社のブランド」ブレードに記載している「背景」
「ロゴ」「少しの解説テキスト」は出てくるが、個々のポリシーに紐づけたBlob上のhtml読ん
でくれない
○ 他のポリシーだと、デザイン適用が行われる
2. ユーザーに追加入力してもらう項目の型が、String/Boolean/Intしか受け付けない
○ 男性/女性/その他/無回答 など、選択肢提示したくても無理。融通利かない。
○ 郵便番号、地域、国などビルトイン項目がたくさんある。が、単なるString扱いがほとんど。
3. ポリシーの入力欄が英語のみ(開発当時)
○ プレビュー版だったこともあるので、当然か(現リリース版は主要言語対応済み)
○ 日本人向けのサービスに使いたいので、これでは使ってもらえない。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
13
AAD B2C 気になるところ・その2
1. (AAD B2Cではない)Azure Active Directory(Azure AD)でも、WebAppとの連携項目やアクセストークン、リ
フレッシュトークンを取得できる機構があって、違いがはっきりとわかっていなかった
2. 導入作業始めたころは、AAD B2Cがまだプレビュー状態
○ 実装追加・修正が時々あった
3. ポータルサイト自体も旧版から現在版へ移行中だった
○ 旧版でのみ出来ていた作業、新版でしか見えない、旧版から新版に移ったもの、など色々変化の最中だった
⇒ 思えばこのプレビュー版・ポータルの刻々な変化についていっていなかった事が、のちの騒動につながる
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
14
ユーザー情報の入力・カスタム
○ ポリシー内の「ユーザーの追加入力項目が、String/Boolean/Intしか受け付けな
い」という縛りが、やはり使いにくい
○ 他プロジェクトへ展開する障害になりそう
○ 自前で情報管理もしたい
○ 「入力」自体が面倒なソリューション(リモコン操作)もあるため、選択項目にしたい
⇒ 一度AAD B2C登録処理後、別途用意した連携Webサービスにリダイレクトさせた。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
15
Alexaスキルと連携
○ ID管理できるようになったので、OpenID Connect使うソリューションに適用したくなった。
○ あとで出てくるAlexaスキルと呼ばれるAmazonサービスについて、 OpenID Connect を利
用できるAAD B2Cのユーザー認証と連携を試みた。
○ 設定していくと、うまく動かすことが出来たので、そのまま作業進めていった
○ 一部、動作はしているけど設定方法はこれでいいのか怪しい部分はあった
○ Microsoft 様には一応問い合わせしつつ、Alexaとの連携が完成。βサービス的に開始!
前提として、AlexaスキルとOpen ID Connectとの連携を行う場合、Alexaスキル側へのリダイ
レクト先を3ドメイン分設定できる必要がある。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
16
構成(認証部分ピックアップ)
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
17
Alexa
Amazon Echo
AWS Lambda
連携サービス
外部IDP
⑦Token付アクセス
AD内IDPの場合
①サインイン / ⑤Token取得
④Redirect / ⑥Token
連携デバイス
②
③
⑧
Alexaスキルが使えなくなった!?
○ 数週間後、突然Alexaとの連動ができなくなった
○ 設定し直すと一瞬繋がるが、時間が経つとまた連動失敗する
○ Ops体制が整えていなかったこともあり、問題解決までかなりの時間を費やす
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
18
原因(開発当初)
1. AAD B2C設定開始時、B2Cアプリに対するリダイレクトURLが3種類設定できていた
2. AAD B2Cではポリシー設定できるが、Azure ADはMicrosoftサインイン画面程度しか提供で
きない
3. Azure AD側のアプリIDと、AAD B2C側アプリIDのどちらも、AAD B2C認証用に使えた
(本来これは不具合だと思われる。仕様の隙をついていただけの可能性)
○ AD理解度不足にもかかわらず連携できてしまったため、内容精査せず進めてしまった
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
19
カスタムポリシー画面
でのユーザー登録
アプリIDの使い回し ドメイン指定3種
Azure AD NG ?(未調査) OK
AAD B2C OK OK OK
原因(問題発生時)
1. AAD B2CのB2Cアプリに対し、リダイレクトURLは外部ドメインは1つに制限される
(現在も原則、外部ドメインは1つのみ)
2. アプリIDの使い回しが(正しく)分けられた(推測)
3. サインイン時のclient_secret設定が、ヘッダーに書いていると認証通らなくなった
⇒ プレビュー版であったAAD B2Cの開発が進むにつれて、挙動や設定が変わっていた
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
20
カスタムポリシー画面
でのユーザー登録
アプリIDの使い回し ドメイン指定3種
Azure AD NG ?(未調査) OK
AAD B2C OK NG NG
解決
1,2,3を実施することで解決した。
1. AAD B2CのB2Cアプリに対し、リダイレクトURLを複数指定できるよう、Microsoft様に緩和して
もらった。
2. トークン取得までの呼び出しについて、URLへのオプション指定、bodyのフォーマットを AAD
B2C最新版に対応した。
3. 通常のポータル設定では、現在も1ドメインのみ制限されているため、Active Directory 設定の
JSONを直接編集して書きこむ、という技をMicrosoft様から教えてもらった。
→ Microsoft Graph エクスプローラー
⇒ ようやく連携が復旧できた。
※ポータル上はドメイン多すぎる、という警告が表示されています
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
21
カスタムポリシー画面で
のユーザー登録
ドメイン指定3種
Azure AD NG OK
AAD B2C OK OK(MS Graph)
振り返ってみて
○ AAD B2Cの日本語向け人柱になっていたのかもしれない。
○ 後に出てくる各種サービスで使われています。
○ プレビュー版はあくまでプレビュー版として対峙しましょう。
○ 現象論的にOKだから本番環境へGOは男前過ぎる。
○ ポリシー部分含め、さらにブラッシュアップされているようなので、今後もウォッ
チが必要です。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
22
参考
紹介したAlexaスキルとの連携時の顛末について、もう少し詳しい内容や対応内容をま
とめています。
https://blog.pixela.co.jp/
○ alexaスキルとazure認証の連携・前編
○ alexaスキルとazure認証の連携・後編
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
23
スマートスピーカー連携サービス
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
24
スマートスピーカー連携サービスとは
○ 流行りのスマートスピーカー(Google Home, Amazon Echo)を使って、声でテレビ
を操作できるようにする。
○ Xitアプリの起動 / 終了
○ チャンネルアップ / チャンネルダウン
○ 放送局名を指定したチャンネル切り替え
○ リモコン番号を指定したチャンネル切り替え
○ ボリュームアップ / ボリュームダウン
○ ミュート / ミュート解除
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
25
構成
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
26
ウェブAPI
IoT HubActions on Google
Google Home テレビ
Dialogflow
Webhook
構成
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
27
Alexa
Amazon Echo
AWS Lambda
ウェブAPI
IoT Hub
テレビ
成果物
○ スマートスピーカー対応商品一覧
http://www.pixela.co.jp/products/voice_if/
○ Google Assistant「ピクセラテレビ」
https://assistant.google.com/services/a/uid/00000062cacd59ee
○ Amazon Alexaスキル「ピクセラテレビ」
https://www.amazon.co.jp/dp/B07HXWX3WH
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
28
Amazon Alexaスマートホームスキル日本語対応と同時公開!
苦労したところ
○ スキルの仕様で指定時間以内に応答しないとタイムアウトになる。
○ Actions on Google: 5秒、Alexa Skill: 7秒
○ アプリケーションとハードウェアの処理で時間が掛かるので、コマンド実行完
了まで待つとタイムアウトする場合があった。
○ 暫定的にアプリケーションへのコマンド送信完了まで待つことにした。
実行結果までは見ていないので、選局できないチャンネルも成功としている。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
29
苦労したところ
○ ユーザー管理サービス(ピクセラパスポート)のサインアップ問題。
○ 知名度に乏しいピクセラパスポートIDでサインアップしてもらえない。
○ AD B2CだとidPを追加できるので、Android TVで使うGoogle idPを追加した。
○ テレビ・リモコンだとメールアドレス、パスワードの入力が難しい。
○ OAuth2.0 Device Flow的なものを独自に実装した。
○ テレビではQRコードを表示して別のデバイスでサインアップを行う。
○ AAD B2Cで対応してほしい。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
30
苦労したところ
○ 音声入力がコマンドにマッチしない。
○ Speech to Textで誤変換している(Actions on Google / Amazon Alexa)
○「4K」=>「4系」、「8K」=>「8系」
○エンティティに追加していくしかない。
○ コマンドフレーズに無いものをユーザーが音声入力する(Actions on Google)
○フレーズに「バイバイ」を登録したが、「さよなら」「もういい」などの
未登録のフレーズが音声入力される。
○会話ログからテキストを拾い上げて学習用フレーズに追加していく。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
31
テレビデータ解析サービス
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
32
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
33
テレビデータ解析サービスとは
○ ユーザーの許諾のもと、テレビアプリケーションで視聴データを収集するサービス。
○ ライブ視聴、録画再生
○ 録画予約
○ 収集した操作履歴を解析する。
○ ライブ視聴人数
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
33
理由
○ Azure Cognitive ServicesやMachine Learningを利用して何かをやってみたいが、
社内で利用できるデータが無い。
○ これまで様々なプラットフォームでテレビアプリケーションをリリースしてきたが、
データを収集してこなかった。もったいない。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
34
構成
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
35Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
35
Event Hubs API APP
Redis Cache
視聴・予約ログ
テレビアプリケーション
Worker Role BLOB
成果物
○ ウェブアプリケーション
○ 全国:https://pixela.tv/
○ 東京:https://pixela.tv/rank-live/23/
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
36
みんなのKEIBAを解析
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
37
春のマイル王決定戦「安田記念・GI」
今週も神騎乗!?ルメール4週連続GI制覇へイスラボニータとコンビ▽GI馬2頭来日の香港勢も超強力!
15:42 レース発走 ~ 15:43 ゴール
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
38
レース発走前から視聴者数が増加して、
ゴールでピークに達する。
15:44 レース終了 ~ 15:51 ハイライト
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
39
レース終了後から視聴者数が減少して、
ハイライトでまた増加する。
よかったところ
○ 作ってみた方が早い。
○ 従量課金なのでテスト版のサービスコストは小さい。
○ 良ければそのまま導入、悪ければサービス停止すればいい。
○ テスト版のサービスがそのまま製品化された(ラピッドプロトタイプ開発)。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
40
苦労したところ
○ ログがバラバラ。
○ ログ仕様を決めたけど守られなかった。
○ 想定外のログ(和暦の日時)がサーバーに投げられてシステム全停止した。
○ 最初の頃はサーバーに接続するテレビ製品が増える毎に問題が発生した。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
41
苦労したところ
○ 使用した分だけ課金が発生する。
○ ユーザー数の急激な増加で想定以上の課金が発生する。
○ユーザー数とサービス利用量の見積もりが大事。
○ テスト版で適当に作成したところで無駄な課金が発生している。
○ 製品化された現在はサービスは止めずにコストを削減していく。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
42
オススメ番組サービス
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
43
オススメ番組サービスとは
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
44
ユーザーの録画予約情報の利用
ユーザーと録画予約(アイテム) から、ユーザーにオススメを提供する。
協調フィルタリング型のNeural Collaborative Filtering (NCF)を採用した。
https://www.comp.nus.edu.sg/~xiangnan/papers/ncf.pdf
○ NCFを簡単に言うと
○ ユーザー、アイテムをベクトルで表現する。
○ ユーザーとアイテムを結びつけるフィルタリングを行う。
○ 従来の内積表現による予測を発展させたもの。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
45
Neural Collaborative Filtering (NCF) とは
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
46
NCFは線形性を持つGMFと非線形性を持つMLPの組み合わせから構成されている。
・Generalized Matrix Factorization(オレンジ色)
⇒ 前ページの内積を発展させたもの
・Multi-Layer Perceptron(赤色)
⇒ Neural Network
NCFの3層目から
GMFとMLPが混ざる
TensorFlow の NCF Model コード例
user_input = tf.keras.layers.Input(tensor=users)
item_input = tf.keras.layers.Input(tensor=items)
# Embedding layers of GMF and MLP
mf_embedding_user = tf.keras.layers.Embedding(…), mf_embedding_item = tf.keras.layers.Embedding(…)
mlp_embedding_user = tf.keras.layers.Embedding(…), mlp_embedding_item = tf.keras.layers.Embedding(…)
# GMF part
mf_user_latent = mf_embedding_user(user_input), mf_item_latent = mf_embedding_item(item_input) , mf_vector = tf.keras.layers.multiply(…)
# MLP part
mlp_user_latent = mlp_embedding_user(user_input), mlp_item_latent = mlp_embedding_item(item_input) , mlp_vector = tf.keras.layers.concatenate(…)
for layer in xrange(1, num_layer):
model_layer = tf.keras.layers.Dense(…)
mlp_vector = model_layer(mlp_vector)
# Concatenate GMF and MLP parts
predict_vector = tf.keras.layers.concatenate([mf_vector, mlp_vector])
# Final prediction layer
logits = tf.keras.layers.Dense(…)
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
47
協調フィルタリング処理場所
Azure Kubernetes Service (AKS)
○ セキュリティ強化&すばやいデプロイが可能な Kubernetes サービスを利用できるが
○ GPU-Instance は維持コスト高い
なので、今回は一定時間毎のバッチ処理のため、Azure Batchを採用した。
○ 低優先度インスタンスプラン
○ 通常の専有プランより大幅off!!
注意点として、“割り当てられない場合や割り込みが発生する場合があります”
→ 今回の処理は、数回程度の処理スキップは許容できるため、
このプランが最適だった。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
48
Azure Batch ship-yard
Azure Batch 生で設定がめんどくさい … そこで Azure Batch ship-yard
やってくれること
○ VM-Instance プール作成
○ VM-Instance 種類指定起動
○ OS
○ インスタンス種類
○ VM-Instance への
○ Azure Blob マウント
○ 注 BlobとInstanceのリージョンを合わせないと、パフォーマンス低
○ ACR から Docker-Image Pull
○ バッチ指示
○ スクリプトキックコマンド
○ バッチ期間
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
49
Azure Batch ship-yard の例
batch_shipyard:
storage_account_settings: BLOBの場所
global_resources:
additional_registries:
docker:
- ACRの場所
docker_images:
- ACR Dockerイメージ
volumes:
shared_data_volumes:
azureblob_vol:
volume_driver: azureblob
storage_account_settings: BLOBアカウント設定名
azure_blob_container_name: script
container_path: コンテナのマウント
mount_options:
- --use-https=true
bind_options: rw
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
50
config.yaml
あとはcredentials.yamlに認証情報記述
pool_specification:
id: ID名
vm_configuration:
platform_image:
offer: UbuntuServer
publisher: Canonical
sku: 16.04-LTS
vm_count:
dedicated: 0
low_priority: 1 (低優先度)
vm_size: STANDARD_NC6 (GPUタイプ)
pool.yaml
job_specifications:
- id: ID名
…
recurrence:
schedule:
…
job_manager:
…
tasks:
- docker_image: ACR Dockerイメージ場所
command: スクリプトコマンド (*)
次のようなパスになった
/mnt/batch/tasks/mounts ¥
/azblob-(BLOBの場所)-(BLOBディレクトリ)/スクリプト&引数
jobs.yaml
構成
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
51
実装&
Docker作成
ACR
ユーザー&
録画予約情報
RestAPI
西日本リージョン
米国東部リージョン(GPUインスタンスのため)
Batch
Batch Shipyard
Blob
GPU Instance
ピクセラ本社
イメージプッシュ
イメージ
マウント
オススメ結果ユーザー
よかったところ
○ AIのローカル実装の最初期からDocker上で作業した。ディレクトリ配置もAzure
Blobに載せることを意識したことによって、移植がスムーズだった。
○ Dockerイメージは環境のみで、ソースコードはコンテナに入れない。
○ ローカルではvolume指定した場所にコードを配置。
○ Azureではマウント指定場所(Blob)にコードを配置。
⇒ コードの変更が楽
⇒ ローカルvolumeとblobマウント場所を合わせ、移植しやすくしておいた。
○ Azure Batch ship-yardを利用できて、プロビジョニングが楽だった。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
52
苦労した/手間取ったところ
○ GPUインスタンスを西日本で立ち上げたかった。
○ 処理結果を米国から西日本に持ってくるのが一手間。
○ Azure Batch ship-yard の情報がほとんどなかった。
○ 特にインスタンスへのBlobのマウント設定の記述とか。
○ AIバッチ処理は、最初はAzure Batch AI上で実装していた。実装完了の翌日にサー
ビス終了が宣言されたせいで、 Batchに実装移植をしなくてはならなくなったのは
いい思い出。
○ AI周りの実装がPython3, Rest API の実装がC#だったので言語間の違いに苦労した。
Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL.
53
Global Azure Boot Camp 2019

More Related Content

Similar to Global Azure Boot Camp 2019

Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Tomoaki Sawada
 
plusbenlly meetup introduction
plusbenlly meetup introductionplusbenlly meetup introduction
plusbenlly meetup introductionKohji Fujishima
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Insight Technology, Inc.
 
インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408Tomoaki Sawada
 
Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601Shotaro Suzuki
 
Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601YorikoYokoyama
 
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスたかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスOsaka University
 
39 works:ドコモにおける オープンイノベーションプログラムの紹介
 39 works:ドコモにおける オープンイノベーションプログラムの紹介 39 works:ドコモにおける オープンイノベーションプログラムの紹介
39 works:ドコモにおける オープンイノベーションプログラムの紹介Osaka University
 
クラウド型グループウェアの選び方 3つのポイント
クラウド型グループウェアの選び方 3つのポイントクラウド型グループウェアの選び方 3つのポイント
クラウド型グループウェアの選び方 3つのポイントCybozucommunity
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話和也 大木
 
○○ as Code(LL Diver)
○○ as Code(LL Diver)○○ as Code(LL Diver)
○○ as Code(LL Diver)Yoshiyuki Takano
 
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例Amazon Web Services Japan
 
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用Daiyu Hatakeyama
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るShumpei Shiraishi
 
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213小川 雄太郎
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 

Similar to Global Azure Boot Camp 2019 (20)

Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319Intalio会社概要とbpmsの特長20100319
Intalio会社概要とbpmsの特長20100319
 
plusbenlly meetup introduction
plusbenlly meetup introductionplusbenlly meetup introduction
plusbenlly meetup introduction
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408インタリオカンファレンス案内(修正版6)092408
インタリオカンファレンス案内(修正版6)092408
 
これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門
 
Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601
 
Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601Decode19 cd42 fixer_public_0601
Decode19 cd42 fixer_public_0601
 
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンスたかがAPI,されどAPI、シナジーで広がるビジネスチャンス
たかがAPI,されどAPI、シナジーで広がるビジネスチャンス
 
39 works:ドコモにおける オープンイノベーションプログラムの紹介
 39 works:ドコモにおける オープンイノベーションプログラムの紹介 39 works:ドコモにおける オープンイノベーションプログラムの紹介
39 works:ドコモにおける オープンイノベーションプログラムの紹介
 
Bluetooth meshの基礎
Bluetooth meshの基礎Bluetooth meshの基礎
Bluetooth meshの基礎
 
クラウド型グループウェアの選び方 3つのポイント
クラウド型グループウェアの選び方 3つのポイントクラウド型グループウェアの選び方 3つのポイント
クラウド型グループウェアの選び方 3つのポイント
 
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
自前でcloud foundryを構築してgooのビッグサービスをカットオーバーした話
 
IP接続性の向上
IP接続性の向上IP接続性の向上
IP接続性の向上
 
○○ as Code(LL Diver)
○○ as Code(LL Diver)○○ as Code(LL Diver)
○○ as Code(LL Diver)
 
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例
[よくわかるクラウドデータベース] Amazon RDS for SQL Server導入事例
 
Aws summit tokyo 2016
Aws summit tokyo 2016Aws summit tokyo 2016
Aws summit tokyo 2016
 
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
AI for Media 2018 Update セミナー: 株式会社ユニゾンシステム: スピーチ AI を活用した文字起こしプラットホームの活用
 
WebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探るWebRTCがビデオ会議市場に与えるインパクトを探る
WebRTCがビデオ会議市場に与えるインパクトを探る
 
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 

More from PIXELAcorporation

More from PIXELAcorporation (11)

Introduction to Functional Programming
Introduction to Functional ProgrammingIntroduction to Functional Programming
Introduction to Functional Programming
 
Introduction to conccrent_lock
Introduction to conccrent_lockIntroduction to conccrent_lock
Introduction to conccrent_lock
 
20190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_201920190620 aws summit_tokyo_2019
20190620 aws summit_tokyo_2019
 
Study ocf over_bluetooth_mesh
Study ocf over_bluetooth_meshStudy ocf over_bluetooth_mesh
Study ocf over_bluetooth_mesh
 
What is ocf ?
What is ocf ?What is ocf ?
What is ocf ?
 
エッジAI入門
エッジAI入門エッジAI入門
エッジAI入門
 
PIXELA passport ID
PIXELA passport IDPIXELA passport ID
PIXELA passport ID
 
4K SmartTV Works with Alexa
4K SmartTV Works with Alexa4K SmartTV Works with Alexa
4K SmartTV Works with Alexa
 
20181228 ncf to_azure_batch
20181228 ncf to_azure_batch20181228 ncf to_azure_batch
20181228 ncf to_azure_batch
 
Face seek ai edge
Face seek ai edgeFace seek ai edge
Face seek ai edge
 
TVCM視聴分析
TVCM視聴分析TVCM視聴分析
TVCM視聴分析
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Global Azure Boot Camp 2019

  • 2. アジェンダ 1. 株式会社ピクセラとは 2. スマートスピーカー連携サービス 3. ユーザーID管理サービス 4. テレビデータ解析サービス 5. オススメ番組サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2
  • 3. 株式会社ピクセラとは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 3
  • 4. 株式会社ピクセラとは 事業内容 ホームAV事業、家電事業 これまで創業時から取り組んで来た画像・音声の コ ー デ ッ ク 技 術 、 画 像 処 理 技 術 を 活 か し 、 Mac / Windows対応テレビキャプチャーボードやテレビチュー ナーをワンストップで開発してきました。 そして時代の変化に合わせ、現在はスマホ・タブレット用 テレビチューナーや4K放送対応機器、IoTホームサービス、 VR視聴アプリなどを開発しています。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 4
  • 5. ピクセラの開発戦略 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 5
  • 6. 新商品の特徴とラインナップ Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 6
  • 7. PIXELA 4Kテレビはここが違う! Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 7
  • 8. リアルタイム視聴表示(時系列ポイント) Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 8 リアルタイムで数値が変動する (但し「全国ランキング」は再ロード必要) (当然ですが)夜中は少ない 飛び出ているのは大河ドラマと思う 参照したタイミングの視聴者数ランキング (番組別) 放送別の過去の視聴者数の推移 (この場合はNHK総合・東京) ピクセラのIoTプラットフォームはマイクロソフトのクラウドプラットフォーム 「Microsoft Azure」をベースに開発しています。
  • 9. ユーザーID管理サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 9
  • 10. Azure Active Directory B2Cを選んだ理由 ○ ピクセラの各種サービスで共通のID管理を作りたい ○ 残念ながら今までに運用していたID管理は使い回しがしづらく、サービスごとに運用が分 かれていた。 ○ 他社クラウドサービスとも紐づけできるID管理にしたい ○ 後で説明する連携サービスに使える ○ ID管理を最速で構築したい ○ 外部 ID Provider(Google, Twitter, Facebook, …)も楽に連携させたい Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 10
  • 11. Azure Active Directory B2C (AAD B2C) ○ AAD B2C https://azure.microsoft.com/ja-jp/services/active-directory-b2c/ 作り方、セットアップ説明は今回省きます ○ 名前の通りB2C向けなID管理サービス ○ Azure Active Directory(Azure AD)上の追加サービスのような形 ○ OpenID Connect サポート ○ WeiboやWeChatもプレビューながらIDPとして対応済み Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 11
  • 12. 1.ユーザーフロー(ポリシーのこと)を用意する ○ サインアップ、サインイン、パスワードリセット、プロファイル編集画面 ごとに入力欄を設定できる ○ 姓、名、メールアドレス、市町村名、・・・ ○ Webページ断片を用意しておくことでデザインも変更可能 2.ユーザーフローへ飛ぶアクセス元を定義する ○ 対象サービスにアクセスした後、AAD B2Cにリダイレクト 3.アクセストークン等を取得し処理する ○ トークンをAAD B2Cに問い合わせて取得、連携サービスの認証に使う ⇒ 1,2,3を設定すれば簡単に使えちゃう。 AAD B2C もう少し解説 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 12 同じID管理サービスだけど、UIとURLを変えることが可能。
  • 13. AAD B2C 気になるところ・その1 1. Sign-inのみのポリシーでは、デザイン適用してくれない (2018初頭までの話で、現在は未確認) ○ ポータルサイトでActive Directoryの「会社のブランド」ブレードに記載している「背景」 「ロゴ」「少しの解説テキスト」は出てくるが、個々のポリシーに紐づけたBlob上のhtml読ん でくれない ○ 他のポリシーだと、デザイン適用が行われる 2. ユーザーに追加入力してもらう項目の型が、String/Boolean/Intしか受け付けない ○ 男性/女性/その他/無回答 など、選択肢提示したくても無理。融通利かない。 ○ 郵便番号、地域、国などビルトイン項目がたくさんある。が、単なるString扱いがほとんど。 3. ポリシーの入力欄が英語のみ(開発当時) ○ プレビュー版だったこともあるので、当然か(現リリース版は主要言語対応済み) ○ 日本人向けのサービスに使いたいので、これでは使ってもらえない。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 13
  • 14. AAD B2C 気になるところ・その2 1. (AAD B2Cではない)Azure Active Directory(Azure AD)でも、WebAppとの連携項目やアクセストークン、リ フレッシュトークンを取得できる機構があって、違いがはっきりとわかっていなかった 2. 導入作業始めたころは、AAD B2Cがまだプレビュー状態 ○ 実装追加・修正が時々あった 3. ポータルサイト自体も旧版から現在版へ移行中だった ○ 旧版でのみ出来ていた作業、新版でしか見えない、旧版から新版に移ったもの、など色々変化の最中だった ⇒ 思えばこのプレビュー版・ポータルの刻々な変化についていっていなかった事が、のちの騒動につながる Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 14
  • 15. ユーザー情報の入力・カスタム ○ ポリシー内の「ユーザーの追加入力項目が、String/Boolean/Intしか受け付けな い」という縛りが、やはり使いにくい ○ 他プロジェクトへ展開する障害になりそう ○ 自前で情報管理もしたい ○ 「入力」自体が面倒なソリューション(リモコン操作)もあるため、選択項目にしたい ⇒ 一度AAD B2C登録処理後、別途用意した連携Webサービスにリダイレクトさせた。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 15
  • 16. Alexaスキルと連携 ○ ID管理できるようになったので、OpenID Connect使うソリューションに適用したくなった。 ○ あとで出てくるAlexaスキルと呼ばれるAmazonサービスについて、 OpenID Connect を利 用できるAAD B2Cのユーザー認証と連携を試みた。 ○ 設定していくと、うまく動かすことが出来たので、そのまま作業進めていった ○ 一部、動作はしているけど設定方法はこれでいいのか怪しい部分はあった ○ Microsoft 様には一応問い合わせしつつ、Alexaとの連携が完成。βサービス的に開始! 前提として、AlexaスキルとOpen ID Connectとの連携を行う場合、Alexaスキル側へのリダイ レクト先を3ドメイン分設定できる必要がある。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 16
  • 17. 構成(認証部分ピックアップ) Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 17 Alexa Amazon Echo AWS Lambda 連携サービス 外部IDP ⑦Token付アクセス AD内IDPの場合 ①サインイン / ⑤Token取得 ④Redirect / ⑥Token 連携デバイス ② ③ ⑧
  • 18. Alexaスキルが使えなくなった!? ○ 数週間後、突然Alexaとの連動ができなくなった ○ 設定し直すと一瞬繋がるが、時間が経つとまた連動失敗する ○ Ops体制が整えていなかったこともあり、問題解決までかなりの時間を費やす Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 18
  • 19. 原因(開発当初) 1. AAD B2C設定開始時、B2Cアプリに対するリダイレクトURLが3種類設定できていた 2. AAD B2Cではポリシー設定できるが、Azure ADはMicrosoftサインイン画面程度しか提供で きない 3. Azure AD側のアプリIDと、AAD B2C側アプリIDのどちらも、AAD B2C認証用に使えた (本来これは不具合だと思われる。仕様の隙をついていただけの可能性) ○ AD理解度不足にもかかわらず連携できてしまったため、内容精査せず進めてしまった Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 19 カスタムポリシー画面 でのユーザー登録 アプリIDの使い回し ドメイン指定3種 Azure AD NG ?(未調査) OK AAD B2C OK OK OK
  • 20. 原因(問題発生時) 1. AAD B2CのB2Cアプリに対し、リダイレクトURLは外部ドメインは1つに制限される (現在も原則、外部ドメインは1つのみ) 2. アプリIDの使い回しが(正しく)分けられた(推測) 3. サインイン時のclient_secret設定が、ヘッダーに書いていると認証通らなくなった ⇒ プレビュー版であったAAD B2Cの開発が進むにつれて、挙動や設定が変わっていた Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 20 カスタムポリシー画面 でのユーザー登録 アプリIDの使い回し ドメイン指定3種 Azure AD NG ?(未調査) OK AAD B2C OK NG NG
  • 21. 解決 1,2,3を実施することで解決した。 1. AAD B2CのB2Cアプリに対し、リダイレクトURLを複数指定できるよう、Microsoft様に緩和して もらった。 2. トークン取得までの呼び出しについて、URLへのオプション指定、bodyのフォーマットを AAD B2C最新版に対応した。 3. 通常のポータル設定では、現在も1ドメインのみ制限されているため、Active Directory 設定の JSONを直接編集して書きこむ、という技をMicrosoft様から教えてもらった。 → Microsoft Graph エクスプローラー ⇒ ようやく連携が復旧できた。 ※ポータル上はドメイン多すぎる、という警告が表示されています Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 21 カスタムポリシー画面で のユーザー登録 ドメイン指定3種 Azure AD NG OK AAD B2C OK OK(MS Graph)
  • 22. 振り返ってみて ○ AAD B2Cの日本語向け人柱になっていたのかもしれない。 ○ 後に出てくる各種サービスで使われています。 ○ プレビュー版はあくまでプレビュー版として対峙しましょう。 ○ 現象論的にOKだから本番環境へGOは男前過ぎる。 ○ ポリシー部分含め、さらにブラッシュアップされているようなので、今後もウォッ チが必要です。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 22
  • 24. スマートスピーカー連携サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 24
  • 25. スマートスピーカー連携サービスとは ○ 流行りのスマートスピーカー(Google Home, Amazon Echo)を使って、声でテレビ を操作できるようにする。 ○ Xitアプリの起動 / 終了 ○ チャンネルアップ / チャンネルダウン ○ 放送局名を指定したチャンネル切り替え ○ リモコン番号を指定したチャンネル切り替え ○ ボリュームアップ / ボリュームダウン ○ ミュート / ミュート解除 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 25
  • 26. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 26 ウェブAPI IoT HubActions on Google Google Home テレビ Dialogflow Webhook
  • 27. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 27 Alexa Amazon Echo AWS Lambda ウェブAPI IoT Hub テレビ
  • 28. 成果物 ○ スマートスピーカー対応商品一覧 http://www.pixela.co.jp/products/voice_if/ ○ Google Assistant「ピクセラテレビ」 https://assistant.google.com/services/a/uid/00000062cacd59ee ○ Amazon Alexaスキル「ピクセラテレビ」 https://www.amazon.co.jp/dp/B07HXWX3WH Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 28 Amazon Alexaスマートホームスキル日本語対応と同時公開!
  • 29. 苦労したところ ○ スキルの仕様で指定時間以内に応答しないとタイムアウトになる。 ○ Actions on Google: 5秒、Alexa Skill: 7秒 ○ アプリケーションとハードウェアの処理で時間が掛かるので、コマンド実行完 了まで待つとタイムアウトする場合があった。 ○ 暫定的にアプリケーションへのコマンド送信完了まで待つことにした。 実行結果までは見ていないので、選局できないチャンネルも成功としている。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 29
  • 30. 苦労したところ ○ ユーザー管理サービス(ピクセラパスポート)のサインアップ問題。 ○ 知名度に乏しいピクセラパスポートIDでサインアップしてもらえない。 ○ AD B2CだとidPを追加できるので、Android TVで使うGoogle idPを追加した。 ○ テレビ・リモコンだとメールアドレス、パスワードの入力が難しい。 ○ OAuth2.0 Device Flow的なものを独自に実装した。 ○ テレビではQRコードを表示して別のデバイスでサインアップを行う。 ○ AAD B2Cで対応してほしい。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 30
  • 31. 苦労したところ ○ 音声入力がコマンドにマッチしない。 ○ Speech to Textで誤変換している(Actions on Google / Amazon Alexa) ○「4K」=>「4系」、「8K」=>「8系」 ○エンティティに追加していくしかない。 ○ コマンドフレーズに無いものをユーザーが音声入力する(Actions on Google) ○フレーズに「バイバイ」を登録したが、「さよなら」「もういい」などの 未登録のフレーズが音声入力される。 ○会話ログからテキストを拾い上げて学習用フレーズに追加していく。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 31
  • 32. テレビデータ解析サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 32
  • 33. Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 33 テレビデータ解析サービスとは ○ ユーザーの許諾のもと、テレビアプリケーションで視聴データを収集するサービス。 ○ ライブ視聴、録画再生 ○ 録画予約 ○ 収集した操作履歴を解析する。 ○ ライブ視聴人数 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 33
  • 34. 理由 ○ Azure Cognitive ServicesやMachine Learningを利用して何かをやってみたいが、 社内で利用できるデータが無い。 ○ これまで様々なプラットフォームでテレビアプリケーションをリリースしてきたが、 データを収集してこなかった。もったいない。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 34
  • 35. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 35Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 35 Event Hubs API APP Redis Cache 視聴・予約ログ テレビアプリケーション Worker Role BLOB
  • 36. 成果物 ○ ウェブアプリケーション ○ 全国:https://pixela.tv/ ○ 東京:https://pixela.tv/rank-live/23/ Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 36
  • 37. みんなのKEIBAを解析 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 37 春のマイル王決定戦「安田記念・GI」 今週も神騎乗!?ルメール4週連続GI制覇へイスラボニータとコンビ▽GI馬2頭来日の香港勢も超強力!
  • 38. 15:42 レース発走 ~ 15:43 ゴール Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 38 レース発走前から視聴者数が増加して、 ゴールでピークに達する。
  • 39. 15:44 レース終了 ~ 15:51 ハイライト Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 39 レース終了後から視聴者数が減少して、 ハイライトでまた増加する。
  • 40. よかったところ ○ 作ってみた方が早い。 ○ 従量課金なのでテスト版のサービスコストは小さい。 ○ 良ければそのまま導入、悪ければサービス停止すればいい。 ○ テスト版のサービスがそのまま製品化された(ラピッドプロトタイプ開発)。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 40
  • 41. 苦労したところ ○ ログがバラバラ。 ○ ログ仕様を決めたけど守られなかった。 ○ 想定外のログ(和暦の日時)がサーバーに投げられてシステム全停止した。 ○ 最初の頃はサーバーに接続するテレビ製品が増える毎に問題が発生した。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 41
  • 42. 苦労したところ ○ 使用した分だけ課金が発生する。 ○ ユーザー数の急激な増加で想定以上の課金が発生する。 ○ユーザー数とサービス利用量の見積もりが大事。 ○ テスト版で適当に作成したところで無駄な課金が発生している。 ○ 製品化された現在はサービスは止めずにコストを削減していく。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 42
  • 43. オススメ番組サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 43
  • 44. オススメ番組サービスとは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 44
  • 45. ユーザーの録画予約情報の利用 ユーザーと録画予約(アイテム) から、ユーザーにオススメを提供する。 協調フィルタリング型のNeural Collaborative Filtering (NCF)を採用した。 https://www.comp.nus.edu.sg/~xiangnan/papers/ncf.pdf ○ NCFを簡単に言うと ○ ユーザー、アイテムをベクトルで表現する。 ○ ユーザーとアイテムを結びつけるフィルタリングを行う。 ○ 従来の内積表現による予測を発展させたもの。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 45
  • 46. Neural Collaborative Filtering (NCF) とは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 46 NCFは線形性を持つGMFと非線形性を持つMLPの組み合わせから構成されている。 ・Generalized Matrix Factorization(オレンジ色) ⇒ 前ページの内積を発展させたもの ・Multi-Layer Perceptron(赤色) ⇒ Neural Network NCFの3層目から GMFとMLPが混ざる
  • 47. TensorFlow の NCF Model コード例 user_input = tf.keras.layers.Input(tensor=users) item_input = tf.keras.layers.Input(tensor=items) # Embedding layers of GMF and MLP mf_embedding_user = tf.keras.layers.Embedding(…), mf_embedding_item = tf.keras.layers.Embedding(…) mlp_embedding_user = tf.keras.layers.Embedding(…), mlp_embedding_item = tf.keras.layers.Embedding(…) # GMF part mf_user_latent = mf_embedding_user(user_input), mf_item_latent = mf_embedding_item(item_input) , mf_vector = tf.keras.layers.multiply(…) # MLP part mlp_user_latent = mlp_embedding_user(user_input), mlp_item_latent = mlp_embedding_item(item_input) , mlp_vector = tf.keras.layers.concatenate(…) for layer in xrange(1, num_layer): model_layer = tf.keras.layers.Dense(…) mlp_vector = model_layer(mlp_vector) # Concatenate GMF and MLP parts predict_vector = tf.keras.layers.concatenate([mf_vector, mlp_vector]) # Final prediction layer logits = tf.keras.layers.Dense(…) Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 47
  • 48. 協調フィルタリング処理場所 Azure Kubernetes Service (AKS) ○ セキュリティ強化&すばやいデプロイが可能な Kubernetes サービスを利用できるが ○ GPU-Instance は維持コスト高い なので、今回は一定時間毎のバッチ処理のため、Azure Batchを採用した。 ○ 低優先度インスタンスプラン ○ 通常の専有プランより大幅off!! 注意点として、“割り当てられない場合や割り込みが発生する場合があります” → 今回の処理は、数回程度の処理スキップは許容できるため、 このプランが最適だった。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 48
  • 49. Azure Batch ship-yard Azure Batch 生で設定がめんどくさい … そこで Azure Batch ship-yard やってくれること ○ VM-Instance プール作成 ○ VM-Instance 種類指定起動 ○ OS ○ インスタンス種類 ○ VM-Instance への ○ Azure Blob マウント ○ 注 BlobとInstanceのリージョンを合わせないと、パフォーマンス低 ○ ACR から Docker-Image Pull ○ バッチ指示 ○ スクリプトキックコマンド ○ バッチ期間 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 49
  • 50. Azure Batch ship-yard の例 batch_shipyard: storage_account_settings: BLOBの場所 global_resources: additional_registries: docker: - ACRの場所 docker_images: - ACR Dockerイメージ volumes: shared_data_volumes: azureblob_vol: volume_driver: azureblob storage_account_settings: BLOBアカウント設定名 azure_blob_container_name: script container_path: コンテナのマウント mount_options: - --use-https=true bind_options: rw Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 50 config.yaml あとはcredentials.yamlに認証情報記述 pool_specification: id: ID名 vm_configuration: platform_image: offer: UbuntuServer publisher: Canonical sku: 16.04-LTS vm_count: dedicated: 0 low_priority: 1 (低優先度) vm_size: STANDARD_NC6 (GPUタイプ) pool.yaml job_specifications: - id: ID名 … recurrence: schedule: … job_manager: … tasks: - docker_image: ACR Dockerイメージ場所 command: スクリプトコマンド (*) 次のようなパスになった /mnt/batch/tasks/mounts ¥ /azblob-(BLOBの場所)-(BLOBディレクトリ)/スクリプト&引数 jobs.yaml
  • 51. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 51 実装& Docker作成 ACR ユーザー& 録画予約情報 RestAPI 西日本リージョン 米国東部リージョン(GPUインスタンスのため) Batch Batch Shipyard Blob GPU Instance ピクセラ本社 イメージプッシュ イメージ マウント オススメ結果ユーザー
  • 52. よかったところ ○ AIのローカル実装の最初期からDocker上で作業した。ディレクトリ配置もAzure Blobに載せることを意識したことによって、移植がスムーズだった。 ○ Dockerイメージは環境のみで、ソースコードはコンテナに入れない。 ○ ローカルではvolume指定した場所にコードを配置。 ○ Azureではマウント指定場所(Blob)にコードを配置。 ⇒ コードの変更が楽 ⇒ ローカルvolumeとblobマウント場所を合わせ、移植しやすくしておいた。 ○ Azure Batch ship-yardを利用できて、プロビジョニングが楽だった。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 52
  • 53. 苦労した/手間取ったところ ○ GPUインスタンスを西日本で立ち上げたかった。 ○ 処理結果を米国から西日本に持ってくるのが一手間。 ○ Azure Batch ship-yard の情報がほとんどなかった。 ○ 特にインスタンスへのBlobのマウント設定の記述とか。 ○ AIバッチ処理は、最初はAzure Batch AI上で実装していた。実装完了の翌日にサー ビス終了が宣言されたせいで、 Batchに実装移植をしなくてはならなくなったのは いい思い出。 ○ AI周りの実装がPython3, Rest API の実装がC#だったので言語間の違いに苦労した。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 53