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
UBtech_vol7 データサイエンティストのための エクストリームプログラミング入門
Search
nonakakenya
March 29, 2023
Technology
1
680
UBtech_vol7 データサイエンティストのための エクストリームプログラミング入門
nonakakenya
March 29, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
240
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
130
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.7k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
510
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
330
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Music & Morning Musume
bryan
47
7.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
エンジニアに許された特別な時間の終わり
watany
106
230k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Designing for humans not robots
tammielis
254
26k
The Curious Case for Waylosing
cassininazir
0
240
Practical Orchestrator
shlominoach
191
11k
Optimizing for Happiness
mojombo
379
71k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
100
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
Transcript
データサイエンティストのための エクストリームプログラミング入門 2023-03-28 株式会社ユーザベース 野中 賢也
2 自己紹介 • 野中賢也 • 前職:広告代理店で機械学習エンジニア • 趣味:読書(SFにはまりつつある) • XP歴もデータサイエンス歴も短め(1年と4年)なのでお手柔らかに
焼き肉を食べて微笑んでいる近影
3 【アイスブレイク】 (広告代理店出身なので?) 学生のときに聞いてなるほどと思った マーケティングのある定義の話から始めます
4 マーケティングとは継続的に売れる仕組みを作ることである
5 【本題】データサイエンティストの定義 • ChatGPTいわく ◦ 大量のデータから価値を生み出すことを目的とした...(略)...専門家
6 こっちの定義の方が良さそうではないですか? データから価値を生み出す専門家 ↓ 継続的にデータから価値を生み出す仕組みをつくる専門家
7 データサイエンティストの再定義 継続的にデータから価値を生み出す仕組みをつくる専門家 ↓ 「データから価値を発見する」 + 「発見した価値を継続的に生み出し続ける」
8 データから価値を発見する • データからビジネス的価値を発見するために使える方法論は多く存在 ◦ 「イシューから始めよ」などに代表されるコンサル本 ◦ 大学院で主に経験・学ぶことができる科学的方法論 ◦ 機械学習分野でも、このトピックに絞った書籍が執筆され始めている
▪ 「戦略的データサイエンス入門」 ▪ 「AI・データ分析プロジェクトのすべて」 ▪ 「評価指標入門~データサイエンスとビジネスをつなぐ架け橋」 ユーザベースのメンバーの一人も共 著者になっています!
9 発見した価値を継続的に生み出し続ける • なぜ継続性が重要なのか? ◦ 機械学習モデルの外の環境とニーズの変化が必ず起こるから ▪ 簡単な例 • サイトの回遊行動から、どのユーザーがConversionするかを予測す
るモデルを開発(当時state of the art!) • プロダクトが依存しているPlatformが、モデルが使用している特徴 量を提供しなくなる • その特徴量を使用しないモデルの開発する必要性 ◦ あるあるかな? ▪ 当時の担当者不在 ▪ ソースコードの可読性が低い ▪ 社内の誰も仕様を把握していない
10 発見した価値を継続的に生み出し続ける • データから価値を発見する方法論は、状況変化が考えられていない ◦ その時点のスナップショットで最適な機械学習モデル ◦ ビジネス環境の変動⇒提供価値の半減
11 発見した価値を継続的に生み出し続ける • 価値発見の方法論ほど、継続的な価値提供の方法論は発達していない印象 ◦ (私含め)多くのデータサイエンティスト/MLエンジニアのバックグラウンド ▪ =ある時点での分析や研究の成果に責任を負っている • 機械学習・人工知能の研究者
• マーケティングの定量分析の専門家 • 大学院で定量的な分野を学んだ・研究した人 • 物理学、経済学、心理学etcetc • 戦略・経営・分析コンサルティング企業出身者 ◦ 最近だとMLOps(DevOpsの考え方の適用)などもある ▪ 2018年にGoogleが提案
12 そこで、今回のテーマである エクストリームプログラミング(XP) 登場!
13 エクストリームプログラミングとは? • 1990年代:Kent Beckが開発・提案したソフトウェア開発の方法論 ◦ 「注意して、適応して、変更する」パラダイム エクストリーム・プログラミング、XP(英: Extreme Programming)は、
ソフトウェア品質 を 向上させ、変化する顧客の要求への対応力を高めることを目的としたソフトウェア開発 プロセスである。(引用: wikipedia) • 変化に対応した方法論がデータサイエンスコミュニティ内で発達していないのな ら、ソフトウェアエンジニアリングの成熟した方法論をパクろう!
14 原典である以下の書籍(2~4章)が言っていることをかいつまみながら 機械学習・データサイエンスの文脈で解釈して読んでいきます。 (具体的なソフトウェア開発方法よりも抽象的な考え方に注目します)
15 価値・原則・プラクティス • プラクティス ◦ 具体的にエクストリームプログラミングでは何をやるのか? • 価値 ◦ 好き嫌いの判断基準となるもの
• 原則 ◦ 価値から各プラクティス導くために必要となるもの,論点 • データサイエティストが好きそうな理解 ◦ 価値=公理、原則=定理、プラクティス=各定理の現実世界への応用
16 ここからは5つある価値(公理)をひとつず つ順を追って説明していきます!
17 コミュニケーション(Communication)
18 コミュニケーション • 最も重要な価値として位置づけられる ..最も重要なのは、コミュニケーションである。開発中に問題が発生したときには、すで に誰かが解決策を知っていることが多い。だが、その情報は変更する権限のある人に は伝わらない。 • コミュニケーションを重視することで変化に強くなる ◦
チームに情報が行き渡り業務が個人に属人化せず、退職異動に強い ◦ 適切な情報が早く手に入ることで、変化が起こったことに対応できる
19 コミュニケーション • データサイエンス業務においても聞けばわかることの方が多い ◦ データの前処理 ▪ 取りたいデータのエンドポイント ▪ APIから返ってくるデータ
▪ DBに格納されているデータの形式・意味 ◦ 問題の定式化 ▪ ビジネスサイドとのコミュニケーション ◦ アルゴリズム改善 ▪ アルゴリズムに強い人に聞きに行く
20 コミュニケーション • やってみるのは違う • 当たり前を「エクストリーム」にやっている感覚 ◦ ドキュメントをほぼ作らず、コードで表現することを重視 ◦ Gather,
オフラインペアプロ
21 シンプリシティ(Simplicity)
22 シンプリシティ • 単純な/簡単な方法を選ぶのではなく、課題を解決するために必要十分な方法を選ぶ 私は「最もシンプルで、上手く行きそうなものは何ですか?」と質問するようにしてい る。...私は、シンプルすぎてうまくいかないものについて質問しているわけではない。 無駄な複雑性を排除するために、何ができるかをかんがえてもらっている。
23 シンプリシティ • 機械学習的にもシンプルなモデルの方が好まれる ◦ より良い振る舞いをする ▪ モデル選択 • 情報量基準
▪ オッカムのカミソリ • L1,L2正則化 ◦ Neural Networkで皆が使いたくなるアーキテクチャ ▪ GAN ▪ Attention ◦ baselineから始める
24 フィードバック(Feedback)
25 フィードバック 最初に決まった方向性が、長期間そのまま有効であることはない。...変化は割けられ ないものであり、変化がフィードバックを必要とするのである。 • 状況の変化そのものへの対処方法
26 フィードバック • FBが有効な3つの条件=機械学習PJではすべて当てはまる ◦ 「正しく」やる方法がわからない ◦ 今日は正しかったとしても、明日間違っている可能性が高い ◦ 「正しく」やるには、時間がかかりすぎる
• ⇒最初から完成させるのではなく、できるだけ細かく早く多くフィードバック をもらって、漸進する
27 フィードバック • XPのフィードバック=機械学習システム全体のレベルでの勾配降下法 ◦ より多くより早く勾配方向を調べて、その方向にシステムを変化させる ▪ =ユーザーからのFeedbackをより多くより早く得る システムの価値 システムの可変要素
人手の運用、前処理、後処理、 モデル自体 真の目的関数はユー ザーだけが知っている と仮定 現時点でのシステムの出力
28 勇気(Courage)
29 勇気 • 勇気 ◦ 他の価値をより強化することができる 勇気をもって真実を語れば(たとえそれが不愉快なことであっても)、コミュニケーション や信頼が強化されていく。うまくいかない解決策を捨てて、勇気をもって新しい解決策 を見つければ、シンプリシティが促進される。勇気を持って現実の具体的な答えをもと めれば、そこからフィードバックが生まれる。
30 リスペクト(Respect)
31 リスペクト • いままでに上げた4つの価値が成り立つ前提 ◦ チームメンバー・他者に対するリスペクト チームメンバーがお互いに関心がなく、何をしているかを気に求めないようであれば、 XPはうまくいかない。... ソフトウェア開発に関係している人は、人間として等しく重要 である。
• 研究室とかアカデミア出身だと特に気をつけた方が良いかも(自戒) ◦ 自身の自由(な発想)を優先するあまり他者への配慮にかけたふるまいになっ ていないか? ◦ もちろん、アカデミア出身の人、皆が皆そうではない
32 プラクティス
33 プラクティス • 全員同席 • チーム全体 • 計画づくりと管理 ◦ 四半期サイクル・週次サイクル・ストーリー
◦ 情報満載のワークスペース • 実際のプログラミング作業 ◦ ペア・プログラミング ◦ テストファーストプログラミング ◦ インクリメンタルな設計 • 継続的インテグレーション・デプロイメント 後の二組が説明・実演してく ださいます! • 価値を実現するためのプラクティスという考えを持つ。
34 データサイエンティストの再定義 「データから価値を発見する」 ←サイエンスの方法論によって担保 + 「発見した価値を継続的に生み出し続ける」 ←エクストリームプログラミングによって担保
35 締めの自論 • 2つの方法論を一人の人間が高いレベルで両立させるのは難しいのでは? ◦ 重なる部分はありつつも違う部分は多いと思っている ▪ 仕事の範囲:個としての仕事⇔チームとしての仕事 ▪ 想定アウトプット:ドキュメント(知見)⇔動くソフトウェア
▪ コミュニケーション:一人で考える時間も重要⇔取れば取るだけ良い ▪ スキルセット:分析・リサーチ⇔ソフトウェアエンジニアリング • チームとして2つの方法論をマスターしている状態にできていれば良さそう? ◦ コミュニケーションの断絶を防ぐため、縦割りではなく、横に割った形
36 ありがとうございました! • XPの価値の部分しか説明できていないため、残りの講演や原典を 参照していただければと思います。