見出し画像

PyCon TW 2024 & PyCon JP 2024 参加レポート

はじめに

こんにちは、yuuukaです。PyLadies Tokyoのスタッフとして、2024/9/21-22にPyCon TW 2024に、9/28にPyCon JP 2024に参加しました。その中で聴いたセッションについてのレポートを中心に投稿したいと思います。

まずはコミュニティの紹介から行いたいと思います。

コミュニティ紹介

PyLadies Tokyoとは
PyLadiesとはPythonが好きな女性を結ぶ国際的なコミュニティです。  
Tokyo以外だとオーストラリアや、アメリカ、ブラジル、インドなどで250の地域にあります。  
Pythonが好きであれば初心者や熟練者であることは問わず、誰でも参加することができます。  
その中でも、PyLadies Tokyoは日本で3つのチャプターのうちの1つです。  
PyLadies Tokyoではほぼ毎月イベントを実施しており、今月で活動10周年を迎えました。

PyLadies Tokyo公式リンクはこちら  

PyLadiesの公式リンクはこちら  

2024/9/21-22 PyCon TW 2024 参加レポート

PyCon TW 2024とは?

PyCon TW(Python Conference Taiwan)は、台湾で開催される年次カンファレンスで、Pythonに関する技術やアイデアを共有し、コミュニティ全体で成長することを目的としています。世界中のエンジニアやデータサイエンティスト、研究者が集い、Pythonを中心とした最新技術やソリューション、プロジェクトについてディスカッションや発表が行われます。PyConは技術的な講演だけでなく、参加者間のネットワーキングやコミュニティの強化を目指す場でもあります。

PyCon TW 2024 概要
日時: 2024年9月21日-22日  
場所: National Science and Technology Museum (South Complex)  
サイト:
https://tw.pycon.org/2024/en-us

今回のPyCon TW 2024では、ポスターセッションという技術的な内容やコミュニティ活動などをポスターの形で貼り出し、掲示した人と見に来た人が交流できる場が設けられていました。このポスターセッションについて参加者を募集していたのでPyLadies Tokyoとして応募し、見事当選したので、私も現地で参加してきました。

PyCon TWにて掲示したPyLadies Tokyoのポスター

では早速ですが、PyCon TW 2024で参加したセッションのうち一部について、情報と所感を記載します。

スケジュール情報は以下になります。

Effectively memory profiling distributed PySpark code

まずは、Bloomberg社のソフトウェアエンジニアのKaashifさんのセッションです。
このセッションでは、PySparkを使ったビッグデータの処理におけるメモリ不足の問題とその解決策が取り上げられました。特に、Bloombergが開発したメモリプロファイリングツール「Memray」を使用して、Pythonやネイティブコード(C/C++、Rust)のメモリ使用量を診断する手法が印象的でした。 
セッションでは、pandasのコードをそのままPySparkに移行した場合、to_numpy()などの処理がメモリ不足(OOMエラー)を引き起こすことがあることを挙げていました。    
これに対して、mapInPandas()を使ってデータを分割し並列処理を行う方法が推奨され、Memrayを用いてPythonやネイティブコードのメモリ使用状況を詳細にプロファイルすることで、問題を特定して最適化する手法が示されていました。  
私は普段PandasとPySparkを使用しているのですが、注意点として挙げられていたPandasからPysparkへの移行を度々行なっており、メモリ不足エラーを起こしてしまっていたこともあったので、今後意識したいと思います。
また、Memrayを使うことで、メモリ不足が発生する場合にどの程度処理が改善されるか気になったので、自分でも色々調べてみたくなりました。

スライドの資料はこちら  

What happens when you import a module?

こちらは、1995年から世界中でPythonとデータサイエンスを教えていると言うReuvenさんのセッションでした。
このセッションでは、普段何気なく使っているPythonのインポートシステムの仕組みを深く掘り下げる内容でした。  
特に印象的だったのは、インポートされたモジュールがsys.modulesという辞書に格納されていることと、再度インポートする際に再読み込みを行わずキャッシュを利用する仕組みです。  
また、sys.pathを利用してモジュールを検索し、最初に一致したモジュールが読み込まれるというロジックも非常に勉強になりました。  
加えて、Pythonのexec関数について「最もパワフルで危険な関数」として紹介され、特定の状況でのリスクがあることが説明されました。  
exec関数は、Jupyter Notebookを使用した調査に便利だったので多用していたのですが、外部入力と組み合わせた場合に危険性が高くなることが指摘されていました。こちらについても注意したいなと思いました。  
このセッションを通じて、普段何気なく使っているインポートや動的なコード実行の裏側にある複雑な仕組みを知ることができました。  

2024/9/28 PyCon JP 2024 参加レポート

PyCon JP2024においてもポスターセッションの申請が通っていたため、PyLadies Tokyoスタッフとして参加しました。
昨年はチュートリアルを除き全日程参加していたのですが、今回はDay2の9/28のみ参加しました。

PyCon JP 2024とは?

PyCon TW同様、年次で開催されるPythonのConferenceの日本版です。

PyCon JP 2024 概要
日時: 2024年9月27日-29日  
場所: TOC有明コンベンションホール  
サイト:
https://2024.pycon.jp/ja

聴いたセッションのうち一部について所感を記載します。

実践Dash - 手を抜きながら本気で作るデータ可視化Webアプリの基本と応用

