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

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

Kenta Murata
November 30, 2017

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

Meguro.rb 2017.11.30

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