Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
Search
Toru Nishiyama
May 29, 2019
Technology
1.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
databricksを使ってnotebookベースでお手軽に機械学習API・バッチ処理を量産する
2019年5月29日のMachine Learning Casual Talks #10 で発表する内容
Toru Nishiyama
May 29, 2019
More Decks by Toru Nishiyama
See All by Toru Nishiyama
AI時代におけるTROCCOの役割: 直近のアップデートの振り返りと将来の展望
paulxl
0
120
AI導入で変わる PdMとエンジニアの関係性
paulxl
0
400
scramble#4_最近のFOLIOのToC事業におけるプロダクトマネジメント※公開版
paulxl
0
3k
データ活用の進め方をステークホルダーに理解してもらうためにやったこと
paulxl
1
2.2k
エンジニアとデータサイエンティストがもっと仲良くなるためのデータサイエンティストの話
paulxl
0
260
Other Decks in Technology
See All in Technology
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
320
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.1k
20260720_クラウド女子会×PyLadiesTokyoコラボ Amazon Bedrock ハンズオン用資料
yuuka51
1
110
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
230
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.3k
Jitera Company Deck
jitera
0
270
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
780
reFACToring
moznion
0
180
現場との対話から始める “作る前に問い直す”業務改善
mochico50
1
220
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
270
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
970
Featured
See All Featured
HDC tutorial
michielstock
2
750
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
350
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Producing Creativity
orderedlist
PRO
348
40k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Balancing Empowerment & Direction
lara
6
1.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Building Adaptive Systems
keathley
44
3.1k
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だけで分析業務が完結できるよう 様々な機能が高速に開発されている