PyTorch がなぜ人気があるのでしょうか?創業者スーミスが成長の秘訣を語る

PyTorch がなぜ人気があるのでしょうか?創業者スーミスが成長の秘訣を語る

PyTorch は、ディープラーニング分野で最も人気のあるフレームワークの 1 つです。最初のバージョンは、2016 年 9 月に Adam Paszke、Sam Gross、Soumith Chintala らによって作成され、2017 年に GitHub でオープンソース化されました。 PyTorch はシンプルで使いやすく、動的な計算グラフをサポートし、メモリ効率に優れているため、開発者の間でますます人気が高まっています。

7月28日から30日まで、JuliaCon 2021オンラインイベントが無事開催されました。 7 月 30 日のシングル トラック イベントでは、イベント主催者が FAIR 研究エンジニアであり、ディープラーニング フレームワーク PyTorch の作成者の 1 人である Soumith Chintala 氏を招待しました。現在、彼の研究対象はコンピュータービジョン、ロボット工学、機械学習システムです。

基調講演で、Soumith Chintala 氏は Torch から PyTorch までの経緯とオープンソース コミュニティに対する見解を振り返りました。彼は以下の点について詳しく説明しました。

  • コンセプトと原則
  • 範囲とリスク
  • メトリクス
  • プロジェクトの拡大

スピーチのテーマに正式に入る前に、Soumith Chintala 氏はオープンソース プロジェクトに関する自身の見解を詳しく説明し、ほとんどのオープンソース プロジェクトは「10,000 人のユーザーが必要だ」という期待だけで始まるわけではないと述べました。この期待は意味がありません。オープンソースの旅はもっと純粋で活気に満ちたものであるべきです。

オープンソース分野では、当初は個人的な興味に基づいて活動していました。一般的に言えば、アイデアやプロジェクトは、多くの人が興味を持ち、時間を投資する意思がある場合にのみ自然に成長します。

さらに、オープンソース プロジェクトの開発法則の観点から見ると、ほとんどの小規模オープンソース プロジェクトは、十分な努力と参加を経て成長と拡大を検討することになります。その時点で、プロジェクト参加者は、技術スタックと文化スタックの基礎となる、自分たちの中核となる関心と哲学を特定しています。次に、オープンソース プロジェクトをマーケティングし、拡大するためにできる限りのことを行います。 Torch から PyTorch への開発もこの法則に従います。

PyTorch の哲学と原則

プロジェクトを検討する際には、テンソルの理解などの技術中心のプロジェクトの場合もあれば、研究者が使いやすくなる技術やアイデアを気にせず、使いやすさの考え方を広めるユーザー中心のプロジェクト(Torch-7 など)の場合もあります。

私は 2010/2011 年に Torch で働き始め、Torch コミュニティで多くの友人を作り、全体として彼らが支持する暗黙の原則を理解しました。政治と同様に、オープンソースは関係性と原則の点で非常に曖昧です。

そのため、私は長年にわたり、Torch が即時モード、簡単なデバッグ、影響なしなどの機能を備えたユーザー中心の製品であることを理解し、評価するようになりました。 Torch の対象ユーザーは、プログラミングに精通し、パフォーマンスなどの問題を理解し、C 関数を記述して作業のニーズに応じてすぐにバインドできるユーザーです。

PyTorch プログラムを作成するうちに、有機的なオープンソース コミュニティでは、誰もが同じ原則を支持しているわけではないことに気付きました。 Torch コミュニティには Python に反対する非常に重要なメンバーが何人かいますが、ユーザー中心の視点からその方向に進むことができます。それから、それらを持ち帰るか、それとも保管するかを決めなければなりません。これらは難しい決断です。正しい答えはなく、リーダーが迅速に下さなければならない主観的な判断だけだからです。

このような状況では、いつ頑固になるべきか、いつ妥協すべきかを考える必要があります。私が言いたいのは、自分の考えや原則については頑固でなければならないが、それ以外のことは変えられるということです。

