Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
リブセンスでのMLシステム開発・運用と 研究・開発アシスタントの取り組み
Search
Livesense Inc.
PRO
August 02, 2019
Technology
2.7k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リブセンスでのMLシステム開発・運用と 研究・開発アシスタントの取り組み
2019/08/02
これからの開発チームのあり方を考える @ Sansan Innovation Lab
Livesense Inc.
PRO
August 02, 2019
More Decks by Livesense Inc.
See All by Livesense Inc.
新規商品の開発におけるAIの活用 〜挑戦は人間にしかできない〜
livesense
PRO
0
5
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
150
Rubyはただの⾔語に⾮ず
livesense
PRO
0
580
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
170
27新卒_総合職採用_会社説明資料
livesense
PRO
0
7.6k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
600
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
730
Other Decks in Technology
See All in Technology
野蛮なアジャイル [サイボウズ発!]組織の常識を覆した反骨のスクラム実践記 / Barbaric Agile - Enterprise Agile Study Group
ama_ch
0
140
「私が一番顧客に詳しい」を捨てる~ 全員が一次情報に精通する開発チームをつくり、PMが次のボトルネックへ染み出すまで
kaminashi
3
2.2k
[EMNLP26] RIGEL: Self-Distilled Score Adaptation for Image and Video Captioning Evaluation
keio_smilab
PRO
0
120
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
310
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
170
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
3
1.1k
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
230
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
130
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
240
Practical ransomware detection on macOS (via maths, not AI)
patrickwardle
0
110
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
230
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
960
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Visualization
eitanlees
153
17k
Making the Leap to Tech Lead
cromwellryan
135
10k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
KATA
mclloyd
PRO
35
16k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Into the Great Unknown - MozCon
thekraken
41
2.8k
The SEO identity crisis: Don't let AI make you average
varn
0
590
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
530
Discover your Explorer Soul
emna__ayadi
2
1.3k
Transcript
ϦϒηϯεͰͷMLγεςϜ։ൃɾӡ༻ͱ ݚڀɾ։ൃΞγελϯτͷऔΓΈ Shotaro Tanaka / @yubessy / Ϧϒηϯε ͜Ε͔Βͷ։ൃνʔϜͷ͋ΓํΛߟ͑Δ @
Sansan Innovation Lab
ࣗݾհ ాத ଠ / @yubessy • גࣜձࣾϦϒηϯε • ςΫϊϩδΧϧϚʔέςΟϯά෦ σʔλϓϥοτϑΥʔϜάϧʔϓ
• ࣄ • Ҏલ: σʔλੳج൫ (Livesense Analytics) ͷ։ൃɾӡ༻ • ݱࡏ: ػցֶशج൫ (Livesense Brain) ͷ։ൃɾӡ༻ • ژΦϑΟεۈ • ݚڀɾ։ൃΞγελϯτͷϝϯλʔ
͢͜ͱ • ػցֶशγεςϜͱͦͷ࣮ߦج൫ͷ։ൃɾӡ༻Λ͍ͯ͠ΔνʔϜ • ژΦϑΟεத৺ʹݚڀɾ։ൃΞγελϯτͱֶͯ͠ੜΞϧόΠτΛ࠾༻ • ͳͥΞγελϯτͷΈ͕͋Δͷ͔ɾͲΜͳࣄΛ͍ͯ͠Δ͔ • ۀ্ͲΜͳোน͕ଘࡏ͢Δ͔ɾͦΕΛͲ͏ࠀ͍ͯ͠Δ͔
Ϧϒηϯεͷڥ
ӡӦαʔϏε
৫ߏ • ࣄۀ෦ • ΞϧόΠτࣄۀ෦ (ϚοϋόΠτ) • స৬ձٞࣄۀ෦ (స৬ձٞ) •
ෆಈ࢈Ϣχοτ (Door ି, IESHIL) • ... • ԣஅ৫ • ςΫϊϩδΧϧϚʔέςΟϯά෦ • σʔλϓϥοτϑΥʔϜάϧʔϓ ← MLؔ࿈ͷνʔϜ͜͜ʹॴଐ • σʔλϚʔέςΟϯάάϧʔϓ • ΠϯϑϥετϥΫνϟάϧʔϓ • ωΠςΟϒΞϓϦάϧʔϓ
MLνʔϜɾMLج൫νʔϜ ࣾһ • MLΤϯδχΞ: 2໊ • MLج൫ΤϯδχΞ: 2໊ • શʹۀ͍ͯ͠ΔΘ͚Ͱͳ͘ɺॏͳΔ෦͋Δ
ΞϧόΠτ = ݚڀɾ։ൃΞγελϯτ • ژΦϑΟε: 4໊ • ౦ژΦϑΟε: 1໊
αʔϏεͱMLγεςϜ MLɾMLج൫νʔϜ͕֤αʔϏεʹ༷ʑͳMLγεςϜΛఏڙ • ϨίϝϯυΤϯδϯ → αΠτɾΞϓϦͳͲͰͷٻਓਪનʹར༻ • Ԡืɾ࠾༻ͳͲͷਪఆɾ༧ଌϞσϧ → ࠂग़ߘͳͲʹར༻
• όϯσΟοτπʔϧ → A/BςετͷޮԽʹར༻ ෳͷMLγεςϜΛগਓͷνʔϜͰ։ൃɾӡ༻Ͱ͖ΔΑ͏ • MLγεςϜΛߏཁૉ͝ͱʹղ͠ૄ݁߹Խ • ڞ௨ͷΠϯϑϥͰෳγεςϜΛӡ༻ ৄࡉ ࣄۀԣஅ৫ͰͷMLγεςϜ։ൃɾӡ༻ͱج൫ઃܭ Ͱ
MLγεςϜͷߏ MLγεςϜͷߏཁૉΛׂ͠ʮίϯϙʔωϯτʯͱݺΜͰ͍Δ • ਪનΞϧΰϦζϜ, લॲཧ, ݁ՌϏϡʔϫ ͳͲ͕֤ʑ୯Ұίϯϙʔωϯτ • ̍ίϯϙʔωϯτ =
̍ϨϙδτϦ = ̍ίϯςφΠϝʔδ ͷߏͰ౷Ұ ֤ίϯϙʔωϯτຖʹ ࣮ ʙ ςετ ʙ ϦϦʔε ͷαΠΫϧ͕݁ • ίϯϙʔωϯτຖʹαϯϓϧσʔλࣗಈςετΛඋ • ίϯϙʔωϯτͷಈ࡞ݕূʹඞཁͳͷ docker run ͚ͩ ٕज़໘ Argo Workflow ʹΑΔػցֶशϫʔΫϑϩʔཧ ࢀর
ݚڀɾ։ൃΞγελϯτ
֓ཁ ݚڀɾ։ൃΞγελϯτʢژΦϑΟεʣืूཁ߲ • ػցֶशɾσʔλΤϯδχΞϦϯά͓ΑͼͦΕʹਵ͢Δݚڀɾ։ൃ • िؒʙϲ݄୯ҐͷϛχϓϩδΣΫτܗࣜ • جૅతͳΤϯδχΞϦϯάεΩϧ +α Ͱ׆͔ͤΔٕज़͕͋Δ͜ͱ
• ʢવͳ͕Βʣֶۀ༏ઌ ≠ ৽ଔ࠾༻ • ͋͘·ͰۀΛ௨ͯ͡νʔϜɾαʔϏεʹߩݙ͢Δͷ͕త • ࠾༻తͰͷֶੜͷғ͍ࠐΈ͠ͳ͍ʢͪΖΜೖࣾͯ͘͠ΕͨΒخ͍͠ʣ
ۀ༰ ʮՌ͕ग़Δ͔Θ͔Βͳ͍͕ɺઓ͢ΔՁ͕͋Δʯ͜ͱ • ͬͯΈ͍͕ͨͯ͘͠खΛ͚ΒΕ͍ͯͳ͍ٕज़ݕূɾσʔλੳ • MLγεςϜͷิॿπʔϧʢσʔλ֬ೝɾϝτϦΫεऩूʣͷ։ൃ ۀܗଶ্ෆ͖ͳࣄආ͚Δ • ظݶ͕͋Δɾۓٸੑ͕ߴ͍ •
ࣦഊ࣌ͷϦεΫ͕େ͖͍ • ਂ͍υϝΠϯࣝɾଞ෦ॺͱͷີͳ࿈ܞΛཁ͢Δ
ྫ: Julia ͷฒྻܭࢉػೳͷݕূɾಋೖ • ࣾͰ Julia ͰϨίϝϯυΞϧΰϦζϜΛ࣮͍ͯ͠Δ • ϓϩηεɾεϨουฒྻػೳʹΑΔߴԽΛݕূ࣮͠ࡍʹಋೖ
ྫ: ΫνίϛͷผϞσϧͷݕূ • ΫνίϛαΠτͷҙຯෆ໌ͳߘͳͲΛࣗಈఆ͢ΔϞσϧΛ࡞ͬͯΈΔ • ಛྔɾΞϧΰϦζϜͷௐͰ࠶ݱɾద߹ΛͲͷఔ্͛ΒΕΔ͔ݕূ
ྫ: Ϩίϝϯυͷ݁ՌϏϡʔΞͷվળ • Ϩίϝϯυͷ݁ՌΛ֬ೝ͢Δ؆୯ͳ Web ΞϓϦΛ։ൃ • ΞϧΰϦζϜʹΑΔϥϯΩϯάมԽͷൺֱػೳͳͲΛࡌ
Ξγελϯτۀʹ͓͚Δ੍ ࣌ؒ ͷ੍ • ීஈ͔Βतۀɾݚڀ߹ͷग़ୀࣾ࣌ࠁมߋதൈ͚͕ൃੜ • ࣌ظʹΑͬͯࢼݧจࣥචʹΑΔظෆࡏ͕ൃੜ ۀൣғ ͷ੍ •
εΩϧ͕ݚڀدΓͰҰൠతͳ Web ։ൃʹෆ׳Εͳ͜ͱ • ݖݶ্ϝϯλʔʹ͔͠Ͱ͖ͳ͍࡞ۀ͕Ұఆൃੜ → ͦΕͧΕͷ੍ʹͲ͏ରԠ͍ͯ͠Δ͔Λհ
࣌ؒͷ੍
࣌ؒͷ੍ ීஈ͔Βतۀɾݚڀ߹ͷग़ୀࣾ࣌ࠁมߋதൈ͚͕ൃੜ • ͑Δ͕࣌ؒগͳ͍ͷͰࢦ͕ࣔͪൃੜ͢Δͱޮ͕མͪΔ • ࣾһͱಉ࣌ؒ࣠͡ͰಉظతʹࣄΛਐΊΔͷ͕͍͠ ࣌ظʹΑͬͯࢼݧจࣥචʹΑΔظෆࡏ͕ൃੜ • ෆࡏதͷঢ়گมԽʹϓϩδΣΫτ͕ࠨӈ͞ΕΔͱՌ͕ແବʹͳΔ͓ͦΕ •
ظ͕ۭؒ͘ͱϝϯλʔԿΛ͍͔ͬͯͨΕ͕ͪ → ϓϩδΣΫτཧΛ֤ͯࣗ͠ͷϖʔεͰਐΊΒΕΔΑ͏ʹ
ϛχϓϩδΣΫτܗࣜͰͷ࣮ࢪ ݸผλεΫͰͳ͘ϓϩδΣΫτͱͯ͠എܠɾΰʔϧΛ໌จԽ • ͜Ε͕Ͱ͖ΔͱνʔϜαʔϏεʹͱͬͯԿ͕خ͍͠ͷ͔ • ͲΜͳΞτϓοτ͕Ͱ͖Εޭͳͷ͔ ஞҰࡉ͔͍ࢦࣔΛ͠ͳͯ͋͘Δఔ֤ࣗͷஅͰਐΊΒΕΔΑ͏ʹ • ̎ʙ̏ఔࢦ͕ࣔͪൃੜ͠ͳ͍͜ͱΛ҆ʹ •
िʹ̍ճϖʔεͰৼΓฦΓΛ࣮ࢪ
# ϓϩδΣΫτ: Julia + Docker ͷฒྻԽػߏͷݕূɾಋೖ ## എܠ Data Platform
άϧʔϓͰ֤αʔϏεͰར༻͢ΔϨίϝϯυΞϧΰϦζϜΛ Julia Ͱ࣮͠ Docker ίϯςφͱͯ͠ӡ༻͍ͯ͠·͢ɻ https://github.com/livesense-inc/brain.recommender Matrix Factorization ͷΑ͏ͳΞϧΰϦζϜɺֶश༧ଌͷҰ෦ͷॲཧΛฒྻԽ͢Δ͜ͱ͕ՄೳͰ͢ɻ ͜ͷ͏ͪੵL2ϊϧϜʹΑΔϕΫτϧ୳ࡧʹ͍ͭͯ faiss Λར༻Ͱ͖·͕͢ɺϥΠϒϥϦ͕ͳ͍Α͏ͳέʔεͰࣗͰॲཧΛ࣮͢Δඞཁ͕͋Γ·͢ɻ Julia ʹ༷ʑͳฒྻԽػߏ͕༻ҙ͞Ε͍ͯΔͨΊɺͦΕΒΛͬͯΞϧΰϦζϜΛߴԽͰ͖Εɺ։ൃɾӡ༻ͷޮΛ্Ͱ͖·͢ɻ ͦ͜Ͱࠓճ Julia ͷฒྻԽػߏͷௐࠪͱɺͦΕΛ༻͍ͨߴԽͷ࣮ΛߦͬͯΒ͍·͢ɻ ## ΰʔϧ - Julia + Docker Ͱར༻ՄೳͳฒྻԽػߏΛௐࠪ͠Ϩϙʔτʹ·ͱΊΔ - brain.recommender ͷ prediction ΛฒྻԽʹΑΓߴԽ͢Δ ## ڥ - Julia όʔδϣϯ: 1.0.2 - ίϯςφͷϕʔεΠϝʔδ: julia:1.0.2 (https://hub.docker.com/r/library/julia/) ...
ΞτϓοτΛஈ֊తʹ ϓϩδΣΫτதʹෳճͷνΣοΫϙΠϯτΛઃ͚Δ • ։ൃܥϓϩδΣΫτͰϦϦʔεΛԿஈ֊͔ʹ͚Δ • ੳɾݕূܥϓϩδΣΫτͰෳճϨϙʔτΛ࡞ ϓϩδΣΫτ͕தஅͯͦ͠ͷ࣌·ͰͷՌ͕׆͖ΔΑ͏ʹ͢Δ • ͍͖ͳΓػೳ࣮ʹೖΔͷͰͳٕ͘ज़ݕূ͔Β࢝ΊΔ •
ݕূٕͨ͠ज़ͷಋೖ·ͰͰ͖ͳͯ͘ݟ͕ΔΑ͏ʹ
## εςοϓ ### 1 - ฒྻԽػߏͷಈ࡞ݕূ ҎԼͷ Julia ެࣜυΩϡϝϯτʹهࡌ͞ΕͨฒྻԽػߏ͕ɺDocker ίϯςφͰಈ࡞͢Δ͔֬ೝ͍ͯͩ͘͠͞ɻ
https://docs.julialang.org/en/v1/manual/parallel-computing/index.html#Multi-Threading-(Experimental)-1 ࠓճͷݕূରϚϧνεϨου·ͨϚϧνϓϩηεʹΑΔฒྻԽͰ͢ (άϦʔϯεϨου, ΫϥελίϯϐϡʔςΟϯάର֎Ͱ͢)ɻ ### 2 - ฒྻԽػߏͷύϑΥʔϚϯεݕূ 1Ͱݕূͨ͠ॲཧͷ͏ͪಛʹ SharedArrays, SparseArrays ͷ read/write ʹ͍ͭͯɺҎԼͷΑ͏ʹύϑΥʔϚϯεݕূΛߦ͍ͬͯͩ͘͞ɻ ... ·ͨ2ͰͷฒྻԽରͷؔͷॻ͖ํͱͯ͠ɺ࣍ͷΑ͏ͳҧ͍ʹΑΓ݁Ռʹ͕ࠩग़Δ͔Λௐ͍ͯͩ͘͞ (ฒྻॲཧͰ࠷దԽϚΫϩ͕ޮ͔͘ΛௐΔͨΊ)ɻ ... ### 3 - brain.recommender ͷฒྻԽ 1, 2 ͷݕূ݁ՌΛͱʹ brain.recommender ͷ࣍ͷॲཧΛฒྻԽ͍ͯͩ͘͠͞ɻ prediction ͰͷϢʔβɾΞΠςϜຖͷείΞܭࢉ: ...
ۀൣғͷ੍
ۀൣғͷ੍ εΩϧ͕ݚڀدΓͰҰൠతͳ Web ։ൃʹෆ׳Εͳ͜ͱ • ෳࡶͳ Git ͷϒϥϯνӡ༻ʹ׳Ε͍ͯͳ͍ • Python,
Jupyter ݚڀͳͲͰ͏͕ Web ΞϓϦ։ൃະܦݧ ݖݶ্ϝϯλʔʹ͔͠Ͱ͖ͳ͍࡞ۀ͕Ұఆൃੜ • ຊ൪ڥͰͷಈ࡞֬ೝϦϦʔεͰ͖ͳ͍ • ։ൃऀͱӡ༻ऀ͕ҟͳΔͱൃੜ࣌ͷରԠʹखؒऔΔ → γεςϜߏɾϦϦʔεϑϩʔͷͰোนΛখ͘͢͞Δ
࠶ܝ: MLγεςϜͷߏ MLγεςϜͷߏཁૉΛׂ͠ʮίϯϙʔωϯτʯͱݺΜͰ͍Δ • ਪનΞϧΰϦζϜ, લॲཧ, ݁ՌϏϡʔϫ ͳͲ͕֤ʑ୯Ұίϯϙʔωϯτ • ̍ίϯϙʔωϯτ
= ̍ϨϙδτϦ = ̍ίϯςφΠϝʔδ ͷߏͰ౷Ұ ֤ίϯϙʔωϯτຖʹ ࣮ ʙ ςετ ʙ ϦϦʔε ͷαΠΫϧ͕݁ • ίϯϙʔωϯτຖʹαϯϓϧσʔλࣗಈςετΛඋ • ίϯϙʔωϯτͷಈ࡞ݕূʹඞཁͳͷ docker run ͚ͩ
ίϯϙʔωϯτ୯ҐͰͷվળ ̍ϓϩδΣΫτͰ̍ίϯϙʔωϯτΛվળ → ඞཁεΩϧΛݶఆ • ֤ࣗͷಘҙڵຯʹԠͯ͡ϓϩδΣΫτΛͤΔ • ະܦݧͷٕज़ͰΩϟονΞοϓίετΛͳΔ͘খ͘͞ ̍ϨϙδτϦ͋ͨΓͷ։ൃਓΛݮΒͯ͠ఔΛ୯७Խ •
Git flow ͷΑ͏ͳࡶͳϒϥϯνӡ༻ඞཁͳ͍ • ίϯϑϦΫτ͕ൃੜ͠ʹ͘͘ɺൃੜͯ͠ղܾ͕༰қʹ
֤ϨϙδτϦͷϓϧϦΫ • Ξγελϯτ / ओͳίϯϙʔωϯτ ຖͷϓϧϦΫͷ • ਓʹΑͬͯѻ͏ίϯϙʔωϯτ͕ࣗવʹ͔Ε͍ͯΔ
ϦϦʔεͷলྗԽɾ҆શԽ ϦϦʔεϑϩʔΛ̎ஈ֊ʹ͚ɺϝϯλʔίϯϙʔωϯτར༻ͷஅͷΈ 1. Ξγελϯτ͕ίϯϙʔωϯτʹػೳՃ 2. ϝϯλʔ͕γεςϜͰར༻͢ΔίϯϙʔωϯτόʔδϣϯΛΓସ͑ ϦϦʔεલޙͰ༷ʑͳ҆શࡦΛߨ͍ͯ͡Δ • ։ൃڥͰΞγελϯτ͕γεςϜͷಈ࡞֬ೝ·Ͱߦ͑Δ •
ඞཁʹԠͯ͡ΧφϦΞϦϦʔεɾA/BςετͰӨڹΛہॴԽ • ສҰͷΓ͠όʔδϣϯΛ͚ͩ͢ → ରԠͷ༨༟͕ੜ·ΕΔ
ϦϦʔεϑϩʔ
·ͱΊͱFAQ
·ͱΊ • MLγεςϜͷ։ൃɾӡ༻νʔϜͰݚڀɾ։ൃΞγελϯτΛ࠾༻ • ֶੜΞϧόΠτͷۀʹ͍͔ͭ͘ͷ੍͕͋Δ • ࣌ؒͷ੍ • ۀൣғͷ੍ •
੍Λ͏·͘ѻ͏Λͯ͠νʔϜͷੜ࢈ੑΛ্ • ࣌ؒͷ੍ → ϓϩδΣΫτཧΛ • ۀൣғͷ੍ → γεςϜߏɾϦϦʔεϑϩʔΛ
FAQ • ΞγελϯτͷͨΊʹؤுͬͯΈΛ࡞ΓࠐΉʁ • ΞγελϯτʹݶΒͣ৽نࢀೖোนΛԼ͛Δ͜ͱʹҙຯ͕͋Δ • Ξγελϯτ͕͍ͳ͘ͳͬͨΒͲ͏ͳΔʁ • ৽ػೳ։ൃٕज़తνϟϨϯδʹऔΓΊΔػձ͕ݮΔ •
ϝϯλʔͱͯ͠Ұ൪େมͳ͜ͱʁ • ίϯςΩετεΠον • ϝϯλʔͷࣄͬͯͲ͏ʁ • ૉʹָ͍͠