Cloud Native Wasm Dayから大規模言語モデルをWasmで実行するデモを解説するセッションを紹介
KubeCon+CloudNativeCon North America 2023の前日に開催されたCo-located EventであるCloud Native Wasm Dayから、Second StateのCEOであるMichael Yuan氏が行ったセッションを紹介する。Second StateはWebAssemblyのランタイムであるWasmEdgeを開発していることで知られている。タイトルは「Wasm as the runtime for LLMs AGI」というもので、大規模言語モデルをWasmで実行するという内容だ。
セッションの動画は以下を参照して欲しい。公開されている動画とセッションで用いられたスライドではタイトルが異なっている。
●動画:Wasm Is Becoming the Runtime for LLMs
タイトルでは「LLMs」となっていたスライドに修正を加えて「AGI」、汎用人工知能のアプリケーションを実行するためにWasmを利用するというのが今回の大きなテーマだ。LLM以上にさまざまな用途に使えることを示すのが目的で、セッションの内容はスライドを使ってはいるものの実際にYuan氏のMacBookでアプリケーションを実行するためのコマンドラインを見せるためなどに使われており、ほとんど概念的な解説は省かれていたのが特徴的だ。
Yuan氏はまずLLMに「Wasmとは何か?」を質問してある程度、納得できる回答が得られたが、WASI-NNという単語に関して質問を行ったところLLMが存在しない用語を使って説明しようとしたという例を示して、LLM自体にはまだ限界があることを説明した。モデルはLlama2の7億トークンのモデルを利用しているという。
このような状況に対して、Llama2のモデルにWASM関連の情報を与えて強化したモデルをMacBookで動かすというデモを行った。期待するのは同じ質問をした時により良い回答を得ることだ。
ここからデモを動かすための準備作業の解説が始まった。
そして推論を実行するためのアプリケーションをダウンロードするコマンドを紹介。これがWasmのフォーマットで生成されたアプリケーションだが、実体は数十行のRustのコードである。
このアプリケーションには依存関係が存在せず単一のバイナリーとなっているところがポイントだ。
このスライドに出てくるコマンドや実際のモデルに関する説明はYuan氏のHugging Faceのページにそのまま記載されているので参考にして欲しい。
●参考:https://huggingface.co/juntaoyuan/llawa
このページには今回のデモの要点がシンプルに説明されている。以下はページからの引用だ。
そして実際のデモを実行するコマンドも紹介。WasmEdgeのコマンドラインインターフェースからチャットの形式で回答を得られる。
実際に会場のWi-Fiを使わずにMacBookの中で完結する形で実行した画面は以下の通りだ。
この推論のアプリケーションのコードを見せてRustでスライド1枚に収まる行数になっていることを紹介したのが次のスライドだ。
Rustに慣れていないデベロッパーに対してはJavaScriptのAPIを開発予定であることも説明された。
また単体で実行する形式ではなくクラウドでのサービスとして公開する際のコマンドラインも説明を行い、同じアプリケーションを公開できることも強調した。
またチャットボットとして公開する方法やRAG(Retrieval Augmented Generation)アプリケーションとして実装するための解説も、すでにSecond Stateのサイトなどに公開されていることを説明。Yuan氏は大規模言語モデルを、Pythonに依存しがちな従来のコードからWebAssemblyに置き換えることでその特徴を最大限に活用してさまざまな応用が拡がることを説明。
Yuan氏は言語モデルに限定せずに同じ発想で画像認識にも使えることを紹介した。
そして実際に画像認識のデモとしてホットドッグとピザの画像を用意して認識するデモを見せてその可能性を説明した。
しかし最も強調したかったことは単に応用が効くというだけではなく、Wasm+LLMはPythonに比べて実行ファイルのサイズが小さいという点だろう。
このスライドで訴えたいことは、PythonはC言語によって開発されたフレームワークであり、サイズも大きく依存関係を管理することも難しいという点だ。
ここではTwitterを買収して積極的に改革を進めるElon Muskのコメント紹介。Musk氏は汎用人工知能の開発にはPythonではなくRustが適していると簡潔にコメントしている。
単なるオーナーのコメントだけではなくX(旧Twitter)の新しいプロジェクトとして登場したGrokの紹介文からの引用を使って、Kubernetes、Rustがベースになると説明した。ここでもRustが開発言語として注目されていることを強調したかったのだろう。
最後にRustとWasmの組み合わせをPython、C++と比較しているスライドを使って解説を行った。
特にPythonに対してはサイズで0.1%、処理時間は遥かに高速であり、Cに対しては単一のバイナリーであること、さまざまな言語で記述できることなどが強調された。C言語に比べてRustはメモリーセーフであることが省かれているのは脆弱性を防ぐ上では大きな意味があるはずだが、ここでは特に強調されていないのが残念だ。
サーバーレスをユースケースとして訴求するFermyon、WasmのPaaSとしてマルチリージョンでの分散アプリケーションを可能にするwasmCloudを訴求するCosmonicに対して、大規模言語モデル、そして汎用人工知能のアプリケーションを積極的に訴求するSecond StateとWebAssemblyに関わるベンチャーがそれぞれの差別化ポイントを訴えたWasm Dayとなった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- WasmCon 2023からLLMをWASMで実装するセッションを紹介
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説
- KubeCon Europe 2024からWASMとeBPFを使ってストリーム処理を解説するセッションを紹介
- 「KubeCon NA 2022」のプレカンファレンスからCloudNative Wasm DAYを紹介
- 「KubeCon NA 2022」から、WasmEdgeを開発するSecond StateのMichael Yuanのインタビュー
- WASM Meetup@ByteDanceで垣間見たWebAssemblyの静かな広がり
- WasmCon 2023からCosmonicのCEOがコンポーネントモデルを用いたデモを紹介
- 初めてのWasmCon開催。キーノートからコンポーネントモデルを解説するFastlyのセッションを紹介
- RustNLからマルチプラットフォームのアプリ開発のためのツールRobiusのセッションを紹介
- WebAssemblyを取り巻く最新情報をMeetupから紹介(後半)