[AI]在家中使用日常设备运行您自己的 AI 集群.适用于移动、桌面和服务器的分布式 LLM 推理。

创作不易 只因热爱!!

热衷分享,一起成长!

"你的鼓励就是我努力付出的动力"


AI发展不可谓不快,

从ollama个人电脑CPU运行到现在,日常设备AI集群.
下面对比一下,两款开源AI 大模型的分布式推理应用, exo 和cake.

1.AI 集群推理应用exo 和cake的简单对比

python >=3.12.0 Apple芯片 IOS MAC Others芯片 rust exo
github 4.4k+ Model LLaMA
动态模型分区,自动设备发现
p2p 设备连接 推理引擎
MLX 推理引擎
tinygrad
-python 推理引擎
llama.cpp
还在构建中... cake
github 2.2k+ Model LLaMA
master-worker 架构
配置每个工作节点 推理引擎
Candle
-rust

tips: OS系统windows的支持目前都不太好. 建议用 ubuntu 22.04

2. 在家中使用日常设备运行自己的 AI 集群 exo

exo是一个 python>=3.12.0框架.用于基于 MLX,tinygrad等推理引擎的 LLama3 等大型模型的分布式推理。Llama 3.1现在是默认模型,在自己的设备上可运行 8B、70B 和 405B 参数模型.动态模型分区,自动设备发现, p2p 设备连接架构.
github主页: https://github.com/exo-explore/exo

(1)安装 python >=3.12.0

git clone https://github.com/exo-explore/exo.gitcd exopip install .

(2)在任意设备上运行

python3 main.py

环形分区架构

--运行tinygrad的examples里的llama3.py查看更多帮助

python3  examples/llama3.py -help

--尝试在Windows上部署,运行报错如下!!!放弃windows折腾吧...

No module named '_posixshmem'
报错解释:
这个错误通常发生在尝试使用某些Python模块时,特别是涉及到共享内存操作的时候。_posixshmem 是一个Python的C扩展模块,它允许Python代码在Unix-like系统上使用POSIX共享内存接口。

3. 适用于移动、桌面和服务器的分布式 LLM 推理 cake

Cake 是一个 Rust 框架,用于基于 Candle 的 LLama3 等大模型的分布式推理。通过将消费类硬件重新利用设备的异构集群,能够运行大型 (70B+) 模型。

将转换器模块分片到多个设备,以便能够在通常不适合单个设备的模型上运行推理。安装 Rust 后,可以使用不同的加速器构建核心库和 CLI 实用程序。
github主页: https://github.com/evilsocket/cake

(1)安装, ----装rust, windows下要先安装msvc++

git clone https://github.com/evilsocket/cake.git
cd cake
进行编译和部署:
  不加速(将使用 CPU):
  cargo build --release
​
  借助 Apple Silicon 的 Metal 加速:
  cargo build --release --features metal
​
  使用 CUDA 加速:如果有显卡,需要CUDA驱动加速系统,需要CUDA >= 12.2。
  cargo build --release --features cuda

(2) 配置运行主支节点及topology.yml文件

####  2.1 运行工作节点:

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
####  2.2 运行主节点
cake-cli --model /path/to/Meta-Llama-3-8B \ # model path
         --api 0.0.0.0:8080               \ # API bind address
         --topology topology.yml            # topology file

其中 topology.yml 确定哪些层由哪个工作线程提供服务

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: 'iphone.host:10128'
  description: 'iPhone 15 Pro Max'
  layers:
    - 'model.layers.17'
​
ipad:
  host: 'ipad.host:10128'
  description: 'iPad'
  layers:
    - 'model.layers.18-19'
​
macbook:
  host: 'macbook.host:10128'
  description: 'M1 Max'
  layers:
    - 'model.layers.20-31'

model.layers 数量在对应大模型 model.safetensors.index.json.

还有Candle 的搭建与配置...

但行好事,莫问前程!

end

^**你好呀,我是一个医信行业工程师,喜欢学习,喜欢搞机,喜欢各种捣,也会持续分享,如果喜欢我,那就关注我吧!**^

往期精彩:

作者|医信工程师随笔|Carltiger_github

图片|网络|侵删

关注我,我们共同成长

"你的鼓励就是我分享的动力"

相关推荐
小韩学长yyds2 分钟前
从入门到精通:RabbitMQ的深度探索与实战应用
分布式·rabbitmq
井底哇哇4 小时前
ChatGPT是强人工智能吗?
人工智能·chatgpt
Coovally AI模型快速验证4 小时前
MMYOLO:打破单一模式限制,多模态目标检测的革命性突破!
人工智能·算法·yolo·目标检测·机器学习·计算机视觉·目标跟踪
AI浩4 小时前
【面试总结】FFN(前馈神经网络)在Transformer模型中先升维再降维的原因
人工智能·深度学习·计算机视觉·transformer
可为测控5 小时前
图像处理基础(4):高斯滤波器详解
人工智能·算法·计算机视觉
一水鉴天5 小时前
为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约
开发语言·人工智能·python
倔强的石头1065 小时前
解锁辅助驾驶新境界:基于昇腾 AI 异构计算架构 CANN 的应用探秘
人工智能·架构
问道飞鱼6 小时前
【分布式知识】Spring Cloud Gateway实现跨集群应用访问
分布式·eureka·gateway
佛州小李哥6 小时前
Agent群舞,在亚马逊云科技搭建数字营销多代理(Multi-Agent)(下篇)
人工智能·科技·ai·语言模型·云计算·aws·亚马逊云科技
说私域6 小时前
社群裂变+2+1链动新纪元:S2B2C小程序如何重塑企业客户管理版图?
大数据·人工智能·小程序·开源