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

エンジニアリングが支える研究開発 / R&D supported by engineering

Sansan
May 28, 2021

エンジニアリングが支える研究開発 / R&D supported by engineering

■イベント

【Sansan Technical View】Sansanの技術的「挑戦」
https://sansan.connpass.com/event/208003/

■登壇概要

タイトル:エンジニアリングが支える研究開発
登壇者:DSOC 研究開発部 高橋 寛治

▼Sansan Builders Blog
https://buildersbox.corp-sansan.com/

Sansan

May 28, 2021
Tweet

More Decks by Sansan

Other Decks in Technology

Transcript

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

    修了 • 2017年 4⽉ Sansan株式会社 ⼊社 • 現在 ⾃然⾔語処理とスマブラ ⾼橋 寛治 Kanji Takahashi kanji250tr kanjirz50 Sansan 株式会社 DSOC(Data Strategy & Operation Center) 研究開発部 Data Analysis Group Document Analysis Team 研究員 オンライン名刺 ディーソック
  2. Data Strategy and Operation Center MISSION Activating Business Data 名刺、書類、業績や株価など企業の公開情報

    あらゆるビジネスデータから「出会いのデータベース」を構築し、 ビジネスや社会、未来へとつながる新しい可能性を⽣み出す。
  3. Data Strategy and Operation Center ໊ࢗ اۀ৘ใ ੥ٻॻ ൃߦ෺ χϡʔε

    ௐࠪ৘ใ ਓࣄҟಈ৘ใ ܖ໿ॻ ࡒ຿৘ใ ϓϨεϦϦʔε DSOC Activating Business Data あらゆるビジネスデータを集約 し、 出会いの未来を描く
  4. Data Strategy and Operation Center 名刺取り込み 背景分離 画像補正 1 項⽬分割

    2 セキュリティー項⽬細分割、項⽬⼊⼒ 3 チェック&補正 5 マージ 4 マイクロタスク×マルチソーシングによる独⾃の名刺データ化システム 名刺データ化システム「GEES」 セキュアな環境を構築
  5. Data Strategy and Operation Center スマートキャプチャー 撮影されてから数秒で結果をユーザーに届けることを可能にする技術 項⽬セグメンテーション ⽂字を読み取らずに、名刺のデザインから項⽬を⾒分ける ⾔語判定

    ⽂字を読み取らずに⾔語を判定 ミステイクディテクター 誤りの傾向を学習してミスの可能性を予測 独⾃に研究開発したさまざまな画像認識技術によって、名刺を⾼速かつ⾼精度でデータ化 AI・画像認識技術
  6. Data Strategy and Operation Center NEWS パーソナライズされたニュース配信システム レコメンド エンジン 企業ニュース

    ⼈事異動ニュース 収集 ⽣成 配信 ! ! ⾃然⾔語処理 + データベース etc ニュース ソース
  7. Data Strategy and Operation Center 名刺を並べてコレクションに ビジネスカード・コレクション(β) Sales Tech -営業活動を⽀援-

    顧客との接点を ヒートマップで可視化 ABMダッシュボード3 (β) Sansan Labs 所有名刺でタイプを分析 ビジネスパーソンタイプ分析(β) 営業先のキーパーソンを探す ホットリード・レコメンド(β) HR Tech -タレントマネジメント- ナレッジから同僚を探す 同僚ナレッジサーチ(β) Sansanのプロダクト内で「未来の働き⽅を実現する」実験的な機能を提供 11
  8. Data Strategy and Operation Center DSOC 研究開発部の組織体制 Automation Group 名刺やビジネス⽂書のデータ化の効率化・⾃動化技術の研究開発

    Data Analysis Group ビジネスデータの収集・解析や、レコメンデーションエンジンの研究開発 SocSci Group 社会理論を武器に名刺交換の価値を拡張し、事業やサービス、社会へ還元 Arc Group 研究開発部が提供するサービスに責任を持ち、またデータ基盤の整備も⾏う
  9. Data Strategy and Operation Center 研究と本番運⽤では異なる求める状態 研究段階(⽬の前で動けばいい) ⽬的の処理の検証が⽬的 本番運⽤(動かし続ける) •

    API提供やバッチ提供など、要件に合わせたアーキテクチャ選定 • 利⽤可能な状態を保つ • デプロイフローの整備 • ・・・ アプリケーションとして価値提供するには エンジニアリングが求められる
  10. Data Strategy and Operation Center アンチパターン!?:研究員(私)が作ったとあるAPI ⼿動更新 API提供 アルゴリズム +

    データベース モデルの更新 別サービスから 呼び出し サービス 餅は餅屋ということを痛感… 研究員 …………… ⼀通り作った(以前は研究員が結構作っていた) 稼働状況 …………エラーになかなか気づけず、改修やデプロイが難しく時間を要する(後⼿後⼿対応…)
  11. Data Strategy and Operation Center ニュース配信システムにおける役割分担 レコメンド エンジン 企業ニュース 収集

    ⽣成 配信 ! ! ⾃然⾔語処理 + データベース etc ニュース ソース 企業名抽出コンテナや記事 ジャンル分類コンテナを 研究開発員が⽤意 レコメンドアルゴリズム のコンテナを研究開発員 が⽤意 研究員 …………… コンテナとしてアルゴリズムを提供 エンジニア ……… デプロイフローやログ基盤など整備 稼働状況 ………… 2年以上安定して稼働している アルゴリズムの軽微な修正はデプロイパイプラインがあるため容易かつ研究員で完結
  12. Data Strategy and Operation Center ニュース配信システムがうまくいった点 19 エンジニアおよび研究員が全体フローを理解 ⼀記事ずつ⼀つの処理を⾏い、最終的に配信する流れを把握 エンジニアと研究員でコンテナの

    WebAPI 仕様を定める 気にするのはインターフェイス エンジニアによる監視設定と監視 エンジニアと研究員が Slack のチャネルを⾒て確認 アルゴリズムのコンテナ化 • エンジニアは要件に合わせてマシンサイズを選定 • 研究員は WebAPI からアルゴリズムが利⽤可能なコンテナを作成 • アルゴリズムの改善のリリースは、CodeBuild で⾏う
  13. Data Strategy and Operation Center 研究に特化した分析基盤の構築 20 研究員 ……………………… SQLで⾼速に取得・集計し、研究開発を⾏う

    データエンジニア ………… 分析基盤を構築するためのデータパイプラインの作成やバッチの運⽤ 分析基盤構築前 • 本番環境を考慮したアクセス • 利⽤時の⼼理的障壁 • 集計クエリによる本番への影響 • 環境ごとにデータ取得⽅法が異なる • 研究員は余裕でつまづく 分析基盤構築後 • 本番環境の考慮は不要 • ガンガンクエリを投げられる • SQLに統⼀されて覚えることが少ない • 認証なども⽅法が⼀つになるので、 研究員でも何とかなる • ⾼速にデータの取得や集計が可能 • 試⾏錯誤の回数が増える 無いときが考えられないほど、⽣産性の向上を実感
  14. Data Strategy and Operation Center 現在の研究員とエンジニアの主な住み分け 22 研究員 アルゴリズムの開発およびコンテナ化 エンジニア

    • コンテナが安定して稼働するためのアーキテクチャ設計 • Sansan Labs だと Web アプリケーション化 • 監視設定 • …
  15. Data Strategy and Operation Center 住み分けに対する研究員⽬線の感想 23 ありがたい • アルゴリズムの開発に集中しやすい

    • コンテナまで作るというゴールがわかりやすい • アーキテクチャの話は正直よくわからないので、おまかせできてありがたい 気になる • 研究員のアルゴリズム部のコードは本番稼働に耐えうるものなのか • エンジニアの負担が⼤きいのではないか > アーキテクチャ設計やリリース後の運⽤ • 稼働中のモデルの監視
  16. Data Strategy and Operation Center より研究開発を加速するための取り組み 研究員のコードが「とりあえず動く」から「良いコード」へ • 実装コードのガイドラインを策定し準拠 •

    CI でコードチェック(flake8) • テストを積極的に導⼊ • レビューしやすいコード・コメントを書く MLOps として取り組む • MLOps を推進するチームが最近誕⽣ • 研究開発部エンジニアと研究員で構成 • 研究開発のサイクルの加速、および安定した運⽤を効率良く⾏うために、 DSOC として解決したい課題を整理中
  17. Data Strategy and Operation Center MLOpsとしてのモデル監視の検討の試み 26 実現したいこと • 名刺データ化システムでは、データ化精度の評価を運⽤として取り組み、改善を積み重ねている

    • 増えつつあるR&Dサービスに対して、ソフトウェアとして上記を実現したい • モデルの⼊出⼒に対する異常検知を⾏い、なるべく早く異常に気づける状態 (マシンリソースの監視ではない) 試験運⽤結果 • 監視サービスを活⽤したが、何をどう監視するかうまく定められず断念 (何のために何を監視したいかの設計が必要) 今後 • 何をどういう観点で監視することで異常と定義でき、また運⽤できるか (魔法のサービスとして使わない、異常に対する対策も打てるのか)
  18. Data Strategy and Operation Center MLOps の各所での取り組み 27 研究員の各所での取り組み •

    実験管理ツールやモデルのバージョン管理ツールの試⽤・情報共有 > DVC や Trains による実験管理 > 内部での MLOps ランチ勉強会 エンジニアの取り組み • Python の実装ガイドラインの策定 • 研究員向けサンプルコンテナの⽤意 • デプロイフローの整備や、Webフレームワークの統⼀、モデル監視の検討 DSOC に合う MLOps を模索中
  19. Data Strategy and Operation Center まとめ 28 • 出会いのデータベースを構築し、新しい可能性を⽣み出す組織 DSOC

    を紹介 • 名刺データ化やニュース配信など研究開発事例を紹介 • エンジニアリングが⽀える研究開発を紹介 • 研究開発のサイクルを加速する MLOps の取り組みを紹介