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
Elixirで始めるデータサイエンス入門 ~Elixir製データサイエンスプラットフォーム「E...
Search
piacerex
June 02, 2019
Technology
810
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Elixirで始めるデータサイエンス入門 ~Elixir製データサイエンスプラットフォーム「Esuna」にて~
piacerex
June 02, 2019
More Decks by piacerex
See All by piacerex
実践生成AIレクチャー会(基本編)※高度編イントロ無版
piacerex
1
580
「エッジ×分散生成AI」の技術と変わる産業、そしてITの未来
piacerex
0
1k
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
1
2.3k
ノーコードと生成AI、IoTが繋がると何が出来るか?
piacerex
0
120
ElixirがHW化され、最新CPU/GPU/NWを過去のものとする数万倍、高速+超省電力化されたWeb/動画配信/AIが動く日
piacerex
0
640
fukuoka.ex/kokura.exとElixirって何ソレ美味しいの?つまみ食い
piacerex
0
180
PMMとは? … モダンなSaaSプロダクトに必須な役割(「プロマネチョットデキル#5」より)
piacerex
0
330
とうとう実践配備された ElixirDesktopにようこそ!!
piacerex
0
1.8k
7年間アドカレ続け、トップランカー入りしたElixirにようこそ!!
piacerex
0
420
Other Decks in Technology
See All in Technology
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
190
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
230
How to Design Configuration for Rails Applications
willnet
1
830
大型犬好きによるPugの紹介
yamanoku
1
160
専門領域のAIをどう評価するか
bengo4com
2
290
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
300
会社紹介資料 / Sansan Company Profile
sansan33
PRO
31
430k
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
180
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
130
Optunaの最新リリースv5.0について
pfn
PRO
0
120
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
夫婦で子育てするための育児標準化
codmoninc
PRO
0
450
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Mobile First: as difficult as doing things right
swwweet
225
10k
Making Projects Easy
brettharned
120
6.8k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Curious Case for Waylosing
cassininazir
1
570
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
ラッコキーワード サービス紹介資料
rakko
1
5.4M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Transcript
2019/6/2 (Sun) japan.ex#1 & fukuoka.ex#24 Elixirで始める データサイエンス入門 ~Elixir製データサイエンスプラットフォーム「Esuna」にて~ 2019/05/31 ver
0. 5作成 2019/06/02 ver 0. 9作成
1 Elixir、マイナー言語だけど、地味に生活を支えてます
2 福岡Elixirコミュニティ「fukuoka.ex」を主催してます 「fukuoka.ex」は、福岡で、Webシステム構築やビッグデータ/ AI・ML領域の「大量アクセス/データの高速処理と安定運用」 「高い開発効率」を両立できる「Elixir」「Phoenix」を盛り上げ、 Elixir自身も進化させていくコミュニティです SI経験に裏付けられた開発ノウハウと大規模インフラ運用知識 といった実践的なElixir活用と、マルチコア/GPU/FPGA活用、 Elixirコンパイラ開発といった、先端領域研究も、熱く展開中!!
3 ライブデモする「MeetUp」+入門者OKな「もくもく会」 仕事終わり、くつろぎ、ほろ酔いつつ、Elixir/Phoenix による先端プログラミングに触れるイベントを定期開催 毎月開催で、リモート参加も可なので、よろしければ、 ”福岡 Elixir”でググって、connpassご登録ください ▪もくもく会 (毎月、入門者もOK) ▪MeetUp
(隔月、経験者向け)
4
5 今年、小倉Elixirコミュニティ「kokura.ex」を発足!! 北九州の小倉で「kokura.ex」を発足しました fukuoka.exと連携しつつ、「福岡市」と「北九州市」を繋ぐこと で「福岡県」全体をElixirで盛り上げつつ、国内各地を繋ぎつつ、 やがて全世界に向けてElixirコンテンツ発信をしたいと思います
少しだけ、fukuoka.ex 発足当時のことお話します
7 再掲:fukuoka.ex#1
8 再掲:fukuoka.ex#1
tokyo.ex ↓ fukuoka.ex
10 2017/12、Shinjuku.exの高橋さんと意気投合 新宿Elixirコミュ「Shinjuku.ex」を主催し、最近はGlusterで 著名な高橋 敬祐さん (@kske_t) と出会い、fukuoka.exと Shinjuku.exが、わりかし同じ道を辿っていることを聞けました
Shinjuku.ex ↓ fukuoka.ex
12 fukuoka.exや刺激を受けたコミュニティの元は… fukuoka.ex、およびその姉妹のkokura.exは、こんな感じで、 発足したんです その他、fukuoka.exに刺激を受けて立ち上がった、各地Elixir コミュニティも割とあるようで、その根っこには、実は、tokyo.exと Shinjuku.exがありました (この場を借りて、感謝の言葉です)
13 一方、fukuoka.exのこれまで Qiitaコラム化していたり、成果報告スライドをまとめていますので、 よろしければご覧ください https://qiita.com/piacere_ex/items/3b88ebe9882ac8aef0ea https://speakerdeck.com/piacere/2018nian-fukuoka-dot-exji-ri-zhong-jian-cheng-guo-shi-ji-fa-biao
本編です
15 Enum.map/reduceが、かなりイイ具合 大抵のデータ処理は、この2つと、filter/sortをパイプで繋げば、 ほぼ完結と、シンプルで強力過ぎるのが、Elixir最大の魅力です defmodule DataCleansing do def run( filename
) do filename |> File.stream! # データクレンジング |> Flow.map( & String.replace( &1, ",", "¥t" ) ) # ①CSV→TSV |> Flow.map( & String.replace( &1, "¥r¥n", "¥n" ) ) # ②CRLF→LF |> Flow.map( & String.replace( &1, "¥"", "" ) ) # ③ダブルクォート外し # 集計 |> Enum.map( & &1 |> String.split( "¥t" ) ) # ④タブで分割 |> Enum.map( fn [ _head | tail ] -> tail |> List.first end ) # ⑤2番目の項目を抽出 |> Enum.reduce( %{}, fn name, acc -> # ⑥同値の出現数を集計 Map.update( acc, name, 1, &( &1 + 1 ) ) end ) |> Enum.sort( & elem( &1, 1 ) > elem( &2, 1 ) ) # ⑦多い順でソート end end
16 他Enumも便利だし、StreamもHaskell風でイイ もしくはTensorFlow風 zip/unzipやslice、take系がステキ
17 そして、「Flow」の衝撃 ~マルチコアの雷に打たれた~ 1年半前、BtoB向けマーケティングプロダクト開発にて、2時間も かかっていたデータ処理バッチ (Javaで誰か作った) をどうにか する際、Enumの並列実装「Flow」で同等処理を実装したら、 ナント、6分半で処理できてしまった (しかも1時間で実装完了)
このFlowとの衝撃的な出会いから、私はデータ処理領域での Elixirプロダクション適用に本腰を入れ、fukuoka.exのミッション にも、「Elixirによるデータサイエンス実現」が加わりました ▪Flow ▪Enum
そんなEnumを pandas級にレベルアップ
19 pandasライクなElixirライブラリ 「Dataframe」 sort第2以降優先、LEFT/RIGHT JOIN、dropなどの複数 項目指定、Enum.reduce頻出データ処理、CSV変換など、 Enumに無く、pandasで良く使うものは、大体揃えました (scikit-learnやNumPyの一部実装もクローンしています)
更に、データ操作を プログラミングレスに…
21 Elixirコードを生成するWebUIをVue.js+Elixirで Web上でUI操作するだけで、データ変換/集約/クレンジング を行える データサイエンスプラットフォーム「Esuna」 は、UIで 設定したデータ処理をElixirコード生成します (単独実行も可) α版は3日で作り、力武先生にもゲスト出演いただいた昨年6月 「fukuoka.ex#11:データサイエンスにコネクトするElixir」披露
Vue.js+Elixir の組み合わせ以外 では、たぶん3日で 仕上がらないかな
22 データ加工だけで無く、ディープラーニングモデルも生成 その後、「ErlangPort」によるElixir-Python連携でKerasの DLモデルを呼べるようにし、Kerasのコードも自動生成可に Kaggleのタイタニック問題を解くコラムで実演しています 第1回:https://qiita.com/piacere_ex/items/ab0b32c521293d4ab38e 第2回:https://qiita.com/piacere_ex/items/771389e1fe66dcf795c5
23 現在、UIリニューアルし、プロダクション利用しています 列ドリブンな操作メニューと、順番通りに進めればデータ処理系が 作れる9ステップのナビと、直感的なUIに全面リニューアルしました データソースとして、CSV/ExcelやDBだけで無く、AWSやGCP、 汎用APIにも対応…たとえば、CSVとBigQueryとかJoin可w Kaggleの 「タイタニック問題」 (Titanic: Machine
Learning from Disaster) をロードしていて、 欠損値の補完など を前述コラムにて
24 elixirforumでもEsunaについて聞かれました pandasが好きな方のようだったので、pandas的なデータ操作 ライブラリは、Esuna UIと別々に使えることをお知らせしました (でも、コード生成できるから使ってラクした方がいいよ、ともw)
それではEsunaで データサイエンス入門 https://qiita.com/piacere_ex/items/ab0b32c521293d4ab38e
26 データサイエンス以外の分野でも使われ始めています 「Esuna」は、データサイエンス文脈に限らず、データ処理全般を カンタンに取り扱えるため、AI・ML案件だけで無く、以下のような データ処理においても利用しています ① 事業向けデータ整形/集計の「BI」 ※Business Intelligence ②
既存システムのリプレースに伴う「データ移行」 「ETLツール」のカバー範囲を、マルチコアのパワーとErlangVMの 安定性で、高速かつ安全にこなすことが可能です それと、データ操作をElixirコード生成するので、こんな使い方も ③ インプットデータからデータ加工を行うようなWeb/API開発 (データ読込/加工部分がプログラミングレスで生成できる)
27 次期Esunaは、データ加工Webアプリ/APIも出力 現在、データ処理部分のみのElixirコード生成ですが、もう一歩 推し進めて、UI上で設定したデータの加工を行い、その加工後 データでCRUDするWebアプリ/API毎、生成する予定です (golangのHugoにデータ加工エンジンを突っ込んだような?) これにより、CRUDする程度のWebアプリ開発している方の仕事 はreduceしてしまおう…とまでは言いませんが、よりクリエイティブ な仕事にパラメータ振りできるようになるでしょう
28 訓練画像の加工/管理もEsunaに搭載予定 現在は、テキスト/数値主体のデータ処理のみの対応ですが、 画像系Deep Learningの退屈で頻出する前処理…たとえば、 ➢ OpenCVでやるような加工 (回転/拡大・縮小/色変更) ➢ オーバーサンプリリングやアンダーサンプリング
などの操作と、それら画像の管理もEsunaで簡素化したいです これで、訓練画像の加工/管理の手間が減り、 モデル開発やSIにより集中しやすくなります 「退屈なことはPythonにやらせよう」では無く、 退屈なことは、そもそもやらないようにするために、 ツールに落とし込もう…ということですね (≒自らの生産性を上げるための生産こそ本懐)
29 リアルタイムフロント技術「LiveView」でリビルド中 現行バージョンは、Vue.jsでフロントUIを実装していますが、 「Phoenix LiveView」での再実装を始めています Phoenix コミッター、Chris McCordにVue.js版Esunaを見せ、 LiveViewでリビルドする話をしたら、「Github教えて」「グラフは 何のJS?」とか聞かれました
(José もメッチャ画面触ってた) とてもフレンドリー
30 fukuoka.exが手掛けるデータサイエンスプロダクト ➢ 「Hastega」 … GPU & マルチコアドライバ ➢ 「Cockatrise」
… FPGAドライバ ※予測性能はGPU以上 ➢ 「DeepPipe」 … ディープラーニングコア (MNIST90%超) これらはEsunaと結合し、Pythonツールチェーンと勝負できる、 爆速のデータサイエンスプラットフォームを提供します (TensorFlowやscikit-learnといったMachine Learning/ Deep Learningの牙城を崩しに行く?…かも知れない) 「ツールチェーン」の充実に加え、今月から新たに開始するコラム、 「Esunaで始めるデータサイエンス入門」で、fukuoka.exは、 「Elixirによるデータサイエンス実現」 を福岡だけに限らず、全国/全世界に配信していこうと思います
31 最後に: Elixirの「潮目」は今後かなり変わっていく Lonestar ElixirConf 2019の、Bruce Tateのキーノートでは、 José と Plataformatec
から始まった初期のElixirの流れが、 José自身の「Elixir Is Done」という、ある種の完了宣言にて、 コミュニティや各アルケミストに開放されていく趣旨の発表でした 今後のElixirおよび周辺を握るカギは「1人1人の投票 (vote)」 https://www.youtube.com/watch?v=KW85rW6-PgI
32 fukuoka.exも、じょじょに海外のElixir勢とシンクロ José との交流を通じて、Elixirのネイティブコード化などコア部分 に関わるコミュニケーションを始めてます また、海外Elixirコミュニティとのジョイントイベントの企画や、各国 Elixirプレイヤーとの「交換留学」的な活動も開始しています https://www.youtube.com/watch?v=qCA-Qu-TPoM
※9/7 (土) は、Elixirのために カラダを空けておいてください