cake

cake

框架实现分布式大模型推理 充分利用闲置设备

Cake是基于Candle的Rust框架,通过整合iOS、Android、macOS、Linux和Windows设备为异构集群,实现大型模型(70B+)的分布式推理。该框架将transformer块分片到多设备上,突破单设备GPU内存限制,有效利用闲置硬件资源,降低AI应用门槛。

Cake分布式推理大型模型异构集群AI民主化Github开源项目
<p align="center"> <small>加入我们的项目社区服务器!</small> <br/><br/> <a href="https://discord.gg/https://discord.gg/btZpkp45gQ" target="_blank" title="加入我们的社区!"> <img src="https://dcbadge.limes.pink/api/server/https://discord.gg/btZpkp45gQ"/> </a> </p> <hr/>

Cake是一个基于Candle的Rust框架,用于分布式推理大型模型,如LLama3Stable Diffusion。该项目的目标是通过将消费级硬件重新用作iOS、Android、macOS、Linux和Windows设备的异构集群,来运行大型(70B+)模型,有效地利用计划报废作为工具,使人工智能更加accessible和民主化。

<p align="center"> <strong> ⚠ 这是正在积极开发和快速变化的实验性代码,请预期会有bug ⚠ </strong> </p>

这个想法是将transformer块分片到多个设备上,以便能够对通常无法装入单个设备GPU内存的模型进行推理。同一工作节点上连续transformer块的推理会被批处理,以最小化数据传输造成的延迟。

支持

操作系统架构加速状态
GNU/Linuxarm, arm64, x86_64-
GNU/Linuxarm, arm64, x86_64CUDA
GNU/Linuxarm, arm64, x86_64BLAS
Windowsx86_64BLAS未测试
Windowsx86_64CUDA
macOSx86_64-
macOSaarch64-
macOSaarch64Metal
Androidarm, arm64, x86_64-
Androidarm, arm64, x86_64CUDA未测试
iOS / iPadOSaarch64-
iOS / iPadOSaarch64Metal🛠️ 90% 完成,进行中
Web-WebGPU理论上可行,尚未完成

CUDA加速系统需要CUDA >= 12.2。

编译

安装Rust后,您可以使用不同的加速方式构建核心库和CLI工具。

无加速(将使用CPU):

cargo build --release

Apple Silicon的Metal加速:

cargo build --release --features metal

CUDA加速:

cargo build --release --features cuda

生成可通过XCode编译和部署的iOS绑定:

make ios

使用方法

运行工作节点:

cake-cli --model /path/to/Meta-Llama-3-8B \ # 模型路径,阅读下文了解如何优化工作节点的模型大小 --mode worker \ # 以工作节点模式运行 --name worker0 \ # 拓扑文件中的工作节点名称 --topology topology.yml \ # 拓扑 --address 0.0.0.0:10128 # 绑定地址

运行带有OpenAI兼容REST API的主节点:

cake-cli --model /path/to/Meta-Llama-3-8B \ # 模型路径 --api 0.0.0.0:8080 \ # API绑定地址 --topology topology.yml # 拓扑文件

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'

现在你可以通过以下方式与集群交互:

curl http://master-ip:8080/api/v1/chat/completions \ ~ -H "Content-Type: application/json" \ -d '{ "messages": [ { "role": "system", "content": "你是一个乐于助人的AI助手。" }, { "role": "user", "content": "为什么天空是蓝色的?" } ] }'

拆分模型

作为内存和磁盘空间优化,你可能希望只给工作节点提供它实际需要的模型数据,而不是整个文件夹。在这种情况下,你可以使用 cake-split-model 工具。例如,要生成 llama3 safetensors 的较小版本,你可以:

cake-split-model --model-path path/to/Meta-Llama-3-8B \ # 要拆分的源模型 --topology path/to/topology.yml \ # 拓扑文件 --output output-folder-name # 保存所有工作节点数据包的输出文件夹

这将创建一个较小的文件夹,其中只包含所需层的张量和特定工作节点的拓扑文件。在部署工作节点之前,记得也要将其他模型内容(config.json、tokenizer.json 等)复制到工作节点包中。

Stable Diffusion 图像生成

topology.yml 中定义模型部分:

wsl2_on_windows: host: 192.168.1.2:10128 description: NVIDIA RTX 4090 24GB layers: - unet macbook: host: 192.168.1.3:10128 description: Macbook M2 layers: - clip - vae

运行工作节点:

cake-cli --model /path/to/hf/cache \ # Huggingface 模型的缓存目录 --mode worker \ # 以工作节点模式运行 --name wsl2_on_windows \ # 拓扑文件中的工作节点名称 --model-type image-model \ # 对 SD 使用 image-model,对 LLM 使用 text-model 或跳过 --topology topology.yml \ # 拓扑文件 --address 0.0.0.0:10128 # 绑定地址

可以通过指定更多命令行参数在 SD1.5、SD2.1、SDXL 和 SDXL Turbo 之间切换模型。

如果在本地缓存目录中找不到模型文件,将自动从 Huggingface 下载。

运行带有 REST API 的主节点:

cake-cli --model /path/to/hf/cache \ # Huggingface 模型的缓存目录 --api 0.0.0.0:8080 \ # API 绑定地址 --model-type image-model \ # 对 SD 使用 image-model,对 LLM 使用 text-model 或跳过 --topology topology.yml # 拓扑文件

使用集群生成图像:

curl http://master-ip:8080/api/v1/image \ ~ -H "Content-Type: application/json" \ -d '{ "image_args": { "sd-image-prompt": "一个老人坐在海边的椅子上", "sd-num-samples": 1, "sd-image-seed": 2439383 } }'

更多控制参数可以在代码中找到。

许可证

本项目基于GPL 3许可证发布。要查看项目依赖项的许可证,请使用cargo install cargo-license安装cargo license,然后运行cargo license命令。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

数据安全AI助手热门AI工具AI辅助写作AI论文工具论文写作智能生成大纲
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多