[論文レビュー] Data Science through the looking glass and what we found there
本論文は、データサイエンス(DS)プロジェクトにおける最大規模の分析を提示する。GitHubの600万件のPythonノートブック、CompanyXの200万件のエンタープライズDSパイプライン、12の主要DSライブラリの900件以上のリリースを対象としている。静的コード解析と統計的特徴化を用いて、ライブラリ使用傾向、パイプライン構造、APIの進化に関する核心的なトレンドを明らかにし、ツール開発の優先順位や技術採用に関する実務的知見をシステム設計者と実務家に提供する。
The recent success of machine learning (ML) has led to an explosive growth both in terms of new systems and algorithms built in industry and academia, and new applications built by an ever-growing community of data science (DS) practitioners. This quickly shifting panorama of technologies and applications is challenging for builders and practitioners alike to follow. In this paper, we set out to capture this panorama through a wide-angle lens, by performing the largest analysis of DS projects to date, focusing on questions that can help determine investments on either side. Specifically, we download and analyze: (a) over 6M Python notebooks publicly available on GITHUB, (b) over 2M enterprise DS pipelines developed within COMPANYX, and (c) the source code and metadata of over 900 releases from 12 important DS libraries. The analysis we perform ranges from coarse-grained statistical characterizations to analysis of library imports, pipelines, and comparative studies across datasets and time. We report a large number of measurements for our readers to interpret, and dare to draw a few (actionable, yet subjective) conclusions on (a) what systems builders should focus on to better serve practitioners, and (b) what technologies should practitioners bet on given current trends. We plan to automate this analysis and release associated tools and results periodically.
研究の動機と目的
- システム設計者と実務家が、急速に変化するデータサイエンスの状況を包括的かつデータドリブンな視点で把握できるようにすること。
- 公開およびエンタープライズDSプロジェクトにおけるライブラリ使用、パイプラインアーキテクチャ、API安定性に関する主要なトレンドを特定すること。
- 大規模な実世界のコードベースを分析することで、システム開発および技術採用に関する戦略的意思決定を支援すること。
- 実際の使用パターンとDSワークフローにおける新たな傾向を定量化することで、システム設計者とデータサイエンティストの間のギャップを埋めること。
- 継続的なコミュニティの理解を支援するため、自動化され定期的な分析ツールとその結果を公開すること。
提案手法
- GitHubから公開共有された600万件のPythonノートブックを収集・分析し、オープンソース、教育的、自己学習型DSプロジェクトの状況を調査した。
- CompanyX社内システム(AnonSys)の200万件のエンタープライズデータサイエンスパイプラインを分析し、本格的なDSワークフローの理解を深めた。
- 12の主要DSライブラリ(例:scikit-learn、PyTorch、TensorFlow)の900件以上のリリースに対して静的解析を実施し、APIおよびコードベースの進化を追跡した。
- テスト、ドキュメント、例題関連コードを除外することで、コアな機能的コンponentsを特定するため、コード要素(クラス、関数)のフィルタリングを実施した。
- 統計的および比較的分析を用いて、2017年から2019年の間にライブラリの人気、機能、安定性の変化を分析した。
- 定量的発見を解釈し、将来の開発に向けた仮説的だがデータに基づいたガイダンスを提供するため、「ワイルド・アクショナブル・ギャッズ」(WAGs)を生成した。
実験結果
リサーチクエスチョン
- RQ1公開およびエンタープライズDSプロジェクトで一般的に使われている主要なライブラリ、演算子、コード構造は何か?
- RQ22017年から2019年にかけて、データサイエンスライブラリの使用状況はどのように変化したのか?特に、人気が増したか減少したライブラリは何か?
- RQ3GitHub上の公開ノートブックは、成熟したエンタープライズパイプラインの構造と機能をどの程度反映しているか?
- RQ4主要DSライブラリのAPIは時間経過とともにどの程度安定しているのか?これはシステム最適化およびツール開発にどのような含意を持つのか?
- RQ5DSライブラリ内のコードのうち、例題、テスト、ドキュメントが占める割合はどの程度で、これは機能の認識にどのような影響を与えるか?
主な発見
- AnonSysパイプラインにおける上位7つの演算子が、分析対象の200万件のエンタープライズパイプラインの75%を占めており、本番環境ワークフローに著しい構造的共通性があることが示された。
- GitHubノートブックにおけるDSライブラリの数は2017年から2019年にかけて3倍に増加し、上位5つのライブラリはさらに人気が高まった(相対増加率+3%)。
- テスト、ドキュメント、例題コードを除外した後、Matplotlibが関数数で最も多く、PandasやScipyを上回った。
- フィルタリング後のクラスおよび関数数の削減は顕著で、SeabornやNumpyでは最大79%の削減が見られた。これは、コミュニティが例題やドキュメントに多大な投資をしていることを示している。
- コードベースが拡大しても、機能的複雑性(クラスおよび関数数)によるライブラリの相対順位は安定しており、コア機能およびエコシステム成熟度の安定性が示された。
- 各ライブラリにおける関数およびクラスの増加が指数関数的であることが継続しており、安定したインターフェースについての合意形成がまだないことを示しており、システム最適化およびツール開発に課題をもたらしている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。