この視点は非常に有用であり、時間の経過とともに PyTorch は Caffe2 コミュニティと Chainer コミュニティを導入して統合し、Jax および Swift4TF との友好的な関係を維持しました。 PyTorch コミュニティはますます大きくなっており、そのコミュニティ内ではより広い視点が得られ、時間の経過とともにプロジェクトがより良くなっていきます。基本原則に忠実であれば、元のビジョンを妥協することはなく、より良くすることができるだけです。

PyTorch の範囲とリスク

Torch コミュニティを前進させることは課題であり、もう 1 つの課題は、PyTorch よりも 10 ~ 30 倍多くの開発者がいるとされる TensorFlow です。ただし、TensorFlow は誰にとっても使いやすくなるよう懸命に取り組んでおり、これは PyTorch 研究者にとって非常に有益です。さらに、TensorFlow はトップダウンで計画されるプロジェクトであり、多くのリソースを必要とします。

したがって、当然のことながら、私たちは現実的な条件下で生き残り、競争するために、正反対のアプローチを採用しました。私たちは、ML 研究者以外には焦点を当てないことに決めました。こうすることで、私たちは努力を集中し、より少ないリソースで仕事を完了することができます。私たちは意図的に範囲を狭めたため、垂直方向のリスクは増加しましたが、同時に水平方向のリスクは減少しました。私たちは潜在的な市場を特定しようとしているだけです。

しかし、PyTorch でこの市場で成功を収めると、私たちの野心はさらに高まりました。当社は成長し成熟するにつれ、徐々に範囲と野心を拡大し、規模に近づいてきました。

ここでは、取るべきリスクとその影響について紹介します。私たちは ML 研究市場に賭けました。

  • 今後数年間に行われるモデリングでは、より高い柔軟性とデバッグ可能性が求められるでしょう。
  • ML 研究市場では、より高度なモデル アーキテクチャの革新が継続され、将来的には主流になるでしょう。

そのため、この賭けでは、API を本当に簡単に使用して拡張できるように、ユーザー エクスペリエンスと組み合わせた非常に幅広い API が必要でした。 ML コミュニティが将来をどのように形作るかによって、私たちが行ったこの賭けが実現しない理由は数多くあります。

このトピックに関する私の考えや、ML フレームワークの将来についての私の考えについては、私の講演で詳しく聞くことができます。

PyTorch メトリクス

中核となる原則と範囲に加えて、当社は製品開発の標準的な運用要件である顧客とのフィードバック ループを確立することを目指しています。次に、さまざまな側面から PyTorch を追跡する方法をまとめました。

  • それらは測定可能ですか?
  • うまく測定できるでしょうか?
  • 測定する必要がありますか?
  • 計測できない領域にはどう対処すればよいですか?

Torch 時代、私たちは人々が物事をどのように測定するかについて多くのことを学びました。たとえば、マイクロベンチマーク、GitHub スター数、機能比較表などです。コミュニティ内で人々がこれらの指標や比較の一部を投稿したとき、私たちはその測定の一部に同意できませんでした。しかし、Torch に関する私たちの経験では、測定が早すぎると製品に悪影響を与える可能性があります。私たちは競合他社に向けて Metrics Torch のブログ記事を書いたわけではありませんが、他のより重要なユーザーの優先事項に焦点を当てるのではなく、これらの指標を最適化し、それらに対応することに懸命に取り組んできました。

そのため、PyTorch を作成する際には、2 つのことを理解する必要がありました。1 つ目は、私たちのコアとなる競争力は速度やその他のデータのように測定できるものではなく、柔軟性、API 設計、デバッグ可能性を最優先にしながら、スムーズなユーザー エクスペリエンスを目指す必要があるということです。2 つ目は、PyTorch の外部指標に反応しなければ、たとえ短期的な変動が生じても、私たちが重視していることに集中できると信じているということです。

