Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Global Azure Boot Camp 2019

1,189 views

Published on

Global Azure Bootcamp 2019@Tokyo
https://jazug.connpass.com/event/115696/

Published in: Technology
  • DOWNLOAD FULL. BOOKS INTO AVAILABLE FORMAT, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL. BOOKS INTO AVAILABLE FORMAT, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Global Azure Boot Camp 2019

  1. 1. ピクセラIoTプラットフォーム 株式会社ピクセラ 製品事業本部 ソフトウェア開発部門 先端技術開発部 © 2017 PIXELA CORPORATION|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2019年4月27日
  2. 2. アジェンダ 1. 株式会社ピクセラとは 2. スマートスピーカー連携サービス 3. ユーザーID管理サービス 4. テレビデータ解析サービス 5. オススメ番組サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 2
  3. 3. 株式会社ピクセラとは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 3
  4. 4. 株式会社ピクセラとは 事業内容 ホームAV事業、家電事業 これまで創業時から取り組んで来た画像・音声の コ ー デ ッ ク 技 術 、 画 像 処 理 技 術 を 活 か し 、 Mac / Windows対応テレビキャプチャーボードやテレビチュー ナーをワンストップで開発してきました。 そして時代の変化に合わせ、現在はスマホ・タブレット用 テレビチューナーや4K放送対応機器、IoTホームサービス、 VR視聴アプリなどを開発しています。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 4
  5. 5. ピクセラの開発戦略 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 5
  6. 6. 新商品の特徴とラインナップ Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 6
  7. 7. PIXELA 4Kテレビはここが違う! Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 7
  8. 8. リアルタイム視聴表示(時系列ポイント) Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 8 リアルタイムで数値が変動する (但し「全国ランキング」は再ロード必要) (当然ですが)夜中は少ない 飛び出ているのは大河ドラマと思う 参照したタイミングの視聴者数ランキング (番組別) 放送別の過去の視聴者数の推移 (この場合はNHK総合・東京) ピクセラのIoTプラットフォームはマイクロソフトのクラウドプラットフォーム 「Microsoft Azure」をベースに開発しています。
  9. 9. ユーザーID管理サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 9
  10. 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. 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. 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. 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. 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. 15. ユーザー情報の入力・カスタム ○ ポリシー内の「ユーザーの追加入力項目が、String/Boolean/Intしか受け付けな い」という縛りが、やはり使いにくい ○ 他プロジェクトへ展開する障害になりそう ○ 自前で情報管理もしたい ○ 「入力」自体が面倒なソリューション(リモコン操作)もあるため、選択項目にしたい ⇒ 一度AAD B2C登録処理後、別途用意した連携Webサービスにリダイレクトさせた。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 15
  16. 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. 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. 18. Alexaスキルが使えなくなった!? ○ 数週間後、突然Alexaとの連動ができなくなった ○ 設定し直すと一瞬繋がるが、時間が経つとまた連動失敗する ○ Ops体制が整えていなかったこともあり、問題解決までかなりの時間を費やす Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 18
  19. 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. 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. 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. 22. 振り返ってみて ○ AAD B2Cの日本語向け人柱になっていたのかもしれない。 ○ 後に出てくる各種サービスで使われています。 ○ プレビュー版はあくまでプレビュー版として対峙しましょう。 ○ 現象論的にOKだから本番環境へGOは男前過ぎる。 ○ ポリシー部分含め、さらにブラッシュアップされているようなので、今後もウォッ チが必要です。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 22
  23. 23. 参考 紹介したAlexaスキルとの連携時の顛末について、もう少し詳しい内容や対応内容をま とめています。 https://blog.pixela.co.jp/ ○ alexaスキルとazure認証の連携・前編 ○ alexaスキルとazure認証の連携・後編 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 23
  24. 24. スマートスピーカー連携サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 24
  25. 25. スマートスピーカー連携サービスとは ○ 流行りのスマートスピーカー(Google Home, Amazon Echo)を使って、声でテレビ を操作できるようにする。 ○ Xitアプリの起動 / 終了 ○ チャンネルアップ / チャンネルダウン ○ 放送局名を指定したチャンネル切り替え ○ リモコン番号を指定したチャンネル切り替え ○ ボリュームアップ / ボリュームダウン ○ ミュート / ミュート解除 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 25
  26. 26. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 26 ウェブAPI IoT HubActions on Google Google Home テレビ Dialogflow Webhook
  27. 27. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 27 Alexa Amazon Echo AWS Lambda ウェブAPI IoT Hub テレビ
  28. 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. 29. 苦労したところ ○ スキルの仕様で指定時間以内に応答しないとタイムアウトになる。 ○ Actions on Google: 5秒、Alexa Skill: 7秒 ○ アプリケーションとハードウェアの処理で時間が掛かるので、コマンド実行完 了まで待つとタイムアウトする場合があった。 ○ 暫定的にアプリケーションへのコマンド送信完了まで待つことにした。 実行結果までは見ていないので、選局できないチャンネルも成功としている。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 29
  30. 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. 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. 32. テレビデータ解析サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 32
  33. 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. 34. 理由 ○ Azure Cognitive ServicesやMachine Learningを利用して何かをやってみたいが、 社内で利用できるデータが無い。 ○ これまで様々なプラットフォームでテレビアプリケーションをリリースしてきたが、 データを収集してこなかった。もったいない。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 34
  35. 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. 36. 成果物 ○ ウェブアプリケーション ○ 全国:https://pixela.tv/ ○ 東京:https://pixela.tv/rank-live/23/ Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 36
  37. 37. みんなのKEIBAを解析 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 37 春のマイル王決定戦「安田記念・GI」 今週も神騎乗!?ルメール4週連続GI制覇へイスラボニータとコンビ▽GI馬2頭来日の香港勢も超強力!
  38. 38. 15:42 レース発走 ~ 15:43 ゴール Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 38 レース発走前から視聴者数が増加して、 ゴールでピークに達する。
  39. 39. 15:44 レース終了 ~ 15:51 ハイライト Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 39 レース終了後から視聴者数が減少して、 ハイライトでまた増加する。
  40. 40. よかったところ ○ 作ってみた方が早い。 ○ 従量課金なのでテスト版のサービスコストは小さい。 ○ 良ければそのまま導入、悪ければサービス停止すればいい。 ○ テスト版のサービスがそのまま製品化された(ラピッドプロトタイプ開発)。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 40
  41. 41. 苦労したところ ○ ログがバラバラ。 ○ ログ仕様を決めたけど守られなかった。 ○ 想定外のログ(和暦の日時)がサーバーに投げられてシステム全停止した。 ○ 最初の頃はサーバーに接続するテレビ製品が増える毎に問題が発生した。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 41
  42. 42. 苦労したところ ○ 使用した分だけ課金が発生する。 ○ ユーザー数の急激な増加で想定以上の課金が発生する。 ○ユーザー数とサービス利用量の見積もりが大事。 ○ テスト版で適当に作成したところで無駄な課金が発生している。 ○ 製品化された現在はサービスは止めずにコストを削減していく。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 42
  43. 43. オススメ番組サービス Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 43
  44. 44. オススメ番組サービスとは Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 44
  45. 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. 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. 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. 48. 協調フィルタリング処理場所 Azure Kubernetes Service (AKS) ○ セキュリティ強化&すばやいデプロイが可能な Kubernetes サービスを利用できるが ○ GPU-Instance は維持コスト高い なので、今回は一定時間毎のバッチ処理のため、Azure Batchを採用した。 ○ 低優先度インスタンスプラン ○ 通常の専有プランより大幅off!! 注意点として、“割り当てられない場合や割り込みが発生する場合があります” → 今回の処理は、数回程度の処理スキップは許容できるため、 このプランが最適だった。 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 48
  49. 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. 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. 51. 構成 Copyright © PIXELA CORPORATION. All Rights Reserved.|PIXELA CORPORATION PROPRIETARY AND CONFIDENTIAL. 51 実装& Docker作成 ACR ユーザー& 録画予約情報 RestAPI 西日本リージョン 米国東部リージョン(GPUインスタンスのため) Batch Batch Shipyard Blob GPU Instance ピクセラ本社 イメージプッシュ イメージ マウント オススメ結果ユーザー
  52. 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. 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

×