$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
Search
Toru Nishiyama
May 29, 2019
Technology
2
1.2k
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
2019年5月29日のMachine Learning Casual Talks #10 で発表する内容
Toru Nishiyama
May 29, 2019
Tweet
Share
More Decks by Toru Nishiyama
See All by Toru Nishiyama
scramble#4_最近のFOLIOのToC事業におけるプロダクトマネジメント※公開版
paulxl
0
2.5k
データ活用の進め方をステークホルダーに理解してもらうためにやったこと
paulxl
1
1.8k
エンジニアとデータサイエンティストがもっと仲良くなるためのデータサイエンティストの話
paulxl
0
230
Other Decks in Technology
See All in Technology
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
240
Product Engineer
resilire
0
130
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
550
プロダクトマネージャーが押さえておくべき、ソフトウェア資産とAIエージェント投資効果 / pmconf2025
i35_267
2
340
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
110
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
eBPFとwaruiBPF
sat
PRO
2
920
“決まらない”NSM設計への処方箋 〜ビットキーにおける現実的な指標デザイン事例〜 / A Prescription for "Stuck" NSM Design: Bitkey’s Practical Case Study
bitkey
PRO
1
340
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.3k
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
160
Bakuraku Engineering Team Deck
layerx
PRO
11
5.7k
AI 時代のデータ戦略
na0
8
3.2k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Code Review Best Practice
trishagee
73
19k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
How GitHub (no longer) Works
holman
316
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
69k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Transcript
databricksを使ってnotebookベース でお手軽に機械学習API・ バッチ処理を量産する 2019.05.29 Supership Toru Nishiyama
2 サマリ • 自己紹介 • 普段の仕事と機械学習のかかわり • databricksとは • databricksのJob機能を活用しよう
• databricks環境におけるCI/CD • 具体的なユースケース
3 自己紹介 • 西山 徹(にしやま とおる) • データアナリスト/セールスエンジニア@Supership • 非IT系
-> データアナリスト -> データアナリスト/セールスエンジニア(now) • どうでもよいつぶやき: 最近、二郎系ラーメンマップを作ったらGIGAZINEに 取り上げられたりしました ※Herokuの無料枠が死んで現在は落ちてます…
4 普段の仕事と機械学習のかかわり • 所属チームのミッション • 広告配信ログ、ユーザの属性情報など自社データを用いた クライアント向けデータ分析・自社利用向け広告配信セグメントの作成 etc., • 大変なところ
• とにかくデータがでかい • 広告配信ログは1日数十億レコード、 属性データも1テーブル1億レコードを余裕で超えてくる • チームはアナリストが大半で、エンジニアリングリソースが十分でない • 案件ベースで、 広告配信セグメントを新規で作成してスケジュール実行したり、 クライアントとのデータ連携のためのデータパイプラインを作ったり、 といったことが散発的に発生
5 普段の仕事と機械学習のかかわり • 大変なところにどう立ち向かっているか • とにかくデータがでかい -> Apache Sparkを使おう •
チームはアナリストが大半で、エンジニアリングリソースが十分でない -> databricksを使うことで、極力エンジニアリング にかけるリソースをへらす ≒databricksの機能を利用して巻き取ってもらう ↑ここらへんが今回の話の中心になります
6 databricksとは • ざっくりdatabricksの紹介 • databricks社(Sparkの開発元)が提供している 統合分析プラットフォーム • jupyter-likeなnotebookベースでPython, R,
Scalaから、 分散処理基盤上でSparkが実行できる • 利用するクラスタ単位で環境を切り替えたり、 依存ライブラリを管理することができる • ベースとなる環境は databricks runtimeと呼ばれる標準環境 -> ざっくりanacondaみたいなものだと思ってください • 今日出てこない話も含めて過去に書いた記事もあるので よかったら読んでみてください • Databricksで分析業務がはかどっている話 - Qiita
7 databricksのJobs機能を活用しよう • notebookを文字通りjob化することができる機能 • notebookのスケジュール実行したり、REST API化して 任意のタイミングで処理を実行させることができる • jobの作成・管理などの操作がwebブラウザ上から実行できる
• 良いかどうかはさておき, エンジニアリングの基礎知識がなくても一瞬でAPI構築ができる • jobごとに専用のクラスタが実行時に都度立ち上がるので、 コスト的にもメリットがある • jobの内容に合わせたスペックを選択できる (CPU/GPU, メモリ, worker数, etc.,)
8 databricks環境におけるCI/CD • databricksのnotebookはgithubとの連携が可能 • しかも.pyで保存できる • databricksが用意しているCLIを使うことで、ローカル環境や databricksのワークスペース内の任意のディレクトリに notebookを同期可能
• それとCI/CDツールを組み合わせることで、 「notebookがmasterにマージされたら本番用の ワークスペースに自動でデプロイする」といったことが実現可能 (開発用ワークスペース ) (本番用ワークスペース ) deploy commit/ merge /master/ /dev/
9 webアプリケーション 具体的なユースケース • バッチ処理を記述したnotebookをスケジュール実行して、 ETL処理として利用 • アドホックなETL処理が多数発生するので都合が良い • webアプリケーションから呼ばれるAPIとして利用
databricks job jobに投げる パラメータを選択 jobの結果を閲覧 jobの結果を 出力 ユーザが指定した 条件でjobをkick/ jobのステータスを監視 完了した jobの結果を読み込み 画面上で可視化
10 さらに細かいtips • ちょっとした履歴管理はnotebookに標準でついてるので楽 • .pyでnotebookが保存されるのでGithub上でのレビューが めっちゃ楽 • 改行がちゃんと表示されてdiffがめっちゃ見やすい! •
databricks CLIでローカル環境にnotebookを持ってきて、 .pyファイルとして開発もできる • jupyter-likeなインタラクティブに確認しながら開発したい、 リファクタなどエディタやlintツールの機能を活用したいなど、 好みに合わせて作業環境を選べる • 微妙なところとしては、jobにキューイングが まだ実装されていないところ
11 まとめ • databricksを使うことで、 • Jupyter notebookベースで分析をしていて辛いところを databricksがよしなに巻き取ってくれるので、 アナリストが多いチームでもお手軽に機械学習や ちょっとしたデータパイプラインを量産できる
• (今回は触れませんでしたが)ちょっとしたBIツールとして 使ったりもできるなど、databricksだけで分析業務が完結できるよう 様々な機能が高速に開発されている