WebAssembly を使用すると、大掛かりなセットアップを行わずに、完全な LLM をマシン上で迅速かつ簡単にダウンロードして実行できます。
WebAssembly、Large Language Models、および Kubernetes Matter、著者 Torsten Volkから翻訳。
WebAssembly (WASM) を使用すると、机の下、データセンター、AWSアカウント、または 30 台の制御ユニットにあるハードウェア上でまったく同じコードを開発、構築、実行、操作することが驚くほど簡単になります。トウモロコシ畑のトン収穫機。
私はデトロイトで開催された KubeCon 2022 でFermyon の CEO Matt Butcherとこのビジョンについて話し合いましたが、現在、具体的な価値を提供する実際の本番環境に対応したユースケースが存在しています。
LlamaEdge: どこでも LLM を実行できる 1 行のコード
オープンソース プロジェクトLlama Edge は、基本的にどのマシンでもターミナルにコード行を貼り付けるだけで、数秒以内にブラウザがポップアップし、ChatGPTで見慣れているものとよく似た UIを表示することを約束しています。もちろん、ラップトップで ChatGPT を実行するためのハードウェアはありませんし、ライセンスの観点からOpenAI がそのオプションを提供することもありません。しかし、実行できるオープン ソースの亜種は数十種類あります。デフォルトでは、LlamaEdge はGoogle の Gemma LLM の小規模バージョンをローカル マシンにインストールして、すぐに満足できるようにします。これはうまく機能します。
しかし、大掛かりなセットアップを行わずに、完全な LLM をマシンにすばやく簡単にダウンロードして実行するにはどうすればよいでしょうか?ここで、 wasmEdge が窮地を救ってくれます。 Llama Edge は、WasmEdge ランタイム上でプリコンパイルされたコード (バイトコード) として実行されます。必要なディスク容量は 30MB (GB ではありません!) と、選択した LLM のダウンロードに必要なスペースだけです。 Llama Edge はダウンロードされると、wasmEdge の機能を利用して、基本的にあらゆるオペレーティング システム (Windows、Linux、およびその派生製品) およびあらゆるシリコン (Intel、AMD、Nvidia など) 上に CPU、GPU、RAM、およびディスク リソースを継続的にプロビジョニングします。高度な構成。次に、マシン上でターミナルを開いて、次のコマンドを確認してください。この 1 つのコマンド…
bash <(curl -sSfL '<a href="https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh">https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh</a>')
…追加の構成を行わずに UI を生成します。
コンポーネントは新しいコンテナです
「コンポーネントは新しいコンテナです」とCosmonicの CEO であるLiam Randall氏は言います。この記事を書いているのと同じ MacBook 上で、Randall の ChatGPT に似た UI を含めて完全な LLM を 1 分以内にセットアップできたことを考慮すると、という発言は完全に理にかなっています。 WASM を使用せずに同じ LLM をインストールする場合は、MacOS 固有のいくつかの手順に従う必要があります。1) homebrew をインストールし、2) 必要なパッケージをインストールし、3) 必要な Llama LLM を見つけてクローンを作成し、4) をインストールします。 Python の依存関係、5) モデル ファイルの変換と定量化、6) インストールのテスト。ただし、WasmEdge を実行しているため、これらの手順について心配する必要はなく、Python ランタイムが存在する必要さえありません。 LlamaEdge には wasmEdge の実行のみが必要で、それ以上は必要ありません。
しかし、Rust を学ぶ必要があるでしょうか?
Python開発者として、私はRust を学ばなくても LLM を使用できることを強く望んでいます。 LLM を設定するために必要なコマンド ライン コードは 1 行だけです。デフォルトの LLM の代わりに特定の LLM を選択する場合は、次のコード行が必要です。
bash <(curl -sSfL 'https://raw.githubusercontent.com/LlamaEdge/LlamaEdge/main/run-llm.sh') --model llama-2-7b-chat
上記のコマンドにより、ユーザーはすぐに使用できる LLM の選択画面に移動します。
実際の Rust コードはまだ 1 行も書いていませんが、LlamaEdge GitHub Web サイトから必要なコマンドをコピーして貼り付けたので、新しい LLM と通信できるようになりました。コンポーネントが新しいコンテナーであるという Randall のステートメントに戻ると、このモデルをコンポーネントとして、今後作成する Python アプリケーションに簡単にインポートできるようになりました。同時に、このコンポーネントをチームやクライアントと共有して、彼らが私の LLM を独自のアプリケーションに組み込むこともできます。
これは、AWS Re:InventでWASM コンポーネントをサブスクリプション サービスとして提供する可能性について、 Fermyon のTim Enwallと交わした議論を思い出させます。業界アナリストとして、独自の LLM を作成し、過去の出版物を使用して微調整すると、それを WASM にコンパイルし、そのデジタル ツインへのサブスクリプションを販売できます。
別の使用例: ロギングおよびその他の領域のデータ パイプライン管理
Calyptiaの FluentBit 可観測性データ パイプライン管理プラットフォームを使用すると、開発者は WASM プログラムの形式でプラグインを作成できます。開発者は、Rust、TinyGo、Python を使用して、パイプライン データを処理する関数を作成できます。
これを LlamaEdge の例に接続して、WASM パイプラインを LlamaEdge と「対話」させ、リアルタイムでログを分析し、有意義な洞察を抽出し、ログの内容に基づいて応答を自動化することもできます。 WASM パイプライン プログラムがトラフィックの異常な急増や潜在的なセキュリティ侵害など、ログ データの異常を検出するシナリオを想像してください。その後、LlamaEdge LLM にクエリを実行して、コンテキストをより深く理解し、即時のアクションを提案したり、問題を適切なチーム メンバーにエスカレーションしたりできます。
LLM をデータ パイプラインに統合することにより、インシデントの監視と対応プロセスがよりインテリジェントかつプロアクティブになります。これにより、ログ データの処理方法に革命が起こり、事後対応的なプロセスが、アラートを発するだけでなく、考えられる解決策も提供する動的で自動化されたプロセスに変換される可能性があります。データ パイプライン内で分散型のテレメトリ データを処理することは、1 つ以上の企業可観測性プラットフォームに取り込む必要があるデータの量を削減できるという点で特に興味深いものです。多くの可観測性プラットフォームは、受信データの量に基づいて企業顧客に料金を請求するため、大幅なコスト削減が実現します。
Kubernetes 用 Fermyon プラットフォーム: 高密度、低コスト
Fermyon は、Kubernetes 用のSpinKubeフレームワークを立ち上げ、WASM アプリケーションを Kubernetes 上でより高密度に実行できるようにし、コンテナと比較して低コストを実現しました。 SpinKube は、WASM モジュールの軽量な性質を利用して、より多くのアプリケーションを各サーバー ノードにパッケージ化し、必要なコンピューティング リソースを削減します。
SpinKube フレームワークは、開発者にとって使いやすいように設計されており、既存の Kubernetes 環境とのシームレスな統合を提供します。開発者は、新しいツールやワークフローを学習することなく、従来のコンテナ化されたアプリケーションと同じように WASM アプリケーションを展開できます。この使いやすさにより、開発サイクルが短縮され、展開が簡素化されます。
さらに、SpinKube は、マルチテナント環境の重要な側面であるアプリケーション レベルのセキュリティと分離を保証します。各 WASM アプリケーションは独自の分離されたサンドボックスで実行され、ホスト システムや他のアプリケーションに影響を与える脆弱性のリスクを最小限に抑える安全な実行環境を提供します。
Fermyon のオープン スタンダードとコミュニティ主導の開発への取り組みは、SpinKube のアーキテクチャに反映されています。このプラットフォームは幅広いプログラミング言語とツールをサポートしているため、より幅広い開発者コミュニティがアクセスできるようになります。この包括性によりイノベーションが促進され、さまざまな業界での WASM テクノロジーの採用が促進されます。
要約すると、Fermyon for Kubernetes はクラウド ネイティブ コンピューティングにおける大きな進歩を表します。 SpinKube は、使いやすさ、セキュリティ、オープン スタンダードを維持しながら密度を高め、コストを削減することで、将来の Kubernetes アプリケーション展開における主要なプレーヤーとしての地位を確立します。ここで、Fermyon が SpinKube を CNCF サンドボックスに寄付したことを言及することが重要です。
結論: LLM、開発者の生産性と運用コストの圧力、WASM の成功の原動力
WebAssembly ランタイムがある場所であればどこでも常に実行できる WASM の固有の機能により、このテクノロジは「LLM をデータのある場所に移動する」ことを目的としています。
企業は潜在的に機密データを移動する許可を要求することなく、必要な LLM を関連データ ソースに単に「ドッキング」できるため、これはコンプライアンス上の理由から最適です。この移植性は、WASM ランタイムのサイズが小さいこと、および Kubernetes 上で (従来のコンテナの隣に) WASM アプリケーションを実行できる機能と組み合わせることで、週末にアイドル状態のサーバー インフラストラクチャ上で一部の LLM 推論やモデル トレーニングを実行するのが簡単になり、したがって簡単になります。より簡単に。月曜日が来たら、WASM-LLM アプリケーションを終了するか、別の場所に移動することができます。もちろん、この原則は LLM にのみ適用されるものではなく、他の多くのユースケースにも適用できます。
Bytecode Alliance と W3C WebAssembly Community Group が WebAssembly コンポーネント モデルの実装を加速し、WASM が一般的に使用できるようになれば、このテクノロジは真のゲームチェンジャーとなるでしょう。WASI 0.2は良い前進ですが、プラットフォームを大衆市場向けに準備するにはまだかなりの宿題が残っています。
1990 年代生まれのプログラマーがビデオ移植ソフトウェアを開発し、1 年足らずで 700 万以上の利益を上げました。結末は非常に懲罰的でした。 高校生が成人式にオープンソースプログラミング言語を自作―ネチズンの鋭いコメント: 詐欺横行でRustDesk依存、国内サービスの タオバオ(taobao.com)は国内サービスを一時停止、ウェブ版の最適化作業を再開 Java最も一般的に使用されている Java LTS バージョンは 17 、Windows 11 は減少し続ける Open Source Daily | Google がオープンソースの Rabbit R1 を支持、Microsoft の不安と野心; Electricがオープンプラットフォームを閉鎖 AppleがM4チップをリリース GoogleがAndroidユニバーサルカーネル(ACK)を削除 RISC-Vアーキテクチャのサポート Yunfengがアリババを辞任し、将来的にはWindowsプラットフォーム用の独立したゲームを制作する予定この記事はYunyunzhongsheng ( https://yylives.cc/ ) で最初に公開されたもので、どなたでもご覧いただけます。