コミュニティによって提案13094で承認されたレプリカバージョンe4eeb3は、ICPのロードマップからサイクロトロンマイルストーンを完了させました。
このマイルストーンの目標は、数百万のパラメータを持つAIモデルのオンチェーン推論を可能にすることです。これは、大規模AIモデルのオンチェーントレーニングと推論というより野心的な目標への最初のステップです。
AIワークロードが計算集約型であることは周知の事実です。数百万のパラメータを持つAIモデルで推論を実行するには、乗算や加算などの数十億の算術演算が必要です。つまり、オンチェーン推論をサポートするために、ブロックチェーンは1秒あたり数十億の演算を処理する能力が必要です。サイクロトロンマイルストーンは、ICPの計算力を1桁(約10倍)増加させ、完全にオンチェーンで顔認識を実行するスマートコントラクトの動作例を持つ唯一のブロックチェーンとなりました。他にも画像分類やGPT2の実行(DecideAIによる)などのユースケースも含まれています。
Dominic Williamsによる顔認識デモ
オンチェーンAI計算の基盤
仮想マシンは、スマートコントラクトのコードを実行するため、ブロックチェーンのAI計算に不可欠な部分です。仮想マシンの機能とパフォーマンスは、スマートコントラクトがどれだけのAI計算を実行できるかに直接影響します。例えば、EVMはイーサリアムの仮想マシンです。これはDeFiスマートコントラクト用に調整されており、AI計算に必要な浮動小数点演算などの機能が欠けています。対照的に、ICPはWebAssemblyを仮想マシンとして使用しています。WebAssemblyは浮動小数点数をサポートし、ネイティブに近いパフォーマンスを目指して設計されました。
サイクロトロンマイルストーンのアイデアは、ICPの仮想マシンから可能な限り多くの浮動小数点数パフォーマンスを絞り出すことです。
最適化#1:決定論的浮動小数点演算
ほとんどのAIライブラリとフレームワークは浮動小数点演算に依存しています。ICPのコンテキストでは、浮動小数点演算は決定論的でなければなりません。つまり、同じ入力オペランドで同じ予測可能な結果を生成する必要があります。この決定論的特性は重要です。なぜなら、ICPは複数のノードで同じコードを実行し、その後コンセンサスアルゴリズムを実行して正しい結果を確立するからです。浮動小数点演算が決定論的でない場合、ノードが分岐し、ブロックチェーンの進行が停止する可能性があります。
DFINITYのエンジニアは、Wasmtimeと呼ばれるWebAssembly仮想マシン実装で決定論的浮動小数点演算を高速化する方法を見つけました。これは、より高速なコードを生成する低レベルのコンパイラ最適化です。この最適化は、ICPだけでなく、Wasmtimeを使用する他のプラットフォームやブロックチェーンにも利益をもたらします。
最適化#2:単一命令、複数データ(SIMD)
SIMDは、すべての現代のCPUでサポートされている技術です。これにより、CPUは単一の命令で複数の算術演算を実行できます。例えば、WebAssemblyは単一の命令で4つの並列浮動小数点加算を実行できます。以下の図に示されています。
WebAssembly SIMDは整数でも動作します。例えば、小さな8ビット整数で16の並列算術演算を実行できます。数値の種類と演算によっては、パフォーマンスが4倍から16倍に向上する可能性があります。
ICP上で実行されるスマートコントラクトは、決定論的SIMD命令を使用し、並列計算の恩恵を受けることができるようになりました。SIMDでスマートコントラクトをコンパイルする方法を学んでください。
最適化#3:AI推論エンジンでのSIMDサポート
サイクロトロンパズルの最後のピースは、AIライブラリにWebAssembly SIMDサポートを追加することです。DFINITYのエンジニアは、オープンソースのSonos Tract推論エンジンにWebAssembly SIMD実装を寄稿しました。新しいコードは、SIMD命令を使用して行列乗算やその他の数値アルゴリズムを実装しています。Wasmtimeの最初の最適化と同様に、この貢献はICPだけでなく、より広い開発者コミュニティに利益をもたらします。
結果
これらの最適化を組み合わせることで、数値マイクロベンチマークが28倍高速化されました。エンドツーエンドのAI推論ワークロードでは、モデルに応じて5倍から19倍の改善が観察されました。
以下のチャートに示されています。
これらのAIモデルを含むスマートコントラクトのソースコードはGitHubで公開されており、誰でも結果を再現して検証できます
・画像分類:これは入力画像を分類し、1000の既知のラベルから最も可能性の高いラベルを返すMobileNetモデルです。単一の推論を実行するためのWasm命令数が247億から37億に減少しました。
・顔検出:これは入力画像内の顔のバウンディングボックスを見つけるUltrafaceモデルです。単一の推論を実行するためのWasm命令数が61億から12億に減少しました。
・顔認識:これは入力画像の顔のベクトル埋め込みを計算するモデルです。単一の推論を実行するためのWasm命令数が770億から90億に減少しました。メインネットでの実行制限は400億命令であり、以前は顔認識がメインネットで実行に失敗し、パッチが適用されたレプリカでのみローカルで実行できたことを意味します。
・GPT2:これはDecideAIがrust-connect-py-ai-to-icフレームワークを使用してスマートコントラクトに変換したGPT2モデルです。ベンチマークの詳細はここで説明されています。
ベンチマークはdfxバージョン0.20.1(ベースライン)とバージョン0.22.0-beta.0(サイクロトロン)で実行されました。
結論
サイクロトロンマイルストーンは、浮動小数点演算を最適化し、WebAssembly SIMD命令を有効にすることで、ICP上のAI計算のパフォーマンスをネイティブCPUパフォーマンスに近づけました。これにより、画像分類、顔認識、GPT2など、数百万のパラメータを持つモデルのオンチェーンAI推論が可能になります。
これは、AIの信頼問題を解決するために大規模AIモデルを完全にオンチェーンで実行するための最初のステップです。ICPのロードマップにある次のAIマイルストーンは、CPU制限を超えてスケーリングすることを目指しています。大規模モデルのAI推論とトレーニングをオンチェーンで実行するために、スマートコントラクトはGPUなどの専門ハードウェア上で計算集約型およびメモリ集約型の計算を実行する方法が必要です。ジャイロトロンマイルストーンにご期待ください。
Comments