NVIDIAのスキルセットでエージェントにSpark関数を書き直させるなら、元の版と一致するテストが先
NVIDIAはエージェントがSparkのUDFをGPU向けに書き直すスキルセットを公開し、22倍の高速化を報告した。テストが元の版と一致したときだけ受け入れる3つの確認。
データチームに、Apache Spark(大規模データの処理基盤)で自作した遅い関数があり、誰かが「コーディングエージェント(コードを書くAIアシスタント)に速く書き直させよう」と提案しています。2026年10月13日、NVIDIAはまさにそれを行うためのガイドを公開し、大きな結果を紹介しました。ある関数で、関数を呼び出す工程の実行時間(operator time)が274.55時間から12.78時間に減ったというのです。自分の仕事に取り入れる価値があるのは速度向上ではなく、このワークフローにおける証拠の順番です。書き直した版は、テストで元の版と一致したあとにだけ受け入れます。
NVIDIAが問題はどこにあると言っているか
Sparkで自作する関数はUDF(ユーザー定義関数)と呼ばれます。NVIDIAは、UDFには任意のコードが入っていて、システムはそれを分析することも並列に実行することもできないと書いています。cuDF(SparkをGPU=グラフィックス処理装置で動かすためのプラグイン)を使うと、データは列形式から行形式に変換され、CPU(中央処理装置)に戻されてUDFが1行ずつ実行され、また変換し直されます。この部分が、本来GPUで動いているクエリ全体を遅くします。
記事は、書き直しの方法を易しい順に3つ挙げています。
| 方法 | NVIDIAによる複雑さ | 向いている場面 |
|---|---|---|
| SQL式(データベースの問い合わせ言語)で書き直す | 低 | 単純なリレーショナルな処理、小さな関数 |
| cuDFで書き直す | 中 | 文字列の分割や入れ子型など、多くの場合 |
| CUDA(GPU向けのプログラミング言語)で書き直す | 高 | 複雑な処理、最大限の性能が必要な場合 |
記事の例は、摂氏を華氏に変換する関数です。元の関数は入力が空(null)なら空を返し、式は celsius * 9.0 / 5.0 + 32.0 です。SQL版では、この式だけがクエリの中に残ります。
学ぶ価値があるのは、エージェントが証拠のあるループの中でだけ動くこと
NVIDIAは、この作業の多くは「適切なガードレールがあれば」コーディングエージェントに向くと書いています。エージェントは見慣れないAPI(プログラム間のインターフェース)を探し、代わりのコードを書き、素早く繰り返します。一方、実行できるテストと性能の測定が、各変更を受け入れるかどうかを決めます。同社のスキルセット「cuDF skills for Apache Spark」は、作業を4つのフィードバックループに分けています。テスト、変換、ベンチマーク、最適化です。各ループは、やるべき作業と、次へ進む前に必要な証拠を定めています。スキルには、テストランナー、ベンチマーク用の仕組み、出力を元の版と照合するルーチンを含むプロジェクトのひな形が付いています。
結果については、NVIDIAは名前を出さない大手の消費者向けテクノロジー企業が、本番のデータパイプラインにある30個を超えるUDFを移行したと述べています。3,000を超えるジョブ(クラスターで動くタスク)に影響していた1つのUDFでは、その関数の実行時間が6,000億行の処理で274.55時間から12.78時間に減り、約22倍速くなったそうです。NVIDIAは、書き直した版は元のCPU版UDFの動作を保ったと述べています。これはNVIDIAが公表した数字で、記事には、外部の人が再現できるようなそのワークロードのデータは載っていません。
今週できること
この記事はNVIDIAのスキルセットを実際には動かしていません。したがって、以下の3つの手順は、NVIDIAが説明している順番に基づく本記事の提案であり、どのシステムでも試していません。
- 小さくて読みやすいUDFを1つ選び、サンプルデータに対する元の版の出力を保存します。NVIDIAの元の関数は空の場合を別に扱っているので、サンプルには空の行を入れてください。
- エージェントに書き直させる前に、元の版と新しい版の出力を1行ずつ比べるテストを書きます。入力はサンプルデータで、期待する出力は、異なる行が0であることです。エージェントには、修正のたびにこのテストを実行させます。
- 時間を測るのは、テストが一致したあとだけにします。どの行でも差が出たら、差のある行を添えて書き直した版をエージェントに戻します。速いからという理由で受け入れてはいけません。
空の行でテストが一致しなければ、新しい版は動作を変えているということです。差のある行の理由が説明できるまで、古いUDFを使い続けてください。
出典
- NVIDIA Technical Blog, “How to Rewrite Apache Spark UDFs for GPU Acceleration with AI Agents”(2026年10月13日) — UDFの問題、3つの書き直し方法、エージェントの4つのスキルループ、顧客企業1社の結果を説明しています。これは企業自身の説明で、独立した検証はありません。