この記事はICP公式ページの「Decentralized AI overview」を引用翻訳しています。
Decentralized AIの概要
概念: DeAI
Decentralized AI(略してDeAI)とは、AIとブロックチェーン技術が交わる領域を指します。この用語は、トークン化や分散型マーケットプレイスといった周辺要素から、AIモデルを完全にオンチェーンでスマートコントラクトとして実行することまで、多岐にわたるアプリケーションを指しています。
DeAIとは何か?
"DeAI"という用語は、さまざまな意味で使用されることがあります。時には、その意味が薄れ、分散型でも信頼できるものでもないプラットフォームやアプリケーションで使われることもあります。しかし、ICPの文脈では、DeAIは完全に分散化され安全なプラットフォームで実行されるAIを指しています。
以下は、分散型の強さの観点からDeAIアプリケーションを強い順に並べたリストです:
完全オンチェーンのトレーニングと推論: これはDeAIの最も純粋な形であり、スマートコントラクトのセキュリティと信頼性の保証をDeAIアプリケーションに持ち込みます。このユースケースをサポートすることは、GPU対応ノードの統合後にICPが達成する長期的なビジョンです。
オフチェーンでトレーニングされたモデルを使った完全オンチェーン推論: モデルはオフチェーンでトレーニングされ、その後オンチェーンにアップロードされます。推論は完全にオンチェーンで行われ、通常のスマートコントラクトと同じセキュリティと信頼性の保証があります。ICPは現在、数百万のパラメータを持つモデルのこのユースケースをサポートしています。
モデルをオンチェーンに保存し、ユーザーのデバイスで推論を実行: モデルはオフチェーンでトレーニングされ、オンチェーンにアップロードされます。推論はユーザーのデバイス上で行われます。ユーザーが自分のデバイスを信頼している限り、推論が正しく行われたことを信頼できます。ただし、モデルをユーザーのデバイスにダウンロードする必要があるため、機密性が低下し、遅延が増加するなどのデメリットがあります。ICPは、最大400GiBのモデルをスマートコントラクトで保存することができ、このユースケースをサポートしています。
トークン化、マーケットプレイス、オーケストレーション: スマートコントラクトをAIモデルやAIハードウェアのトークン化、マーケットプレイス、オーケストレーション層として使用します。ICPは汎用ブロックチェーンであり、任意の複雑さを持つスマートコントラクトをサポートしています。
Web2 AIサービスを呼び出すスマートコントラクト: ICP上で実行されるスマートコントラクトは、OpenAIやClaudeを含むWeb2サービスにHTTPリクエストを行うことができます。
なぜDeAIを使うのか?
DeAIの最も純粋な形は、AIの信頼性の問題を解決する可能性を持っています。今日では、ユーザーは中央集権型のサーバーで実行されるAIを盲目的に信頼しなければなりません。データの使われ方やAIモデルがどのように応答を生成するか、またはそれが正しく、一貫して動作しているかを確認する手段がありません。
AIモデルがユーザーにとってブラックボックスのように振る舞うため、信頼できるAIモデルの構築は困難です。しかし、ユーザーがモデルのトレーニング方法や推論プロセスを検証できるなら、この問題は解決されます。
ICP上での信頼できるDeAIは、キャニスタースマートコントラクトを使用して実現可能です。
完全オンチェーンのDeAI
AIモデルをオンチェーンで実行することは、従来のブロックチェーンでは計算とメモリの負荷が高すぎます。ICPは次の特徴を活用してスマートコントラクトを強力にするよう設計されています
WebAssembly仮想マシン: ほぼネイティブなパフォーマンスを提供します。
決定論的タイムスライシング: 長時間の計算を複数のブロックに自動的に分割します。
強力なノードハードウェア: 標準化された仕様を持つノードは、32コアCPU、512GiB RAM、30TB NVMeを備えています。
現在、ICPはWebAssemblyにコンパイルされたAIライブラリ(Sonos Tractなど)を使用して小規模モデルのオンチェーン推論をサポートしています。長期的には、GPU計算のオンチェーンサポートを導入し、より大きなモデルのトレーニングと推論を可能にすることを目指しています。
DeAIに関する技術ワーキンググループ
分散型AIおよび関連プロジェクトについて議論する技術ワーキンググループが、隔週木曜日の午後5時(UTC)に開催されます。コミュニティDiscordサーバーから参加できます。グループについての詳細や過去の会議のノートを確認したり、質問をすることができます。
ICP AIプロジェクト
ICP上でAIを利用する方法を示すコミュニティプロジェクトがいくつかあります。
オンチェーン推論フレームワーク
Sonos Tract: ONNX、TensorFlow、PyTorchモデルをサポートするRust製のオープンソースAI推論エンジンで、WebAssemblyにコンパイルされます。
Rust-Connect-Py-AI-to-IC: Sonos Tractを使用してPython AIモデルをオンチェーンでデプロイおよび実行するためのオープンソースツール。
Burn: ONNX、PyTorchモデルをサポートし、WebAssemblyにコンパイルされるRust製のオープンソースディープラーニングフレームワーク。
Candle: Rustで記述されたミニマルなMLフレームワークで、WebAssemblyにコンパイルされます。
ベクトルデータベース
Vectune: Rustで書かれた軽量なVectorDBで、インクリメンタルなインデックス付けをサポート。
Client-Vector-Search: クライアントサイドのベクトル検索ライブラリで、埋め込み、保存、検索、キャッシュが可能です。
ICP上で開発されたプロジェクト
ArcMind Vector DB: テキスト、画像、音声の埋め込みをサポートするベクトルデータベース。
KinicDAO Vector DB: 分散型アプリ向けに特別に構築された完全オンチェーンのベクトルデータベース。
Blueband: Node.js用のローカルベクトルデータベースVectraに基づいて構築されたベクトルデータベース。
ELNA Vector DB: オープンソースで完全オンチェーンのベクトルデータベースで、主にELNA.aiアプリケーションに使用されます。
言語モデル、エージェント、チャットボット
GPT2: オンチェーンで実行されるGPT2の例。
DeVinci: オープンソースのLLMモデルを使用したブラウザ内AIチャットボット。
ArcMind AI: 思考の連鎖を使って推論と行動を行う自律型エージェント。
ELNA AI: 完全オンチェーンのAIエージェントプラットフォームおよびマーケットプレイス。
OpenAIをキャニスターから呼び出す
Juno + OpenAI: プロンプトから画像を生成するためにJunoとOpenAIを使用した例。
プログラミング言語別リソース
Rust: 上記のリンク参照。
Motoko: MotokoLearn - オンチェーン機械学習を可能にするMotokoパッケージ。
C++: icpp-pro Getting Started, icpp_llm, icpp-llama2 Deployment Tutorial, icgpt。
TypeScript/JavaScript: Tensorflow on ICP, ICGPT(ReactフロントエンドとC/C++バックエンドを使用した完全オンチェーンのLLM)。
Comments