NVIDIA、DEEPSEEKのR1でDevinを打ち負かす!!!

2,650 文字

NVIDIA made its own Devin copy with DEEPSEEK R1!!!
Here's how Nvidia engineers built a system using Deepseek R1 that was better than a human programer! Automating GPU Kern...

NVIDIAがDeepSeek R1を使用したシンプルなワークフローでDevinを打ち負かしたことについてお話しします。このビデオでは、NVIDIAのエンジニアたちがDeepSeek R1をDevinのように活用して、人間以上の優れたプログラマーを生み出した方法をご紹介します。このケースでは、GPUカーネルプログラミングという特殊なタスクを実現しました。これは日常的に目にするものではありませんが、非常に専門的なタスクであり、NVIDIAのエンジニアたちはDeepSeek R1を使ってこれを解決することに成功しました。
実際のワークフローを見る前に、まず課題の内容を理解しましょう。課題は最適化された注意力カーネルを作成することです。注意力はトランスフォーマーにおける重要な概念です。ここで必要なのは、メモリ不足エラーなどの実行時エラーを防ぐために、最適化された低レベルの実装を作成することです。つまり、このケースではグラフィック処理ユニットという、コンピュータの低レベルコンポーネントと相互作用するプログラムを作成する必要があります。
これは計算効率が良く、かつエラーのないものでなければなりません。画像を扱うマルチモーダルモデルなど、様々なタイプの注意力処理があります。NVIDIAのエンジニアたちがDeepSeek R1で実現しようとしたのは、このGPUカーネルプログラミングです。これには非常に高度なスキルが必要で、誰もがGPUカーネルプログラマーになれるわけではありません。
NVIDIAのエンジニアたちは、シンプルなプロンプトを使用しました:「相対位置エンコーディングをサポートするGPU注意力カーネルを書いてください」。相対位置エンコーディングに馴染みがない方のために説明すると、これはLLMのトークン制限やコンテキストウィンドウを拡張するために使用される手法の一つです。ROPというオプションを検索すると、相対位置エンコーディングについて知ることができます。
カーネル内でオンザフライで相対位置エンコーディングを実装し、必要な修正を含む完全なコードを書くように指示がありました。そして相対位置エンコーディングを計算するための関数と、定数スケーリング係数などの情報、さらに数式が提供されました。カーネル操作内で相対位置エンコーディングが効率的に適用されることを確認しながら、更新された完全なカーネルコードを提供するように求められました。
私もDeepSeek R1に同じプロンプトを与えてみました。すると、このケースでは358秒、つまり6分ほど考え込んでから回答を出しました。最終的に目的の処理を行うPythonコードを生成しましたが、私は検証は行いませんでした。
しかし、NVIDIAが実際に行ったのはこれだけではありません。NVIDIAの真骨頂は、最適化されたGPUカーネルを生成するための推論時スケーリングを行うワークフローを作成したことです。これは先ほどのようなゼロショット設定ではありません。NVIDIAのエンジニアたちが巧みに組み立てたのは、最初のプロンプトを与えてDeepSeek R1に渡し、その後検証システムに入るというものです。
検証者は、DeepSeek R1が作成したコードが基準を満たしているか、計算効率が良いか、エラーがないか、適切に動作するか、目的を達成しているかをチェックします。検証に合格すれば、GPUの最適化カーネルとして採用されます。不合格の場合は、プロンプトを改良し、不足している部分を補完して再度フォーマットし、DeepSeek R1に戻します。これは人類が昔から作り続けてきたフィードバックシステムであり、このシンプルなワークフローがNVIDIAのエンジニアたちにとって効果的に機能しました。
実際、人間が作成した既存のコードとNVIDIAのDeepSeek R1ワークフローを比較すると、様々なタスクで改善が見られました。因果マスクでは約10%、ドキュメントマスクでも10%、相対位置エンコーディングではなんと50%もの改善が見られました。このように、NVIDIAのワークフロー(私はこれをDevinキラーと呼びたいと思います)がDeepSeek R1を使用して作成した注意力カーネル、GPUカーネルすべてにわたって改善が確認されました。
さらに興味深い点として、KernelBenchという、大規模言語モデルがこのようなGPUカーネルをどれだけ効率的に作成できるかを理解するためのベンチマークがあります。レベル1とレベル2にそれぞれ100のタスクがあり、NVIDIAが作成したワークフローは、レベル1の問題で100%、レベル2の問題で96%の正確なコードを生成しました。これは驚異的な成果です。これは一般のエンジニアには難しい、非常に専門的で効率的な競技プログラミングタスクであり、検証者を伴うDeepSeek R1の推論時スケーリングを用いたこのワークフローが成功を収めました。
このプレゼンテーションで最も重要な部分は、推論時間の予算を増やすにつれて、レベル1の問題を解くシステムの精度が向上したことです。推論時間が2.5分の場合は60%の問題しか解けませんでしたが、20分に延長すると100%の問題を解決できました。つまり、どれだけ長く考えさせるかが重要で、それがNVIDIAがDevinキラーやDevinのようなシステムをインターネット上で見られる最もシンプルなワークフローの1つを使って作成する鍵となりました。
これは私たちにとって何を意味するのでしょうか。これは、Devinのようなものを作るのはそれほど難しくないということを示しています。推論時スケーリングについてさらに探求を進めるにつれて、このアプローチは、特にゼロショット問題であまり一般的でない言語でのコーディングにおいて、より知的なシステムを生み出す可能性があります。検証者の構築方法やプロンプトの改良方法についてもっと知りたいところですが、その情報は現時点では得られません。しかし、DeepSeek R1を使用したクローズドループフィードバックベースのシステムを構築し、これまで解決できなかった問題を解決する方法について、さらなる研究の進展が期待できます。
非常にエキサイティングな時代ですね。皆さんの感想をお聞かせください。また別の動画でお会いしましょう。ハッピープロンプティング!

コメント

タイトルとURLをコピーしました