Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby のデータサイエンス対応の現状確認

Ruby のデータサイエンス対応の現状確認

Meguro.rb 2017.11.30

Avatar for Kenta Murata

Kenta Murata

November 30, 2017
Tweet

More Decks by Kenta Murata

Other Decks in Technology

Transcript

  1. 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
  2. Contents SciRuby Ruby Numo pycall.rb mxnet.rb Red Data Tools project

    GPGPU ΁ͷରԠঢ়گ RubyData organization 4 / 16
  3. Ruby Numo Numo::NArray Λத৺ͱ͢ΔՊֶٕज़ܭࢉ༻ gem ܈ ݩ૆ NArray ͷ࡞ऀͰ͋Δాதণ޺͞Μ͕ൃىਓͰ͋Γ։ൃͷத৺ʹ͍Δ RubyKaigi

    Ͱ΋ൃද͞Ε͍ͯͯɺ೔ຊͰ͸ͦͦ͜͜஌ΒΕ͍ͯΔͱࢥ͏ ւ֎Ͱ͸͋·Γ஌ΒΕ͍ͯͳ͍ (?) 6 / 16
  4. SciRuby ה Ruby Numo דדֹ׷ֿה σʔλϑϨʔϜϥΠϒϥϦ Daru ͕ NMatrix ʹରԠ͍ͯ͠Δ

    [HELP] ୭͔ Numo::NArray ʹ΋ରԠ͍ͤͯͩ͘͞͞ Պֶٕज़ܭࢉ༻ͷجૅؔ਺܈ GSL ͷόΠϯσΟϯά͕ SciRuby ͱ Ruby Numo ͷͦΕͧΕʹରͯ͠ ଘࡏ͢Δ ՄࢹԽ Gnuplot Λ࢖͏ϥΠϒϥϦ͕ SciRuby ͱ Ruby Numo ͷͦΕͧΕʹର ͯ͠ଘࡏ͢Δ rbplotly ͕྆ํʹରԠ͍ͯ͠Δ (͸ͣ) 7 / 16
  5. pycall.rb Ruby ͔Β Python Λݺͼग़ͤΔ Ruby ͱಉ͡ϓϩηε಺Ͱ Python ΠϯλʔϓϦλΛॳظԽ͠ݺͼग़͢ ࣍ͷϦϦʔε͔Β

    Python Λݺͼग़͢ࡍʹ GVL Λղ์͢ΔΑ͏ʹͳΔͷ Ͱɺpuma Ͱಈ͘ Rails ΞϓϦέʔγϣϯͰ΋࢖͑Δʂ ͔͠͠ɺPython ଆͷ GIL ͷ੍ޚΛ·ͩ΍ͬͯͳ͍ͷͰɺRuby ଆͷෳ਺ͷ εϨου͔Β Python ͷػೳΛݺͼग़ͯ͠͸ͳΒͳ͍ ཉ͍͠ػೳͷఏҊΛϓϧϦΫΤετͷܗͰืू͍ͯ͠·͢ Ұॹʹ։ൃͯ͘͠ΕΔɺRuby ͱ Python ͷ྆ํʹৄ͍͠ਓ΋ืूͯ͠·͢ 8 / 16
  6. mxnet.rb MXNet ͷ Ruby όΠϯσΟϯά 10݄ࠒ͔Βຊؾग़ͯ͠ RubyConf ·Ͱʹ׬੒ͤ͞Α͏ͱ͚ͨ͠ͲແཧͰ͠ ͨʂʂ 3݄ͷԭೄ

    RubyKaigi 02 ·ͰʹͳΜͱ͔͢Δ Ruby ͱ MXNet ͷ྆ํʹৄ͍͠ਓͷڠྗΛืू͍ͯ͠·͢ 9 / 16
  7. Red Data Tools project Apache Arrow Λத৺ͱͨ͠σʔλπʔϧΤίγεςϜͷ Ruby ൛ ਢ౻͞Μ্ཱ͕ͪ͛ͨ

    ਢ౻͞Μ͸ Apache Arrow ͷ PMC ʹ΋ͳͬͨ Red Chainer ͳͲɺApache Arrow ͱ͸௚઀ؔ܎ͳ͍೿ੜϓϩμΫτͷ։ ൃ΋࢝·͍ͬͯΔ ͓ͦΒؔ͘܎ऀ͸શһ͕೔ຊਓͰ͋Δ ຖ݄ʮOSS Gate ౦ژϛʔτΞοϓ for Red Data ToolsʯͰ։ൃ͕ਐΊΒΕ ͍ͯΔ 12݄ͷΠϕϯτͷҊ಺ΛޙͰ͠·͢ 10 / 16
  8. 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
  9. Ruby דر٦ة؟؎ؒٝأׅ׷橆㞮׾知⽃ ח鑐ׅ倯岀 ࣮͸ Docker image Λ࡞ͬͯ͋Δɻ docker run --rm

    -it -p 8888:8888 rubydata/notebooks ͜ΕͰɺJupyter notebbok ্ཱ͕͕ͪΔͷͰɺIRuby kernel ͷϊʔτϒοΫ Λ࡞Ε͹ࢼͤΔɻ 12 / 16
  10. RubyData needs helps!! ҎԼͷΑ͏ͳਓΛืूͯ͠·͢ ίϛϡχςΟӡӦ (ਓͷू·ΓΛ੍ޚ͢Δ͜ͱ) ͕ಘҙͳਓ (ࢲ mrkn ͕

    Ұ൪ෆಘҙͳ͜ͱ) AWS ʹৄ͍͠ਓ (discourse ͷ্ཱͪ͛ͱӡӦΛख఻ͬͯཉ͍͠) ࣗવݴޠͰͷܧଓతͳ৘ใൃ৴͕ಘҙͳਓ (ʮRuby ͰσʔλαΠΤϯ εʯతͳ৘ใൃ৴Λεέʔϧ͍ͤͨ͞) ӳޠ͕ಘҙͳਓ (๻ͨͪͷมͳӳޠΛ௚ͯ͠ཉ͍͠) docker-stacks ͷҡ࣋ͱൃలΛੵۃతʹ΍ͬͯ͘ΕΔਓ 14 / 16
  11. ׫זׁ׿ָ➙ּׅדֹ׷ֿה 1. ࢖ͬͯόάใࠂ 2. ೔ຊʹดͯ͡ΔϓϩμΫτΛւ֎޲͚ʹӳޠͰ঺հ͢Δ 3. ར༻ऀ͕૿͑ΔΑ͏ͳϒϩάهࣄΛॻ͘ (΍ͬͯΈͨܥ) 4. ։ൃऀ͕૿͑ΔΑ͏ͳϒϩάهࣄΛॻ͘

    (։ൃ؀ڥΛ࡞ΔɺίʔυΛಡΜͰ Έͨܥ) 5. طଘͷϥΠϒϥϦʹϓϧϦΫΛૹͬͯ։ൃʹࢀՃ͢Δ 6. RubyData ͷӡӦνʔϜʹೖͬͯಘҙͳ͜ͱΛ΍Δ 7. OSS Gate for Red Data Tools ʹࢀՃͯ͠։ൃ͢Δ 15 / 16
  12. OSS Gate for Red Data Tools in Speee 2017.12.19 Red

    Data Tools ϓϩδΣΫτͷ։ൃऀ͕ू·Γ·͢ɻ ৔ॴ: ࿡ຊ໦4-1-4 ࠇ࡚Ϗϧ 5F Speee Inc. ηϛφʔϧʔϜ ࣌ؒ: 2017೥12݄19೔ 19:00 ։৔ 19:30 ։࢝ https://speee.connpass.com/event/72926/ 16 / 16