このシリーズの前編では、量子コンピューティングに取り組むチームや企業が直面する特有の課題について紹介しました。そこで私は classiq library と OQTOPUS のリーダーにインタビューしました。本記事では、もうひとつのプロジェクトを取り上げ、最後に全体的な考察をまとめます。
QuTiP(Quantum Toolkit in Python) は、2012年から存在し、すでに数万人のユーザーに利用されていますが、組織としてはまだ初期段階の特徴を持っています。今回は開発者の Alex Pitchford、Simon Cross、Neill Lambert に話を聞きました。
QuTiP は、オープンソースコミュニティにおける二つの課題――開発者の確保 と 強力なユーザーコミュニティの形成――には成功してきました。しかし、安定した長期的資金源 や ユーザーを議論に取り込む仕組み が不足しています。そのため、研究プロジェクトから産業利用に耐えるプロジェクトへ移行する過程において、技術的には成功しているものの、組織的な移行はまだ道半ばといえます。
QuTiP は「幅広いハミルトニアンをサポートする」と謳うシミュレーションライブラリです。(ハミルトニアンとは物理系のエネルギーを測定するものです。)
プロジェクトは、日本に滞在していたポスドク研究員の Paul Nation と Robert Johansson が、Franco Nori 率いる研究グループで MATLAB のライブラリがサポートされずメンテナンスもされていないことに気づいたことから始まりました。彼らは理化学研究所(RIKEN、OQTOPUS の記事でも登場)に所属しており、同じ問題を抱えていたため、Python で機能を再現することにしました。(古い MATLAB ツールキットは現在アーカイブされ、後継として QuTiP を明確に推奨しています。)
このプロジェクトをオープンソースにしたのは、潜在的なユーザー層を広げるためであり、その戦略は大きな成果を上げました。
2015年には Pitchford が参加し、量子制御に関するアルゴリズムを追加しました。これも、彼が MATLAB のツールを Python に書き直したことがきっかけでした。
最近では Alberto Mercurio と Yi-Te Huang が Julia 言語で Python インターフェースを再現し、Python の関数を複製したり、新しい機能を作ったりしています。Julia は数学関連の強力な機能を備えているため、プロジェクトに加わることは理にかなっていますが、Python とは大きく異なるため、新しい形の協調が必要になります。
当初、チーム作りは人間関係に大きく依存した行き当たりばったりのものでした。Pitchford と Cross は、そのような経緯でチームを拡大していった例をいくつか紹介してくれました。
Pitchford がプロジェクトに参加したのは、博士課程の指導教員が理研に滞在し Johansson と友人になっていたからでした。創設者たちがポスドクを終えて職に就くと、プロジェクトを維持する時間がなくなったため、Pitchford の指導教員が、コードに詳しくなかった彼を管理チームに加わるよう説得しました。(管理者はプルリクエストを受け入れ、コードを保守する、いわゆるメンテナー/コミッターの役割を担います。)
その後、Pitchford と QuTiP の主要開発者 Nathan Shammah は 2019年の EuroSciPy(ビルバオ開催)で発表を行い、そこで偶然 Cross も QuTiP について発表していることを知りました。彼らは Cross を開発チームに勧誘しました。
現在では Google Summer of Code(GSoC)が開発者の重要な供給源になっています。卒業間近の学生たちは、GSoC に選ばれることでスキルをアピールし、報酬も得られるため、強い意欲を持っています。多くの学生が QuTiP に貢献を選び、QuTiP の管理者がその中から優れた人材を選んでいます。
GSoC の貢献者の中には、その後管理チームに加わる人もいます。例えば、QuTiP QIP パッケージに取り組んだ Boxi Li は管理チームに参加し、現在ではそのパッケージのリード開発者です。
QuTiP の開発者たちは早い段階から「高品質で保守可能なコード」に対してプロフェッショナルな姿勢を示してきました。
例えば、2015年に Pitchford が最初のコードを提出した後、Nori は彼を理研に6週間招き、オープンソースプロジェクトや QuTiP のコーディング標準を学ばせました。その間に彼はコードを修正し、マージできる状態に仕上げました。
QuTiP の管理者たちは、新たに採用を検討する開発者に小さなコントリビューションを求めます。これにより、Python や GitHub に慣れているか、コードに適応できるか、まとまりのあるプルリクエストを出せるかどうかを判断します。
約5年前、Jake Lishman という開発者が、Eric Giguère と Pitchford の監督のもと、ライブラリの基盤部分を全面的に書き直し、ほぼ全ファイルに手を入れました。それはすぐに実用化できる状態ではありませんでしたが、管理者たちがさらに手を加え、2024年3月28日に新バージョン「QuTiP 5」としてリリースしました。Pitchford と Cross は、QuTiP が大学だけでなく産業界にも広がるにつれて、この QuTiP 5 の品質が極めて重要であると指摘しています。
QuTiP の管理者たちは、開発者の指導やコード品質の確保に多くの時間を費やしています。資金調達は負担となっており、それを理事会に委ねようとしていますが、まだ安定した資金源は見つかっていません。
プロジェクト開始以来、Nori がディレクターを務め、研究助成金を通じて QuTiP の資金面を大きく支えてきました。日本学術振興会(JSPS)は短期ポスドクの派遣元であり、日本科学技術振興機構(JST)のムーンショット型研究開発事業も、過去5~6年にわたり大きな支援を行ってきました。
QuTiP 開発者で理研の研究者でもある Lambert も、JST の戦略的創造研究推進事業「さきがけ(PRESTO)」を通じて数年間 QuTiP を支援してきました。Pitchford と Cross は、彼を「プロジェクトをまとめる接着剤」と表現しています。Giguère はカナダ・ケベック州のシェルブルック大学に所属し、比較的集中的に QuTiP に取り組むことができます。
しかし、大半の開発者は他の仕事を持っており、空き時間に QuTiP の作業を行っています。幸い、QuTiP は研究論文の材料や結果を得るためのツールとなるため、研究者にとって「キャリアの踏み台」になることも多いです。実際、創設者の Johansson や Nation のキャリアがその好例です。
現在、QuTiP の運営にユーザーが関わる仕組みはほとんどありません。理事会は Johansson など元開発者や開発者の上司によって構成されており、プロジェクトの継続は負担過重の管理者に依存しています。今後の課題は理事会の役割を拡大し、資金に関する意思決定を移すことです。
今回紹介した3つのプロジェクトはいずれも、オープンソースを維持する一般的な方法を示しています。すべてのプロジェクトが、創設組織の枠を超えて忠実な開発者コミュニティを築くという重要な一歩を踏み出しています。そして、それぞれが意識的かつ積極的に開発者を勧誘しています。ただし、ガバナンスや資金調達の方法は大きく異なります。
classiq の場合、単一企業が品質管理とプロジェクト運営を担い、クローズドコアモデルを通じて資金を得ています。
OQTOPUS は研究機関と企業のパートナーシップによって安定性と資金を確保しており、研究論文の題材としての魅力が開発者を惹きつけています。
QuTiP も研究者を引き寄せる力があります。研究活動の一環としてコードが寄与され、他の仕事を持つ開発者も支援しており、少人数の開発者がそれらを統合して進めています。ライブラリを利用するだけでなく、研究成果として発表することで貢献を正当化できるのです。
この記事で紹介した事例は、貢献者の層が本質的に限られる厳しい分野であっても、オープンソースが発展できることを示しています。開発者の勧誘、ユーザーの巻き込み、継続性の確保、品質管理に意識的に取り組むことが必要です。
You need to load content from reCAPTCHA to submit the form. Please note that doing so will share data with third-party providers.
More InformationYou need to load content from reCAPTCHA to submit the form. Please note that doing so will share data with third-party providers.
More Information