データサイエンスをやりたいのなら、「Jupyter」に詳しくならなければならない。Jupyterは非常に高い人気を誇るオープンソースプロジェクトであり、「Jupyter Notebook」で最もよく知られている。データサイエンティストはこのウェブアプリケーションを使用して、ライブコード、数式、視覚化、説明文を含むドキュメントを作成し、共有できる。これは、コードによってデータを抽出し、他のデータサイエンティストと共同作業をする優れた方法であることが実証されている。Jupyterの使用は急増し、Notebookの数は2015年の約20万件から何倍にも増加した。
Jupyterは極めて重要であり、GoogleやBloombergなど、さまざまな企業で多用されているが、最初からそうだったわけではない。Jupyterの始まりは友情だった。Fernando Perez氏とBrian Granger氏は、コロラド大学ボルダー校の大学院の入学初日に出会った。それから何年も後の2004年、2人はPerez氏が2001年に着手した「IPython」向けにウェブベースのノートブックインターフェースを作成するというアイデアについて話し合った。これがJupyterになったが、両氏は当時でさえ、Jupyterが学界の内外に大きな影響を及ぼすとは思ってもいなかった。両氏が気にかけていたのは、「計算物理学に携わる学生たちがすぐに利用できるようにする」ことだけだった、とGranger氏は指摘する。
こういったことには時間がかかる
現在、Perez氏はカリフォルニア大学バークレー校の教授であり、Granger氏はAWSのプリンシパルだが、2004年の時点では、Perez氏はコロラド大学ボルダー校の応用数学博士課程の学生であり、Granger氏はサンタクララ大学物理学部の新任教授だった。先述のように、両氏は学生だった1996年に出会い、それぞれ忙しい日々を過ごしていた。おそらく、Jupyterの誕生と最も関係があるのは、Perez氏が2001年に「Python」に手を出したことだろう。同氏は「論文先延ばしプロジェクト」と名付けた取り組みの中で、6週間をかけて最初のIPythonを作成した。この259行のスクリプトは現在、GitHubで公開されている(「自動履歴機能を備えた対話型実行で、『Mathematica』のプロンプトシステムの再現を試みる」)。
これがきっかけでPerez氏がJupyterを開始した、と考えたくなるかもしれないが、それは誤りだろう。Granger氏が2011年に実際の「IPython Notebook」サーバーとユーザーインターフェースのコードを記述したことを思い出せば、同じ反事実的な飛躍が起こるかもしれない。これも重要なことだったが、Jupyterは1人の人間による目覚ましい成果ではなく、協調的で真にオープンソースの取り組みだった。おそらく、Perez氏とGranger氏が中心的な役割を果たしたはずだが、Min Ragan-Kelley氏のような人々も関わっていた。Ragan-Kelley氏は、Granger氏が2005年に受け持った学部生の1人であり、後に「IPython Parallel」の開発を主導して、IPython Notebookの作成に使用されるIPythonカーネルアーキテクチャーに深い影響を与えた。
Jupyterの誕生に貢献したさまざまな人々をどのように整理しようと、「あの1回の会話」を無視するのは難しい。
Perez氏は2004年、サンフランシスコベイエリアに住むGranger氏を訪ねた。旧友である両氏は、夜遅くまでオープンソースやインタラクティブコンピューティングについて語り合い、Granger氏がPythonで行っていた並列コンピューティングの作業とPerez氏のIPythonへの取り組みの延長として、ウェブベースのノートブックを構築するというアイデアが明確になった。Granger氏によると、2人は半ば冗談でこれらのアイデアには「世界を席巻する」可能性があると話していたが、その時点での両氏にとっての「世界」という概念は、主に学術的な文脈での科学計算というやや狭義の定義だった。
長い年月(そして多くの活動)を経て、Perez氏は2009年に再びカリフォルニア州を訪れ、サンルイスオビスポにあるGranger氏の自宅で同氏とその家族に会った。Granger氏はこの地で教授を務めており、Perez氏の訪問時は春休みで、2人は3月21日から24日まで同じ場所で共同作業し、タブ補完、非同期出力、複数のクライアントのサポートを備えたIPythonカーネルの最初のプロトタイプを完成させた。
2014年までに、両氏や他の多くの人々による多大な共同作業を経て、Perez氏とGranger氏、その他のIPython開発者たちは「Project Jupyter」を共同創設して、IPython NotebookをJupyter Notebookに改称し、同プロジェクトがPythonから他のさまざまな言語(「R」や「Julia」など)に拡大している状況を反映させた。Perez氏とGranger氏は現在もJupyterの共同運営を続けている。
科学革命の理論
「あまり予想していなかったのは、世界の他の人々がデータサイエンスと機械学習の価値に目覚めることだった」とGranger氏は強調する。同氏は続けて、彼らが「目を覚まし」て、自分たちが「このデータサイエンスと機械学習の爆発的成長の真っ只中にいる」ことに気づいたのは、2014年ごろのことだと述べた。彼らは学生たちと一緒に使えるものを求めていただけだ。それは手に入ったが、その過程で、データサイエンスの革命の促進に寄与することにもなった。
どのような形で寄与したのだろうか。むしろ、Jupyterがデータサイエンスの大きな進歩を引き起こしたのはなぜなのだろうか。Rick Lamers氏は次のように説明した。
Jupyter Notebookは、ユーザーがノートブックで解決しようとしている特定のタスクを中心に、コンテキスト環境で高レベルのコードをインタラクティブに実行できるため、複雑さを効果的に隠すことができる。データサイエンティストは抽象度を上げていくことで、生産性を向上させ、より多くのことをより短い時間で実行できるようになる。何かを試すコストがほぼゼロまで低下すれば、自然とより多くの実験を行うようになり、他の方法では達成が難しい大きな成果へとつながる。
データサイエンスとは、科学だ。したがって、柔軟なインフラストラクチャーであれ、Jupyter Notebookであれ、データサイエンティストがより多くのことを反復して探索するのに役立つものはすべて、進歩を促すことができる。Jupyterを通して、その進歩が業界のさまざまな分野で起きており、たとえばデータクリーニングとデータ変換、数値シミュレーション、探索的データ分析、データの視覚化、統計モデリング、機械学習、深層学習などの分野で進歩がみられる。1996年の博士課程での偶然の出会いからこれだけのことが起きたのは、驚くべきことだ。
情報開示:筆者はAWSの仕事をしているが、本記事には個人的な見解を記している。
![提供:iStockphoto/shironosov](/storage/2021/03/31/c1b2dc537bed3fe2b19d8745549820f6/data-scientist.jpg)
提供:iStockphoto/shironosov
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。