中川さんのセッションでは、Dashを使ったデータ可視化の実践的なアプローチが紹介されていました。 
Dashとは、Pythonでデータアプリを作成できるローコードフレームワークです。FlaskベースでPandasとの連携が容易なローコードフレームワークであり、動的なグラフを生成できるライブラリのPlotlyを使って手軽に可視化ができることが特徴です。  
そんなDashを用いて、公開されている野球選手のデータを可視化するWebアプリを作成されていました。大谷選手の成績を可視化した結果が示されていました。野球に疎い私でも、他の選手のデータを見たあとに見ると違うのがわかりました。  
Dashで苦労した点として、コールバック機能や認証認可、データの保持のさせ方についても話されていました。
また、ローコードとはいえ、開発する以上はキツイところはあるそうで、他のツールで目的に沿ったものがある、もしくは既にデータを可視化できるようなサービスがあるのであれば、そちらを使った方が良いと話されていたことが印象に残りました。
ローコード=楽というイメージが付いてしまっていましたが、決して楽ではないこと、アプリを作る際は既にその目的に合ったものが無いかを考える必要があることを学ぶことができました。   
個人的にPlotlyはよく使用しており、Dashにも興味があったので、使うとどのようなアプリが作れるか、作る際はどこに注意する必要があるかを知ることができて良かったです。
近いうちに自分で何か作ってみたくなりました。

スライドはこちら

データフレームライブラリ徹底比較

桂川さんのセッションでは、主要なデータフレームライブラリであるPandasPolarsPySparkDaskなどが比較され、それぞれの特性や使い分けについて解説されていました。それぞれのライブラリの強みと弱み、適用する場面に応じた分析がなされていて、非常に参考になりました。
Pandasは依然としてデファクトスタンダードであるものの、Polarsは近年急速に成長しており、そのパフォーマンスや利便性が評価されています。リリース頻度やコミット数、学習コストに基づいた詳細な比較も行われ、特にPolarsが新しいプロジェクトに適している一方で、サポートや互換性の面ではPandasが依然として優位である点を知ることができました。  
個人的にPolarsについての理解が深まり、処理速度やサポート対応の両面から評価する視点を得られたことが収穫でした。特に、Polarsの勢いの強さを確認できたのは予想通りでしたが、意外にも他のライブラリとの比較で弱点があることがわかったりと、意外な発見がありました。

スライドはこちら

データサイエンスのフルサイクル開発を実現する機械学習パイプライン  

神谷さんのセッションでは、神谷さん自身の経験をもとに、チームに最適な機械学習パイプラインを見つける過程を話していました。
まず、データサイエンスにおけるフルサイクル開発について詳細が語られ、データサイエンティストがライフサイクル全体を一人で回す「フルサイクルデータサイエンティスト」の役割についても話されていました。  
フルスタック開発との違いに触れながら、プロトタイピングの重要性や、運用における柔軟性について説明されていたのですが、私はフルスタックは知っていたのですが、フルサイクルは知らなかったので勉強になりました。
データサイエンティストに最も力を発揮してもらうことと、チームの変化状況とを合わせてどのようにパイプラインを移行したか紹介されていました。 
 具体的には、Luigi→Amazon SageMaker→Prefectという流れでパイプラインを移行されており、SageMakerは高機能だったが、チームで利用するにはオーバースペックだったため、シンプルなものを求めてPrefectに辿り着いたとのことでした。
ツールを適用して終了ではなく、チームの状態に合わせてツールも柔軟に変化させることも重要なのだなと学びました。

スライドはこちら

Pythonの歴史と今後

石本さんによるキーノートでは、Pythonの歴史とその進化、日本におけるコミュニティの発展について語られました。  
Pythonが1990年代に「Batteries Included」な言語であるため世界中に急速に普及した背景が興味深かったです。  
また、日本のPythonコミュニティの発展と同時に、石本さん自身が作成されたPEP3138に関する個人的な経験が共有されました。  
そんなPythonですが、2010年頃には日本ではPythonの求人がほぼ無かったそうです。ここ十数年でここまで人気な言語になったのは驚きでした。
今後のPythonに何を期待するかという質問に対しては、Pythonの良さはバランスが良いこと。今後もバランスの取れた言語で合ってほしいと述べられていました。  
このセッションを通して、Pythonの歴史的背景や、現在のPythonがどのようにして形成されてきたのかを知ることができました。特に、1990年代の技術的な背景や、日本での初期のコミュニティ活動についての知識は新鮮で、多くの学びがありました。

最後に

PyCon TW 2024への参加が初海外&初飛行機でしたが、一緒に参加したPyLadies Tokyoのスタッフのサポートのおかげで楽しく過ごすことができました。そして、入り口で受付QRコードが出せずに困っていた私に、日本語で対応してくださった方をはじめとするPyCon TW 2024の運営スタッフの方、PyCon TW 2024の座長の方、そして会場でコミュニケーションを取ってくださった方々みなさんに感謝です。ありがとうございました。

また、台湾からPyCon JP 2024に来てくださった方もおり、Day2終了後のパーティーで話すことができて嬉しかったです。
それ以外にも、去年のPyCon JP 2023で会った方や、過去のPyLadies Tokyoのイベントで会った方と再会できたり、知らなかったツールや技術の情報をinputすることができた貴重な機会でした。

いいなと思ったら応援しよう!