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
ペパボ研究所がOneLoveな理由/Why pepaken is one love
Search
monochromegane
July 06, 2017
Technology
3
950
ペパボ研究所がOneLoveな理由/Why pepaken is one love
ペパボ研究所 やさしい発表会 - ペパボ研究所で事業を差別化する -
monochromegane
July 06, 2017
Tweet
Share
More Decks by monochromegane
See All by monochromegane
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
210
多様かつ継続的に変化する環境に適応する情報システム/thesis-defense-presentation
monochromegane
1
750
Online Nonstationary and Nonlinear Bandits with Recursive Weighted Gaussian Process
monochromegane
0
460
AIを前提とした体験の実現に向けて/toward_ai_based_experiences
monochromegane
2
800
Go言語でMac GPUプログラミング
monochromegane
1
520
Contextual and Nonstationary Multi-armed Bandits Using the Linear Gaussian State Space Model for the Meta-Recommender System
monochromegane
1
960
迅速な学習機構を用いて逐次適応性を損なうことなく非線形性を扱う文脈付き多腕バンディット手法/extreme_neural_linear_bandits
monochromegane
0
2.1k
再帰化への認知的転回/the-turn-to-recursive-system
monochromegane
0
770
仮想的な探索を用いて文脈や時間の経過による番狂わせにも迅速に追従する多腕バンディット手法/wi2_lkf_bandits
monochromegane
0
700
Other Decks in Technology
See All in Technology
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
2
180
困難を「一般解」で解く
fujiwara3
7
2.2k
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
530
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
tk3fftk
2
280
クラウド食堂とは?
hiyanger
0
130
MLflowはどのようにLLMOpsの課題を解決するのか
taka_aki
0
130
目標と時間軸 〜ベイビーステップでケイパビリティを高めよう〜
kakehashi
PRO
8
1k
完璧を捨てろ! “攻め”のQAがもたらすスピードと革新/20250306 Hiroki Hachisuka
shift_evolve
0
100
Log Analytics を使った実際の運用 - Sansan Data Hub での取り組み
sansantech
PRO
0
110
プロダクト開発者目線での Entra ID 活用
sansantech
PRO
0
120
スクラムというコンフォートゾーンから抜け出そう!プロジェクト全体に目を向けるインセプションデッキ / Inception Deck for seeing the whole project
takaking22
3
140
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
220
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
Designing for humans not robots
tammielis
250
25k
Building Adaptive Systems
keathley
40
2.4k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Optimizing for Happiness
mojombo
377
70k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Facilitating Awesome Meetings
lara
53
6.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
The Cult of Friendly URLs
andyhume
78
6.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
Embracing the Ebb and Flow
colly
84
4.6k
Transcript
- ϖύϘݚڀॴͰࣄۀΛࠩผԽ͢Δ - ࡾ༔հ / Pepabo R&D Institute, GMO Pepabo,
Inc. 2017.07.06 ϖύϘݚڀॴ ༏͍͠ൃදձ ϖύϘݚڀॴ͕OneLoveͳཧ༝
ϓϦϯγύϧΤϯδχΞ ࡾ ༔հ / @monochromegane 2 http://blog.monochromegane.com Yusuke Miyake ϖύϘݚڀॴ
ݚڀһ
1. ϖύϘݚڀॴͷϛογϣϯ 2. ϖύݚͱαʔϏεͷؔ 3. ݚڀ։ൃࣄྫͷհ 3 ࣍
1. ϖύϘݚڀॴͷϛογϣϯ
5 ϖύϘݚڀॴ(ུশʮϖύݚʯ)ɺࣄۀΛࠩผԽ Ͱ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹʮͳΊΒ͔ͳγες Ϝʯͱ͍͏ίϯηϓτͷԼͰݚڀ։ൃʹऔΓΉ ৫Ͱ͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/
ͳͥݚڀ͔
• ݚڀɺࣄ࣮ཧΛ໌Β͔ʹ͢Δʹ͋ͨΓɺ৽نੑɺ༗ޮੑɺ৴པੑΛ٬؍ తʹࣔ͞ͳ͚ΕͳΒͳ͍ • طଘख๏ͷௐࠪ(వ)ɺ뱌(ઈ)ɺจԽ(࿅)Λܦͯɺख๏ͷঢ՚(ൃ)ʹࢸΔ • ݚڀతΞϓϩʔνͷ෮ʹΑͬͯɺཧख๏͕લਐ͢Δ(Ԡ༻ɺܥ౷) • ٕज़͕ҰൠԽ͢Δ࣌ͰɺݚڀΛ௨ͯ͋͠Δख๏ʹ͓͚Δ৽نੑΛݗҾͰ͖ ΔଘࡏͱͳΔ͜ͱ͕ɺࠩผԽͰ͖Δٕज़Λ࣋ͭ͜ͱʹͭͳ͕Δ
7 ͳͥݚڀ͔ ࠩผԽͰ͖Δٕज़Λ࡞Γग़ͨ͢ΊʹɺݚڀతΞϓϩʔν͕༗ޮ
2. ϖύݚͱαʔϏεͷؔ
9 ΞΧσϛοΫͳਫ४ʹ͓͚Δ৽نੑɾ༗ޮੑɾ৴ པੑΛٻ͢ΔݚڀΛߦ͏ͱͱʹɺݚڀ։ൃ͠ ٕͨज़Λ࣮ࡍͷγεςϜͱ࣮ͯ͠ɾఏڙ͢Δ͜ ͱΛ௨ͯ͠ɺࣄۀͷʹߩݙ͠·͢ɻ ❝ ϖύϘݚڀॴʹ͍ͭͯ http://rand.pepabo.com/
10 ϖύݚͱαʔϏεͷؔ ࣄۀΛࠩผԽ͢ΔͨΊʹɺݚڀॴͱαʔϏεͷ࿈ܞ͕ඞਢ ݚڀ ։ൃ ӡ༻ ՝ͷڞ༗ ݚڀʹΑΔղܾ ಋೖ࣌ͷΤϯδχΞؒ࿈ܞ ݚڀ։ൃ݁ՌΛଈ࣌αʔϏεʹಋೖ͢ΔΈͱɺಋೖޙͷϑΟʔυόοΫʹΑΔαΠΫϧͷߴ
ԽʹΑͬͯɺݚڀ։ൃͷߴԽͱࣄۀͷࠩผԽʹͭͳ͛Δ
11
3. ݚڀ։ൃࣄྫͷհ
ಛநग़ثͷֶशͱߪങཤྺΛ ඞཁͱ͠ͳ͍ྨࣅը૾ʹΑΔ ؔ࿈ݕࡧγεςϜ
14 ՝ͷڞ༗ େ͖ͳ୯ҐͰͷ՝ʢઓུʣͷڞ༗ • minneʹ͓͍ͯɺ࡞ͱͷग़ձ͍ͷ֬Λ্͛Δ͜ͱ͕ઓུͷͻͱͭͱ্ͯ͠ ͛ΒΕ͍ͯΔɻݱࡏɺminneʹඦສͷ࡞͕ొ͞Ε͓ͯΓɺαʔϏε ར༻ऀͷ௨ৗͷߦಈͰશͯͷ࡞ΛݟͯճΔ͜ͱࠔͰ͋Δɻ • ඞવతʹαʔϏεར༻ऀ͕ߪೖ͍ͨ͠ͱࢥ͏࡞ͱग़ձ͏֬Լ͖ͯͯ͠ ͓Γɺ͜ͷ֬Λ্͛Δ͜ͱ͕ɺ͓ങ͍ମݧͷ࠷େԽͷͨΊʹٻΊΒΕ͍ͯ
Δɻ
• ճ༡ͷಋઢΛ૿͢ඞཁ͕͋ΔɻAmazonָఱͱ͍ͬͨECαΠτͰؔ࿈ ࡞Λఏࣔ͢Δ͜ͱͰͷݕ౼Λܧଓͤ͞Δճ༡͕͋ΓɺͦͷͨΊʹͳΜ Β͔ͷ؍Ͱؔ࿈͍ͯ͠Δ͜ͱΛγεςϜతʹѻ͑Δঢ়ଶʹ͢Δඞཁ͕͋Δ 15 ண؟ͱํࣜ • ௨ৗɺDB্ʹؚ·ΕΔใʢߏԽͨ͠ใʣʹΑͬͯಉҰࢹͰ͖Δͷ ʢminneͰݴ͑ಉ͡ΧςΰϦɺಉ͡৭ʣͳͲΛ༻͍Δ͕ɺ͜Ε·Ͱʹͳ͍ؔ ࿈࡞ͷಋઢΛ૿ͨ͢Ίɺ·ͩߏԽ͞Ε͍ͯͳ͍ใΛminneͰऔΓѻ
͑ΔΑ͏ʹ͍ͯ͘͠ɻ
• ߪങཤྺͷใ͕ෆཁͰྨ༻ͷՃใͱͯ͠Ͱͳ͘ɺৗʹઃఆ͞ΕΔ ը૾Λର • ಋೖઌͷECαΠτͷʹґଘ͠ͳֶ͍शෆཁͰ൚༻తͳֶशࡁΈωοτ ϫʔΫΛಛநग़ثͱͯ͠࠾༻ • ಛநग़ث͔ΒಘΒΕͨಛྔΛͱʹۙࣅۙ୳ࡧʹΑΓྨࣅը૾Λݕࡧ 16 ఏҊख๏
17
ಛྔม 18 Service Object Storage GCP image to data data
to feature vectorizer by Inception-v3 Annoy Workers • ͋Δ࣌·Ͱͷ࡞ը૾ҰཡΛಛྔʹม͢Δ • มͨ͠ಛྔҰཡΛۙࣅۙ୳ࡧσʔλϕʔεʹೖ͢Δ
• ۙࣅۙ୳ࡧσʔλϕʔεΛmruby-annoy + ngx_mrubyʹͯAPIԽ • ࡞ৄࡉʹྨࣅը૾Λ༻͍ͨؔ࿈࡞Λදࣔ͢Δ 19 ྨࣅը૾ݕࡧ Nyah mruby-annoy
on ngx_mruby products#show product_id nearest products CTR Analytics NNS ˞ۙࣅۙ୳ࡧ࣌ʹେ෦ͷΠϯσο ΫεͷΞΫηε͕ൃੜ͢ΔͨΊ࣮༻ తͳΛಘΔͨΊʹσʔλϕʔε ϑΝΠϧ͕શͯϖʔδΩϟογϡʹࡌ ΔαΠζͷϝϞϦ͕ඞཁ
ྨࣅը૾ʹΑΔؔ࿈࡞ݕࡧ 20
ྨࣅը૾ʹΑΔؔ࿈࡞ݕࡧ 21
ΫϦοΫͱίϯόʔδϣϯ 22 طଘ ఏҊ $53 $73
˞ఏҊख๏ʹΑΔબఆ͕ߦ͑ͳ͍߹ʹαʔϏεͷ ػձଛࣦΛආ͚ΔͨΊطଘख๏ʹΑΔબఆΛߦͬͯ ͍ΔͨΊݕূظؒதͷ֤ख๏ͷදׂࣔ߹طଘ ɺఏҊͰ͋ͬͨ ˞ίϯόʔδϣϯΫϦοΫʹର͢Δߪೖ͔ ΒٻΊͨ طଘ ఏҊ ૉࡐɾࡐྉγΣϧ ૉࡐɾࡐྉϦϘϯɾςʔϓ ૉࡐɾࡐྉϘλϯ ͵͍͙ΔΈɾਓܗ͋Έ͙ΔΈ χοτɾฤΈηʔλʔɾΧʔσΟΨϯ ఏҊख๏͕༗ޮͰ͋ͬͨΧςΰϦ
ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ 23 ࡾ ༔հ, দຊ ྄հ, ྗ ݈࣍, ܀ྛ ݈ଠ,
ಛநग़ثͷֶ शͱߪങཤྺΛඞཁͱ͠ͳ͍ྨࣅը૾ʹΑΔؔ࿈ݕࡧγ εςϜ, ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ, Vol.2017-IOT-37(4), pp.1-8, May 2017 http://id.nii.ac.jp/1001/00178892/
ϑΟʔυόοΫ
Gannoy Approximate nearest neighbor search server and dynamic index written
in Golang. https://github.com/monochromegane/gannoy
GannoyʹΑΔಈతΠϯσοΫεߋ৽+ྨࣅը૾ݕࡧ 26 Features Similar items Gannoy [2048]float64 query by http
find similar features mapping similar features to items response Deep CNN index Features [2048]float64 Deep CNN register by http
ΞΫηεස༧ଌʹجͮ͘ ԾαʔόͷܭըతΦʔτεέʔϦϯά
28 ՝ͷڞ༗
• ैྔ՝ۚͷԾαʔόӡ༻ʹ͓͍ͯ࠷దͳϦιʔεधཁͷ༧ଌίετΧοτʹͭͳ͕Δ • WebαʔϏεͷϦιʔεधཁϦΫΤετॲཧ݅ɺͭ·ΓΞΫηεͱ૬͕ؔ͋Δͣ • Ϧιʔεͷ૿ݮʹ͋Δఔͷ͕͔͔࣌ؒΔͨΊɺϦΞϧλΠϜͰͳ͘ҰఆִؒͰͷΞ Ϋηε༧ଌͰेͱߟ͑Δ 29 ண؟ͱํࣜ ΞΫηεΛ༧ଌͰ͖ΔΑ͏ʹͳΕ
ɺϐʔΫλΠϜʹ͋Θͤͨݟੵ Γ͔Β࣌ؒ͝ͱͷ࠷దʢͱࢥΘΕ ΔʣݟੵΓ͕ՄೳʹͳΔ
• WebαʔϏεશମͰҰఆ࣌ؒʹॲཧͨ͠ΞΫηεසͰ͋ΔεϧʔϓοτΛ ࢦඪͱ͠ɺӡ༻্ɺܦݧతʹѲ͞Ε͍ͯΔ҆ఆͯ͠ӡ༻ՄೳͳΛࢦ͢ • աڈͷΞΫηεසͱෆఆظͳมಈཁҼ͔Β༧ଌϞσϧΛಋ͘ • ༧ଌతͳߏมߋΛ՝ۚ୯ҐͰ͋Δ1࣌ؒΛ୯Ґʹߦ͏ 30 ఏҊख๏
31 ఏҊख๏
32 ΞΫηεස༧ଌϞσϧ ΞΫηεස༧ଌϞσϧ ֶशσʔλΫϥυαʔϏεͷඪ४՝ ۚ୯ҐͰ͋Δ࣌ؒΛཻͱ͢Δ 8FCαʔϏεͷ࠷ఆৗੑΛ֬ೝͰ͖Δ࣌ؒͷσʔλ Λೖྗͱ͠ɺ࣍ͷ࣌ؒͷΞΫηεස༧ଌΛग़ྗͱ͢Δ ˞࣌ؒޙҎ߱༧ଌΛؚΊͨظΛೖྗͱ͢Δ
33 Ծαʔόࢉग़ • ༧ଌͨ͠ΞΫηεසΛجʹɺWebαʔϏεΛ҆ఆͯ͠ӡ༻ Ͱ͖Δ҆ͱͳΔεϧʔϓοτΛ֬อͰ͖ΔΛٻΊΔ ༧ଌΞΫηεසʹର͠εϧʔϓοτΛ ֬อͰ͖ΔΛࢉग़͢Δ 5<ΞΫηεස> 1<༧ଌΞΫηεස࣌> -αʔόԼݶ
• ࠓճͷධՁͰɺରͷ WebαʔϏεʹ͓͍ͯཌ ͕ฏͷ߹ɺؒʹΞΫ ηεස͕૿Ճ͢Δͱ͍͏ ܦݧଇΛཁҼͱͯ͠Ճ͑ͨ 34 ඇఆৗͷཁҼͷՃຯʹΑΔ༧ଌਫ਼ͷධՁ
35 ඇఆৗͷཁҼͷՃຯʹΑΔ༧ଌਫ਼ͷධՁ ؒʹීஈͱҟͳΔͱͳΔಛੑΛଊ ͑ͨ༧ଌ͕ߦΘΕ͍ͯΔɻ
36 ܭըతΦʔτεέʔϦϯάͷධՁ ԾαʔόͷਪҠ ͋ͨΓͷαʔό૯ىಈ࣌ؒ"܈ ը૾্ Ͱ͔࣌ؒΒ࣌ؒʹɺ#܈ ը૾Լ Ͱ ͔࣌ؒΒ࣌ؒʹݮ
˞"܈ͷ࣌ࢉग़͕ԼݶΛԼ ճͬͨͨΊɺͷมಈݟΒΕͳ͍
37 ܭըతΦʔτεέʔϦϯάͷධՁ ΞΫηεසͷਪҠ ͋ͨΓΞΫηεසͷඪ४ภࠩ"܈ ը ૾্ Ͱ͔Βʹɺ#܈ ը ૾Լ Ͱ͔ΒʹมԽɻ
ख๏ద༻ޙʹεϧʔϓοτ͕҆ఆ͍ͯ͠Δ ͜ͱ͕Θ͔Δɻ ˞"܈ͷ૿ՃԼݶӡ༻ͱͳͬͨ࣌ؒଳ ͷ͋ͨΓͷεϧʔϓοτ૿ՃʹΑΔ ͷͱߟ͑ΒΕΔ
ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ 38 ࡾ ༔հ, দຊ ྄հ, ྗ ݈࣍, ܀ྛ ݈ଠ,
ΞΫηεස༧ ଌʹجͮ͘ԾαʔόͷܭըతΦʔτεέʔϦϯά, ݚڀใࠂ Πϯλʔωοτͱӡ༻ٕज़ʢIOTʣ, Vol.2017-IOT-38(13), pp.1-8, June 2017 http://id.nii.ac.jp/1001/00182375/
ݚڀ݁ՌͷαʔϏεಋೖ
1. ج൫ԽɺAPIԽʹΑΔݚڀڥͱαʔϏεͷγʔϜϨεͳ࿈ܞ 2. ίʔυཧɺόʔδϣϯཧʹΑΔݚڀͱӡ༻ͷฒߦ 40 ݚڀ݁ՌͷαʔϏεಋೖ ݚڀ݁ՌͷαʔϏεಋೖଈ͔࣌ͭશࣾల։Ͱ͖Δ͜ͱ͕·͍͠
1. ϩάDBͳͲͷαʔϏεࢿ࢈ͱ࿈ܞͰ͖Δ 2. ൺֱత༰қʹϞσϧͷߏஙͱࢼߦ͕ߦ͑Δ 3. ֶश݁ՌΛར༻͢ΔͨΊͷखஈͱͯ͠APIΛఏڙ͢Δ 1. ֶश݁ՌͷϩʔΧϧར༻͕Ͱ͖Δͱͳ͓Α͍ 4. ্هͷΈ͕εέʔϥϒϧͰ͋Δ͜ͱ
41 ػցֶशج൫ʹٻΊΒΕΔͷ
1. ೖग़ྗ͕Cloud Storageܦ༝ 2. ܇࿅ϓϩάϥϜͱͯ͠TensorFlowΛ࠾༻ 3. ΦϯϥΠϯ༧ଌαʔϏεʹΑΓϞσϧͷAPIԽ 1. ֶश݁ՌCloud StorageʹอଘɺϩʔΧϧͰͷར༻
4. ࢄܕͷτϨʔχϯάΠϯϑϥͱෛՙࢄαʔϏεͱͷ࿈ܞ 42 Google Cloud ML EngineͰߟ͑Δ ※ ݕ౼ʹؔ͢Δৄࡉ: http://rand.pepabo.com/article/2017/01/18/pepabo-ml-platform-and-workflow/
StarChart StarChart is a tool to manage Google Cloud Machine
Learning training programs and model versions https://github.com/monochromegane/starchart
• όʔδϣϯཧͷସʹ͓͚Δஅج४ͱͳΔ܇࿅ϓϩάϥϜɺύϥϝλɺδϣ ϒใ·ͰؚΊͯίʔυͰཧ • ֶश࣌ͷδϣϒIDCloud Storageͷύεɺόʔδϣϯʹඥͮ͘ύϥϝλใ ͷऔಘʹ·ͭΘΔCloud MLͷࡉ͔ͳ͍উखվળ 44 StarChart
·ͱΊ
• ϖύݚͱαʔϏεͰେ͖ͳ୯ҐͰͷ՝ͷڞ༗Λܧଓ͢Δ • ݚڀ݁ՌͷಋೖͱϑΟʔυόοΫΛߴʹ͢Δ͜ͱ͕ࣄۀͷࠩผԽʹͭͳ͕Δ • ϖύݚݚڀ݁ՌΛଈ͔࣌ͭશࣾͰར༻Ͱ͖Δج൫Λ • αʔϏεಋೖɺӡ༻࣌ͷΤϯδχΞؒ࿈ܞΛ 46 ·ͱΊ
͍·ΑΓʮΈΜͳʯͷ෯Λ͛ɺͦͷʮΈΜͳʯʹରͯؔ͠৺Λ͍࣋ͬͯ͘ One Love ❝ http://blog.kentarok.org/entry/2016/12/21/002537
ݚڀһɺੵۃతʹืूதʂ http://rand.pepabo.com/
• ϖύϘݚڀॴ • http://rand.pepabo.com/ • ಛநग़ثͷֶशͱߪങཤྺΛඞཁͱ͠ͳ͍ྨࣅը૾ʹΑΔؔ࿈ݕࡧγεςϜ • http://rand.pepabo.com/article/2017/06/19/iot37-miyakey/ • ΞΫηεස༧ଌʹجͮ͘ԾαʔόͷܭըతΦʔτεέʔϦϯά
• http://rand.pepabo.com/article/2017/06/28/iot38-miyakey/ • Google Cloud ML Λ༻͍ͨػցֶशج൫ͷߏஙͱӡ༻ • https://speakerdeck.com/monochromegane/pepabo-ml-infrastructure-starchart • 2017ͷςʔϚ: One Love • http://blog.kentarok.org/entry/2016/12/21/002537 48 ࢀߟ