ホームページ  >  記事  >  バックエンド開発  >  開発者が直接参加: 機械学習用の Julia 言語と Python を比較すると、どちらが優れていますか?

開発者が直接参加: 機械学習用の Julia 言語と Python を比較すると、どちらが優れていますか?

WBOY
WBOY転載
2023-04-11 12:28:021229ブラウズ

#2022 年にどのプログラミング言語を選択しますか?

ここ数年、Julia が Python に代わって、新しく最も人気のあるプログラミング言語の 1 つになるだろうという話がありました。私たちはこの声明に対して当面は様子見の姿勢をとりますが、科学計算における強力なツールとしての Julia の利点はすでに現れており、プログラマには別の選択肢があることを意味します。

データ サイエンス、人工知能などの分野で、Julia と Python を注意深く比較すると、次のことがわかります。Python で実行できるタスクと同じタスクを Julia で実行でき、さらに効率的です。エレガントですが、普及という点では Python ほど有名ではありません。

最近、reddit 上のホットな投稿がネチズンの間で議論を集めています。この投稿では、最近、Julia 言語パッケージの開発者の一部が Julia の ML の現在の状況について議論し、その状況を Python ML エコシステムと比較したと述べました。 。

元の投稿アドレス:

https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of /

ユトレヒト大学の Jordi Bolibar 氏は、「Julia には機械学習の大きな可能性がありますが、現在の状況は少し複雑です。より具体的に言うと、私は SciML で Julia を使用することを強く主張します。主な理由は、DifferentialEquations が.jl ライブラリは非常にうまく機能しますが、Python では同様のものは見つかりませんでした。しかし、私の研究にとって本当の苦痛は AD の部分です。Julia を使い始めて以来、Zygote を使用しています。私の速度を低下させる 2 つのバグに遭遇しました。数か月は動作します。しかし、私は依然として Julia が SciML にとって最良の選択であると考えていますが、これらのライブラリ (およびそのドキュメント) は、よりユーザーフレンドリーになるように最適化されるべきです。」

##ネットユーザー @jgreener64 は次のように述べています。「Julia の ML は、特定の分野では非常に強力です。Julia ではすべてが可能です。Julia が直面する問題は、ML には多くの既存の知識が必要であるか、検索に多くの時間がかかることです。」 /試行錯誤。個人レベルでは、現在、Julia で新しい微分可能なアルゴリズムを開発しています。」

メンバー間での激しい議論に加えて、ネチズン、Julia ソフトウェア パッケージ開発者の Christopher Rackauckas は、ネチズンがより懸念している次の 7 つの質問に答えました。 Rackauckas は MIT とメリーランド大学の数学者および薬理学者で、主にプログラミングに Julia を使用しています。 Rackauckas は、Julia、数学、および確率生物学に関する専用のブログを開設して、関連コンテンツを紹介しています。Rackauckas は、DifferentialEquations.jl や Pumas など、Julia でいくつかのライブラリを開発しました。

##Christopher Rackauckas質問は次のとおりです:

どこ今日のジュリアのMLは本当に輝いていますか?近い将来、このエコシステムは他の一般的な ML フレームワーク (PyTorch、Flax など) よりもどのような点で優れたパフォーマンスを発揮するでしょうか?またその理由は何ですか?

    Julia の現在の ML エコシステムの機能またはパフォーマンスの欠点は何ですか?ジュリアはいつこれらの分野で競争力を発揮できるようになるでしょうか?
  1. Julia の標準 ML パッケージ (ディープ ラーニングなど) は、パフォーマンス (高速、低速、同程度) の点で一般的な代替パッケージとどのように比較されますか?
  2. 一般的な ML 代替手段のベンチマークとなる重要な Julia 実験はありますか?
  3. 企業や機関が Julia の ML エコシステムに貢献するポジションの創設を検討している場合、ベスト プラクティスはありますか?なぜ彼らはこんなことをしなければならないのでしょうか?どの貢献が最も影響力がありましたか?
  4. 他のフレームワークを使用している独立系開発者が Julia の ML エコシステムへの貢献を検討する必要があるのはなぜですか?
  5. Julia 開発者は、特定のタスクにどのようなパッケージを使用する傾向がありますか? Julia 開発者は、現在存在しないものを追加したいと考えていますか?
  6. 以下に、誰もがより懸念している問題をいくつか選択して報告します。
  7. 質問 3: Julia は「標準 ML」でどのように機能しますか?

Julia のカーネル速度は素晴らしいです: CPU では非常にうまくいきますが、GPU では誰もが同じ cudnn を呼び出すだけです。Julia の AD 速度も素晴らしいです。 Zygote には多少のオーバーヘッドがある可能性がありますが、Jax/PyTorch/TensorFlow と比較すると、ほとんどの場合、Zygote は高速です。具体的には、PyTorch のオーバーヘッドははるかに高く、標準の ML ワークフローでは測定することさえできません。十分な大きさの行列乗算は、割り当て問題やその他の O(n) 問題を解決します。Julia はカーネルを融合しないため、ユーザーがベンチマークを見ると、ほとんどのベンチマークで conv 呼び出しや RNN cudnn 呼び出しが融合していないことがわかります。

質問 4: どのような重要な実験とベンチマークを追跡する必要がありますか?

#XLA の分散スケジューラは非常に優れています。スケーリングについて考えるときは、PyTorch を無視して、DaggerFlux と TensorFlow/Jax について考える必要があります。 XLA は操作を変更する柔軟性が高いため、XLA が勝者であると考えており、それに合わせて e-graph トリックを使用する必要があります。もう 1 つ注意すべき点は、「自動微分における中間部分の欠落」であり、これはまだ解決する必要があります。

質問 7: 推奨されるソフトウェア パッケージは何ですか?

私は必要に応じて Flux を使用することが多いですが、皆さんも DiffEqFlux を使用してみてください。既存のカーネルに関する限り、Flux が最も完成度が高いですが、そのスタイルには退屈してしまいます。暗黙的なパラメーターではなく、明示的なパラメーターを使用する Flux が欲しいです。これらのパラメータを ComponentArray で表現したいと考えています。

以上が開発者が直接参加: 機械学習用の Julia 言語と Python を比較すると、どちらが優れていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。