[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

图片|网络|侵删

关注我,我们共同成长

“你的鼓励就是我分享的动力”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOS攻击实验

实验背景 Dos 攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段,残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃。 实验设备 一个网络 net:cloud0 一台模…

基于微信小程序+SpringBoot+Vue的儿童预防接种预约系统(带1w+文档)

基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 基于微信小程序SpringBootVue的儿童预防接种预约系统(带1w文档) 开发合适的儿童预防接种预约微信小程序,可以方便管理人员对儿童预防接种预约微信小程序的管理,提高信息管理工作效率及查询…

24暑假算法刷题 | Day22 | LeetCode 77. 组合,216. 组合总和 III,17. 电话号码的字母组合

目录 77. 组合题目描述题解 216. 组合总和 III题目描述题解 17. 电话号码的字母组合题目描述题解 77. 组合 点此跳转题目链接 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输…

移动UI:排行榜单页面如何设计,从这五点入手,附示例。

移动UI的排行榜单页面设计需要考虑以下几个方面: 1. 页面布局: 排行榜单页面的布局应该清晰明了,可以采用列表的形式展示排行榜内容,同时考虑到移动设备的屏幕大小,应该设计合理的滚动和分页机制,确保用户…

贪心算法.

哈夫曼树 哈夫曼树(Huffman Tree),又称为霍夫曼树或最优二叉树,是一种带权路径长度最短的二叉树,常用于数据压缩。 定义:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树…

普乐蛙VR航天航空体验馆知识走廊VR体验带你登陆月球

VR航天航空设备是近年来随着虚拟现实(VR)技术的快速发展而兴起的一种新型设备,它结合了航天航空领域的专业知识与VR技术的沉浸式体验,为用户提供了前所未有的航天航空体验。以下是对VR航天航空设备的详细介绍: 一、设备…

UGUI优化篇--UGUI合批

UGUI合批 UGUI合批规则概述UGUI性能查看工具合批部分的特殊例子一个白色image、蓝色image覆盖了Text,白色image和Text哪个先渲染 Mask合批Mask为什么会产生两个drawcallMask为什么不能合批Mask注意要点 RectMask2D为什么RecMask2D比Mask性能更好主要代码RectMask2D注…

Golang | Leetcode Golang题解之第295题数据流的中位数

题目: 题解: type MedianFinder struct {nums *redblacktree.Treetotal intleft, right iterator }func Constructor() MedianFinder {return MedianFinder{nums: redblacktree.NewWithIntComparator()} }func (mf *MedianFinder) AddNum(…

MySQL中多表查询之外连接

首先先来介绍一下我做的两个表,然后再用他们两个举例说明。 -- 创建教师表 create table teachers( id_t int primary key auto_increment, -- 老师编号 name_t varchar(5) -- 姓名 ); -- 创建学生表 create table students( id_s int primary key auto_increment,…

数据结构——单链表OJ题(下)

目录 一、链表的回文结构 思路一:数组法 (1)注意 (2)解题 思路二:反转链表法 (1) 注意 (2)解题 二、相交链表 (1)思路&#…

优化算法:1.遗传算法(GA)及Python实现

一、定义 遗传算法就像是在模拟“优胜劣汰”的进化过程,通过选择最优秀的个体,交配产生下一代,并引入一定的变异,逐步优化解决问题。 二、具体步骤 初始化种群(Initialization): 假设你要找到一个迷宫的最佳出口路径。…

CTF-NSSCTF[GKCTF 2021]

[GKCTF 2021]easycms 考察: 用扫描工具扫描目录,扫描到后台登录界面/admin.php 题目提示了密码是五位弱口令,试了试弱口令admin和12345直接成功了 任意文件下载 点击设计-->主题然后随便选择一个主题,点击自定义&#xff0…

故障诊断 | 基于Transformer故障诊断分类预测(Matlab)

文章目录 预测效果文章概述程序设计参考资料预测效果 文章概述 Transformer故障诊断/分类预测 | 基于Transformer故障诊断分类预测(Matlab) Transformer 模型本质上都是预训练语言模型,大都采用自监督学习 (Self-supervised learning) 的方式在大量生语料上进行训练,也就是…

CTF之网站被黑

简单看一下网页和源码没发现什么明显漏洞 那就扫描一下目录 发现了/shell.php文件,访问一下,发现是一个后台管理登录页面 别无他法只能爆破喽,爆破后发现密码是hack flag{25891d9e9d377f006eda3ca7d4c34c4d}

@JSONField(format = “yyyyMMddHH“)的作用和使用

JySellerItqrdDataDO对象中的字段为: private Date crdat; 2.数据库中的相应字段为: crdat datetime DEFAULT NULL COMMENT 创建时间,2. 打印出的结果为: “crdat”:“2024072718” 年月日时分秒 3. 可以调整format的格式 4. 这样就把Date类…

RedHat8安装Oracle19C

RedHat8安装Oracle19C 1、 更新yum源 更新yum源为阿里云镜像源: # 进入源目录 cd /etc/yum.repos.d/ # 删除 redhat 默认源 rm redhat.repo # 下载阿里云的centos7源 curl -O http://mirrors.aliyun.com/repo/Centos-8.repo # 替换 Centos-8.repo 中的 $releasev…

初学Mybatis之 Lombok 篇

idea 安装 Lombok 插件&#xff1a; File->Settings->Plugins->搜索 lombok 下载 在项目中导入 lombok 的 jar 包&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.…

C语言程序设计之数学函数篇

程序设计之数学函数 问题1_1代码1_1结果1_1 问题1_2代码1_2结果1 _2 问题1_3代码1_3结果1_3 问题1_1 函数 f u n fun fun 的功能是计算&#xff1a; s ln ⁡ ( 1 ) ln ⁡ ( 2 ) ln ⁡ ( 3 ) ⋯ ln ⁡ ( n ) s\sqrt{\ln(1)\ \ \ln(2)\ \ \ln(3)\ \ \cdots \ \ \ln(n)\ } …

ReentrantReadWriteLock详解

目录 ReentrantReadWriteLock详解1、ReentrantReadWriteLock简介2、ReentrantReadWriteLock类继承结构和类属性3、ReentrantReadWriteLock的读写锁原理分析4、ReentrantReadWriteLock.WriteLock类的核心方法详解非公平写锁的获取非公平写锁的释放公平写锁的获取公平写锁的释放 …

win11查找句柄泄露

1.打开任务管理器&#xff0c;不会的网上搜 2.选择详细信息 3.注意了 比较坑的一点 win11上详细信息不会默认显示句柄数。&#xff08;默认没有句柄那一列&#xff0c;妈的花了我好长时间找&#xff09; 右键&#xff0c;点击选择列 选择句柄 下面的列表里就能看到进程使用…