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
Cloud Next '19 Tokyo Summary
Search
2kyym
August 29, 2019
Programming
0
81
Cloud Next '19 Tokyo Summary
社内で発表した Cloud Next '19 Tokyo の参加報告資料です。自分が聴講したセッションの中から ML, MLOps に関連するものをピックアップしました。
2kyym
August 29, 2019
Tweet
Share
More Decks by 2kyym
See All by 2kyym
Cloud Composerで組む機械学習パイプライン
2kyym
0
1.7k
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
2kyym
0
330
MOVの機械学習システムを支えるMLOps実践
2kyym
1
270
Other Decks in Programming
See All in Programming
まだ世にないサービスをAIと創る話 〜 失敗から学ぶフルスタック開発への挑戦 〜
katayamatg
0
160
クラシルを支える技術と組織
rakutek
0
180
プログラマのための作曲入門
cheebow
0
500
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
3
900
CSS Linter の現在地 2025年のベストプラクティスを探る
ryo_manba
10
3.1k
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
250
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
310
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.3k
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
160
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
290
defer f()とdefer fの挙動を 誤解していた話
kogamochiduki
2
150
Featured
See All Featured
Become a Pro
speakerdeck
PRO
29
5.5k
Building Adaptive Systems
keathley
43
2.8k
Making Projects Easy
brettharned
118
6.4k
Building Applications with DynamoDB
mza
96
6.6k
Being A Developer After 40
akosma
90
590k
Designing for humans not robots
tammielis
254
25k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Scaling GitHub
holman
463
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.2k
For a Future-Friendly Web
brad_frost
180
9.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Balancing Empowerment & Direction
lara
4
660
Transcript
(PPHMF$MPVE/FYU`5PLZPࢀՃใࠂ "*.- !"*ٕज़ڞ༗ձ ஙࢁকԝ "*ຊ෦"*γεςϜ෦.-ΤϯδχΞϦϯάୈҰάϧʔϓ גࣜձࣾσΟʔɾΤψɾΤʔ
͡Ίʹ ͜Μͳײ͡ʹͳͬͯΔͱ͜ΖϦϯΫͰ͢ ʢҎޙʣ
$MPVE/FYU`5PLZP֓ཁ
$MPVE/FYU`5PLZP֓ཁ Πϕϯτ֓ཁ w (PPHMF$MPVE1MBUGPSNؔ࿈ͷ৽ϦϦʔεɺاۀͰͷ׆༻ࣄྫͳͲͷൃද w ձɿ౦ژϓϦϯεϗςϧβɾϓϦϯεύʔΫλϫʔ౦ژ w ࠓͷࢀՃऀ ਓ
w ίϯςϯπ w جௐߨԋͱηογϣϯʢϝΠϯʣ w ($1ͷػೳ֤اۀͷσϞ͕లࣔ͞Ε͍ͯΔ&YQP w "TLUIF4QFBLFS w /FYUJO5PLZP/JHIUʢύʔςΟʣ IUUQTDMPVEXJUIHPPHMFDPNOFYUUPLZP
$MPVE/FYU`5PLZP֓ཁ %F/"͔Βͷొஃ w ೆ͞Μ w جௐߨԋ w ۀ࣌ͷ͔ΒΦϯϓϨˠΫϥυҠߦͷ͍͖ͭ͞·Ͱ w
य़͞Μ w $MPVE"*1MBUGPSNʹ͓͚ΔػցֶशϞσϧͷϥΠϑαΠΫϧ w JLLJ͞Μ w ʰٯసΦηϩχΞʱͷ"*ػೳΛࢧ͑Δ($1 w ؠඌ͞ΜʢήʔϜࣄۀ෦ੳ෦ʣ w #JH2VFSZΛ͍ͤʂ%F/"σʔλΤϯδχΞͷऔΓΈࣄྫ
None
None
None
None
$MPVE/FYU`5PLZP֓ཁհ͢Δηογϣϯ ΧελϜϞσϧΛॊೈɾߴɾ҆Ձʹ࡞͢ΔͨΊͷαʔϏε $MPVE"*1MBUGPSNηογϣϯ #2ͷ5JQTͱ%F/"ʹ͓͚Δ#2׆༻ࣄྫ #JH2VFSZϕετϓϥΫςΟε (PPHMFۘͷσΟʔϓϥʔχϯάಛԽϋʔυΣΞ $MPVE516ηογϣϯ (,&$PNQPTFSΛ׆༻ͨ͠ػցֶशγεςϜͷߏங ;0;0Ͱͷ.-0QT࣮ફͱ(,&ΠϯϑϥΞʔΩςΫνϟ
#JH2VFSZ ϕετϓϥΫςΟε
#JH2VFSZϕετϓϥΫςΟε ৽ػೳɿӬଓ6%'ʢЋ൛ˠЌ൛ʣ w 6%'6TFS%FpOFE'VODUJPO w +40/ύʔεॲཧͳͲͷॲཧΛ+BWB4DSJQUͰهड़Ͱ͖Δ w ͜Ε·Ͱ6%'Ұ࣌తͳͷͰɺ༻͍Δ42-Ͱఆٛ͢Δඞཁ͕͋ͬͨ w
Ӭଓ6%'ʹΑͬͯ༧Ίఆ͓͍͍ٛͯͯͭ͠Ͱݺͼग़ͤΔΑ͏ʹ w Ұ࣌6%'ͱൺֱͯ͠ύϑΥʔϚϯε্
#JH2VFSZϕετϓϥΫςΟε ৽ػೳɿӬଓ6%'ʢЋ൛ˠЌ൛ʣ
#JH2VFSZϕετϓϥΫςΟε ৽ػೳɿ$POOFDUFE4IFFUTʢЋ൛ʣ w #2্ͷςʔϒϧΛγʔϜϨεʹ(44ͰՄࢹԽɾੳͰ͖Δ w 4QSFBE4IFFUT%BUB$POOFDUPSͱҧ͍ɺ42-Λॻ͘ඞཁ͢Βͳ͍ w ੳऀʹͱͬͯخ͍͔͠ʁ w
5#ͷେ༰ྔςʔϒϧͰͳ͘ಡΈࠐΊΔΒ͍͠
IUUQTTUPSBHFHPPHMFBQJTDPNHXFCDMPVECMPHQVCMJTIPSJHJOBM@JNBHFT#JH2VFSZ@TQSFBETIFFU@JOUFSGBDFHJG
#JH2VFSZϕετϓϥΫςΟε ($4͔ΒಡΈࠐΉࡍͷσʔλϑΥʔϚοτ w ϩʔυ͕͍ॱʹ w "WSPʢѹॖʣ w "WSP w
1BSRVFU03$ w $47 w +40/ w $47ʢѹॖʣ w +40/ʢѹॖʣ w "WSPʹม͢Δׂ͔ϑΝΠϧΛಡΈࠐΉͱ͍
#JH2VFSZϕετϓϥΫςΟε ׂςʔϒϧɾΫϥελԽςʔϒϧ w ςʔϒϧͷඞཁͳ෦ͷΈরձͯ͠ίετΛݮ w UJNFTUBNQྻΛׂΧϥϜʹࢦఆͰ͖Δ w େنͳϑΝΫτςʔϒϧʹl3FRVJSF1BSUJUJPO'JMUFSzΦϓγϣϯΛ w
ΫϥελԽςʔϒϧ w ׂࡁΈͷςʔϒϧʹର͠ɺΫϥελྻΛࢦఆͯ͠͞Βʹίετݮ w ಡΈࠐΈύϑΥʔϚϯεվળ
#JH2VFSZϕετϓϥΫςΟε εϩοτͱ͍͏֓೦ w εέδϡʔϦϯάͷ୯Ґ w ϦιʔεαΠζʢԋࢉೳྗʣʹରԠ w σϑΥϧτׂϓϩδΣΫτʹ͖ͭεϩοτ w
ϓϩδΣΫτɾϓϩδΣΫτؒͰϑΣΞεέδϡʔϦϯά w ݄ఆֹΦϓγϣϯͩͱεϩοτΛࣗ༝ʹׂՄೳ
#JH2VFSZϕετϓϥΫςΟε %F/"ʹ͓͚ΔήʔϜੳࣄྫ w ՝ w ࣮ߦ͞ΕͨΫΤϦ͕࠷దͰͳ͍ w ҰൃͰ5#ʢສԁʣͷΫΤϦ͕ඈΜͩ͜ͱ w
ঃʑʹίετ͕͔͞ΜͰ͍ͨ w ϲ݄͝ͱʹສԁ݄૿Ճ w ҎԼͷվળʹΑͬͯͷίετݮʂ w 4UBDLESJWFSʹΑΔڊେΫΤϦͷϞχλϦϯάͱ௨ w ΫϥελԽςʔϒϧͷಋೖ
$MPVE"*1MBUGPSN
$MPVE"*1MBUGPSN ػցֶशͷFFαΠΫϧ IUUQTDMPVEHPPHMFDPNBJQMBUGPSN IMKB
$MPVE"*1MBUGPSN "*)VCʢЌ൛ʣ w ػցֶशΞηοτͷΧλϩά w ҰݴͰݴ͏ͱɿ%PDLFS)VCͷػցֶशϞσϧ൛ w ΧελϜϞσϧΛ($1ʹϫϯΫϦοΫσϓϩΠ w
ެ։ൣғݶఆ؆୯ w (PPHMFϢʔβάϧʔϓ୯ҐͰઃఆՄೳ IUUQTDMPVEHPPHMFDPNBJIVC
$MPVE"*1MBUGPSN "*)VCʢЌ൛ʣ w ػցֶशΞηοτͷΧλϩά w ҰݴͰݴ͏ͱɿ%PDLFS)VCͷػցֶशϞσϧ൛ w ΧελϜϞσϧΛ($1ʹϫϯΫϦοΫσϓϩΠ w
ެ։ൣғݶఆ؆୯ w (PPHMFϢʔβάϧʔϓ୯ҐͰઃఆՄೳ
$MPVE"*1MBUGPSN "*)VCͷ͍ํ w 5FOTPS'MPX.PEVMFͰ͋Ε w /PUFCPPLͰ͋Ε w "*1MBUGPSN/PUFCPPLʢޙड़ʣͱϫϯΫϦοΫ࿈ܞ
$MPVE"*1MBUGPSN "*1MBUGPSN/PUFCPPLTʢЌ൛ʣ w Ϛωʔδυ+VQZUFS-BCΠϯελϯε w ΦϯσϚϯυʹߏมߋͰ͖ΔܭࢉػϦιʔε w Πϯελϯεىಈޙʹ(16૿ઃͳͲ w
ඞཁͳϥΠϒϥϦ͕ϓϦΠϯετʔϧ w "*)VC #JH2VFSZͳͲ($1ίϯϙʔωϯτͱີͳ࿈ܞ IUUQTDMPVEHPPHMFDPNBJQMBUGPSNOPUFCPPLT
$MPVE"*1MBUGPSN w ,VCF'MPX'BJSJOHʹΑΔ֎෦ϦιʔεͰͷ࣮ݧ w Ϟσϧֶश༻ͷΫϥεؔΛίϯςφԽ͠ɺ($1্Ͱ࣮ݧͰ͖Δ w %FFQ-FBSOJOH7.*NBHFΛ༻͍ͯ؆୯ʹ/PUFCPPL্͔ΒճͤΔ "*1MBUGPSN/PUFCPPLTʢЌ൛ʣ
IUUQTBEUFDIDZCFSBHFOUJPQSBSDIJWFT
$MPVE"*1MBUGPSN "*1MBUGPSN5SBJOJOHʢچ$MPVE.-&OHJOFʣ w ಛ w ΞΠυϧঢ়ଶͷΠϯελϯεແ՝ۚ w ϋΠύϥνϡʔχϯάͷࣗಈԽɾฒྻֶश w
ΧελϜίϯςφαϙʔτʢЌ൛ʣʹΑΓҙͷϑϨʔϜϫʔΫ͕Մೳʹ w ಈ࡞Πϝʔδ w ػցֶशίʔυͷύοέʔδͱઃఆϑΝΠϧΛ༻ҙ w δϣϒΛ͛ΔͱɺֶशΛ࣮ߦ͢ΔΫϥελ͕ࣗಈͰཱͯΒΕΔ
$MPVE"*1MBUGPSN 1ZUIPO͔Βֶशδϣϒͷ࣮ߦ
$MPVE516
$MPVE516 $MPVE516֓ཁ w جຊతʹ5FOTPSqPXઐ༻ϓϩηοα w %PNBJO4QFDJpD"SDIJUFDUVSFʢ%4"ʣ w ྖҬ͝ͱʹϋʔυͱιϑτΛ࠷దઃܭ w
516։ൃͷྺ࢙ w ॳظݕ౼ w ࣮։ൃ։࢝ w 516Wͷಋೖ։࢝ʢ։ൃ։͔࢝Βϲ݄ޙʣ
$MPVE516 w $16ͱͷҧ͍ w (16ͰϊΠϚϯϘτϧωοΫ͋Δ w ڞ༗ϝϞϦʹ͕ࠩ࣌ؒ͢͠ϘτϧωοΫ w 516ͰϢχοτಉ͕࢜ύΠϓϥΠϯͰܨ͕͓ͬͯΓɺϝϞϦಡΈॻ͖ͷ
ϘτϧωοΫ͕ͳ͍ w Ͳ͏ͳ͔ͬͨ w طଘ$16ͱൺֱ͠ిྗੑೳൺഒ $MPVE516֓ཁ IUUQTDMPVEHPPHMFDPNUQV
$MPVE516 ;0;0ը૾ݕࡧͰͷ׆༻ࣄྫ w 516ಋೖલͷ՝ w ($1ͷ5FTMB7ΠϯελϯεͰֶश w ࣮ݧαΠΫϧ w
Ͱ64%Ͱ 64% w ͜ͷ࣌ͰΦϯϓϨΑΓ͍҆ w ࣮ݧʹ͚͜Δͱिؒਐ͕ͳ͍͜ͱʜʜ w ݟ͕ஷ·Δͷ͕͍ˍ։ൃऀͷϞνϕʔγϣϯԼ
$MPVE516 ;0;0ը૾ݕࡧͰͷ׆༻ࣄྫ w 516ಋೖޙͲ͏ͳ͔ͬͨ w ࣌ؒ͋ͨΓͷॲཧ͕ສϖΞສϖΞ w ࣮ݧαΠΫϧ࣌ؒ w
όοναΠζ w ஈʁ w ௨ৗͷ516ͳΒഒͷίετ w 1SFFNQUJWFͳΒ௨ৗ(16ΑΓ͍҆ w 1SFFNQUJWFͷσϝϦοτӡ༻ͰΧόʔ
$MPVE516 5161PETͱ w 516Λܨ͍ͩεύίϯ w 516 1FUB'-014 w 7ͱൺֱͯ͠ഒߴͰɺίετݮ
w ߴ͍εέʔϥϏϦςΟ w 516Ͱ࣌ؒͷ࣮ݧ͕516Ͱʹ w ΄΅ઢܗʹεέʔϧ w ௨ৗͷ516ͷίʔυ͔Βมߋඞཁͳ͠ w ͨͩ͠1SFFNQUJWF·ͩఏڙ͞Ε͍ͯͳ͍ IUUQTDMPVEHPPHMFDPNUQV
;0;0ը૾ݕࡧͰͷ.-0QTͱ (,&ΠϯϑϥΞʔΩςΫνϟ
;0;0ը૾ݕࡧͷιϑτΣΞελοΫ w αʔόαΠυ w 1ZUIPO'MBTL(VOJDPSO4XBHHFSH31$ w .-ϑϨʔϜϫʔΫɿ$IBJOFS w Πϯϑϥ
w ਪ"1*ɿ(,& 3FEJT w ֶशɿ$MPVE$PNQPTFS (-& 'JMFTUPSF w $MPVE-PBE#BMBODFS$MPVE"SNPS w ($4($3ͳͲͳͲʜ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
ϓϩμΫγϣϯϨϕϧʹ͢ΔͨΊʹߦͬͨ w μϯλΠϜͳ͠ͰͷσϓϩΠ w 3PMMJOH6QEBUF w -JWFOFTT1SPCF w 3FBEJOFTT1SPCF
w (SBDFGVM4IVUEPXO w ΦʔτεέʔϦϯά w %/4Ωϟογϡ w H31$ͷෛՙࢄ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
μϯλΠϜͳ͠ͰͷσϓϩΠ w 3PMMJOH6QEBUF w 1PEΛগͣͭ͠৽ͨʹ্ཱͪ͛ͯམͱ͍ͯ͘͠ w ύϥϝʔλ w NBY4VSHFɿڐ༰ա1PE
w NBY6OBWBJMBCMFɿڐ༰ෆ1PE w 3FBEJOFTT1SPCF w ϔϧενΣοΫ w 1PE্ͷΞϓϦ͕ϦΫΤετΛࡹ͚Δঢ়ଶ͔Ͳ͏͔νΣοΫ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
μϯλΠϜͳ͠ͰͷσϓϩΠ w -JWFOFTT1SPCF w ίϯςφͷੜ·ΕมΘΓΛίϯτϩʔϧ w 1SPCFࣦഊ͢Δͱίϯςφ࠶ىಈ w (SBDFGVM4IVUEPXO
w ϦΫΤετΛฦ͢લʹ1PE͕ࢮͳͳ͍Α͏ʹ͢Δ w ͜ΕҎ্ϦΫΤετΛड͚͚ͳ͍Α͏ʹ͠ɺશͯͷϦΫΤετΛ ॲཧ͔ͯ͠Βਖ਼ৗʹऴྃ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
ΦʔτεέʔϦϯάͱ%/4Ωϟογϡ w )PSJ[POUBM1PE"VUPTDBMFSʢ)1"ʣ w ෛՙ͕ᮢΛ͑ͨ߹ʹ1PEΛΦʔτεέʔϧ w ͦΕͱಉ࣌ʹ/PEFΦʔτεέʔϧ w ,VCF%/4ύέοτϩε
w %/46%1ͳͷͰύέοτϩε͕ى͖͍͢ w ͦͷͬͭ͞Μͷఆରॲ w 1ZUIPOΫϥΠΞϯτଆͰʢ55-ʣඵΩϟογϡ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
$PNQPTFSΛར༻ͨ͠ϫʔΫϑϩʔ w $MPVE$PNQPTFSͱ w "QBDIF"JSqPXͷϚωʔδυαʔϏε w ಛ w 1ZUIPOͰॻ͚Δ
w (,&Ͱδϣϒ࣮ߦ w ("&Ͱ"JSqPX6*ఏڙ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
;0;0ը૾ݕࡧͷϫʔΫϑϩʔ w "//*OEFYͷ࠶ߏங w ৽ͨʹग़͞Εͨը૾Λू͠ө w ߋ৽සɿ࣌ʢ͍ͣΕΠϕϯτۦಈʹ͍ͨ͠ʣ w ྲྀΕ
#2ςʔϒϧͷόοΫΞοϓ ը૾μϯϩʔυ ಛྔநग़"//*OEFY࠶ߏங σϓϩΠ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ IUUQTDMPVEHPPHMFDPNTPMVUJPOTBVUPNBUJOHJOGSBTUSVDUVSFVTJOHDMPVE DPNQPTFS IMKB
$PNQPTFSΛͬͨײ w ར w ϚωʔδυͰ͋Δ w 1ZUIPOͰ%"(ʢ༗ඇ८ճάϥϑʣΛॻ͚Δ w ܽ
w ࠷ͰΠϯελϯεඞཁ w ࣗ༝͕͍ʢ(16͑ͳ͍ɺ෦ϏϧυͰ͖ͳ͍ʣ w ΦʔτεέʔϧະରԠ w ผ్(,&ΛཱͯͯରԠ͢Δඞཁ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
ൿಗใͷ҉߸Խ w LTͷγʔΫϨοτͷ༷ w CBTFΤϯίʔυͯ͠:".-ʹهड़͢Δ͚ͩ w γʔΫϨοτͱ w #FSHMBTͷಋೖ
w "844FDSFUT.BOBHFSͷΑ͏ͳൿಗใཧαʔϏε w ($1ͷ,FZ.BOBHFNFOU4FSWJDFΛར༻ͯ͠ΫϥΠΞϯτଆͰ҉߸͠ɺ ($4ʹอଘ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ IUUQTNFEJVNDPNXFBSFTFSWJBOCFSHMBTXJUIOPEFKTPODMPVESVOEDFDGBBB
$*$%ͱࢹ w $JSDMF$*ͷར༻ w ίϯςφΠϝʔδͷϏϧυ w ίϯςφʹϞσϧΛೖΕΔ͔ w ॳೖΕ͍͕ͯͨɺϏϧυʹ͔͔࣌ؒΓͭΒ͍
w ίϯςφʹೖΕͣɺίϯςφىಈ࣌ʹ($4͔Βμϯϩʔυ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
$*$%ͱࢹ w Ϋϥυ࣌ͷࢹ w $16༻Φʔτεέʔϧ͢ΔͷͰࢹ͠ͳ͍ w γεςϜͷ݈߁ঢ়ଶΛݟΔ w ࢹ߲
w ϨεϙϯεεςʔλεͱϨεϙϯε࣌ؒ w ϦΫΤετ w LTͳΒͰͷͷ w LT1PE8BSOJOH-PH͕Ҏ্ଓ͚ͯग़͍ͯͳ͍͔ w ίϯςφͷϝϞϦ༻ྔ͕-JNJUͷΛ͍͑ͯͳ͍͔ ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
$*$%ͱࢹ w ࢹιϑτΣΞ w 4UBDLESJWFS %BUBEPH 4FOUSZ w 4UBDLESJWFS($1ඪ४ͳͷͰศར
w %BUBEPHͷಛʹศརͳػೳ͚ͩ༻͍͍ͯΔ w "1. 4ZOUIFUJDTͳͲ w 4FOUSZɿΤϥʔτϥοΩϯάαʔϏε ;0;0ը૾ݕࡧͰͷ.-0QTͱ(,&ΠϯϑϥΞʔΩςΫνϟ
·ͱΊ
·ͱΊ ײ w "*ܥͷେ͖ͳ৽ϦϦʔεͳ͠ w ͜Ε݄ͷ$MPVE/FYUJO4'ͱಉ༷ w "OUIPTͱ͍͏ϋΠϒϦουΫϥυ͚αʔϏεΛਪ͍ͯͨ͠ w
͔͠͠ɺ"*1MBUGPSNϦϦʔεࡁαʔϏεͷػೳ֦ுॱௐʹਐΜͰ͍Δ w #JH2VFSZ.-"VUP.-ʹ͍ͭͯӹࢠ͞ΜεϥΠυࢀর w IUUQTTQFBLFSEFDLDPNTPZNTLHPPHMFDMPVEOFYUBJNMTVNNBSZQVCMJD