はじめに
2019年10月にベルリン(ドイツ)にて開催された「PyCon DE & PyData Berlin 2019 」のレポートをお届けします。初めて参加した国外のカンファレンスで、非常に楽しめました:)
到着:ベルリン・テーゲル空港(2019年10月8日)
PyCon DE、PyData Berlinとは
PyConは世界各国・地域で開催されるPythonのカンファレンスです。PyCon DEはドイツのカンファレンスで、ドイツのPythonユーザーグループであるPython Software Verband e.V. (日本の一般社団法人PyCon JPに相当)が主催しています。
PyDataはデータサイエンスに特化したPythonのユーザーグループおよびカンファレンスで、世界各都市で開催されています(東京にもあります) 。PyData Berlin はベルリンのグループです。
通常、PyConとPyDataは別々のイベントとして開催されますが、今回の「PyCon DE & PyData Berlin 2019」は2つの団体の共催でした。全てのセッションが英語で行われ、そのほとんどが後日YouTubeに公開 されます。
オープニングセッション:ステージに並んだ2団体の代表たち
参加の動機
鈴木たかのり さんが国外の複数のPyConに参加され、発表もされているのをレポートやTwitterなどで見て、自分も参加してみたいと思いました。CfPに応募したところ採択されました。また、ドイツは旅行で何回も訪れたことがあり、馴染みのある国です。ベルリン滞在は8年ぶり2回目でした。
スピーカーバッジ
期間と会場
10月9日(水)から13日(日)まで5日間にわたって開催され、11日(金)までの3日間のカンファレンス本体とその後の2日間のスプリント (いくつかのプロジェクトについて参加者が一緒に作業や開発を行うイベント)という構成でした。予定の都合上、筆者はスプリントには参加しませんでした。
カンファレンス本体はKOSMOS(コスモス) というイベントスペースを貸し切って開催され、スプリント2日間は別の会場でした。KOSMOSは旧・東ドイツ時代にシネマコンプレックスとして建てられたそうで、多数の客席に大きいスクリーンとプロジェクターを備えた部屋が複数あり、PyConのようにプレゼンテーションを行うイベントにはもってこいの場所でした。
KOSMOS(正面入口の上に設置されたバナー)
トークルームの1つ
Key Notes
複数の基調講演がありましたが、その中から2つをご紹介します。
スピーカー:Carla Hustedt氏
スピーカーは、公平・公正なアルゴリズムを開発し運用することを目指すAlgo.Rules というルールを提唱しているNGOのメンバーです。
我々がデータ分析や機械学習に用いるデータには社会的・経済的なバイアス(例えば性差別や人種差別)が含まれていることがあり、そのままモデルを構築・運用すると、単にそのバイアスを増幅させる結果になってしまうということが事例を挙げて説明されていました。筆者も業務において同様の状況に直面する可能性があり、どうすべきか考えさせられるトークでした。
スピーカー:Łukasz Langa氏
Pythonのコア開発者 の一人であるスピーカーが、Pythonとの馴れ初めから今に至るまでを振り返り、今後Pythonが目指すところを語ってくれました。「 今のメインはC言語で実装されたPythonだが、PCよりも携帯端末の方が多くてSwiftのような携帯端末に強い言語がある状況で、このままCPythonだけに依存するのはPythonにとって問題になるではないか」と語り、"We need a Python compiler for Web."とも力説していました。今後の展開が楽しみになりました。
ちなみに、彼は大学の課題にRubyで取り組もうとしたら環境構築で挫折したため"ruby alternative"とググって Pythonに出会ったそうです(2004年ごろ) 。
注目セッション
今回の3日間のイベントで100本以上のトークとチュートリアル がありました。筆者が見た中から3つをご紹介します。なお、データサイエンス寄りな筆者の興味に沿って見ていたので、トーク全体のテーマの分布(母集団)に比べてサンプルにバイアスが掛かっていることをお断りしておきます。
プロジェクトの課題と解決策の概要
短期間の時系列データに基づく売上予測をガウス過程回帰 を用いて行なったプロジェクトの課題と解決策、結果を説明していました。ある医薬品の売上が予測の対象だったそうで、同じ業界に身を置く筆者も今後の参考になると思い、トークを聞いていました。
ガウス過程回帰の実装にはPyStan を用いたそうです。この手のテーマはRでStan を使って実装したケースはよく見かけるので、PyStanでも同じようにできるというのは新鮮でした。
会場から「他の手法ではダメなのか?」という質問がありました。スピーカーは「時間の制約が強いプロジェクトだったので、確実と思われる手法を用いて何らかの使える成果を早く出す必要があった」と答えていました。筆者は業務で新旧のさまざまな手法を試したくなることが多いのですが、一方で、このスタンスは重要だと思いました。
スピーカー:Dustin Ingram氏
スピーカーはPyCon JPでも別の内容でトーク をしていました。聞くところではPyCon Taiwanでもまた別の内容でトークをしていたそうで、1ヵ月間に3つの異なるトークをするのはすごいですね!
PyCon DEではPythonにおけるstatic typing(ないしtype check)についてのトークでした。Static typingの使用方法を説明した後に、それを使うべき場合と使うべきでない場合について議論していました。筆者はtype checkのあるPythonコードを書くことは普段少ないですが、今後は意識したいと思いました。
ggplot2とその作者(の1人)のHadley Wickham
Pythonのデータ可視化ライブラリーを比較しつつ、Grammer of Graphics(Rのggplot2 パッケージの基礎となっているデータ可視化の考え方)をPythonでどう実現するか、コード例を交えて説明していました。
前述のコード例に加えて、Pythonの複数のグラフ描画ライブラリの比較を見るだけでも勉強になりました。筆者はPythonでは普段はmatplotlibだけなので、他のライブラリーを試してみようと思いました。
筆者のトーク
データ加工と可視化についてRとPythonを比較しました(スライドはこちら ) 。
よく参加する、いくつかのもくもく会で構成を考えたり、スライドを作成したりました。完成後、友人に査読してもらい、加筆修正をしました。また、当日朝にもホテルの部屋で練習をしました。本番は緊張しましたが楽しめました。時間は守れました(はず) 。ただ、投影されたスライドが思ったより小さくて、コードは読みづらかったかも知れません。
Rが未経験もしくはほとんど使ったことがないという層を対象にしていたのですが、トーク冒頭にRの使用経験を会場に聞いたところ8割くらいの手が上がり、想定よりもレベルが上の人が多い状況だったと思います。一方で、カンファレンス開幕前夜に知り合った人からは「Rの知識はなかったが、わかりやすかった」というコメントをもらいました。
発表後いくつか質疑がありました。「 Rの処理速度はPythonとどう違うか?」という質問には、「 経験上は差を感じたことがない。ただし、Rはメモリにデータ全体をロードしようとするので、大きなサイズ(例えば100GB)のデータならPythonの方がよいと思う。」と答えました。
スクリーンのサイズに比べて小さい投影範囲
その他
パックマンルール
初日朝のオープニングセッションで「パックマンルール」 が紹介されました。数人で話すときに閉じた輪になるのではなくて、輪の一箇所は開けておいて他の人が会話に加わりやすくする、というものです。どうしても仲間内だけの会話になりがちなので、輪を広げる役に立ちそうだと思いました。
パックマンルールの説明
参加者
ドイツ国外からの参加者もいて、筆者が出会った中では、ノルウェー、フィンランド、チェコ、ポーランド、イギリスから来た人がいました。また、ヨーロッパにおけるスタートアップのメッカ というベルリンの土地柄を反映してか、ベルリンで働いている他の国籍の参加者も多くいました。
性別の構成は圧倒的に男性が多く、とあるLTでスピーカーが参加者に手を挙げてもらった結果では女性は約1割でした。一方で、年齢については10代から50代くらいまで幅広かったように思います(恐らく20・30代がボリュームゾーン) 。
性別を問わず子連れの参加者もいて、日本のPyCon同様に会場でデイケアサービスが提供 されていました。
Telegramグループ
Telegram というチャットツール(LINEのようなもの)にPyCon DEの運営チームが公式のグループを開設していました。運営側からの事務連絡や、夕食に行く仲間の募集、カンファレンスに関する議論がなされるなど、活発に使われていました。筆者も、カンファレンス前日に夕食の仲間を募っていた人達に混ぜてもらい、プチ前夜祭を楽しみました。
プチ前夜祭の成果物@Salami Social Club
Lightning Talks
LT は毎日夕方に最後のトークの後に1時間程度行われました。申し込みは、毎日朝にオープンになる紙のリストに先着順で名前とタイトルを自分で記入する方式でした(写真参照) 。ただし、リストに名前を書いても必ずしも発表できることが保証されている訳ではなく、番号順に発表していって予定された時間枠が終わるとリストの途中であってもその日は終わりです(翌日には持ち越されない) 。持ち時間は1人5分(コミュニティやカンファレンスの紹介は1分)でした。
キーボードでヨーロッパの各言語の非ASCII文字を入力する方法やPythonの余命を数学的に見積もる話など、テーマは多岐にわたっていてました。筆者も初日にPyCon JPを紹介しました。LTも動画撮影されていたようで、後日YouTubeに公開されると思います。
3日間のLT登録ボード(左から:初日、2日目、最終日)
ランチとコーヒーブレイク
ランチはビュッフェ形式で、会場のケータリングサービスが温かい食事を提供してくれました。ただ、約1000人がほぼ一斉に並ぶので、10分以上は待ちました。その点、PyCon JPのようにランチボックス配布の方が早く食事にありつけるメリットがあると思いました。
メニューはヴィーガン(ないしベジタリアン)で統一されていました。「 去年は肉が出ていた」などネガティヴな声も聞かれましたが、みんなが食べられるものに合わせるというシンプルな方法を採用していたのは斬新に感じられました(多様性の観点から議論の余地があるとは思いますが) 。
初日のランチ:サラダ、キヌア、ポテトシチュー
午前と午後に1回ずつコーヒーブレイクがあり、バーカウンターにてポットコーヒーと瓶入りミネラルウォーター(炭酸あり、なし両方 )が無料で提供されると共に、フルーツやお菓子も提供されました。有料でカプチーノなども頼めたようです。
コーヒーブレイクにて提供されたフルーツとクロワッサン
パーティとネットワーキング
2日目の夜に、メインスポンサーであるIBMが提供する有料パーティ がありました。1人20ユーロで食事と2杯のドリンクが付いてきました(3杯目以降は各自負担) 。会場はアレグザンダー広場 (Alexander Platz) というベルリンの観光名所の1つにあるイベントスペースHaus Ungarn(ハオス・ウンガルン) を貸し切り、カンファレンス会場からは地下鉄で10分程でした。LTの後にみんなで移動しました。
左から:広場近くのテレビタワー、イベントのバナー、ダンスルームのミラーボール
開宴や乾杯の挨拶は何もなく(IBMのスポンサーセッションすらなく) 、会場に着いた人から食事とドリンクと会話を楽しんでいました。パーティは19時に始まり翌日1時までが公式な時間枠でしたが、あっという間に感じられました(筆者の経験上、ヨーロッパのパーティは日本に比べて時間が長く、終わる時間がかなり遅いです) 。ちなみに、食事スペースの隣にダンスホールがあり、ダンスを楽しんでいる人もいました。
その他にも、初日や最終日に前述のTelegramのグループで参加者を募って有志で街に繰り出していました。筆者もいくつかのグループに混ぜてもらい、多くの人と交流できました。
初日のディナー:ベトナム料理店Nyomにて
最終日のクロージングセッション
3日目のLTの後にクロージングセッションがあり、ボランティアへの感謝やPython Software Verband e.v.の理事の紹介(新たに若手の女性1名が加わった) 、来年のアナウンスなどがなされました。
クロージングセッションの様子
まとめ
初めて参加した国外のカンファレンスでした。参加者同士のつながりを作る工夫が随所にあり、トークだけでなく新たな交流も楽しめ、有意義な3日間を過ごしました!来年もベルリンにて開催されるそうです。また行ってみたいと思います。
2020年の開催予定:10月14~16日(ベルリンにて、PyCon DEとPyData Berlinの共催)