8月30, 31日にドイツのエルランゲンで開催された EuroSciPy 2017 に発表者として参加してきた。カンファレンス参加を積極的にサポートしてくれる弊社に感謝感謝。
このカンファレンスは "Scientific Computing in Python" に関するあらゆる話題が対象で、numpy, scipy, matplotlib, pandas, Jupyter notebooks あたりが絡んでいればよろしい。SciPy Conference US のヨーロッパ版ということになる。本会議前2日間はチュートリアル、9月1日にはSprintもあったけど、そっちは不参加。
全体で200名程度の参加があったらしい。思っていたよりもずっと賑やかな会議だったなーという印象がある。参加者のバックグラウンドは教授から学生、企業の研究者、データサイエンティスト、エンジニアまで様々。
しゃべった
僕が発表した内容は、去年修士研究の片手間で作っていたオンライン型の推薦アルゴリズムのパッケージ FluRS について:
実験をして論文を書くためのexperimentalなライブラリなので、本当の意味で "Streaming" な実装とは言えないのだけど…。
Proposalで書いたトークの概要はここにある。Real-world machine learning と向き合い始めて半年、ここらで去年までやっていたことにもう一度向き合って整理して、次に繋げるいいきっかけになれば、と思って応募した。
『行列計算の基本くらいは分かるけど、推薦アルゴリズムは何も知らない』という聴衆を想定して、古典的な推薦アルゴリズムから僕が修士研究で取り組んでいたオンライン型の推薦の話まで、理論と実装の雰囲気を15分で話した。「よかったよ!」とわざわざ声をかけてくれた人たちが何人もいて、短い説明から本質的な問題点を汲み取って鋭い質問を投げかけてくれた人たちがいて、とても優しい世界だった…うれしい…。
そして何より「行ってよかった」と思えたのは、Amazon US で Senior Applied Scientist をやっている Federico Vaggi 氏やSonyで推薦関連のR&Dをしている某氏をはじめとする、非常に濃い人たちとこの話題について近い距離で議論できた点。こういう時間がこの先1年間くらいの糧になる。
あと、2日目の最後にあったLT(ひとり2分!)は当日に発表者を募集していたので、勢いで td-client-python や pandas-td を絡めて(無理矢理)Hivemall や Treasure Data のことを話した。が、これは難しかった…参加者の興味も、HadoopやSparkとはかけ離れたところにある印象だった。
エルランゲンという街
もうね、すごい。自然。森。会場だって森の中:
airbnbから会場まで40分くらい、こんな道をずーっと歩いていると、なんかもう地元で散歩している気分になる:
カンファレンスのソーシャルイベントでは、洞窟でビールをつくっている昔ながらのブルワリーが密集した高台のエリア(語彙力)で飲んで飲んでガイドツアーに参加して飲んで、という感じの素晴らしい時間を過ごした。水のようにビールを飲んで、でもどれ1つとして同じ味のビールは無くて、最高だったなァ:
お世辞にももう一度来たいと思うような街ではなかったけど、よい2日間でした。
前回のノルウェーからヨーロッパのカンファレンスが2回続いてしまったので、次はもう少し違う方角へ飛べたらいいですね。
以下ほかの発表について、メモと感想をつらつらと。
Keynote
Keynote 1: How to fix a scientific culture
- 『報告されている心理学実験の結果の多くは、再現実験で有意だと示せないものばかりだ』という、論文 "Estimating the reproducibility of psychological science" に書いてあるような話題
- みんな "noise mining", "p-hack" をして、自分の喜ばしい、有意だと言えそうな結果を探しているだけだという悲しい現実
- この世界をどうやって変えていくか?そもそも、データを扱うワークフロー上のすべてのステップ(仮説、実験、検証、…)で、我々は意識的・無意識的に“バイアス”をかけてしまっている
- アプローチ1: Pre-registration
- 実験の各ステップで、これまでやってきたことを peer-review する
- アイディアを元に実験を設計したらレビューを受ける、データを集めたらまたレビューを受ける…これを繰り返して、最後のレビューまでクリアしたら成果を公開してよい
- アプローチ2: Open Science
- Open science framework というプラットフォームもある
- データや手法、解析用スクリプトなど、様々な情報を公開してフェアな世界をつくろう
Pythonに直接関係のある話では無かったけど、同じ『データの上で仕事をする人間』として耳が痛い内容だった。僕らがいかにたやすく誤った結論を導いてしまうか、それを肝に銘じておかなければならない。
Keynote 2: PyTorch
みなさんご存知、Deep Learning界隈で広く使われているPythonライブラリ PyTorch について、Facebook AI research の Soumith Chintala 氏が話してくれた。
- PyTorchは "numpy alternative" という位置づけで、GPU上で使える
ndarray
相当のものを提供する - Auto gradientがウリ
- Data loaderも頑張っていて、機械学習で一番面倒な前処理フェーズを手厚くサポートする
- PyTorchの思想
- 線形なコードフローを推奨する
- パーツのつなぎ合わせで機械学習のアルゴリズムが実装できる
- 可能な限り高速化
- 線形なコードフローを推奨する
- 今後の予定
- Distributed PyTorchを実現したい
- より高次の自動微分を可能にする
- JITサポート(#2565で実装が進んでいる)
これは "Introduction to PyTorch" 的な内容であまり面白くなかったかな。まぁKeynoteとは往々にしてそういうものである…。
他の発表にみる、"Possibilities of Python" のタテ方向への広がり
一般発表は(自分の発表も含め)いずれも、アカデミックカンファレンスほど理論理論していないし、techカンファレンスほど凝った実装の話というわけでもなく、広く浅い内容だった。発表時間もひとり15分〜30分なので、みんな詳細は削ぎ落としてしゃべる。そしてその分、コーヒーやビールを片手に発表の断片からはじまる議論が異様にヒートアップした感じ。
特に印象的だった発表は次の3つ:
- Getting the hang of WASM
- wasmfum というPythonでWASMを生成するパッケージについて
- いかにWASMベースのレンダリングが高速で安全か、という話
- Brainfuckのデモが盛り上がった
- Introduction into the ppci project
- ppci = pure python compiler infrastructure
- 多様な言語のコンパイラをPythonで実装している話
- Pythonという言語のポータビリティを活かしたかった
- Tricks for efficient multi-core computing in Python
multiprocessing.Pool
は古いconcurrent.futures
がナウいconcurrent.futures
をよりロバストにした loky というパッケージを作った
2年前に参加した PyConJP 2015 のテーマは "Possibilities of Python" だった 1。このときの "Possibilities" は「Webアプリから数学、機械学習、DevOpsまで、Pythonでいろんなことができるよ!」という感覚で、いわばヨコ方向に広がった可能性。
一方で近年のPythonのユースケースに目を向けると、低いレイヤでの最適化や高度なアプリケーションとそれを支える中間レイヤのパッケージ群が目につき、タテ方向にその可能性が広がっている印象をうける。
あとエンジニアリング的に面白かった発表:
- Autoscaling distributed compute with Dask, Kubernetes and AWS
- いかにDevOpsチームがデータサイエンティストの解析作業を支えているか
- Dask でタスクを並列実行できるようにしてあげる
- Daskは与えられたクラスタの上で可能な限り並列化してくれるので、タスクに応じて最適な規模のクラスタを立てておきたい → Autoscalingしましょう
この他の発表は「つくってみた」「やってみた」的なものが多かったかな。
というわけでEuroSciPy、ほどよい規模感でとても充実したいい会議だったけど、願わくばもう少しエンジニアリング寄りの話をたくさん (聞きたかった|したかった) なーとも思っている。
そんな感じで、おつかれさまでした。
1. そういえば今週は PyConJP 2017 らしいですね。 ↩
シェアする
カテゴリ
あわせて読みたい
- 2017-09-23
- PyTorchのautogradと仲良くなりたい
- 2017-05-14
- 推薦システムのためのOSSたち
- 2017-03-31
- 修士課程で機械学習が専門ではない指導教員の下で機械学習を学ぶために
最終更新日: 2022-09-02
書いた人: たくち
Takuya Kitazawa(たくち)です。長野県出身、カナダ・バンクーバー在住のソフトウェアエンジニア。これまでB2B/B2Cの各領域で、Web技術・データサイエンス・機械学習のプロダクト化および顧客への導入支援・コンサルティング、そして関連分野の啓蒙活動に携わってきました。現在は主に北米(カナダ)、アジア(日本)、アフリカ(マラウイ)の個人および企業を対象にフリーランスとして活動中。詳しい経歴はレジュメ を参照ください。いろいろなまちを走って、時に自然と戯れながら、その時間その場所の「日常」を生きています。ご意見・ご感想およびお仕事のご相談は [email protected] まで。
近況 一杯のコーヒーを贈る免責事項
- Amazonのアソシエイトとして、当サイトは amazon.co.jp 上の適格販売により収入を得ています。
- 当サイトおよび関連するメディア上での発言はすべて私個人の見解であり、所属する(あるいは過去に所属した)組織のいかなる見解を代表するものでもありません。
- 当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、個人ブログという性質上、誤情報や客観性を欠いた意見が入り込んでいることもございます。いかなる場合でも、当サイトおよびリンク先に掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。
- その他、記事の内容や掲載画像などに問題がございましたら、直接メールでご連絡ください。確認の後、対応させていただきます。