Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ニュース配信における MLOps・分析基盤の事例紹介 / A Case Study of ML...

ニュース配信における MLOps・分析基盤の事例紹介 / A Case Study of MLOps and Analysis infrastructure on News Delivery System

■イベント 
:【Sansan×Unipos×M3】事例から学ぶ!MLOps・データ分析基盤 最前線事例共有勉強会
https://m3-engineer.connpass.com/event/216065/

■登壇概要
タイトル:ニュース配信におけるMLOps・分析基盤の事例紹介
発表者: 
技術本部 DSOC R&D研究員  高橋 寛治

▼Twitter
https://twitter.com/SansanRandD

Sansan DSOC

July 08, 2021
Tweet

More Decks by Sansan DSOC

Other Decks in Technology

Transcript

  1. Data Strategy and Operation Center ⾃⼰紹介 • 2017年 3⽉ ⻑岡技術科学⼤学⼤学院

    修了 • 2017年 4⽉ Sansan株式会社 ⼊社 某aaanquish さんがメンターだった • 現在 ⾃然⾔語処理とバイクとスマブラ担当 ⾼橋 寛治 Kanji Takahashi kanji250tr kanjirz50 Sansan株式会社 技術本部 DSOC 研究開発部 Data Analysis Group, Document Analysis Team, 研究員 オンライン名刺 ディーソック
  2. Data Strategy and Operation Center ニュース配信での事例紹介 2 概要 ニュース配信における機械学習モデルの導⼊・運⽤、 またログ分析についての事例を紹介

    ⽬次 • ニュース全体像 • ニュース配信プロジェクトにおける機械学習モデルの導⼊と運⽤ • ログを対象にした分析事例 • まとめ 期待 事例や課題を共有し、何かしらに活かしてほしい
  3. Data Strategy and Operation Center 現在 Sansan や Eight で配信しているニュース

    名刺とWeb記事 ⾃分の所有名刺 Aさんの所有名刺 ⾃分の所有名刺 ネット上の記事 ⾃社情報とWeb記事 ⾃社の情報 ネット上の記事 ⼈事異動情報の通知 社内の共通⼈脈通知 企業の最新ニュース通知 同業他社の最新動向の通知 名刺と名刺
  4. Data Strategy and Operation Center 現在 Sansan や Eight で配信しているニュース

    名刺とWeb記事 ⾃分の所有名刺 Aさんの所有名刺 ⾃分の所有名刺 ネット上の記事 ⾃社情報とWeb記事 ⾃社の情報 ネット上の記事 ⼈事異動情報の通知 社内の共通⼈脈通知 企業の最新ニュース通知 同業他社の最新動向の通知 名刺と名刺 今回の話題とする「ニュース配信」
  5. Data Strategy and Operation Center 作業分担しやすいアーキテクチャをエンジニアが設計 7 ⾮同期処理を導⼊することで、可⽤性を満たしやすくなり、また処理フローも柔軟に制御可 • R&Dは各アルゴリズムのコンテナを開発

    • 開発はデプロイの仕組みやアーキテクチャを開発し、運⽤ ニュース記事 受信コンテナ AWS Cloud 企業名抽出 ワーカコンテナ 企業名抽出器 ニュース記事 配信コンテナ ジャンル分類 コンテナ Sansan や Eight の サーバーサイド 外部提携先から ニュースを受け取り ジャンル分類 ワーカは キューの処理や 後処理を担当 モデル+WebAPI の コンテナとして 実装 SNS キューを⾒て滞留 など監視可能
  6. Data Strategy and Operation Center 各モデル作成から運⽤においてやること 8 R&D モデル検討 •

    サービスに使える抽出性能を 持つモデルを作成 開発作業 • Docker で動く WebAPI を開発 • モデルは Git LFS に含める 開発 リソースやデプロイ周り • リソースの準備とデプロイフローの⽤意 監視 • マシンの監視やログを設定 • Firehose を⽤いて各イベントのログを S3 に出⼒し、Athena で検索 開発とR&D 共通部分の決定 • インターフェイスやログ仕様を定める リリース • リリースタイミングを決めリリースと経過観察
  7. Data Strategy and Operation Center 機械学習モデルの運⽤ 9 コードレビュー R&Dが書いた API

    に関する箇所は開発もレビュー リリース作業 • パイプラインが未整備のモデル > シェルスクリプトにより、開発がリリース • パイプライン整備済みのモデル > CodeBuild により、R&Dがリリース(ブランチ選んでポチポチ) 運⽤ • マシンの監視(Datadog) • ログ分析(Athena, Redash)
  8. Data Strategy and Operation Center 運⽤例 10 マシン監視においてメモリ使⽤量増加のアラート 対象)企業名抽出 原因)あるライブラリのPython

    バインディングのバグでメモリリークが発⽣ 対処)Python バインディングのバージョンを上げる ログによりモデル更新後の処理結果が正常か確認 対象)ジャンル分類 ログ)モデル更新前後の分類結果の割合を取得 分析)新しくカテゴリを追加した場合は出⼒されていることを確認、 精度改善においてはカテゴリの出⼒の割合を⾒て定性的に判断
  9. Data Strategy and Operation Center 運⽤例 11 パイプラインにより修正要望に対してリリースが早くなる 対象)企業名抽出 問題)誤った企業名抽出により、ユーザ印象のよくないニュースが配信される

    対処)モデル改善には時間を要するため、ルールによる前処理・後処理を追加し デプロイパイプラインがあるため、⼿際よくリリースし対応できた
  10. Data Strategy and Operation Center 運⽤における現状の課題と取り組み検討 12 課題)モデルを開発する⼯程の属⼈化を防ぐ データ取得)⼀時的なSQLやスプレッドシートから取得 学習)ノートブックやシェルスクリプトなど様々

    ハイパパラメータ調整)各個⼈がやっており詳細不明 取り組み)データ取得から学習までのパイプライン構築 ⽅法) SageMaker の枠組みを⽤いてパイプライン化 期待)上記⼯程がコード化され、 誰でも実⾏や改変が可能となる 現状)パイプラインを試作し、運⽤⽅法を検討中
  11. Data Strategy and Operation Center 運⽤⾯で少し寄り道 13 課題)運⽤されるモデルの振る舞いの監視を⾏いたい 出⼒の割合を定性的に⾒ているところについて、定量的に監視できないか 検討)監視サービスの活⽤

    監視サービスを利⽤したが、何をどう監視するかうまく定められず断念 (まずは使ってみようと進めたので反省) 今後の課題)何をどう監視すべきか • 異常の定義(何をどういう観点で監視すると何に損失を与えないのかを具体 化)し、異常に対する対策までセットを考える
  12. Data Strategy and Operation Center ログ分析基盤 15 概要 ニュース配信およびニュースに関するユーザ⾏動のログ分析基盤 データ分析基盤

    データストア • Athena + Redash • 集計やデータのCSV出⼒、可視化が⾏える データ例 • 記事単位で抽出された企業名および使⽤されたモデル名 • 記事に対するジャンル分類の結果 • ユーザが記事をクリックした情報
  13. Data Strategy and Operation Center ニュース配信における A/B テスト事例 16 概要

    A/B テスト設計の際にログ基盤を⽤いて被験者の選定および A/B バケットの割り 当てを⾏う 分析基盤が可能にした A/B テスト設計における分業 ログ分析基盤があるため他グループの研究員(効果検証の専⾨家)が⾏えた (ログを出⼒して渡して分析みたいな⼿間がかからない) 結果 適切な A/B テストが実施でき、実サービスに反映された
  14. Data Strategy and Operation Center ログからの新しいニュースコンテンツのクリック推定 17 概要 新しいニュースコンテンツを企画し実施する際に、実施した際の旨みを確認して プロジェクトの成功率を⾼める

    分析基盤としてデータが蓄積されるから予測できる 過去のユーザ⾏動ログを元に、新しいニュースコンテンツにおける クリックを推定 結果 新しいコンテンツの有⽤性を定量的に⽰し、リリースへの道筋を開いた
  15. Data Strategy and Operation Center 配信記事の品質チェック 18 概要 ニュース配信対象となる記事について、抽出された企業名が正しいかを定期的に ⽬視で確認

    ログ基盤があるからできる分業 • Redash で⽇付を指定してチェック対象を選べる • エンジニアでなくても出⼒ができ、運⽤における⼿間を減らせる > 以前は、都度SQLを書いて、お願いをしており時間がかかっていた
  16. Data Strategy and Operation Center まとめ 19 ニュース配信における機械学習モデルの導⼊・運⽤、 またログ分析についての事例を紹介 開発とR&Dが分業しやすいアーキテクチャで開発運⽤業務

    R&D > モデル開発は Docker による WebAPI 化まで⾏う > ログ分析基盤を⽤いて A/B テスト設計や新規コンテンツの予測が⾏える 開発 > ログ整備やパイプライン整備、リソースを⽤意 > サービスが稼働しているか監視