[AI]在家中使用一样平常装备运行您自己的 AI 集群.实用于移动、桌面和服务 ...

打印 上一主题 下一主题

主题 919|帖子 919|积分 2757

创作不易 只因热爱!!
   热衷分享,一起发展!
  “你的鼓励就是我努力付出的动力”

AI发展不可谓不快,
从ollama个人电脑CPU运行到现在,一样平常装备AI集群.
下面对比一下,两款开源AI 大模型的分布式推理应用, exo 和cake.
1.AI 集群推理应用exo 和cake的简朴对比

     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
  1. git clone https://github.com/exo-explore/exo.gitcd exopip install .
复制代码
(2)在任意装备上运行
  1. python3 main.py
复制代码
环形分区架构
运行tinygrad的examples里的llama3.py查看更多帮助
  1. python3  examples/llama3.py -help
复制代码
尝试在Windows上摆设,运行报错如下!!!放弃windows折腾吧…
  1. No module named '_posixshmem'
  2. 报错解释:
  3. 这个错误通常发生在尝试使用某些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++
  1. git clone https://github.com/evilsocket/cake.git
  2. cd cake
  3. 进行编译和部署:
  4.   不加速(将使用 CPU):
  5.   cargo build --release
  6.   借助 Apple Silicon 的 Metal 加速:
  7.   cargo build --release --features metal
  8.   使用 CUDA 加速:如果有显卡,需要CUDA驱动加速系统,需要CUDA >= 12.2。
  9.   cargo build --release --features cuda
复制代码
(2) 配置运行主支节点及topology.yml文件
  1. ####  2.1 运行工作节点:
  2. cake-cli --model /path/to/Meta-Llama-3-8B \ # model path, read below on how to optimize model size for workers
  3.          --mode worker \                    # run as worker
  4.          --name worker0 \                   # worker name in topology file
  5.          --topology topology.yml \          # topology
  6.          --address 0.0.0.0:10128            # bind address
  7. ####  2.2 运行主节点
  8. cake-cli --model /path/to/Meta-Llama-3-8B \ # model path
  9.          --api 0.0.0.0:8080               \ # API bind address
  10.          --topology topology.yml            # topology file
复制代码
此中 topology.yml 确定哪些层由哪个工作线程提供服务
  1. linux_server_1:
  2.   host: 'linux_server.host:10128'
  3.   description: 'NVIDIA Titan X Pascal (12GB)'
  4.   layers:
  5.     - 'model.layers.0-5'
  6. linux_server_2:
  7.   host: 'linux_server2.host:10128'
  8.   description: 'NVIDIA GeForce 3080 (10GB)'
  9.   layers:
  10.     - 'model.layers.6-16'
  11. iphone:
  12.   host: 'iphone.host:10128'
  13.   description: 'iPhone 15 Pro Max'
  14.   layers:
  15.     - 'model.layers.17'
  16. ipad:
  17.   host: 'ipad.host:10128'
  18.   description: 'iPad'
  19.   layers:
  20.     - 'model.layers.18-19'
  21. macbook:
  22.   host: 'macbook.host:10128'
  23.   description: 'M1 Max'
  24.   layers:
  25.     - 'model.layers.20-31'
复制代码
model.layers 数量在对应大模型 model.safetensors.index.json.
还有Candle 的搭建与配置…
但行好事,莫问出息!

end
**你好呀,我是一个医信行业工程师,喜欢学习,喜欢搞机,喜欢各种捣,也会一连分享,如果喜欢我,那就关注我吧!**
往期出色:
作者|医信工程师随笔|Carltiger_github
图片|网络|侵删
关注我,我们共同发展
“你的鼓励就是我分享的动力”

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表