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
MLOpsの「あるある」課題の解決と、そのためのライブラリgokart
Search
Daiki Ikeshima
September 27, 2024
Technology
1.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MLOpsの「あるある」課題の解決と、そのためのライブラリgokart
PyConJp2024 day1
Daiki Ikeshima
September 27, 2024
More Decks by Daiki Ikeshima
See All by Daiki Ikeshima
gokartのキャッシュ競合防止のロック機能
mski_iksm
0
2.7k
macのunicode正規化.pdf
mski_iksm
0
42k
実臨床・Webサービス領域での機械学習研究 開発の標準化
mski_iksm
8
27k
高速化・並列化・標準化で スケールするML予測システムの開発
mski_iksm
5
3.3k
pythonでメタプログラミング(メタクラス編)
mski_iksm
1
600
パイプラインツールgokartのタスク競合を解消した話
mski_iksm
0
280
Other Decks in Technology
See All in Technology
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
630
分析作業をどこまで任せるか自分で決められる AIネイティブBI『Golden Analytics』が 良さげな話 /golden-analytics-is-ai-native-bi
shinyaa31
0
110
AI時代に求められる優秀なTechLeadの振る舞い
pospome
2
4.3k
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
140
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
140
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
1
240
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
220
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
410
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
790
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
2
920
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
100
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
190
Featured
See All Featured
Everyday Curiosity
cassininazir
0
390
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
My Coaching Mixtape
mlcsv
0
380
GitHub's CSS Performance
jonrohan
1033
470k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
460
How to build a perfect <img>
jonoalderson
1
6.2k
BBQ
matthewcrist
90
10k
The Cost Of JavaScript in 2023
addyosmani
56
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
310
Transcript
ΤϜεϦʔגࣜձࣾౢେथ .-0QTͷʮ͋Δ͋Δʯ՝ͷղܾ ͱɺͦͷͨΊͷϥΠϒϥϦHPLBSU 1Z$PO+1
ػցֶशͷʮ͋Δ͋Δʯ՝ͱͦͷղܾ ࣮ݧΛຊ൪Ͱ࠶ݱͰ͖ͳ͍ όʔδϣϯཧ͕໘ ಉ͡ॲཧΛ܁Γฦͨ͘͠ͳ͍ ؔΛॏෳͯ͠࡞Γͨ͘ͳ͍ ॻ͖ํ͕Βͭ͘ શ࣮ݧ݁ՌΛઃఆͱϖΞͰอଘ σʔλͷύΠϓϥΠϯΛཧ ඞཁͳ෦Λٯࢉͯ͠࠶࣮ߦ ڞ௨λεΫू
ॻ͖ํͷඪ४ԽΛڧ੍
UBLFIPNFNFTTBHF ػցֶशΔͳΒ pip install gokart ɾػցֶशࢼߦࡨޡ͕ඞཁ͕ͩɺ࣮ݧཧ͕ࠞཚ͕ͪ͠Ͱਏ͍ ɾղܾϊϋΛ٧ΊࠐΜͩϥΠϒϥϦHPLBSUΛ։ൃ ɾΤϜεϦʔͰΛ͑ΔϚΠΫϩαʔϏεʹϊϋΛ ԣల։͢ΔͨΊʹHPLBSUΛ׆༻
ࣗݾհ ΤϜεϦʔגࣜձࣾ "*ɾػցֶशνʔϜɹػցֶशΤϯδχΞ ɾϢʔβʔڵຯτϐοΫਪܭγεςϜͷ։ൃ ɾ--.ΛͬͨهࣄτϐοΫநग़γεςϜͷ։ൃ ౢେथʢ9!NTLJ@JLTNʣ
ΤϜεϦʔNDPNΛத৺ͱͨ͠ҩྍܥXFCاۀ
ΤϜεϦʔҩࢣҎ֎͚ͷαʔϏεڧԽத ͍Ζ͍ΖͬͯΔҩྍܥXFCاۀ
.-0QTʮ͋Δ͋Δʯ՝ͷղܾͱͦͷͨΊͷϥΠϒϥϦHPLBSU ɾ෦ۙʹͳͬͨػցֶशʹજΉਏΈ ɾ෦ػցֶश͋Δ͋Δ՝ͷղܾͱHPLBSU ɾ෦HPLBSUͰύΠϓϥΠϯΛॻ͍ͯΈΔ
ػցֶश͍ͬͯ·͔͢ʁ
ΤϜεϦʔͰ༷ʑͳྖҬͰػցֶशϓϩμΫτΛ։ൃ 8FC͔Βҩྍྟচ·Ͱ෯͘Ҏ্ͷػցֶशϓϩμΫτΛ։ൃ
ػցֶशϓϩμΫτͷ࡞Γํ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ϨίϝϯυγεςϜ χϡʔεαΠτ ػցֶश Ϟσϧ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ϨίϝϯυγεςϜ ࣮ݧڥ χϡʔεαΠτ σʔλϕʔε ूܭσʔλ ػցֶशϞσϧ ධՁ ΠϚΠνʜ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ࣮ݧڥ χϡʔεαΠτ σʔλϕʔε ػցֶशϞσϧ ධՁ ͍͍ײ͡ʂ ϨίϝϯυγεςϜ ूܭσʔλ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ຊ൪ڥ χϡʔεαΠτ σʔλϕʔε ػցֶशϞσϧ ϨίϝϯυγεςϜ ूܭσʔλ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ຊ൪ڥ χϡʔεαΠτ σʔλϕʔε ػցֶशϞσϧ σʔλ͕มΘΓ͏ΔͷͰϑϩʔ͝ͱߏங͢Δ ϨίϝϯυγεςϜ ूܭσʔλ
Ϣʔβʔʹ͋ͬͨχϡʔεΛग़͢XFCαΠτΛ࡞Δ Ϣʔβʔ ຊ൪ڥ χϡʔεαΠτ σʔλϕʔε ػցֶशϞσϧ σʔλ͕มΘΓ͏ΔͷͰϑϩʔ͝ͱߏங͢Δ ΓऔΓ Ͱ͖ΔΑ͏ʹ ϨίϝϯυγεςϜ
ूܭσʔλ
ػցֶश͔ͳΓۙʹͳͬͨ ʜ͚Ͳಛ༗ͷ໘ϙΠϯτ͋Γ·ͤΜ͔ʁ
࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧڥ ຊ൪ڥ ͱ͍͍ͯϞσϧʂ
࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧڥ ຊ൪ڥ ͱ͍͍ͯϞσϧʂ ͍·͍ͪͳϞσϧ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ूܭσʔλ ػցֶशϞσϧ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ػցֶशϞσϧ ߋ৽ ूܭσʔλ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ػցֶशϞσϧ ߋ৽ ूܭσʔλ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ػցֶशϞσϧ ߋ৽ ूܭσʔλ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ػցֶशϞσϧ ߋ৽ ूܭσʔλ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ಛྔσʔλ ػցֶशϞσϧ ߋ৽ @μϯϩʔυ"QZ @डྖ@μϯϩʔυ#QZ @ެ։σʔλ@μϯϩʔυ$QZ @ಛྔ࡞9999QZ
@ಛྔ࡞:::::QZ @Ϟσϧֶश@ೲ൛QZ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ಛྔσʔλ ػցֶशϞσϧ ߋ৽ @μϯϩʔυ"QZ @डྖ@μϯϩʔυ#QZ @ެ։σʔλ@μϯϩʔυ$QZ @ಛྔ࡞9999QZ
@ಛྔ࡞:::::QZ @Ϟσϧֶश@ೲ൛QZ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ಛྔσʔλ ػցֶशϞσϧ ߋ৽ @μϯϩʔυ"QZ @डྖ@μϯϩʔυ#QZ @ެ։σʔλ@μϯϩʔυ$QZ @ಛྔ࡞9999QZ
@ಛྔ࡞:::::QZ @Ϟσϧֶश@ೲ൛QZ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ಛྔσʔλ ػցֶशϞσϧ ߋ৽ @μϯϩʔυ"QZ @डྖ@μϯϩʔυ#QZ @ެ։σʔλ@μϯϩʔυ$QZ @ಛྔ࡞9999QZ
@ಛྔ࡞:::::QZ @Ϟσϧֶश@ೲ൛QZ
ੜσʔλ ͪΐͬͱσʔλΛมߋ͚ͨ͠ͲɺͲͷεΫϦϓτ ΛΓ͍͍ͤͷʁ ಛྔσʔλ ػցֶशϞσϧ ߋ৽ @μϯϩʔυ"QZ @डྖ@μϯϩʔυ#QZ @ެ։σʔλ@μϯϩʔυ$QZ @ಛྔ࡞9999QZ
@ಛྔ࡞:::::QZ @Ϟσϧֶश@ೲ൛@࠷ऴ@WQZ @Ϟσϧֶश@ೲ൛@࠷ऴ@WQZ @Ϟσϧֶश@ೲ൛QZ
.-0QTʮ͋Δ͋Δʯ՝ͷղܾͱͦͷͨΊͷϥΠϒϥϦHPLBSU ɾ෦ۙʹͳͬͨػցֶशʹજΉਏΈ ɾ෦ػցֶश͋Δ͋Δ՝ͷղܾͱHPLBSU ɾ෦HPLBSUͰύΠϓϥΠϯΛॻ͍ͯΈΔ ػցֶशࢼߦࡨޡ͕ඞཁ͕ͩɺ σʔλίʔυ͙ͪΌ͙ͪΌʹͳΓ͕ͪͰਏ͍
.-0QTʮ͋Δ͋Δʯ՝ͷղܾͱͦͷͨΊͷϥΠϒϥϦHPLBSU ɾ෦ۙʹͳͬͨػցֶशʹજΉਏΈ ɾ෦ػցֶश͋Δ͋Δ՝ͷղܾͱHPLBSU ɾ෦HPLBSUͰύΠϓϥΠϯΛॻ͍ͯΈΔ
ػցֶशͷʮ͋Δ͋Δʯ՝ͱͦͷղܾ ࣮ݧΛຊ൪Ͱ࠶ݱͰ͖ͳ͍ όʔδϣϯཧ͕໘ ಉ͡ॲཧΛ܁Γฦͨ͘͠ͳ͍ ؔΛॏෳͯ͠࡞Γͨ͘ͳ͍ ॻ͖ํ͕Βͭ͘ શ࣮ݧ݁ՌΛઃఆͱϖΞͰอଘ σʔλͷύΠϓϥΠϯΛཧ ඞཁͳ෦Λٯࢉͯ͠࠶࣮ߦ ڞ௨λεΫू
ॻ͖ํͷඪ४ԽΛڧ੍ վળϊϋΛύΠϓϥΠϯπʔϧHPLBSU ʹө͠ɺ։ൃɾ׆༻
HPLBSU1ZUIPOͷύΠϓϥΠϯπʔϧ ॲཧΛλεΫͱݺΕΔΫϥεͰఆٛ͠ɺͦΕΛ࿈݁ͯ͠ύΠϓϥΠϯ Λߏங͢Δɻ HPLBSUλεΫͷґଘؔΛղܾ͠ͳ͕Β࣮ߦ͢Δɻ ΤϜεϦʔͷϝϯόʔΛத৺ʹ044ͱͯ͠։ൃ͞Ε͍ͯΔ 1ZUIPOͷπʔϧ %PXOMPBE6TFS-JTU ूܭσʔλ࡞λεΫ σʔλ μϯϩʔυ
ͷλεΫ %PXOMPBE$MJDL%BUB .BLF'FBUVSF%BUB
ػցֶशͷ͋Δ͋Δ՝ͱͦͷղܾ
՝ᶃɿ࣮ݧͨ͠ػցֶशϞσϧͷ࠶ݱੑ͕ͳ͍ ࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧͱಉ͡Ϟσϧͷ࠶ݱ͕Ͱ͖ͳ͘ͳͬͯ͠·͏ ɾϞσϧͷϋΠύʔύϥϝʔλΛอଘͦ͠ͼΕͨ ɾϥϯμϜγʔυ͕ζϨͨ ɾσʔλ͕มΘͬͨ
՝ᶃɿ࣮ݧͨ͠ػցֶशϞσϧͷ࠶ݱੑ͕ͳ͍ ࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧͱಉ͡Ϟσϧͷ࠶ݱ͕Ͱ͖ͳ͘ͳͬͯ͠·͏ ɾϞσϧͷϋΠύʔύϥϝʔλΛอଘͦ͠ͼΕͨ ɾϥϯμϜγʔυ͕ζϨͨ ɾσʔλ͕มΘͬͨ ઃఆ num_leaves: 31
lambda_l1: 0.1 drop_rate: ? Εͨ
՝ᶃɿ࣮ݧͨ͠ػցֶशϞσϧͷ࠶ݱੑ͕ͳ͍ ࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧͱಉ͡Ϟσϧͷ࠶ݱ͕Ͱ͖ͳ͘ͳͬͯ͠·͏ ɾϞσϧͷϋΠύʔύϥϝʔλΛอଘͦ͠ͼΕͨ ɾϥϯμϜγʔυ͕ζϨͨ ɾσʔλ͕มΘͬͨ ·Δ͝ͱΕͨ ઃఆ num_leaves:
31 lambda_l1: 0.1 drop_rate: 0.1 random.seed(42) np.random.seed(42) torch.manual_seed(42) TFFEݻఆ
՝ᶃɿ࣮ݧͨ͠ػցֶशϞσϧͷ࠶ݱੑ͕ͳ͍ ࣮ݧͰ͏·͍͚ͬͨ͘Ͳɺ ຊ൪ӡ༻࣌ʹͳΜ͔ͪΐͬͱϞσϧ͕ҧ͏ ࣮ݧͱಉ͡Ϟσϧͷ࠶ݱ͕Ͱ͖ͳ͘ͳͬͯ͠·͏ ɾϞσϧͷϋΠύʔύϥϝʔλΛอଘͦ͠ͼΕͨ ɾϥϯμϜγʔυ͕ζϨͨ ɾσʔλ͕มΘͬͨ ֶशσʔλ ਓՃ
ղܾᶃશ࣮ݧ݁ՌΛઃఆͱϖΞͰอଘ HPLBSU్தॲཧ݁ՌΛϑΝΠϧʹอଘ͢ΔͷͰɺ ࣮ݧ݁ՌΛຊ൪ӡ༻Ͱ࠶ݱͰ͖Δ ࣮ݧ݁ՌΛͦͷઃఆͱؔ࿈͚ͯϑΝΠϧʹอଘɻ ຊ൪Ͱ࣮ݧͰ࡞ͬͨϞσϧΛࢀরͰ͖Ε݁ՌͣΕͳ͘ͳΔɻ ूܭσʔλ ੜσʔλ Ϟσϧ ϑΝΠϧʹ อଘ
՝ᶄɿϞσϧͷόʔδϣϯཧ͕໘ ͍ͬͺ͍࣮ݧͨ͠ΒɺͲͷΈ߹Θ͕ͤੑೳ ྑ͔ͬͨͷ͔Θ͔Βͳ͘ͳͬͨ ઃఆɾσʔλɾֶशࡁΈϞσϧϑΝΠϧɾ݁Ռ$47ɾੑೳ ΛΈ߹Θͤͯอଘɾཧ͕ඞཁ ઃఆ Ϟσϧ ಛྔ W W
W W W@ W " # W
՝ᶄɿϞσϧͷόʔδϣϯཧ͕໘ ͍ͬͺ͍࣮ݧͨ͠ΒɺͲͷΈ߹Θ͕ͤੑೳ ྑ͔ͬͨͷ͔Θ͔Βͳ͘ͳͬͨ ઃఆɾσʔλɾֶशࡁΈϞσϧϑΝΠϧɾ݁Ռ$47ɾੑೳ ΛΈ߹Θͤͯอଘɾཧ͕ඞཁ ઃఆ Ϟσϧ ಛྔ W W
W W W@ W " # W
ղܾᶄσʔλͷ࡞ΓํΛύΠϓϥΠϯͱͯ͠ཧ HPLBSUͩͱઃఆ͔ΒύΠϓϥΠϯΛ࠶ݱͰ͖ΔͷͰɺ σʔλΛΈ߹ΘͤͯͷཧίετΛݮͰ͖Δ ઃఆϑΝΠϧͰσʔλɾϞσϧͷ࡞ΓํͰ͋ΔύΠϓϥΠϯΛఆٛɻ ύΠϓϥΠϯ͔ΒσʔλΛ࠶ݱͰ͖ΔͳΒɺઃఆϑΝΠϧͷཧ͚ͩͰ0,ɻ ಛྔ Ϟσϧ ݁Ռ W
՝ᶅɿॏෳͨ͠ॲཧΛ܁Γฦ͢ͷਏ͍ ϞσϧΛͪΐͬͱม͑Δ͚ͩͳͷʹɺ σʔλܗ͔Βશ෦࠶࣮ߦ͢Δͷඇޮ͗͢Δ ͪΐͬͱઃఆΛม͑ͨϞσϧΛࢼ͢ͷʹɺશ෦Λ࠶࣮ߦ͢Δͷແବ͕ ଟͯ͘ਏ͍ɻ ੜσʔλ ूܭσʔλ ػցֶशϞσϧ
ղܾᶅඞཁͳ෦͚ͩΛٯࢉͯ͠࠶࣮ߦ HPLBSUɺઃఆʹมߋ͕͋ΔͳͲɺ ࠶࣮ߦ͕ඞཁͳ෦͚ͩΛ࣮ߦͯ͘͠ΕΔ ߋ৽ͷӨڹΛड͚Δɺඞཁͳ෦͚ͩΛ࠶࣮ߦ͢Δɻ HPLBSUͷඞཁͳ෦͚ͩΛ࠶࣮ߦ͢ΔػೳΛ׆༻ɻ ߋ৽ ੜσʔλ ूܭσʔλ ػցֶशϞσϧ
HPLBSUͷϑΝΠϧͷ໋໊γεςϜͷಛ ϑΝΠϧ໊ɺґଘ͢ΔσʔλɾίʔυͰܾ·Δɻ ґଘσʔλɾίʔυ͕มΘΔͱϑΝΠϧ໊มߋʹͳΓɺ࠶࣮ߦ͢Δɻ ϋογϡɿ BD σʔλ@BDQLM σʔλ σʔλूܭ ࡞ࡁΈ Ωϟογϡώοτ͢ΔͷͰεΩοϓ
ϋογϡɿ FDG σʔλ@FDGQLM มߋ σʔλ ະ࡞ HPLBSUͷϑΝΠϧͷ໋໊γεςϜͷಛ ϑΝΠϧ໊ɺґଘ͢ΔσʔλɾίʔυͰܾ·Δɻ ґଘσʔλɾίʔυ͕มΘΔͱϑΝΠϧ໊มߋʹͳΓɺ࠶࣮ߦ͢Δɻ σʔλूܭ
Ωϟογϡώοτ͠ͳ͍ ͷͰ࠶࣮ߦ
ϋογϡɿ FDG σʔλ@FDGQLM มߋ σʔλ ࡞ࡁΈ HPLBSUͷϑΝΠϧͷ໋໊γεςϜͷಛ ϑΝΠϧ໊ɺґଘ͢ΔσʔλɾίʔυͰܾ·Δɻ ґଘσʔλɾίʔυ͕มΘΔͱϑΝΠϧ໊มߋʹͳΓɺ࠶࣮ߦ͢Δɻ σʔλूܭ
Ωϟογϡώοτ͢ΔͷͰεΩοϓ
՝ᶆɿࣅͨΑ͏ͳ͕ؔϓϩμΫτ͝ͱʹॏෳͯ͠࡞ΒΕΔ ࣅ͕ͨؔ͋ͬͪʹͬͪ͜ʹ͋Γɺ ϝϯςφϯείετ͕େ͖͗͢ σʔλͷμϯϩʔυಛྔ࡞ͳͲɺͲͷϓϩμΫτͰڞ௨͢Δ ॲཧ͕͍ΖΜͳϦϙδτϦʹॏෳͯ͠࡞ΒΕΔɻ def download_by_id(id): … def download(id,
count): … ϨϙδτϦ" ϨϙδτϦ#
ղܾᶆϚΠΫϩαʔϏε͕ͩڞ௨λεΫू ڞ༗Մೳͳͷ༗ޮ׆༻ ंྠͷ࠶ൃ໌Λࢭ͢ΔΈͮ͘Γ ڞ༗ͷϨϙδτϦʹ࣮ɻ HPLBSUλεΫͰ࣮͠ɺͲͷϓϩμΫτͷύΠϓϥΠϯʹܨ͗͜ΊΔɻ import DownloadTask ϨϙδτϦ" ϨϙδτϦ# import
DownloadTask ࣾίʔυݕࡧج൫ͰΓ͍ͨ͜ͱʹ͍ۙίʔυ͕ͳ͍͔୳ͤΔ
՝ᶇɿ։ൃऀʹΑͬͯॻ͖ํʹΒ͖͕ͭ͋ΓɺಡΈʹ͍͘ ओ୲ऀҎ֎͕ϓϩμΫτʹίϛοτ͠Α͏ͱ ͯ͠Θ͔Βͳ͍ ɾͲ͏͍͏ॱʹ࣮ߦ͢Ε͍͍ͷ͔͔Βͳ͍ ɾσΟϨΫτϦ͕ෳࡶͰɺΤϯυϙΠϯτͷॴ͕ݟͨΒͳ͍ ɾΫϥεͷཻͱ͔̍ߦͷ͞ͳͲɺࡉ͔͍ॻ͖ํͷҧ͍͕ؾʹͳΔ
ɾͲ͏͍͏ॱʹ࣮ߦ͢Ε͍͍ͷ͔͔Βͳ͍ ɾσΟϨΫτϦ͕ෳࡶͰɺΤϯυϙΠϯτͷॴ͕ݟͨΒͳ͍ ɾΫϥεͷཻͱ͔̍ߦͷ͞ͳͲɺࡉ͔͍ॻ͖ํͷҧ͍͕ؾʹͳΔ HPLBSU DPPLJFDVUUFS DSVGU SV ff Ͱॻ͖ํΛඪ४Խ ˠHPLBSUͰύΠϓϥΠϯʹ࣮ߦॱ͕ॻ͔Ε͍ͯΔ
ˠDPPLJFDVUUFSͰσΟϨΫτϦߏΛඪ४Խ͍ͯ͠Δ ˠDSVGUͰɺݹ͍ϓϩμΫτ࠷৽ͷܗʹै͢Δ ˠHPLBSUͷॻ͖ํ͕͋ΔͷͰΫϥεཻͳͲ͕ҰఆʹͳΔ ˠSV ff ͰϑΥʔϚοτΛ౷Ұ͢Δ ղܾᶇॻ͖ํͷඪ४ԽΛڧ੍͢Δ
ɾͲ͏͍͏ॱʹ࣮ߦ͢Ε͍͍ͷ͔͔Βͳ͍ ɾσΟϨΫτϦ͕ෳࡶͰɺΤϯυϙΠϯτͷॴ͕ݟͨΒͳ͍ ɾΫϥεͷཻͱ͔̍ߦͷ͞ͳͲɺࡉ͔͍ॻ͖ํͷҧ͍͕ؾʹͳΔ HPLBSU DPPLJFDVUUFS DSVGU SV ff Ͱॻ͖ํΛඪ४Խ ˠHPLBSUͰύΠϓϥΠϯʹ࣮ߦॱ͕ॻ͔Ε͍ͯΔ
ˠDPPLJFDVUUFSͰσΟϨΫτϦߏΛඪ४Խ͍ͯ͠Δ ˠDSVGUͰɺݹ͍ϓϩμΫτ࠷৽ͷܗʹै͢Δ ˠHPLBSUͷॻ͖ํ͕͋ΔͷͰΫϥεཻͳͲ͕ҰఆʹͳΔ ˠSV ff ͰϑΥʔϚοτΛ౷Ұ͢Δ ղܾᶇॻ͖ํͷඪ४ԽΛڧ੍͢Δ ܗʹ߹ΘͤͯϨϙδτϦͷσΟϨΫτϦߏΛॳظԽ͢Δ πʔϧ ΧελϜͳܗʹ߹ΘͤͯϨϙδτϦΛॳظԽͰ͖Δ
ɾͲ͏͍͏ॱʹ࣮ߦ͢Ε͍͍ͷ͔͔Βͳ͍ ɾσΟϨΫτϦ͕ෳࡶͰɺΤϯυϙΠϯτͷॴ͕ݟͨΒͳ͍ ɾΫϥεͷཻͱ͔̍ߦͷ͞ͳͲɺࡉ͔͍ॻ͖ํͷҧ͍͕ؾʹͳΔ HPLBSU DPPLJFDVUUFS DSVGU SV ff Ͱॻ͖ํΛඪ४Խ ˠHPLBSUͰύΠϓϥΠϯʹ࣮ߦॱ͕ॻ͔Ε͍ͯΔ
ˠDPPLJFDVUUFSͰσΟϨΫτϦߏΛඪ४Խ͍ͯ͠Δ ˠDSVGUͰɺݹ͍ϓϩμΫτ࠷৽ͷܗʹै͢Δ ˠHPLBSUͷॻ͖ํ͕͋ΔͷͰΫϥεཻͳͲ͕ҰఆʹͳΔ ˠSV ff ͰϑΥʔϚοτΛ౷Ұ͢Δ ղܾᶇॻ͖ํͷඪ४ԽΛڧ੍͢Δ աڈʹ࡞ͬͨϨϙδτϦ͕࠷৽ͷܗ͔Βҳ͍ͯ͠Δ͔Λ νΣοΫ͢Δπʔϧ ࠷৽ͷܗ͔ΒͷࠩΛղফͯ͘͠ΕΔ
ɾͲ͏͍͏ॱʹ࣮ߦ͢Ε͍͍ͷ͔͔Βͳ͍ ɾσΟϨΫτϦ͕ෳࡶͰɺΤϯυϙΠϯτͷॴ͕ݟͨΒͳ͍ ɾΫϥεͷཻͱ͔̍ߦͷ͞ͳͲɺࡉ͔͍ॻ͖ํͷҧ͍͕ؾʹͳΔ HPLBSU DPPLJFDVUUFS DSVGU SV ff Ͱॻ͖ํΛඪ४Խ ˠHPLBSUͰύΠϓϥΠϯʹ࣮ߦॱ͕ॻ͔Ε͍ͯΔ
ˠDPPLJFDVUUFSͰσΟϨΫτϦߏΛඪ४Խ͍ͯ͠Δ ˠDSVGUͰɺݹ͍ϓϩμΫτ࠷৽ͷܗʹै͢Δ ˠHPLBSUͷॻ͖ํ͕͋ΔͷͰΫϥεཻͳͲ͕ҰఆʹͳΔ ˠSV ff ͰϑΥʔϚοτΛ౷Ұ͢Δ ղܾᶇॻ͖ํͷඪ४ԽΛڧ੍͢Δ
ػցֶशͷʮ͋Δ͋Δʯ՝ͱͦͷղܾ ࣮ݧΛຊ൪Ͱ࠶ݱͰ͖ͳ͍ όʔδϣϯཧ͕໘ ಉ͡ॲཧΛ܁Γฦͨ͘͠ͳ͍ ؔΛॏෳͯ͠࡞Γͨ͘ͳ͍ ॻ͖ํ͕Βͭ͘ શ࣮ݧ݁ՌΛઃఆͱϖΞͰอଘ σʔλͷύΠϓϥΠϯΛཧ ඞཁͳ෦Λٯࢉͯ͠࠶࣮ߦ ڞ௨λεΫू
ॻ͖ํͷඪ४ԽΛڧ੍ ϊϋΛөͨ͠ύΠϓϥΠϯπʔϧ HPLBSUΛ։ൃɾ׆༻
.-0QTʮ͋Δ͋Δʯ՝ͷղܾͱͦͷͨΊͷϥΠϒϥϦHPLBSU ɾ෦ۙʹͳͬͨػցֶशʹજΉਏΈ ɾ෦ػցֶश͋Δ͋Δ՝ͷղܾͱHPLBSU ɾ෦HPLBSUͰύΠϓϥΠϯΛॻ͍ͯΈΔ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ ੜσʔλ ूܭσʔλ ੜσʔλΛμϯϩʔυ͠ɺ BHFΛ5SVFʹมͨ͠ूܭσʔλΛ࡞Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ ੜσʔλ ूܭσʔλ ੜσʔλΛμϯϩʔυ͠ɺ BHFΛ5SVFʹมͨ͠ूܭσʔλΛ࡞Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ ੜσʔλ ूܭσʔλ ੜσʔλΛμϯϩʔυ͠ɺ BHFΛ5SVFʹมͨ͠ूܭσʔλΛ࡞Δ σϞ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ %PXOMPBE%BUB .BLF'FBUVSF σʔλΛμϯϩʔυ ूܭσʔλΛ࡞Δ શମͷྲྀΕ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ σʔλμϯϩʔυλεΫΛ࣮ ܧঝͯ͠ϝιουΛ࣮͍ͯ͘͠ self.dump()ʹͨ͠σʔλ͕͜ͷλεΫͷग़ྗ Լྲྀʹ͋Δ࣍λεΫʹ͞ΕΔ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ σʔλμϯϩʔυλεΫΛ࣮ ܧঝͯ͠ϝιουΛ࣮͍ͯ͘͠ self.dump()ʹͨ͠σʔλ͕͜ͷλεΫͷग़ྗ Լྲྀʹ͋Δ࣍λεΫʹ͞ΕΔ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ σʔλμϯϩʔυλεΫΛ࣮ ܧঝͯ͠ϝιουΛ࣮͍ͯ͘͠ self.dump()ʹͨ͠σʔλ͕͜ͷλεΫͷग़ྗ Լྲྀʹ͋Δ࣍λεΫʹ͞ΕΔ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ σʔλΛಡΈࠐΉ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ σʔλμϯϩʔυλεΫΛ࣮ ܧঝͯ͠ϝιουΛ࣮͍ͯ͘͠ self.dump()ʹͨ͠σʔλ͕͜ͷλεΫͷग़ྗ Լྲྀʹ͋Δ࣍λεΫʹ͞ΕΔ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ σʔλΛಡΈࠐΉ λεΫͷग़ྗʹͳΔ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ self.load()Ͱ্ྲྀλεΫͷ݁Ռ͕ྲྀΕͯ͘Δ σʔλूܭλεΫΛ࣮ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ self.load()Ͱ্ྲྀλεΫͷ݁Ռ͕ྲྀΕͯ͘Δ σʔλूܭλεΫΛ࣮ ґଘσʔλΛಡΈࠐΈ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ self.load()Ͱ্ྲྀλεΫͷ݁Ռ͕ྲྀΕͯ͘Δ σʔλूܭλεΫΛ࣮ ґଘσʔλΛಡΈࠐΈ σʔλΛूܭ͢Δ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ self.load()Ͱ্ྲྀλεΫͷ݁Ռ͕ྲྀΕͯ͘Δ σʔλूܭλεΫΛ࣮ ґଘσʔλΛಡΈࠐΈ λεΫͷग़ྗ σʔλΛूܭ͢Δ λεΫͰΓ͍ͨ͜ͱΛهड़͢Δ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ ԼྲྀλεΫ্͕ྲྀλεΫͷ݁ՌΛ͏͜ͱ͚ͩΛఆٛ ࣮ࡍͷ࣮ߦॱgokart͕ࣗಈͰஅ ύΠϓϥΠϯΛ࣮͢Δ ґଘؔΛهड़͢Δ %PXOMPBE%BUB .BLF'FBUVSF σʔλΛμϯϩʔυ ूܭσʔλΛ࡞Δ ґଘ
HPLBSUͰ࡞ΔγϯϓϧͳύΠϓϥΠϯ HPLBSUΛ࣮ߦ͢Δ gokart.build()ͰύΠϓϥΠϯΛ࣮ߦ͢Δ ͖ͬ͞ͷύΠϓϥΠϯ gokart͕ύΠϓϥΠϯதͷλεΫΛඞཁͳॱ Ͱ࣮ߦͯ͘͠ΕΔ
·ͱΊ ɾػցֶशࢼߦࡨޡ͕ඞཁ͕ͩɺ࣮ݧཧ͕ࠞཚ͕ͪ͠Ͱਏ͍ ɾ҆ఆͨ͠ຊ൪ӡ༻ʹɺཧίετΛԼ͛ͳ͕Βɺ࠶ݱੑɾ࠶ ࣮ߦੑɾඪ४Խ͢Δඞཁ͕͋Δ ɾղܾϊϋΛ٧ΊࠐΜͩϥΠϒϥϦHPLBSUΛ։ൃ ɾΤϜεϦʔͰΛ͑ΔϚΠΫϩαʔϏεʹϊϋΛ ԣల։͢ΔͨΊʹHPLBSUΛ׆༻ ػցֶशΔͳΒ pip install
gokart