したがって、PyTorch の開発全体を通じて、速度ベンチマークや GitHub スターの数などの無関係な指標に反応したことは一度もありません。 PyTorch の作成者として、私たちは MLPerf などの業界ベンチマークに提出したことがありません。これはよく考えられたものであり、私たちはそのアプローチに満足しています。 PyTorch について講演すると、「PyTorch は X と比べてどれくらい速いですか?」とよく聞かれます。特定のユースケースで PyTorch が同じかそれ以上の速度を達成できることがわかっていても、私の答えはただ「PyTorch の方が柔軟性が高いので、試してみてください」です。これにより、私たちはコア コンピテンシーに集中できます。

私たちがしぶしぶ頼りにしている指標は、開発者が PyTorch を使用しているかどうかと、競合するフレームワークの使用状況です。私たちが頼りにしている指標は、GitHub スターの数やマイクロベンチマークでのパフォーマンスではなく、実際に PyTorch でコードを書いた経験です。そのため、私たちが使用する指標には、GitHub のグローバル コード検索と arXiv 引用が含まれており、開発者が PyTorch を使用しているかどうかをより正確に判断できます。

私たちがしぶしぶ頼りにしている指標は、開発者が PyTorch を使用しているかどうか、そして競合他社との相対的な使用状況です。ブックマーク (github のスターなど) やマイクロベンチマークのパフォーマンスを測定するメトリックではなく、実際にコードを記述するメトリックです。そのため、私たちは Github のグローバル コード検索 (torch やその他のものをインポートするため) や arxiv 引用などの指標を使用します。これにより、誰かが実際に私たちの製品を使用しているかどうかを、曖昧さなくより正確に把握できます。

しかし、問題は、これらが遅行指標であるということだ。リードタイムが約 6 か月と非常に長いため、コミュニティの差し迫ったニーズを理解するために彼らに頼ることはできません。

また、全体的なエクスペリエンスやデバッグ可能性、API の使いやすさなどの側面についてユーザーがどう感じているかを概算するための指標は使用せず、これらの方法を主観的に測定しました...

もっと小規模なところでは、私がやっていることは基本的に、GitHub の問題、フォーラムの投稿、Slack のメッセージ、Twitter の投稿、Reddit や HackerNews のコメントなど、コミュニティによって生成されたすべての情報を読むことです。これらはすべて非常に有用なシグナルです。 不協和な声もたくさんありますが、そこからユーザーの考えの一部を理解することもできます。これらの指標は、優先順位を適切に付けるのに役立ち、主観的なレベルで製品を形作るための優れた方法であると思います。

私を除くほぼすべてのコア開発者は、ユーザーとのやり取りに多くの時間を費やしていたため、非常に曖昧で主観的な観点から多くの共通理解がありました。ただし、このアプローチは、ある時点を超えることはできません。

PyTorch の拡張機能

プロジェクトが拡大するにつれ、PyTorch のリリースから 2 年が経ち、毎日の作業量が人間の能力の限界に達したと感じました。私は約 500 件の GitHub 通知、約 50 件のフォーラム投稿、大量の Slack アクティビティ、および Twitter、Reddit、Hacenews でのその他の多くのエンゲージメントを確認しています。毎日 15 時間働いていて、毎瞬疲れ果てているのに、実際にはあまり成果が出ていないように感じました。だから、もっと一生懸命頑張って、もっといい仕事をしてくれる人に、つまらない仕事を任せたいんです。そうすれば、私は自由になれるんです。

その後、私にはないスーパーパワーを持つ同僚のエドワード・ヤンが、まず観察し、次により良いスケーリング プロセスを作成することを目的として、ワークフロー全体を引き継ぎました。 2021 年 1 月に、彼は「PyTorch Ppen Source Process」という素晴らしいブログ記事を書きました。こうしたことをする彼から私が学んだことの一つは、ある一定の規模に達すると、すべてを管理することはできず、明確な優先順位を持たなければならないということです。

ブログアドレス: http://blog.ezyang.com/2021/01/pytorch-open-source-process/

