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
Ruby のデータサイエンス対応の現状確認
Search
Kenta Murata
November 30, 2017
Technology
0
2.1k
Ruby のデータサイエンス対応の現状確認
Meguro.rb 2017.11.30
Kenta Murata
November 30, 2017
Tweet
Share
More Decks by Kenta Murata
See All by Kenta Murata
waitany と waitall を作った話
mrkn
0
310
HolidayJp.jl を作りました
mrkn
0
340
Calling Julia functions from Streamlit applications
mrkn
1
560
Red Data Tools で切り開く Ruby の未来
mrkn
3
1.3k
Method-based JIT compilation by transpiling to Julia
mrkn
0
8.6k
Apache Arrow C++ Datasets
mrkn
4
1.8k
Reducing ActiveRecord memory consumption using Apache Arrow
mrkn
0
1.9k
RubyData and Rails
mrkn
0
3.4k
Tensor and Arrow
mrkn
0
1.1k
Other Decks in Technology
See All in Technology
楽しく学ぼう!ネットワーク入門
shotashiratori
1
500
頼れる Agentic AI を支える Datadog のオブザーバビリティ / Powering Reliable Agentic AI with Datadog Observability
aoto
PRO
0
250
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
スピンアウト講座06_認証系(API-OAuth-MCP)入門
overflowinc
0
460
AlloyDB 奮闘記
hatappi
0
190
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
380
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
10
5.4k
Phase01_AI座学_基礎
overflowinc
0
1.7k
Phase12_総括_自走化
overflowinc
0
580
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
180
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.6k
品質を経営にどう語るか #jassttokyo / Communicating the Strategic Value of Quality to Executive Leadership
kyonmm
PRO
2
1k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
450
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
280
Mobile First: as difficult as doing things right
swwweet
225
10k
Designing for humans not robots
tammielis
254
26k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
570
Paper Plane
katiecoart
PRO
0
48k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How STYLIGHT went responsive
nonsquared
100
6k
Transcript
Ruby ךر٦ة؟؎ؒٝأ㼎䘔ך 植朐然钠 Kenta Murata, Speee Inc. 涪鿇 R&D ؚٕ٦ف
Thu, Nov 30, 2017 Meguro.rb 1 / 16
self.introduce Kenta Murata (@mrkn) Full-time CRuby committer at Speee Inc.
CRuby The maintainer of bigdecimal Other OSS pycall.rb, mxnet.rb, enumerable-statistics, vim-cruby Hobby Play with my daughter, Mathematics, Physics, Computer Science, Reading SF, etc. 2 / 16
植㖈ծRuby ךر٦ة؟؎ؒٝأ㼎䘔כ麓床劍דׅկ 劤傈כծוזفٗآؙؑزָ㶷㖈׃ծוז暴䗙ָ ַ֮稱➜׃תׅկ זׁכծמוַֿךفٗآؙؑزח⸇׃גְֹծ Ruby ךر٦ة؟؎ؒٝأ㼎䘔⸇鸞ׅ䔲✲罏חזגְ ְֹדׅկ 3 /
16
Contents SciRuby Ruby Numo pycall.rb mxnet.rb Red Data Tools project
GPGPU ͷରԠঢ়گ RubyData organization 4 / 16
SciRuby NMatrix Λத৺ͱ͢ΔՊֶٕज़ܭࢉ༻ gem ܈ ւ֎Ͱ࠷༗໊ͳ Ruby ͷՊֶٕज़ܭࢉϥΠϒϥϦ܈ ൃىਓͨͪ࠷ۙશ͘։ൃ͓ͯ͠ΒͣɺGSOC ͷϓϩδΣΫτͰֶੜ͕
৭ʑ࡞͍ͬͯΔͷͷدͤूΊঢ়ଶʹͳ͍ͬͯΔ Ұ෦ͷجຊԋࢉ͕͍όά͕͋Δ 5 / 16
Ruby Numo Numo::NArray Λத৺ͱ͢ΔՊֶٕज़ܭࢉ༻ gem ܈ ݩ NArray ͷ࡞ऀͰ͋Δాதণ͞Μ͕ൃىਓͰ͋Γ։ൃͷத৺ʹ͍Δ RubyKaigi
Ͱൃද͞Ε͍ͯͯɺຊͰͦͦ͜͜ΒΕ͍ͯΔͱࢥ͏ ւ֎Ͱ͋·ΓΒΕ͍ͯͳ͍ (?) 6 / 16
SciRuby ה Ruby Numo דדֹֿה σʔλϑϨʔϜϥΠϒϥϦ Daru ͕ NMatrix ʹରԠ͍ͯ͠Δ
[HELP] ୭͔ Numo::NArray ʹରԠ͍ͤͯͩ͘͞͞ Պֶٕज़ܭࢉ༻ͷجૅؔ܈ GSL ͷόΠϯσΟϯά͕ SciRuby ͱ Ruby Numo ͷͦΕͧΕʹରͯ͠ ଘࡏ͢Δ ՄࢹԽ Gnuplot Λ͏ϥΠϒϥϦ͕ SciRuby ͱ Ruby Numo ͷͦΕͧΕʹର ͯ͠ଘࡏ͢Δ rbplotly ͕྆ํʹରԠ͍ͯ͠Δ (ͣ) 7 / 16
pycall.rb Ruby ͔Β Python Λݺͼग़ͤΔ Ruby ͱಉ͡ϓϩηεͰ Python ΠϯλʔϓϦλΛॳظԽ͠ݺͼग़͢ ࣍ͷϦϦʔε͔Β
Python Λݺͼग़͢ࡍʹ GVL Λղ์͢ΔΑ͏ʹͳΔͷ Ͱɺpuma Ͱಈ͘ Rails ΞϓϦέʔγϣϯͰ͑Δʂ ͔͠͠ɺPython ଆͷ GIL ͷ੍ޚΛ·ͩͬͯͳ͍ͷͰɺRuby ଆͷෳͷ εϨου͔Β Python ͷػೳΛݺͼग़ͯ͠ͳΒͳ͍ ཉ͍͠ػೳͷఏҊΛϓϧϦΫΤετͷܗͰืू͍ͯ͠·͢ Ұॹʹ։ൃͯ͘͠ΕΔɺRuby ͱ Python ͷ྆ํʹৄ͍͠ਓืूͯ͠·͢ 8 / 16
mxnet.rb MXNet ͷ Ruby όΠϯσΟϯά 10݄ࠒ͔Βຊؾग़ͯ͠ RubyConf ·Ͱʹͤ͞Α͏ͱ͚ͨ͠ͲແཧͰ͠ ͨʂʂ 3݄ͷԭೄ
RubyKaigi 02 ·ͰʹͳΜͱ͔͢Δ Ruby ͱ MXNet ͷ྆ํʹৄ͍͠ਓͷڠྗΛืू͍ͯ͠·͢ 9 / 16
Red Data Tools project Apache Arrow Λத৺ͱͨ͠σʔλπʔϧΤίγεςϜͷ Ruby ൛ ਢ౻͞Μ্ཱ͕ͪ͛ͨ
ਢ౻͞Μ Apache Arrow ͷ PMC ʹͳͬͨ Red Chainer ͳͲɺApache Arrow ͱؔͳ͍ੜϓϩμΫτͷ։ ൃ࢝·͍ͬͯΔ ͓ͦΒؔ͘ऀશһ͕ຊਓͰ͋Δ ຖ݄ʮOSS Gate ౦ژϛʔτΞοϓ for Red Data ToolsʯͰ։ൃ͕ਐΊΒΕ ͍ͯΔ 12݄ͷΠϕϯτͷҊΛޙͰ͠·͢ 10 / 16
GPGPU פך㼎䘔朐屣 tensorflow.rb Ͱ GPU ͕͑Δ (ͣ) pycall.rb Ͱ Python
ͷ GPGPU ରԠϥΠϒϥϦΛ͑Δ ࠓ 2017 ͷ GSOC Ͱ ArrayFire ͷόΠϯσΟϯά͕࡞ΒΕͨ ࠓ 2017 ͷ Ruby Grant Ͱ GPGPU ରԠϓϩδΣΫτ͕2݅࠾ 1. RbCUDA: ArrayFire ͷόΠϯσΟϯάΛ࡞ͬͨਓͷϓϩδΣΫτͰɺ CUDA ϥϯλΠϜϥΠϒϥϦͷ Ruby όΠϯσΟϯά 2. cumo: sonots ͞ΜͷϓϩδΣΫτͰɺcupy ͷ Ruby ൛Λ Numo::NArray ʹରͯ͠࡞Δ mxnet.rb ͕͑ΔΑ͏ʹͳΔͱɺ͜Ε GPGPU ʹରԠ͢Δ 11 / 16
Ruby דر٦ة؟؎ؒٝأׅ橆㞮知⽃ ח鑐ׅ倯岀 ࣮ Docker image Λ࡞ͬͯ͋Δɻ docker run --rm
-it -p 8888:8888 rubydata/notebooks ͜ΕͰɺJupyter notebbok ্ཱ͕͕ͪΔͷͰɺIRuby kernel ͷϊʔτϒοΫ Λ࡞ΕࢼͤΔɻ 12 / 16
RubyData organization SciRubyɺRuby NumoɺRed Data ToolsɺͳͲෳͷϓϩδΣΫτʹਓ͕ ࢄ͍ͯ͠Δݱঢ়ɺ७ਮͳར༻ऀ͕ށ͍͍͢ ϓϩδΣΫτʹؔͳ͘ɺRuby ͱσʔλπʔϧΛΈ߹Θ͓ͤͯ͏ͱ͠ ͍ͯΔਓ͕ू·ͬͯใަ͕Ͱ͖Δ͕ඞཁͩΖ͏
ͱ͍͏Θ͚Ͱɺࢲ͕࡞Γ࢝Ί·ͨ͠ http://ruby-data.org/ ·ͩϥϯσΟϯάϖʔδ͔͠ͳ͍ʂʂ 13 / 16
RubyData needs helps!! ҎԼͷΑ͏ͳਓΛืूͯ͠·͢ ίϛϡχςΟӡӦ (ਓͷू·ΓΛ੍ޚ͢Δ͜ͱ) ͕ಘҙͳਓ (ࢲ mrkn ͕
Ұ൪ෆಘҙͳ͜ͱ) AWS ʹৄ͍͠ਓ (discourse ͷ্ཱͪ͛ͱӡӦΛखͬͯཉ͍͠) ࣗવݴޠͰͷܧଓతͳใൃ৴͕ಘҙͳਓ (ʮRuby ͰσʔλαΠΤϯ εʯతͳใൃ৴Λεέʔϧ͍ͤͨ͞) ӳޠ͕ಘҙͳਓ (ͨͪͷมͳӳޠΛͯ͠ཉ͍͠) docker-stacks ͷҡ࣋ͱൃలΛੵۃతʹͬͯ͘ΕΔਓ 14 / 16
זָׁ➙ּׅדֹֿה 1. ͬͯόάใࠂ 2. ຊʹดͯ͡ΔϓϩμΫτΛւ֎͚ʹӳޠͰհ͢Δ 3. ར༻ऀ͕૿͑ΔΑ͏ͳϒϩάهࣄΛॻ͘ (ͬͯΈͨܥ) 4. ։ൃऀ͕૿͑ΔΑ͏ͳϒϩάهࣄΛॻ͘
(։ൃڥΛ࡞ΔɺίʔυΛಡΜͰ Έͨܥ) 5. طଘͷϥΠϒϥϦʹϓϧϦΫΛૹͬͯ։ൃʹࢀՃ͢Δ 6. RubyData ͷӡӦνʔϜʹೖͬͯಘҙͳ͜ͱΛΔ 7. OSS Gate for Red Data Tools ʹࢀՃͯ͠։ൃ͢Δ 15 / 16
OSS Gate for Red Data Tools in Speee 2017.12.19 Red
Data Tools ϓϩδΣΫτͷ։ൃऀ͕ू·Γ·͢ɻ ॴ: ຊ4-1-4 ࠇ࡚Ϗϧ 5F Speee Inc. ηϛφʔϧʔϜ ࣌ؒ: 201712݄19 19:00 ։ 19:30 ։࢝ https://speee.connpass.com/event/72926/ 16 / 16