跳到正文
npaka · AI与游戏开发技术· 来源·· 3 小时前AI 评分68

Project Maya:在 24GB VRAM 上运行 GLM-5.3-Flash 的开源推理引擎

24GB VRAMで GLM-5.3-Flash を動かす Project Maya の概要

正文 · AI 翻译

总结了「Project Maya」的概要。

目次

  1. 1. 前言
  2. 2. Project Maya 的工作原理
  3. 2-1. 将模型分散到 VRAM、RAM 和 SSD
  4. 2-2. 通过 Expert 缓存实现加速
  5. 2-3. 通过投机式解码实现加速
  6. 3. 支持模型
  7. 3-1. 支持的LLM
  8. 3-2. 量化模型
  9. 4. Project Maya的推理性能
  10. 5. 所需的PC环境

1. 前言

在本地LLM中,GPU的VRAM容量是一个巨大的限制。特别是超过300B参数的模型,即使经过量化,仅靠普通GPU的VRAM也难以运行。

「Project Maya」是一个开源推理引擎,旨在利用GPU、CPU、RAM和SSD,在普通PC上运行300B至700B级别的巨型MoE模型。

它基于「Strata」构建,并针对GLM等大型模型进行了改进,以MIT许可证发布。

其主要特点如下:

・支持大型模型:可执行321B至748B规模的MoE模型
・低VRAM需求:将模型分散存储在VRAM、RAM和SSD中
・支持多GPU:最多可使用16块GPU
・加速优化:通过专家缓存和投机解码实现加速
・API兼容:提供与OpenAI/Anthropic兼容的API

2. Project Maya的工作原理

2-1. 将模型分散至VRAM、RAM与SSD

Project Maya的特点是不将整个模型加载到VRAM中,而是利用PC的全部内存。
例如,“GLM-5.3-Flash”是一个拥有321B规模的MoE(混合专家)模型,但在推理时并非使用所有专家。

Project Maya利用这一特性,将模型分散到以下三个层级:

・VRAM:放置频繁使用的专家
・RAM:保存无法放入VRAM的专家
・NVMe SSD:按需读取剩余的专家

通过测量GPU和CPU的性能以及内存容量等,根据PC环境调整配置。这使得即使在无法将整个模型保留在VRAM中的PC上也能运行大型模型。

2-2. 通过专家缓存实现加速

在MoE模型中,根据输入仅选择所需的专家。

Project Maya将常用的专家缓存到VRAM中,并将使用频率较低的专家放置在RAM或SSD上。
由于缓存在对话过程中也会更新,因此通过将常用专家保留在VRAM中,可以减少加载时间。

但是,如果频繁从SSD读取无法容纳在RAM中的专家,则SSD的速度会成为瓶颈。

2-3. 通过投机解码实现加速

Project Maya还支持“投机解码(Speculative Decoding)”。

这是一种通过预先预测多个令牌,并由主模型进行批量验证以提高生成速度的技术。
在GLM-5.3-Flash中,可以使用MTP(多令牌预测)或DFlash2等机制。但是,由于DFlash2的附加模型采用非商业许可证,因此在商业使用时需要注意。

效果因模型和GPU配置而异。

3. 支持的模型

3-1. 支持的LLM

Project Maya 主要面向以下三个模型进行开发。

・GLM-5.3-Flash:321B,活跃参数约18B
・DeepSeek-V4.1-Flash-1017:748B
・MiniMax-M3.1-Flash:428B,活跃参数约23B

针对每个模型都实现了专用的推理处理。

3-2. 量化模型

在Project Maya中,提供了根据内存容量和品质对应的量化模型。

主要模型尺寸如下:

・GLM-5.3-Flash

・Maya-S:96.5GB
・Maya-S24:94.7GB
・Maya-M:116GB
・Maya-L:156.3GB

・DeepSeek-V4.1-Flash-1017

・Maya-XS:277GB
・Maya-S:340GB

・MiniMax-M3.1-Flash

・Maya-XS:93GB
・Maya-S:122GB

原则上,量化精度越高,模型尺寸越大,所需内存容量也越大。不过,实际内存使用量会根据模型的部署方式而有所不同。

GLM-5.3-Flash 报告称,Maya 量化版保持了原始 FP8 模型零样本精度的 97.7% 至 99.2%。但这并不能保证在所有任务中都能保持同等质量。

4. Project Maya 的推理性能

GitHub上刊登了用户提供的基准测试结果。

GLM-5.3-Flash的生成速度如下:

