小山哲央です。今年もアメリカで開催されたSciPy 2023に参加してきたので、現地の様子をこのレポートで伝えたいと思います。
SciPyについて
SciPy 2023は科学技術計算やデータの可視化を専門とした国際カンファレンスです。カンファレンスの目的はPythonのユーザーや開発者が結集し、知見を共有することです。
SciPyと聞くとPythonライブラリのSciPyを連想される方が多いと思います。しかし、実際はさまざまなPythonライブラリのコミュニティが多数参加するカンファレンスです。たとえば、scikit-learnやMatplotlibプロジェクトが参加しています。そのため、科学に関するPyConであると表現したほうが適当です。
イベント概要は以下の通りです。
URL | https:// |
---|---|
日程 | チュートリアル:2023年7月10日 カンファレンス:2023年7月11日 スプリント:2023年7月15日 |
場所 | アメリカ合衆国、オースティン |
会場 | AT&T Hotel & Conference Center |
参加者数 | カンファレンス現地参加 535人 カンファレンスオンライン参加 70人 スプリント現地参加 250人 ファイナンシャルエイド 11人 メンターシッププログラム 86人 |
主催 | NumFOCUS |
参加目的
筆者は普段オープンソース活動の一環としてPyVistaというプロジェクトに参加しています。このプロジェクトはPythonのデータ可視化ライブラリの中で近年最も注目されているものの1つです。去年に引き続き、今年もPyVistaグループの一員としてこのカンファレンスに参加しました。
さらに、今年はカンファレンス運営のボランティアに申し込みました。その結果、チュートリアルの共同議長をすることになりました。チュートリアルの共同議長の活動として、チュートリアルのプロポーザルの募集とレビューの依頼および選別とスケジューリングを行いました。
チュートリアル
1日目は去年に引き続き、PyVistaのチュートリアルを行いました。講師はAlex Kaszynski氏
筆者はPyVistaの利用事例紹介のパートを担当しました。PyVistaのチュートリアル内でわかりやすい事例を紹介するために、最近公開されたPyVistaアドオン的な存在のGeoVistaを使用しました。ライブラリの作者はBill Little氏
チュートリアルの前にLittle氏にGitHub上で開発の方針について質問をしました。Little氏はイギリス気象庁
2日目は以下のチュートリアルに参加しました。筆者が参加したチュートリアルは、PyVistaも含めすべて可視化に関するチュートリアルでしたが、その中ではBokehのチュートリアルが最も参加者が多かったです。
- hvPlot and Panel: Visualize all your data easily, from notebooks to dashboards
- Interactive data visualization with Bokeh
いずれもイントロをスライドで行い、チュートリアルはJupyterLabを使用して行うものでした。今年はスポンサーであるQuansightがインフラスポンサーとなり、チュートリアルの環境の提供を行いました。Quansightが中心となって開発をしているNebariというオープンソースのプラットフォームでJupyterLabの環境を提供し、希望者がそれを使用するという形式でした。Quansightについては後述のブースの項で紹介します。
ボランティア
筆者は今年初めて当日ボランティアにも参加してみました。当日ボランティアの作業には受付とTシャツ配りがあり、運営のボランティアとは別のものです。筆者はTシャツ配りに参加しました。
当日ボランティアは参加者に会場の場所を案内する仕事もあり、参加者との交流が深まりました。手空きの時間にはパソコンで作業をしたり、他のボランティアと雑談をしていました。当日ボランティアに参加しているメンバーはカンファレンスに思い入れの深いメンバーが多いため、雑談中に有益な話を聞くことができました。
当日ボランティアの1人であるGajendra Deshpande氏
SciPyの大きな特徴として、トークやポスターの付属として論文も出すことができるということがあります。参加者には研究者が多いため、カンファレンスに参加することが研究者としての実績になるように考慮されていることがわかります。今年の論文はscipy-conference/
また、新規参加者の定着を目指してメンターシッププログラムが近年設けられました。これは、カンファレンスの参加経験があるメンターに新規参加者がメンティーとしてマッチングされるプログラムです。カンファレンス参加者であれば誰でも登録することが可能です。
マッチングの際には運営がメンターとメンティーの興味関心が近くなるように考慮をします。メンターはメンティーと現地で待ち合わせをして最低1回のミーティングを行い、カンファレンスの内容の説明とオープンソースコミュニティの参加方法などの相談を行います。筆者もメンターとしてプログラムに参加し、メンティーとミーティングを行いました。メンターとメンティーの間の会話は外部に公開しない規約があるため、メンティーは心理的安全性を担保された状態で質問することができます。新規参加者であるメンティーは知り合いが少ないため、気軽に話せる相手を運営側が提供するのは良いプログラムだと思いました。
ブース
カンファレンス会場には各組織がブースを出しており、話を聞くことができます。今回は、その中で印象に残った3つのブースをご紹介します。
NumFOCUS
主催をしているNumFOCUSは、研究、データ、科学計算におけるオープンソースプロジェクトを資金面で支援する非営利団体です。PyVistaプロジェクトもNumFOCUSの支援をうけており、追加したい機能がある場合NumFOCUSに申請をすることで開発資金の支援を受けられます。
また、PyDataという教育プログラムを提供してコミュニティ主導の教育も積極的におこなっています。毎回、写真のように支援しているプロジェクトのステッカーを配ることが恒例になっています。
Open-Source Science
Open-Source Science
近年は科学の研究にもオープンソースソフトウェアが幅広く使われるようになってきました。しかし、科学者はソフトウェアは専門外のため、どのオープンソースが自分に役立つかを知ることができません。この組織は、そうした科学者とオープンソースプロジェクトを結びつけることを目標としています。
カンファレンス期間中にOpen-Source Science主催のパーティがあり、科学者の参加者や友人にこの活動を広く知ってほしいとアナウンスをしていました。
Quansight
Quansightは、AIとMLのイノベーションの基盤であるオープンソースソフトウェアを活用することに特化したデータ、サイエンス、エンジニアリング企業です。チュートリアルで紹介した今年のインフラスポンサーです。参加メンバーには科学技術計算系のオープンソースメンテナが多数おり、オープンソースソフトウェアを積極的に推進していることが伺えました。代表の方に伺ったところ、ビジネスとオープンソースソフトウェアのマッチングを行い、メンテナのキャリアに貢献をしたいとのことです。
今年チュートリアルで提供されたNebariというプラットフォームは、Jupyter環境を管理者が望む形で任意の環境にデプロイできることを目指しているとのことです。NebariはQuansightが中心となり開発していますが、オープンソースで開発をしています。
ちなみに、Nebariというプロジェクト名は日本の盆栽の
キーノート
キーノートは日本での
その中で最も印象に残った1日目のMichael Droettboom氏
Droettboom氏によると、2000年にはパッケージマネジャーのようなものはなく、Vaults of Parnassus: Python Resources.というサイトにPythonのリソースが集約されていたそうです。現在のGitHubやPyPIの役割をそのようなサイトが担っており、現在のようにGitを使った管理ではなく、パッチによる管理が行われていました。そのようにして、オープンソースプロジェクトは大きくなっていきました。
オープンソースにはコード、イシュートリアージ、ドキュメンテーション、プロジェクトマネジメント、イベント企画、プロモーションなどのさまざまな貢献方法があります。また、コミュニティも体制を整えてそれらの貢献を受け入れてきました。
Michael Droettboom氏は、コミュニティの体制は分類すると以下のようになると言います。
- federationはコントリビューターが多くユーザーと明確に分類されているプロジェクトです。汎用的な目的のプロジェクトに多く見られ、cpythonプロジェクトはこの形態に分類されます。
- clubはコントリビューターが多いがユーザーと明確に分類されていないプロジェクトです。専門的な目的のプロジェクトに多く見られ、astropyプロジェクトはこの形態に分類されます。
- toyはコントリビューターが少なくユーザーも少ないプロジェクトです。開発初期でコントリビューターが自分のために作成したプロジェクトがこの形態に分類されます。
- stadiumはコントリビューターが少なくユーザーが多いプロジェクトです。開発が進み、ユーザーが多くなったプロジェクトです。
またオープンソースプロジェクトは、年代が経つに従い増えていきます。
ただ、価値とともにコミュニティを維持するコストも増大していきます。さらに、Pythonの科学技術計算プロジェクトはほぼすべてPython以外の言語で作成されています。そこを結びつけているのがグルー言語としてのPythonの強みであり、最後にそれを支えているコミュニティのメンバーに感謝が述べられました。
トークセッション
トークセッションは事前にプロポーザルで選ばれた講演が行われるセッションです。カンファレンス中に聞いたトークセッションで、特に印象に残った2件についてご紹介します。
What happens when the main maintainer of a project takes a step down?
1件目はJorge Martinez氏
今回、Martinez氏はビジネスの利益相反となるためプロジェクトを終了することを決断しました。先ほどのコミュニティの分類に当てはめると、poliastroはMartinez氏が単独で管理しているstadium形式のコミュニティです。そのため、Martinez氏がメンテナを退任することでプロジェクト自体が終了することになります。
トークの後にMartinez氏と話しました。poliastroは今後もGitHubでMITライセンスで公開され続けるので、機能を追加したければフォークして新しいメンテナが開発を続けることもできるとのことです。ただし、PyPIのpoliastroは更新しないため、別のプロジェクト名をつけてほしいとのことです。たとえ開発が終了しても、コミュニティメンバーが自ら動けばオープンソースプロジェクトは続けていけることを実感しました。
Accessibility best practices for authoring Jupyter notebooks
2件目はUX/
Jupyter Notebookの書き方は、障がいのある人にとって使いやすいかどうかに大きく影響します。そのため、Presedo-Floyd氏はウェブコンテンツ・
- 知覚可能
(Perceivable) - 操作可能
(Operable) - 理解可能
(Understandable) - 堅牢
(Robust)
より詳細な内容を知りたい方は本講演のスライドが公開されていますので、そちらをご参照ください。これからNotebookを書くときは意識しようと思う内容でした。
BoFセッション
BoFはBirds of a Featherの略で、司会が短いプレゼンテーションを行い、大部分の時間は出席者全員で議論を行うセッションです。Birds of a Featherは一般的には
- HolovizプロジェクトからJames Bednar氏
(@jbednar) - fastplotlibプロジェクトからKushal Kolar氏
(@kushalkolar) - AltairプロジェクトからJon Mease氏
(@jonmmease) - napariプロジェクトからJuan Nunez-Iglesias氏
(@jni) - MatplotlibプロジェクトからElliott Sales de Andrade氏
(@QuLogic) - PyVistaプロジェクトからBane Sullivan氏
- Shiny for PythonプロジェクトからHadley Wickham氏
(@hadley)
前半は、数ある可視化プロジェクトの中からユーザーが必要な可視化ツールにどのようにアクセスしてもらうかが話題となりました。その中でPython tools for data visualizationというページが紹介されました。後半は、ユーザーがPythonで作成できる可視化Webアプリのフレームワークをどのように提供していくかが話題となっていました。プロトタイピングに便利なフレームワークとしてVoilàが挙げられていました。
科学計算の可視化を行うユーザーの多くはフロントエンドを勉強する時間を取ることができないため、可視化ツールにおいてはPythonでWebアプリを構築できることが大きな需要となりそうです。
ポスターセッション
ポスターセッションは各プロジェクトをポスターで紹介するセッションです。セッション中は写真のように、会場の一部にポスターが貼られています。
今年はPyVistaプロジェクトとしてはじめてポスターセッションに参加しました。ポスターを制作する前に運営から#betterposterというハッシュタグが紹介されました。これはMike Morrison氏
従来、クラシックな学会のポスターは論文をコピー/ペーストしたようなものが大半でした。しかし、Morrison氏は参加者が1つのポスターに費やせる時間は1、2分であるため、ポスターで大切なのはひと目見ただけで要点がわかることだと主張します。また、現在の参加者は、QRコードなどで保存された情報にスマートフォンを使ってアクセスして後で見直すことができます。そのような状況を考えると、ポスターの最適な構成は以下のようになります。
- 中央にはコアメッセージ:重要なメッセージをポスターの真ん中に、大きなフォントで、平易な言葉で配置します。
- 左には
Silent Presenter
バー:興味を持った参加者に必要な情報を配置します。 - 右には
Ammo
バー:興味を持った参加者と議論するときに説明できる追加情報を配置します。
このムーブメントの元となった動画は、How to create a better research poster in less timeというタイトルでMorrison氏のYouTubeチャンネルに公開されています。
今回のPyVistaのポスターは#betterposterのテンプレートを元にして作成しました。偶然ですが、今年はMorrison氏のポスターの隣がPyVistaのポスターの隣でした。そのため、Morrison氏からムーブメントに参加したことに感謝されました。
PyVistaのポスターセッションに来た人は、はじめてPyVistaを知る人よりもPyVistaについて質問をしたい人が多かったです。ポスターセッション中にPyVistaプロジェクトのメンバーがポスターの場所にいたことで、対面の質問コーナーのような役割を果たせました。ユーザーと対面で相談にのるよい機会ですので、今後もポスターセッションへの参加は続けていきたいと考えています。
ライトニングトーク
3日間のカンファレンス中は、毎日夕方にライトニングトークが行われます。ライトニングトークは5分以内でプレゼンテーションを行うセッションです。1つの発表が短いためより多くの参加者が自分の発表を行うことができ、スピーカーも聴衆も気軽に聞けるとても人気のあるセッションです。科学技術系の話題からコミュニティの話題まで、幅広い内容のトークが行われます。写真のようにSciPyカンファレンスの歌を披露するグループや、スライドを使わずに自分の話したいことについて話す参加者もいます。
今年のトークで印象に残ったのは、Cheuk Ting Ho氏
普段私たちが使用しているオープンソースには国境がありません。そのため、自国以外の政府の決定が、私たちのオープンソースの開発や貢献に影響を及ぼす可能性があります。トークの中では欧州連合
法律の目的には賛成ですが、今の法律の内容ではオープンソースのコンプライアンスを証明できない可能性があるとCheuk Ting Ho氏は言います。その理由として、近年のオープンソースには商業的活動で作成されたものが増えていることを挙げていました。オープンソースへの貢献で行われた非商業的な活動は適用を免除されると解釈することはできても、商業的活動を目的としたコントリビューターを保護することができません。さらに、貢献の目的が商業的活動か否か判断するのが困難な場合もあります。
そのため、Pythonによるオープンソース技術を推進しているPython Software Foundation
スプリント
最後の2日間はスプリントが行われました。スプリントは自分の興味のあるオープンソースプロジェクトに対して、コードのテスト、バグの修正、新機能の追加、ドキュメントの改善など、さまざまな貢献を行うセッションです。また、オープンソースの作者やメンテナがサポートすることで、オープンソース初心者に貢献の場を提供することも大きな目的です。
今年はチュートリアルで紹介したGeoVistaの作者であるLittle氏と、GeoVistaの今後の方針についての議論をしました。その中で、今のGeoVistaの例ではLittle氏の専門である海洋の温度のプロットのみをしていることが話題になりました。しかし、GeoVistaの機能では他の地理データもプロットすることが可能であるため、それらの例を示す必要があります。
そこで、筆者がアメリカ地質調査所
結果は Plotting earthquake locations GeoVista which is the extension of PyVista というタイトルでGitHubにまとめています。
スプリントに参加して感じたのは、プロジェクト同士で議論をするにはスプリントが最適であるということです。去年はMartinez氏のpoliastroと議論ができましたし、今年はLittle氏のGeoVistaと議論ができました。他のプロジェクトと議論をすることで、自分たちのプロジェクトが今後どこに向かうべきかを見定めることができます。
最後に
今年もチュートリアル・
アメリカ渡航などの詳しい話はこちらのPodcastで話しています。ぜひお聴きください。