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
Rustで作る機械学習を用いた画像クロッピングシステム
Search
johshisha
December 19, 2019
2
2.7k
Rustで作る機械学習を用いた画像クロッピングシステム
ML@Loft #9. Deep Learning フレームワークと推論
https://ml-loft.connpass.com/event/157785/
johshisha
December 19, 2019
Tweet
Share
More Decks by johshisha
See All by johshisha
Cookpad Summer Internship 2022 15-day Tech Course ~サーバーサイド編~
johshisha
0
4.2k
レシピの画像検索
johshisha
1
1.1k
機械学習を用いた見栄えのいい料理画像抽出をサービスに活かすための取り組み
johshisha
0
4.5k
サービスに寄り添った研究開発部にするための取り組み
johshisha
0
590
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
118
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
What's in a price? How to price your products and services
michaelherold
246
12k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Building Adaptive Systems
keathley
44
2.8k
GitHub's CSS Performance
jonrohan
1032
470k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to Ace a Technical Interview
jacobian
280
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Six Lessons from altMBA
skipperchong
29
4.1k
Building an army of robots
kneath
306
46k
Transcript
3VTUͰ࡞Δ ػցֶशΛ༻͍ͨ ը૾ΫϩοϐϯάγεςϜ 1 .-!-PGU %FFQ-FBSOJOHϑϨʔϜϫʔΫͱਪ ࡾᑍஐ࢙
ࡾᑍஐ࢙ @johshisha wΫοΫύουגࣜձࣾ w৽ଔೖࣾ wݚڀ։ൃ෦ wͬͯΔ͜ͱ wϨγϐͷը૾ݕࡧ wࠂ৴࠷దԽ wը૾ͷݟӫ͑ਪఆ 2
3 ͱࢥ͍·͔͢ʁ ඒຯͦ͠͏ ࡞Γ͍ͨ Ͳ͕ͬͪ ྆ํࡾᑍ͕ࡱӨ ᶃ ᶄ
4 ͱࢥ͍·͔͢ʁ ඒຯͦ͠͏ ࡞Γ͍ͨ Ͳ͕ͬͪ ྆ํࡾᑍ͕ࡱӨ ᶃ ᶄ Ϋϩοϐϯά ඒຯͦ͠͏ɾ࡞Γ͍ͨʹ
༩͑ΔӨڹ͕େ͖͍
ࠓͷ 5 ը૾ͷΫϩοϐϯάΛ ػցֶशΛ͍͍ͬͯײ͡ʹ͢Δ γεςϜΛ࡞ͬͨ
ࠓͷ 6 ը૾ͷΫϩοϐϯάΛ ػցֶशΛ͍͍ͬͯײ͡ʹ͢Δ γεςϜΛ࡞ͬͨ ͍͍ײ͡ʹ͢ΔͷΊͪΌͪ͘Όେม
7 εϧʔϓοτ SQT ڐ༰ϨΠςϯγʔ NTSFR ը૾Λ৴͢Δͷ͍ͨΜ αΠτʹͨ͘͞Μͷը૾͕͋Δ ͨ͘͞ΜͷϢʔβ͕ར༻͍ͯ͠Δ ϨΠςϯγʔɾߴεϧʔϓοτੑ͕ඞਢ ػցֶशΛ༻͍ͨγεςϜͰ
ϨΠςϯγʔɾߴεϧʔϓοτΛ࣮ݱ͢ΔͨΊͷ γεςϜઃܭઓུʹ͍ͭͯ͠·͢
എܠ·ͱΊ • ը૾৴γεςϜ͢Ͱʹ͋Δ͕վળ͋Γ • Ϩγϐը૾ͷ༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ • ը૾αʔϏεར༻ऀ༩͑Δҹ͕େ͖͍ͨΊԿͱ͔͍ͨ͠ • ػցֶशΛͬͯ࠷దͳը૾ΫϩοϐϯάΛ࣮ݱ͍ͨ͠ •
ྉཧͷॴΛݕग़ͯ͠ΫϩοϐϯάΛߦ͑ɼΑΓΑ͍ը૾ΛఏڙͰ͖Δ • ՝: ը૾৴γεςϜϨΠςϯγʔɾߴεϧʔϓοτੑ͕ඞਢ • ࠷େ 600 req / secɼͯ͘(95ύʔηϯλΠϧͰ) 200 ms / req ͘Β͍ 8 ˞QSPEVDUJPOʹಋೖؒʹ߹͍·ͤΜͰͨ͠ ಋೖͯ͠ύϑΥʔϚϯεͷ͔ͨͬͨ͠ͷͰ͕ؒ͢ʹ߹͍·ͤΜͰͨ͠ γεςϜઃܭઓུΛॏతʹ͠·͢
γεςϜઃܭ͢Δલʹௐͨࣈ 9 ը૾ೖྗˠΫϩοϐϯάྖҬग़ྗɿNT QZUIPO खݩͷ.#1Ͱ 4͔Βը૾Λऔͬͯ͘ΔɿNTʢ&$্Ͱʣ ΫϩοϐϯάྖҬͷਪɿNT ݁ߏॏ͍ͷͰී௨ʹॲཧͯͨ͠Βؒʹ߹Θͳ͍
10 όονͰܭࢉ͓͚͍͍ͯ͠ͷͰʁ
৽ػೳͷϓϩτλΠϐϯά 11 ͪΐͬͱࢼ͍ͨ͠ͱ͖ʹରԠͰ͖ͳ͍ ৽6*ࢼͨ͢ͼʹόονΒͤΔɽɽʁ
12 ࢼߦࡨޡʹରԠͰ͖ͳ͍͚Ͳ ຊ൪Ͱ͏αΠζࣄલʹΕΔͷͰʁ
ࣄલܭࢉ͢ΔαΠζͷཧ 13 YͷϨγϐը૾Λ ͍͍ͨͰ͢ Yͷͭ͘ΕΆը૾Λ ͍͍ͨͰ͢ Yͷࣄલܭࢉͬͯ ͏ऴΘͬͯΔʁ Yͷࣄલܭࢉґཔ Εͯͨʂʂʂ
Εͳ͍Α͏ʹ αʔϏεͷ͍ͬͯΔαΠζΈͯ ࣗಈͰґཔ͛ΔΈ࡞Γ·ͨ͠ Ϧιʔε͝ͱʹҟͳΔαΠζ ܭࢉऴ͍ྃͯ͠Δ͔ͷ֬ೝ ෳࡶʹͳΔपลαʔϏε
ࣄલܭࢉ͢ΔαΠζͷཧ 14 YͷϨγϐը૾Λ ͍͍ͨͰ͢ Yͷͭ͘ΕΆը૾Λ ͍͍ͨͰ͢ Yͷࣄલܭࢉͬͯ ͏ऴΘͬͯΔʁ Yͷࣄલܭࢉґཔ Εͯͨʂʂʂ
Εͳ͍Α͏ʹ αʔϏεͷ͍ͬͯΔαΠζΈͯ ࣗಈͰґཔ͛ΔΈ࡞Γ·ͨ͠ Ϧιʔε͝ͱʹҟͳΔαΠζ ܭࢉऴ͍ྃͯ͠Δ͔ͷ֬ೝ ෳࡶʹͳΔपลαʔϏε αΠζͷཧߟ͑Δ͜ͱ͕ଟ͍ Γͨ͘ͳ͍
• ը૾৴γεςϜ͢Ͱʹ͋Δ͕վળ͋Γ • Ϩγϐը૾ͷ༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ • ը૾αʔϏεར༻ऀ༩͑Δҹ͕େ͖͍ͨΊԿͱ͔͍ͨ͠ • ػցֶशΛͬͯ࠷దͳը૾ΫϩοϐϯάΛ࣮ݱ͍ͨ͠ • ྉཧͷॴΛݕग़ͯ͠ΫϩοϐϯάΛߦ͑ɼΑΓΑ͍ը૾ΛఏڙͰ͖Δ
• ՝: ը૾৴γεςϜϨΠςϯγʔɾߴεϧʔϓοτੑ͕ඞਢ • ࠷େ 600 req / secɼͯ͘(95ύʔηϯλΠϧͰ) 200 ms / req ͘Β͍ • ཧ: αΠζͷཧΛͨ͘͠ͳ͍ 15 എܠ·ͱΊʢ࠶ʣ Ͳ͏࣮ݱ͢Δ͔
ϨΠςϯγʔɾߴεϧʔϓοτͳ ΞϓϦέʔγϣϯΛߏங͢Δ 16 1ZUIPOΛબ͢Δ͔ʁ ػցֶशͷ͜ͱҰ୴ஔ͍͓͍ͯͯ
ϨΠςϯγʔɾߴεϧʔϓοτΛ 1ZUIPOͰ࣮ݱ͢Δͷ͍͠ w ͍ʢ͜ͱ͕ଟ͍ʣ w ύϑΥʔϚϯεͷνϡʔχϯά͕େม w ϝϞϦίϐʔ͕Ͳ͜Ͱى͍ͬͯ͜Δͷ͔Ѳͮ͠Β͍ w ϚϧνεϨουॲཧ͕͍
w (*- άϩʔόϧΠϯλϓϦλϩοΫ w ؆୯ʹݴ͏ͱɼҰͭͷεϨουͰ͔͠$16ॲཧ͕࣮ߦ͞Εͳ͍ 17
3VTU 18 ҆શ ͍ ฒߦੑ Τί γεςϜ -JGFUJNF 0XOFSTIJQʹΑͬͯϝϞϦΛཧ $$
ʹඖఢ͢Δ͞ ϚϧνεϨουΛߟྀͨ͠ݴޠઃܭ ศརͳΫϨʔτ ϥΠϒϥϦ ͕ଟఏڙ͞Ε͍ͯΔ QZUIPO΄ͲͰͳ͍͕
ػցֶशΛ༻͍ͨ ϨΠςϯγʔɾߴεϧʔϓοτͳ ΞϓϦέʔγϣϯΛߏங͢Δ 19 3VTUΛબ͢Δ͔ʁ
3VTU 20 ҆શ ͍ ฒߦੑ Τί γεςϜ -JGFUJNF 0XOFSTIJQʹΑͬͯϝϞϦΛཧ $$
ʹඖఢ͢Δ͞ ϚϧνεϨουΛߟྀͨ͠ݴޠઃܭ ศརͳΫϨʔτ ϥΠϒϥϦ ͕ଟఏڙ͞Ε͍ͯΔ QZUIPO΄ͲͰͳ͍͕ Τί γεςϜ ศརͳΫϨʔτ ϥΠϒϥϦ ͕ଟఏڙ͞Ε͍ͯΔ
21
3VTUͰਪ w χϡʔϥϧωοτϫʔΫ෦ͷҠߦ؆୯ w TBWFE@NPEFMΛ͏ͱωοτϫʔΫͷఆٛҰߦ w લॲཧɾޙॲཧॻ͖͢ඞཁ͕͋Δ w ը૾ܥͷλεΫͩͱ͜ͷ෦؆୯ʢͳ͜ͱ͕ଟ͍ʣ w
ॲཧ w ׂݮʢQZUIPONT SVTUNT˞લॲཧɾޙॲཧؚΉʣ 22
Ϟσϧͷ֓ཁ 23 .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ ΟϯυΛҠಈͤ͞ͳ͕Β είΞ͕Ұ൪ߴ͘ͳΔ෦Λ୳͠ग़͢
Ϟσϧͷ֓ཁ 24 .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ ΟϯυΛҠಈͤ͞ͳ͕Β είΞ͕Ұ൪ߴ͘ͳΔ෦Λ୳͠ग़͢ 1ZUIPOϥΠϒϥϦ 1*-
OVNQZ LFSBT OVNQZ
Ϟσϧͷ֓ཁ 25 .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ ΟϯυΛҠಈͤ͞ͳ͕Β είΞ͕Ұ൪ߴ͘ͳΔ෦Λ୳͠ग़͢ 3VTUΫϨʔτ JNBHF
OEBSSBZ UFOTPSqPX OEBSSBZ
26 ਪʹݶఆͨ͠߹ 3VTUͰػցֶशΛ༻͍ͨγεςϜΛ ؆୯ʹ࣮ݱͰ͖Δ
27 3VTUʹ͚ͨͩ͠Ͱ ύϑΥʔϚϯεཁ݅ΛຬͨͤΔΘ͚Ͱͳ͍ ͱ͍͑
28 ॏ͍ͨॲཧΩϟογϡ͢Δ ఘΊΔ෦ఘΊΔ γεςϜઃܭํ ͳʹΛ͍·͞ΒͨΓલͷ͜ͱΛʁ
29 ॏ͍ͨॲཧΩϟογϡ͢Δ ఘΊΔ෦ఘΊΔ γεςϜઃܭํ ػցֶश͕བྷΉγεςϜͰී௨ʹઃܭ͢Ε͍͍ ͳʹΛ͍·͞ΒͨΓલͷ͜ͱΛʁ
Ϋϩοϐϯά݁ՌͷΩϟογϡ 30 ಉ͡αΠζͷϦΫΤετ݁Ռ͕ಉ͡ͳͷͰ͍ճ͢ ܭࢉ͕ඞཁͳ͍ͷͰߴ
31 .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ ΟϯυΛҠಈͤ͞ͳ͕Β είΞ͕Ұ൪ߴ͘ͳΔ෦Λ୳͠ग़͢ ॏ͍ͨॲཧͰ͖Δ͚ͩΩϟογϡ͍ͨ͠ Ϟσϧ֓ཁ ਪͷΩϟογϡ
32 .PCJMF/FUTਤhttps://arxiv.org/pdf/1704.04861.pdf ྉཧΒ͠͞Λද͢ώʔτϚοϓΛऔಘ ΟϯυΛҠಈͤ͞ͳ͕Β είΞ͕Ұ൪ߴ͘ͳΔ෦Λ୳͠ग़͢ ਪͷΩϟογϡ Ϟσϧ֓ཁ Ϟσϧͷڞ௨෦ΩϟογϡͰ͖Δ
ώʔτϚοϓ͕͋Ε ΫϩοϐϯάྖҬͷܭࢉ͕Մೳ
ఘΊΔஅ w Ͱ͖Δ͚ͩࣸਅͷݟӫ͑ΛΑ͍ͨ͘͠ w ը૾৴͕͘ͳΒͳ͍͜ͱ͕ॏཁ w ը૾৴γεςϜ͢Ͱʹ͋Δ 33 ॲཧ͕٧·͍ͬͯΕ ఘΊͯطଘͷΈͰ৴͢ΕΑ͍
ώʔτϚοϓΩϟογϡͰ͖͍ͯͳ͍߹ ॲཧ͕٧·Δ ʢॳճಋೖ࣌ɾ৽͍͠Ϧιʔε ͭ͘ΕΆʹରԠ ͕૿͑ͨ߹ʣ
ը૾৴ͷํ๏ 34 طଘ৴αʔό ΫϩοϐϯάγεςϜ ϦΫΤετ ॴࢦఆͳ͠ ϦΫΤετ ແ ཧ طଘ৴αʔό
ΫϩοϐϯάγεςϜ ϦΫΤετ Ϋϩοϓॴࢦఆͯ͠ ϦΫΤετ ͜ͷॴͰ Ϋϩοϓͯ͠΄͍͠ ը૾Λฦ͢ ௨ৗ࣌ ఘΊΔ࣌ ૣΊʹఘΊΔஅΛ͢Δ͜ͱ͕େࣄ
࡞ͬͨγεςϜ 35
36
37 աڈʹΫϩοϐϯά͍ͯͨ͠Βͦͷ݁ՌΛ࠶ར༻ Ϋϩοϐϯά݁ՌͷΩϟογϡ
38 ώʔτϚοϓ͕͋ΕॊೈͳαΠζʹରԠՄೳ ώʔτϚοϓΛΩϟογϡͯ͠//ʹ͔͔ΔॲཧΛল͘ ৽͍͠ϦΫΤετʹώʔτϚοϓΛܭࢉͯ͠ฦ͢ ϦΫΤετϕʔεͰܭࢉ͢ΔͷͰཧ͠ͳ͍͍ͯ͘ ώʔτϚοϓͷΩϟογϡ
39 ܭࢉࢿݯͷޮར༻ ֎෦Ϧιʔε͕བྷΜͩॲཧͯ͢ඇಉظॲཧ ϦΫΤετΛϚϧνεϨουͰॲཧ͍ͯ͠ΔͷͰ ޮΑ͘$16Λར༻Ͱ͖Δ
40 ఘΊΔஅ ผεϨουͰෳಈ͔͓ͯ͘͠ ΩϡʔͰλεΫΛཧ Ωϡʔ͕٧·͍ͬͯΕఘΊͯ طଘͷγεςϜͰ৴ ఘΊͨ߹ ΩϟογϡΛૣΊʹ&YQJSF͢Δ
41 ఘΊΒΕΔΈ Ͱ͖ͳ͔ͬͨ߹ ྖҬΛࢦఆͤͣʹطଘ৴αʔόʹϦΫΤετ ΫϩοϓྖҬΛܭࢉͰ͖ͨ߹ ΫϩοϓྖҬΛࢦఆͯ͠طଘ৴αʔόʹϦΫΤετ
42 ΩϟογϡʹΑΓύϑΥʔϚϯεΛҡ࣋ͭͭ͠ ॊೈͳϦΫΤετʹରԠՄೳ ͔ͭϝϯςφϯεϑϦʔ
43 ͜ͷγεςϜΛຊ൪Ͱಈ͔ͨ͠ΒͲ͏ͳ͔ͬͨ·ͨผͷػձʹɽɽɽɽ
·ͱΊ • ݱঢ়ͷը૾৴༰ʹؔΘΒͣಉ͡Α͏ʹΫϩοϐϯά͍ͯ͠Δ • ػցֶशΛ༻͍ͯը૾͝ͱʹ࠷దͳҐஔͰͷΫϩοϐϯάΛ࣮ݱ͠ Α͏ͱͨ͠ • ը૾৴γεςϜʹٻΊΒΕΔϨΠςϯγʔɾߴτϥϑΟοΫੑͷ ͋ΔΞϓϦέʔγϣϯΛ࣮͢ΔͨΊʹpythonͰͳ͘rustΛબͨ͠ •
ػցֶशΛ༻͍ͨγεςϜͰී௨ʹઃܭ͢Ε࣮ݱՄೳ • Ωϟογϡઓུɾݱ࣮తͳམͱ͠ॴΛݟ͚ͭΔ 44