众所周知,AI模型的训练和推理需要大量的硬件资源支持。我们以早期的Qwen(通义千问)微调和推理为例说明:
| 模型 | 最大上下文长度 | 微调(Q-Lora)最小GPU用量 | 生成2048个token的最小显存占用(Int4) |
|---|---|---|---|
| Qwen-1.8B | 32K | 5.8GB | 2.9GB |
| Qwen-7B | 32K | 11.5GB | 8.2GB |
| Qwen-14B | 8K | 18.7GB | 13.0GB |
| Qwen-72B | 32K | 61.4GB | 48.9GB |
数据来源:https://github.com/QwenLM/Qwen/blob/main/README_CN.md
从上述表格中可以看出,即使最小的Qwen-1.8B模型,微调也需要5.8GB显存,生成2048个token的最小显存也需要2.9GB。而较大一点的模型Qwen-14B分别需要18.7GB和13.0GB。
这种硬件配置的需求,对于个人开发者或者兴趣爱好者来说无疑是较高的“财力”门槛。
CPU:负责协调数据流和模型的执行。对于推理任务,CPU通常需要较高的时钟速度和多核支持。对于训练任务,CPU需要能够处理大量的并行任务。
GPU:图形处理单元(GPU)由于其并行处理能力,非常适合进行深度学习训练和推理。高性能的GPU(如NVIDIA的Tesla系列或RTX系列)通常具有大量的CUDA核心。
内存:AI模型,尤其是大型模型,需要大量的内存来存储模型参数和激活值。训练大型模型时,内存带宽也非常重要。
存储:快速的存储设备(如SSD)可以加速数据加载,对于训练和推理都是必要的。对于训练任务,存储容量也很重要,因为需要存储大量的训练数据。
网络:高速网络连接对于分布式训练至关重要,能够支持多个设备或服务器之间的快速数据传输。
冷却系统:AI训练和推理过程中会产生大量热量,因此需要有效的冷却系统来防止硬件过热。
电源:高性能硬件需要稳定的电源供应,以避免在训练或推理过程中出现故障。
简单来说,AI模型的训练和推理对硬件资源的需求不是有点“高”,而是比我们想象的“高的”更多!
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;text-wrap: wrap;background-color: rgb(255, 255, 255);color: rgb(62, 62, 62);font-size: 16px;text-align: left;visibility: visible;">?项目信息
#github地址https://github.com/exo-explore/exo
多设备支持:支持多种类型的设备,包括智能手机、平板电脑、个人电脑等,可以利用手头的设备构建AI集群。
分布式计算:分布式计算架构,允许多个设备协同工作,共同执行AI模型的训练和推理任务。
动态模型分区:能够动态地将大型AI模型分割成小块,并在集群中的不同设备上并行执行,以提高计算效率。
自动设备发现:可以自动发现网络中的设备,并将其纳入AI集群,简化了集群的搭建和扩展过程。
点对点(P2P)连接:使用P2P网络连接设备,减少了中心化服务器的需要,提高了集群的可扩展性和鲁棒性。
跨平台支持:支持多种操作系统,包括iOS、Android、macOS和Linux,使得的不同平台都能加入到AI集群中。
易于使用:提供了用户友好的接口和文档,使得即使是非技术用户也能轻松地开始使用。
广泛的模型支持:包括 LLaMA、Mistral、LlaVA、Qwen 和 Deepseek等。
个人AI助手: 利用家中的多个设备运行类似Qwen的大型语言模型。
小型企业AI解决方案: 小企业可以利用现有的办公设备构建AI集群。
教育和研究: 学校和研究机构可以使用Exo来教授分布式计算和AI概念。
家庭自动化: 与智能家居设备结合,创建更智能的家庭自动化系统。
Python版本:Python版本不低于3.12.0。
网络连接:设备需要连接到网络,以便可以自动发现网络中的其他设备。
驱动和运行时:
Linux系统:需要NVIDIA驱动、CUDA和cuDNN(如果使用NVIDIA GPU)。
2 台 8GB M3 MacBook Air
1 台 16GB NVIDIA RTX 4070 Ti 笔记本电脑
2 x Raspberry Pi 400,每个具有 4GB RAM(在 CPU 上运行)+ 1 x 8GB Mac Mini
exo 设计为在具有异构功能的设备上运行。例如,一些具有 GPU 的设备,而其他设备则具有集成 GPU 甚至 CPU。添加功能较差的设备会减慢单个推理延迟,但会增加集群的整体吞吐量。
gitclonehttps://github.com/exo-explore/exo.gitcdexopipinstall-e.#或者,如果使用的是虚拟环境:sourceinstall.sh
一、多个 MacOS上的使用说明
#MacOS-1exo#MacOS-1exo#无需配置-exo将自动发现其他设备。
访问http://localhost:8000 启动类似 ChatGPT 的 WebUI(由tinygrad tinychat提供支持)。
在http://localhost:8000/v1/chat/completions启动与 ChatGPT 兼容的 API 端点。
curlhttp://localhost:8000/v1/chat/completions\-H"Content-Type:application/json"\-d'{"model":"llama-3.2-3b","messages":[{"role":"user","content":"Whatisthemeaningofexo?"}],"temperature":0.7}'curlhttp://localhost:8000/v1/chat/completions\-H"Content-Type:application/json"\-d'{"model":"llama-3.1-405b","messages":[{"role":"user","content":"Whatisthemeaningofexo?"}],"temperature":0.7}'curlhttp://localhost:8000/v1/chat/completions\-H"Content-Type:application/json"\-d'{"model":"llava-1.5-7b-hf","messages":[{"role":"user","content":[{"type":"text","text":"Whatarethese?"},{"type":"image_url","image_url":{"url":"http://images.cocodataset.org/val2017/000000039769.jpg"}}]}],"temperature":0.0}'二、多个异构设备 (MacOS + Linux) 上的使用说明
#设备 1 (MacOS):exo --inference-engine tinygrad#指定使用tinygrad推理引擎。目前还支持MLX推理引擎#设备 2(Linux):exo#Linux将自动默认使用tinygrad推理引擎。#可以指定tinygrad 特定环境变量的信息。#例如,可以通过指定来将tinygrad配置为使用cpu CLANG=1。
三、单个设备上使用说明
exorunllama-3.2-3b#使用自定义提示词:exorunllama-3.2-3b--prompt"Whatisthemeaningofexo?"
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |