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
74
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.6k
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
2kyym
0
270
MOVの機械学習システムを支えるMLOps実践
2kyym
1
220
Other Decks in Programming
See All in Programming
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
3
700
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.2k
CSC509 Lecture 11
javiergs
PRO
0
180
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
900
Quine, Polyglot, 良いコード
qnighy
4
650
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
150
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
cmp.Or に感動した
otakakot
3
210
Featured
See All Featured
Side Projects
sachag
452
42k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Why Our Code Smells
bkeepers
PRO
334
57k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Teambox: Starting and Learning
jrom
133
8.8k
Building an army of robots
kneath
302
43k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
KATA
mclloyd
29
14k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Faster Mobile Websites
deanohume
305
30k
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