PyTorch ライブラリの 95% がこのバグの影響を受けます。テスラのAIディレクターも例外ではなかった

PyTorch ライブラリの 95% がこのバグの影響を受けます。テスラのAIディレクターも例外ではなかった

[[393110]]

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

どのようなバグが Pytorch ライブラリの95% に影響を及ぼし、 Tesla の AI ディレクターにさえ問題を引き起こす可能性があるのでしょうか?

この虫は確かに小さいですが、かなり「狡猾」です。

これは最近 Reddit で話題になっています。ネットユーザーが一般的なPytorch+Numpy の組み合わせを使用しているときにこれを発見しました。

最も重要なことは、コードがスムーズに実行できたとしても、モデルの精度に影響するということです。

さらに、ネットユーザーの間で熱く議論されたもう一つのポイントは次の通り。

しかしそれはバグでしょうか?

[[393111]]

何が起こっているのか?

この事件の原因は、PyTorchでNumPyを使用して乱数を生成する際に、データの前処理の制限により、複数のプロセスがデータを並列にロードするが、最終的に各プロセスから返される乱数は同じになることをネットユーザーが発見したことでした。

彼はまた、自分の主張を裏付ける例も挙げた。

以下は、3 つの要素のランダムなベクトルを返すデータセットの例です。ここで使用されるバッチ サイズは 2 で、ワーカー プロセスの数は 4 です。

すると、不思議なことが起こりました。各プロセスによって返される乱数が同じになったのです。

この結果は本当にわかりにくいです。ちょうど、Xiao Ming が特定の距離を歩くのにどれくらい時間がかかるかを尋ねる数学の文章題で、計算すると負の数になるようなものです。

この問題を発見した後、ネットユーザーはGitHubから10万個以上のPyTorchライブラリをダウンロードし、同じ方法を使って乱数を生成した。

結果はさらに衝撃的で、 95% 以上のライブラリがこの問題に悩まされています。

その中には、PyTorch の公式チュートリアルや OpenAI のコードも含まれています。Tesla AI ディレクターの Karpathy 氏でさえ、「騙された」と認めています。

しかし、正直に言うと、このバグを解決するのは難しくありません。各エポックでシードをリセットするか、 Python の組み込み乱数ジェネレーターを使用してこの問題を回避します。

それはバグですか?

この問題はすでに解決できるのに、なぜこれほど大きな議論を呼んでいるのでしょうか?

ネットユーザーの注目が「哲学的」なレベルにまで高まったからだ。

これはバグですか?

Reddit の誰かがこう考えました: これはバグではありません。

この問題は非常に一般的ですが、バグではなく、デバッグ中に無視できないポイントです。

この見解が大きな騒動を引き起こし、多くの人が彼が問題の核心を見落としていると考えました。

これは疑似乱数を生成する問題ではなく、numpy の問題でもありません。問題の核心は、PyTorch の DataLoader の実装にあります。

ランダムな変換を含むデータ読み込みパイプラインの場合、これはすべてのワーカーが「同じ」変換を選択することを意味します。

NN の多くのデータ読み込みパイプラインは現在、データ拡張のために何らかのランダム変換を使用しているため、再初期化を行わないことがデフォルトになっている可能性があります。

別のネットユーザーも、このバグは実際にはデフォルトのプログラムで実行している場合にのみ発生するため、より多くのユーザーに指摘されるべきだと述べた。

そして、Pytorch ライブラリの 95% 以上がこれに悩まされていますが、これは決して誇張ではありません。

ある人は、以前の辛い経験を次のように話しました。

データセットを作成するために多くのプロセスを実行したときに、データの半分が重複していることに気付きました。何が問題なのかを突き止めるのに長い時間がかかりました。

また、95% 以上のユーザーが使用時にエラーを経験する場合、コードが間違っていると付け加えたユーザーもいます。

ちなみに、これはカルパシーの法則の別の例を示しています。つまり、非常に基本的なコードを台無しにしたとしても、「ニューラル ネットは機能しようとします」。

PyTorch で落とし穴に遭遇したことがありますか?

上記のバグは偶然ではありません。PyTorch を使用する人が増えるにつれて、バグもどんどん発見されます。ある Web サイトには PyTorch の落とし穴をまとめた記事もあり、49 万回も閲覧されています。

ベクトル、関数から model.train() まで、それが実際のバグであるか、自ら招いたバグであるかにかかわらず、誰もが経験する血と涙の物語は本当に異なります。

それで、PyTorch での経験について、共有できる血と涙の物語はありますか?

<<:  音声認識技術は急速に発展しており、その規模は今後5年間で300億近くに達するだろう。

>>:  アルゴリズムから離れた「ジレンマ」に直面し、専門家はシナリオベースの洗練されたガバナンスの実行を提案している。

ブログ    
ブログ    
ブログ    

推薦する

構造化データのためのテキスト生成技術の研究

1. テキスト生成入門まず、現段階で人気のテキスト生成について紹介します。 1.人工知能の発展段階人...

...

エヌビディアによる660億ドルのアーム買収は失敗、ソフトバンクはIPOを通じてアームの事業を独立上場へ

ソフトバンクによる英国の半導体事業アームのエヌビディアへの660億ドルでの売却計画は、米国、英国、欧...

...

...

Playgroundで数値アルゴリズムを学ぶ

中学校では、数学の描画ほど恐ろしいものはありませんでした。多くの問題にはすぐに利用できる解析的解法が...

ACL'23表彰式は大成功でした!前例のない75件の論文がリストされ、その半分は中国語でした。

ACL 2023 受賞論文が発表されました!合計75件の論文が提出され、6件の賞が選ばれました。優...

ロボットは労働者を完全に置き換えるのでしょうか?心配しないでください。人間と機械の組み合わせだけが仕事の疲れを軽減できます

英国の著名な分析機関オックスフォード・エコノミクスが発表したデータによると、今から10年後の2030...

...

不均衡なデータを処理する Python ライブラリ トップ 10

データの不均衡は機械学習における一般的な課題であり、あるクラスの数が他のクラスを大幅に上回り、偏った...

AIによる顔の変形の背後にある技術的な戦い

[[275567]]週末に集中的に流行した後、顔を変えるソフトウェアZAOの人気はようやく落ち着きを...

Keras の重み制約を使用してディープ ニューラル ネットワークの過剰適合を減らす

[[333587]]重み制約は、ディープラーニング ニューラル ネットワーク モデルのトレーニング ...

サイバー犯罪者が機械学習を利用する 7 つの方法: 対抗策

[51CTO.com クイック翻訳] イスラエルのベングリオン国際空港は、世界で最も安全な空港の一つ...