機(jī)器之心報(bào)道
機(jī)器之心編輯部
假如你有閑置的設(shè)備,或許可以試一試。
這次,你手里的硬件設(shè)備也能在 AI 領(lǐng)域大展拳腳了。
將 iPhone、iPad、Macbook 進(jìn)行組合,就能組裝成「異構(gòu)集群推理方案」, 然后順暢的運(yùn)行 Llama3 模型。
值得一提的是,這個(gè)異構(gòu)集群可以是 Windows 系統(tǒng),也可以是Linux、iOS 系統(tǒng),并且對(duì) Android 的支持很快到來(lái)。
異構(gòu)集群正在運(yùn)行中。
根據(jù)項(xiàng)目作者 @evilsocket 的介紹,這個(gè)異構(gòu)集群包括 iPhone 15 Pro Max、iPad Pro、MacBook Pro (M1 Max)、NVIDIA GeForce 3080、2x NVIDIA Titan X Pascal。所有代碼都已經(jīng)上傳到 GitHub。
看到這,網(wǎng)友紛紛表示,這位老哥確實(shí)不簡(jiǎn)單。
不過(guò)也有網(wǎng)友開始擔(dān)心能耗問題,暫且不管速度,電費(fèi)都耗不起。來(lái)回搬數(shù)據(jù),損耗太大了。
項(xiàng)目介紹
上述功能的實(shí)現(xiàn),離不開一個(gè)名為 Cake 的 Rust 框架。Cake 可以完成大模型(例如 Llama3)的分布式推理,旨在將消費(fèi)級(jí)硬件組合成異構(gòu)集群,其中消費(fèi)級(jí)硬件采用多種操作系統(tǒng),包括:iOS、Android、macOS、Linux 和 Windows,從而使 AI 更易于訪問。
項(xiàng)目地址:https://github.com/evilsocket/cake
Cake 的主要思路是將 transformer 塊分片到多個(gè)設(shè)備,以便能夠讓通常不適合單個(gè)設(shè)備 GPU 內(nèi)存的模型運(yùn)行推理。對(duì)同一工作線程上的連續(xù) transformer 塊的推理是分批進(jìn)行的,以便最大限度地減少數(shù)據(jù)傳輸造成的延遲。
Cake 目前支持的系統(tǒng)和設(shè)備如下:
編譯
安裝 Rust 后,運(yùn)行下列代碼:
cargo build --release
假如用戶想要在應(yīng)用程序中生成 iOS 綁定,可以進(jìn)行下述操作:
make ios
使用
運(yùn)行 worker 節(jié)點(diǎn):
cake-cli --model /path/to/Meta-Llama-3-8B \ # model path, read below on how to optimize model size for workers
--mode worker \ # run as worker
--name worker0 \ # worker name in topology file
--topology topology.yml \ # topology
--address 0.0.0.0:10128 # bind address
運(yùn)行 master 節(jié)點(diǎn):
cake-cli --model /path/to/Meta-Llama-3-8B \
--topology topology.yml
其中 topology.yml 確定哪些層由哪個(gè) worker 提供服務(wù):
linux_server_1:
host: 'linux_server.host:10128'
description: 'NVIDIA Titan X Pascal (12GB)'
layers:
- 'model.layers.0-5'
linux_server_2:
host: 'linux_server2.host:10128'
description: 'NVIDIA GeForce 3080 (10GB)'
layers:
- 'model.layers.6-16'
iphone:
host: ' description: 'iPhone 15 Pro Max' layers: - 'model.layers.17' ipad: host: ' description: 'iPad' layers: - 'model.layers.18-19' macbook:
熱門跟貼