・RTX 5090 32GB × 2 + RTX 4090 48GB × 1:148.6 tokens/s(使用Maya-S、DFlash2)
・RTX 4090 24GB × 4:118 tokens/s(Maya-S24)
・RTX 3090 24GB × 2:53.0 tokens/s(Maya-S24)
・RTX 5090 32GB × 1:30 tokens/s以上(Maya-M)
・RTX 3090 24GB × 1:26.0 tokens/s(Maya-S24)
・RTX 4090 24GB × 1:16.6 tokens/s(Maya-S24)
・DGX Spark × 1:16.5 tokens/s(Maya-S)

特别值得关注的是,即使在配备单张RTX 3090 24GB和128GB RAM的PC上,也能以约26 tokens/s的速度运行321B模型。
通过利用多GPU,也报告了超过100 tokens/s的生成速度。
不过,这些只是参考值,PC配置和量化方式各不相同,结果不仅取决于GPU性能,还会受CPU、RAM、SSD等因素影响。

5. 所需的PC环境

Project Maya的主要运行环境如下:

・GPU:NVIDIA V100 / RTX 20系列及之后等
・VRAM:没有统一的最低容量,越多越有利
・RAM:32GB起可运行。为提升速度,64~128GB以上更有利
・CPU:x86-64(推荐支持AVX2)
・存储:高速NVMe SSD
・操作系统:Linux、Windows 10 / 11(实验性支持)
・其他:CUDA 12.x、Python 3.10及以上版本

AMD GPU也已获得实验性支持。此外,面向Apple Silicon的Metal后端正在开发中,但使用GLM-5.3-Flash进行开发者侧的实际操作验证尚未完成。

5-1. RAM容量与SSD的关系

在Project Maya中,即使无法将整个模型保留在RAM中,也可以从SSD读取所需的Expert并执行。

例如,GLM-5.3-Flash的Maya-S约为96.5GB。

・RAM 32GB:需频繁从SSD读取
・RAM 64GB:可将部分Expert保留在RAM中
・RAM 128GB:更容易将Maya-S的整个模型保留在RAM和VRAM中,从而减少对SSD的访问

由于对SSD的访问越少速度越快,因此在重视实用性能的情况下,搭载更多RAM更有利。
保存模型所需的SSD容量为:GLM-5.3-Flash在Maya-S下约100GB,DeepSeek-V4.1-Flash在Maya-S下约350GB。
此外,除了模型本体外,还需要KV Cache和OS等内存。

6. Project Maya 的使用方法

在Linux上,可以通过以下命令进行设置。

git clone https://github.com/mw00/project-maya.git
cd project-maya
./setup.sh

首次设置时,将选择模型和量化方式,并下载必要的文件并进行构建。

在Windows上可以使用“START-MAYA.bat”。

启动后,通过以下URL访问Web UI。

http://127.0.0.1:8080

在Web UI中,除了聊天之外,还可以查看GPU、VRAM和RAM的使用情况以及令牌生成速度。

可以使用以下命令进行基准测试和硬件调整。

# ベンチマーク
./maya.sh --bench

# ハードウェアに合わせた調整
./maya.sh --calibrate

7. OpenAI / Anthropic 兼容 API

Project Maya 支持 OpenAI / Anthropic 兼容 API,可用作本地 AI 服务器。

OpenAI 兼容 API 的 URL 如下所示。

http://127.0.0.1:8080/v1

以下是从 Python 的 OpenAI SDK 连接的示例。

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:8080/v1",
    api_key="none",
)

model_id = client.models.list().data[0].id

response = client.chat.completions.create(
    model=model_id,
    messages=[
        {
            "role": "user",
            "content": "Pythonでテトリスを作って"
        }
    ],
)

print(response.choices[0].message.content)

由于还支持 Anthropic Messages 兼容 API,因此可以从 Claude Code 等编码代理调用本地 LLM。

此外,它还支持最多 8 个请求的并行处理以及 OpenAI Responses API。

8. 总结

Project Maya 是一个 AI 推理引擎,通过组合 GPU、CPU、RAM 和 SSD 来运行 321B 至 748B 规模的超大规模 MoE 模型。

其主要特点如下:

・支持 321B 至 748B 的超大规模 MoE 模型
・将 Expert 分散到 VRAM、RAM 和 SSD 中
・通过 Expert 缓存和投机解码实现加速
・最多可使用 16 台 GPU
・支持 OpenAI / Anthropic 兼容 API

Strataが125B規模のQwenモデルに注力するのに対し、Project MayaはGLMやDeepSeekなど、さらに巨大なモデルを対象としています。
一般的なGPUでも321Bモデルを実行でき、複数GPUでは100 tokens/sを超える実測例もあります。

「VRAMに収まるモデルを選ぶ」から、「PC全体のリソースで巨大モデルを動かす」へ。

Project Mayaは、ローカルLLMの可能性を広げる注目のオープンソースプロジェクトです。

関連

来源:npaka · AI与游戏开发技术 · note.com