ニュース

いいね! 電話、iPad、MacBook などの古いデバイスは異種クラスタを形成し、Llama 3 を実行できます

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

マシンハートレポート

マシーンハート編集部

予備の機材があれば、試してみるのもいいかもしれません。

今度は、あなたの手にあるハードウェア機器がAIの分野でも才能を発揮します。

iPhone、iPad、Macbook を組み合わせることで、「異種クラスター推論ソリューション」を構築し、Llama3 モデルをスムーズに実行できます。



この異種クラスターは Windows システム、Linux、または iOS システムにすることができ、Android も間もなくサポートされる予定であることに注意してください。

異種クラスタが実行中です。



プロジェクト作成者 @evilsocket によると、この異種クラスタには iPhone 15 Pro Max、iPad Pro、MacBook Pro (M1 Max)、NVIDIA GeForce 3080、および 2x NVIDIA Titan X Pascal が含まれています。すべてのコードは GitHub にアップロードされました。

これを見たネチズンは、この老人は確かに単純ではないと表明した。



しかし、一部のネットユーザーは速度に関係なく、電気代を支払う余裕がないことを心配し始めています。データを前後に移動すると、損失が大きくなりすぎます。





プロジェクト紹介

上記の機能の実装は、Cake と呼ばれる Rust フレームワークから切り離すことができません。 Cake は、大規模なモデル (Llama3 など) の分散推論を完了でき、コンシューマー グレードのハードウェアを異種クラスターに組み合わせるように設計されています。コンシューマー グレードのハードウェアは、iOS、Android、macOS、Linux、Windows などのさまざまなオペレーティング システムを使用します。 AIがもっと身近になるように。



プロジェクトアドレス: https://github.com/evilsocket/cake

Cake の主なアイデアは、トランスフォーマー チャンクを複数のデバイスに分割して、通常は単一デバイスの GPU メモリに収まらないモデルで推論を実行できるようにすることです。データ転送による遅延を最小限に抑えるために、同じワーカー スレッド上の連続するトランスフォーマー ブロックの推論はバッチで実行されます。

現在 Cake でサポートされているシステムとデバイスは次のとおりです。



コンパイル

Rust をインストールした後、次のコードを実行します。

貨物ビルド --リリース

ユーザーがアプリケーションで iOS バインディングを生成したい場合は、次の操作を行うことができます。

iOSを作る

使用

ワーカー ノードを実行します。

cake-cli --model /path/to/Meta-Llama-3-8B # モデルパス。ワーカーのモデルサイズを最適化する方法については以下を参照してください。

--mode worker # ワーカーとして実行

--name worker0 # トポロジファイル内のワーカー名

--topology topology.yml # トポロジー

--address 0.0.0.0:10128 # バインドアドレス

マスターノードを実行します。

cake-cli --model /path/to/Meta-Llama-3-8B

--topology トポロジー.yml

その中で、topology.yml は、どのレイヤーがどのワーカーによって提供されるかを決定します。

linux_server_1:

ホスト: 'linux_server.host:10128'

説明: 'NVIDIA Titan X Pascal (12GB)'

レイヤー:

- 'モデル.レイヤー.0-5'

linux_server_2:

ホスト: 'linux_server2.host:10128'

説明: 'NVIDIA GeForce 3080 (10GB)'

レイヤー:

- 'モデル.レイヤー.6-16'

iPhone: いいえ

ホスト: 'iphone.host:10128'

説明: 「iPhone 15 Pro Max」

レイヤー:

- 'モデル.レイヤー.17'

iPad:

ホスト: 'ipad.host:10128'

説明: 「iPad」

レイヤー:

- 'モデル.レイヤー.18-19'

マックブック:

ホスト: 'macbook.host:10128'

説明: 'M1 Max'

レイヤー:

- 'モデル.レイヤー.20-31'

メモリとディスク領域の最適化の問題に関しては、ユーザーはフォルダー全体ではなく、モデル内で実際に必要なデータのみをワーカーに提供したい場合があります。その場合は、cake-split-model を使用できます。たとえば、llama3 セーフテンソルの小さいバージョンを生成するには、次のコードを使用できます。

cake-split-model --model-path path/to/Meta-Llama-3-8B # 分割するソースモデル

--topology path/to/topology.yml # トポロジファイル

--output 出力フォルダ名

参考リンク:https://x.com/tuturetom/status/1812654489972973643