プロジェクトの規模に関して考慮すべきもう 1 つの点は、垂直に統合するか、水平に統合するかということです。 PyTorch プロジェクトでは、分散、JIT、量子化パッケージを統合しました。これらはフロントエンド設計と深く交わるため、より深い垂直統合が必要です。また、torchvision や torchserve などのパッケージは、エンドツーエンドの考慮をあまり必要としないため、独自の GitHub リポジトリにフォークしました。

最後に、エコシステムの問題についてお話ししたいと思います。 PyTorch から始めて、開発者が PyTorch を使用してプロジェクトに貢献し、コミュニティを拡大することを望んでいます。プロセス全体を通じて、私たちはいかなる形のインセンティブも避けるように努めてきました。そのため、私たちは長い間、研究者に PyTorch の使用を奨励するための賞品や助成金、その他の金銭的インセンティブを提供していませんでした。私たちの見解は、経済的インセンティブが導入されると、それがコミュニティの文化を不可逆的に形成するということです。

2020 年末現在、PyTorch プロジェクトには約 1,626 人の貢献者、45,000 以上のダウンストリーム プロジェクト、PyTorch フォーラムのユーザーが 34,000 人いました。

今でも、私たちのプロジェクトには大きな予算があるにもかかわらず、年に 1 回か 2 回のハッカソン以外にはあまり投資していません。私たちが大切にしているもう一つの動機は、自分たちだけですべてをやろうとするのではなく、他の人に成長の余地を与えることです。私たちは、まずコミュニティの成長を支援し、いくつかのギャップを埋めることに重点を置き、誰もニーズを満たすことができない場合にのみ、介入し、時間とエネルギーを投資して問題を徹底的に解決します。

<<:  企業内で AI 分析を導入し拡張する方法

>>:  マスク氏と陳天橋氏の両者が期待している脳コンピューターインターフェースは、将来いつ実現するのだろうか?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

AI に関する知っておくべき 29 の統計とトレンド

ChatGPTは2022年11月の爆発的なリリースに続いて世界を席巻し、2023年には人工知能(AI...

教師なし機械学習は産業オートメーションにどのようなメリットをもたらすのでしょうか?

現代の産業環境にはセンサーやスマート コンポーネントが満載されており、それらすべてが組み合わさって大...

...

AIと機械学習における暗黙のアルゴリズムバイアス

[[226077]]オープンソースコミュニティを通じて何ができるでしょうか?アルゴリズムは私たちの世...

電子商取引用に作成されたナレッジグラフは、ユーザーのニーズをどのように感知するのでしょうか?

[[243140]] 1. 背景2017年6月に電子商取引認知マップが発表されて以来、実践から体系...

...

建設における人工知能の能力と限界

AI は、建設業界が大規模なインフラ プロジェクトを計画、実行、管理する方法に革命をもたらし、組織が...

TorchCVは、北京大学の学生が開発したPyTorchベースのCVモデルフレームワークです。

機械学習によってもたらされたあらゆる破壊的技術の中でも、コンピュータービジョンの分野は業界関係者と学...

AIが臨床試験でスムーズな患者マッチングを実現する方法

新型コロナウイルス感染症のパンデミックは、がんとの戦いにおいて医療界に重要な教訓を浮き彫りにした。そ...

機械学習における3つの重要なデータ課題

機械学習にとってデータがどれほど重要であるかは誰もが知っています。データ アクセス パターンを理解す...

Facebook の最新傑作 Pythia: モジュール式、プラグアンドプレイ、モデルの進行を大幅に簡素化

Facebook の人工知能研究部門は最近、モジュール式のプラグアンドプレイ フレームワークである ...

スマートホームシステム設計の5つの原則

スマートホームコントロールの開発の鍵は、設計コンセプトとオペレーターの考え方にあります。市場のターゲ...

Web3.0時代: インターネット上で作成したものはすべてあなたのものになります

Web3.0 の最も特別な点は、ユーザーが作成したデジタル コンテンツの所有権と管理権がユーザーに...

2024年のテクノロジートレンド: AIは金融サービス企業のデジタル変革の実現に役立つ

AIは銀行の顧客サービスの性質を変える銀行やその他の金融機関は、コールセンターからチャットボット、よ...