異種エッジにおける高速でポータブルな Llama2 推論
(secondstate.io)Rust+Wasm スタック: Python の強力な代替
- Rust+Wasm アプリケーションは Python と比べてサイズが 1/100、速度は 100 倍高速で、ハードウェアアクセラレーションをまったく変更せずにどこでも安全に実行できる。
- Rust は AGI(汎用人工知能)のための言語であり、llama2 モデルを本来の速度で推論するシンプルな Rust プログラムを作成している。
- Wasm にコンパイルされたバイナリアプリケーション(2MB)は、さまざまなハードウェアアクセラレータを備えたデバイス間で完全に移植可能である。
- Wasm ランタイム(WasmEdge)は、クラウド環境で安全かつセキュアな実行環境を提供する。
Rust プログラムのインストールと実行
- Step 1. WasmEdge と GGML プラグインのインストール: Linux または Mac デバイスで以下のコマンドを使用してインストールする。
- Step 2. 事前ビルド済み Wasm アプリとモデルのダウンロード: llama2 モデルを GGUF 形式でダウンロードし、例として llama2 7B のチャットチューニングモデルを 5 ビット重みで量子化したバージョンをダウンロードする。
- Step 3. 実行: WasmEdge を使用して wasm 推論アプリケーションを実行し、GGUF モデルを渡してモデルと会話するための質問を入力する。
モデル動作の設定
- コマンドラインオプションを使って、モデルとの対話方法を設定できる。
- たとえば、特定のコンテキスト長を指定し、各応答で予測する最大トークン数を設定し、統計を出力し、モデル応答を
stdoutにストリーミングするように設定できる。 - このプログラムは低価格帯の M2 MacBook で毎秒約 25 トークンを生成する。
LLM エージェントとアプリ
- Rust と WasmEdge を使って OpenAI 互換 API サーバーを構築する。
- これにより、OpenAI 互換の開発ツールを使って LLM エージェントやアプリを作成できる。
Python の代わりに Rust+Wasm を使う利点
- Rust+Wasm スタックは AI 推論アプリケーション向けの Python スタックに対する強力な代替であり、クラウドコンピューティングインフラを提供する。
- 超軽量: 推論アプリケーションはすべての依存関係を含めてもわずか 2MB。
- 非常に高速: 推論アプリケーションのあらゆる部分でネイティブ C/Rust 並みの速度を提供する。
- 移植性: 同一の Wasm バイトコードアプリケーションは、異種のハードウェアアクセラレーションをサポートする主要な計算プラットフォームすべてで実行できる。
- インストール、開発、デプロイが容易: 複雑な依存関係がなく、ノート PC 上で標準ツールを使って単一の Wasm ファイルをビルドし、どこへでもデプロイできる。
- 安全でクラウド対応: Wasm ランタイムは信頼できないユーザーコードを分離するよう設計されており、コンテナツールで管理され、クラウドネイティブプラットフォームへ容易にデプロイできる。
Rust 推論プログラム
- デモ用推論プログラムは Rust で書かれ、Wasm にコンパイルされる。
- Rust のソースコードは非常にシンプルで、わずか 40 行のコードで構成されている。
- Rust プログラムはユーザー入力を管理し、会話履歴を追跡し、テキストを llama2 のチャットテンプレートに変換し、WASI NN API を使って推論タスクを実行する。
クラウドまたはエッジでの実行
- Wasm バイトコードファイルを用意すれば、WasmEdge ランタイムをサポートするあらゆるデバイスにデプロイできる。
- WasmEdge は GGML プラグインとともにインストールされ、さまざまなハードウェアアクセラレーションを自動的に活用して llama2 モデルを実行する。
次のステップ
- WasmEdge GGML ツールは現在すでに利用可能で、クラウドネイティブの顧客に使われているが、まだ初期段階にある。
- オープンソースプロジェクトへの貢献や、将来の LLM 推論インフラの方向性形成に関心があるなら、貢献できる低レベルの作業がいくつかある。
他の AI モデル
- WasmEdge と WASI NN は、Python の代替として軽量で高速、移植性が高く安全な推論アプリケーションを構築できる。
- たとえば、mediapipe-rs プロジェクトは Google の mediapipe Tensorflow モデル向けに Rust+Wasm API を提供している。
GN⁺の見解
この記事で最も重要なのは、Rust と WebAssembly(Wasm)を使って AI 推論のための Python の代替を提示している点であり、サイズ、速度、移植性、セキュリティの面で顕著な利点をもたらすことです。この技術スタックはクラウドコンピューティングインフラを統合し、多様なデバイスやクラウド環境での性能を向上させ、複雑な依存関係の問題を解決し、開発とデプロイを簡素化する方法を提供します。このアプローチは特にエッジコンピューティングと AI 推論の未来に重要な影響を与える可能性があり、技術に関心のある人々にとって非常に興味深いテーマです。
1件のコメント
Hacker Newsのコメント