BLOG

【インタビュー連載】機械学習チームを率いるダビド・クルナポ, Ph.D. – オープンソースライブラリの開発者として

InterviewsTechnology

David Cournapeau(ダビド・クルナポ)は、Cogent Labsの機械学習エンジニアチームを率いています。彼はまた、scikit-learnの原作者であり、NumPy やSciPyへの貢献など、オープンソースコミュニティでの活動も行っています。

4回にわたり、今日までのキャリア、研究から得たプロダクト開発に対する彼の考え、Cogent Labsでの経験を取り上げます。

 

トピック1(続き): キャリア―オープンソース領域での活動

Q: Davidscikit-learnの原作者として多くの人に知られていますね。開発の裏話を聞かせてください。

まず説明しておくと、scikit-learnを最初に作ったのは確かに私ですが、他の皆さんがそれを現在のような形にしてくれたわけで、そのプロセスには私はあまり関わっていません。これだけ成功させたのは別の人たちです。

プロジェクトが始まったのは、私がまだ京都大学の博士課程にいたときになります。その頃には自分の研究に機械学習を使っていたので、研究用のオープンソースソフトウェアにも多少関わっていました。当時はPython技術を使った機械学習はあまりなかったので、自分用に作ってみることにしたんです。よく言われるように、自分のかゆいところに手が届くものを作るということ、だいたいそういうところから始まります。自分に必要だったから作ったまでです。

そして、Googleに既存のオープンソースプロジェクトにとって価値のある貢献をした学生とそのメンターに賞金が出るSummer of Codeというプログラムがあります。2008年のSummer of Codeに応募したところ、参加できることになり、そこでscikit-learnを作りました。当時はscikit-learnという名前ではなく、私はただ「learn」と呼んでいました。とにかく、研究で使っていた、いくつかのコードを組み合わせて、もっと使いやすくなるようにパッケージ化しました。

おかしな話ですが、実は私はscikit-learnよりも下の位置づけの他のオープンソースソフトウェアの方にずっと多く貢献しています。具体的には、NumPyやSciPyです。今はもう関わる時間がないのですが、エンジニアリング面の作業という意味では、scikit-learnよりそういうプロジェクトの方にはるかに多くの時間を費やしました。scikit-learnは比較的有名ですが、私が京大の博士課程にいたときに作ったと知ると、おどろく人が結構います。特に日本人に多いので、日本で開発されたというのがうれしいのかもしれません。

 

Q: scikit-learnがこれほど成功して、広く利用されているのはなぜだと思いますか?

私はそうすると、別のアルゴリズムへの切り替えが簡単ですよね。これはscikit-learnが多くの人に使われている大きな理由の一つでもあります。追加の作業をあまり必要とせずに、同じデータセットでいろいろなアルゴリズムを試せますから。

もう一つの理由は、これは私の功績ではないのですが、当初から、開発に取り組んだ人たちがきちんとしたドキュメントを作ろうとしっかり配慮していたことだと思います。

 

Q: あなたはオープンソースソフトウェアの推進派で、オープンソースコミュニティで積極的に活動していますね。最初に参加したきっかけは何だったのですか?

2006年に研究者向けのPythonコミュニティに参加したのですが、それは信号処理の分野でごく一般的なプロプライエタリ(私有)ソフトウェアを使うのをやめたかったからです。オープンソースソフトウェアはその頃にはもう広く知られていましたが、研究目的ではそれほど使われていませんでした。理由はいろいろありましたが、たいていは自分のためだけに書きます。現在でもそうですが、10年前はもっとその傾向がありました。実行して結果が出たら、その後はゴミ箱行きです。

もう一つは、ソフトウェアをシェアするのはそう簡単ではなかったという点があります。例えば、音声認識の分野ではみんなが同じツールを使っていて、しかも無料のソフトではなかったのです。私はそれをすごく不満に思っていたので、ソフトウェア資源を自由にシェアできるという点で、オープンソースを使うという選択肢にとても魅力を感じました。

 

Q: オープンソースソフトウェアの隆盛は、例えば機械学習との関係で、研究界にどんな影響を与えたと思いますか?

オープンソースがなければ、深層学習は現在のようには発展していなかったと思います。オープンソースのおかげで、アルゴリズムをシェアして、お互いが作ったコードをベースにして構築するのが簡単になりました。それぞれが個別に構築しなくてもよくなったわけです。

もっと一般的に言えば、科学研究におけるオープンソースも大きく発展したと思います。その理由の一つに、研究における集団的な再現性が危機に瀕していることがあります。つまり、誰かがあるものを発見したと主張しても、それがあまりにも複雑すぎて、誰もその結果を再現できないという状況です。もちろん一部には虚偽があるためにそもそも再現できないものもありますが、それはごく少数。圧倒的多数は、たくさんのソフトウェアが使われているために非常に複雑で、再現する過程でミスを犯しやすいのです。オープンソースがそれだけで解決策になるとは思いませんが、そういう状況を避けるための解決策の一部ではあると思います。シェアされるコードが増えれば、他の人が異常に気づいて、原因をつきとめようとするようになりますから。

私たちのようなエンジニアにとっても、オープンソースは役に立ちます。Cogent Labsで使用しているツールの中にも、オープンソースソフトウェアをベースにしたものがあり、そのおかげで大事な仕事に集中できています。もしオープンソースがなかったら、すべてを一から構築することになりますからね。この15年ほどの間に小規模なソフトウェア会社やスタートアップ企業が以前に比べて格段に増えた理由の一つが、オープンソースだと思います。

 

Q: 現在のオープンソースコミュニティの状況についてどう思いますか?

オープンソースコミュニティには大きな動きが起きていると思います。オープンソースの持つ意義がこれほど高まったことは、とてもうれしいですね。今は会議などに出席する機会がだいぶ減ったのですが、以前の会議はまるで家族の集まりみたいにこじんまりしたものでした。でも、最近はずっと大規模になっています。Pythonは今や世界で最も広く使われるプログラミング言語の一つになり、PyDataに関する会議が世界中で開催されています。非常に大規模で、何万人とまでは行かなくても、何千人という参加者が集まっています。その立ち上げの頃から自分が関わってきたと思うととても光栄に思いますし、ここまで発展したことを誇らしく感じます。自分も多少なりともそれに貢献したんだと思いたいですね。

この記事をシェア

RSS