GitHub「Octoverse」レポート:機械学習
GitHubの活動、オープンソースコミュニティの動向、さらにGitHubのデータサイエンスチームによるの洞察によって作成された年次レポート「The State of Octoverse 2018」( https://octoverse.github.com/ )(略称:Octoverse/オクトバース)に基づいた情報をシリーズとしてお届けします。
2018年10月に発表したOctoverseレポートにおいて、GitHub上での機械学習とデータサイエンスに大きな反響がありました。最もコントリビューションが多かったプロジェクトは、tensorflow/tensorflowでした。また、pytorch/pytorchは最も急成長しているプロジェクトであり、続いてPythonはGitHubで3番目に人気のある言語でした。 GitHub上での機械学習とデータサイエンスの状況をさらに深く見ていきます。
本調査は2018年1月1日から同年12月31日までの期間にコードのプッシュ、IssueまたはPull Request、IssueまたはPull Requestに関するコメント、またはPull Requestのレビューなど、コントリビューションが行われたプロジェクトのデータをもとに調査しています。最もインポートされたパッケージのデータを調査するにあたっては、ディペンデンシーグラフのデータを使用しました。これらデータには、すべてのパブリックリポジトリと、ディペンデンシーグラフにオプトインしたプライベートリポジトリが含まれます。
プログラミング言語
「machine-learning」(マシーンラーニング)というトピックでタグ付けされたリポジトリを調査し、それらのリポジトリで最も使用されているプログラミング言語をランク付けしました。Pythonは機械学習リポジトリの中で最も使用されている言語であり、GitHub全体で3番目に使用されている言語です。しかしながら、すべての機械学習のコードがPythonで書かれているわけではありません。GitHub上の利用される上位10言語には、C++、JavaScript、Java、C#、Shell、TypeScriptなどがあり、GitHubの、これらの言語は機械学習プロジェクトでも上位10言語にランクインしています。
Julia、R、Scalaは機械学習プロジェクトで上位10にランクインしていますが、GitHub全体では使用頻度は、決して高いとは言語ではありません。JuliaとRはどちらもデータサイエンティストによる使用頻度が高い言語であり、ScalaはApache Sparkのようなビッグデータシステム構築時での使用頻度が高くなりつつある言語です。
上位の機械学習およびデータサイエンスパッケージ
ディペンデンシーグラフのデータから、機械学習プロジェクトまたはデータサイエンスに関するプロジェクトで、Pythonのパッケージをインポートする割合を計測しました。上記の上位10位に入るパッケージのリストの以外にに、以下のことが判明しました。
- Numpy(多次元データに対する数学的操作をサポートするパッケージ)は、最もインポートされたパッケージで、ほぼ75%の機械学習およびデータサイエンスプロジェクトで使用されています。
- 科学計算用のパッケージであるScipy、データセットを管理するためのパッケージであるpandas、および視覚化ライブラリであるmatplotlibはすべて、機械学習およびデータサイエンスプロジェクトの40%以上で使用されています。
- Scikit-learnは、多数の機械学習アルゴリズムの実装が含まれており、機械学習プロジェクトの40%近くで使用されています。
- ニューラルネットを扱うためのパッケージであるTensorFlowは、25%ものパッケージで使用されています。
上位の機械学習プロジェクト
2018年に「machine-learning」というラベルが付いたオープンソースプロジェクトのなかで最もコントリビューションが多いものを調査しました。TensorFlowが最も人気があり、2番目に人気のプロジェクトであるscikit-learnの5倍のコントリビュータが存在しています。explosion/spaCyとRasaHQ/rasa_nluという2つのプロジェクトは自然言語処理の問題に焦点を当てています。CMU-Perceptual-Computing-Lab / openpose、thtrieu / darkflow、ageitgey / face_recognition、tesseract-ocr / tesseractの4つのプロジェクトは画像処理に焦点を当てています。 Julia言語のソースコードも、2018年にコントリビューションが多かったプロジェクトの1つでした。
GitHubでホストされている機械学習プロジェクトの一覧は、こちらにまとめてありますので、是非ご覧ください。今後も、機械学習を使用して素晴らしいプロジェクトが推進されていくことを願っています。
【ギットハブについて】https://github.co.jp
GitHubは世界で2,700万人にのぼる開発者および180万の組織に利用される開発プラットフォームです。プログラミング環境にオープンな会話と協調を重んじるコミュニケーションによって、コラボレーションを促進する開発環境を提供しています。これらの開発を実現するワークフローで必要となるコードレビュー、プロジェクトおよびチームマネージメント、ソーシャルコーディング、ドキュメント管理などに、これまで以上の効率性と透明性をもたらし、より高速かつ品質の高いソフトウェア開発を支援しています。
GitHubは多様なユースケースに適した開発プラットフォームを用意しており、オープンソースジェクトから企業における機密性の高いソフトウェア開発までに対応できます。無料で利用できるパブリックリポジトリはオープンソースプロジェクトにて多く利用されていますが、プライベートリポジトリが利用できる有償サービス、GitHub EnterpriseやBusiness on GitHub.comなども提供しています。
2008年に米国サンフランシスコで創業したGitHub, Inc.は、初の海外支社として、2015年に日本支社を開設しました。
GitHub Blog (英語)
https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/
GitHub Blog (日本語)
https://github.blog/jp/2019-01-29-the-state-of-the-octoverse-machine-learning/
Blog: The GitHub Blog (英語) The GitHub Blog (日本語)
Twitter: @github (英語) @GitHubJapan(日本語)