#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 のカーネル速度は素晴らしいです: 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 サイトの他の関連記事を参照してください。