llama.cpp 分布式推理介绍(0) 整体介绍 ggml-rpc

317 阅读1分钟

llama.cpp 的分布式推理功能,是基于ggml内置的ggml-rpc功能来实现的。 llama.cpp的cmake默认构建是没有rpc功能的,需要增加-DGGML_RPC=ON选项,来生成rpc-server。

本专栏文章主要介绍ggml-rpc的代码实现,llama.cpp的rpc部署可参考官方资料。

ggml-rpc 项目的核心功能是让一台计算机(客户端)能够将复杂的 GGML 计算任务(例如大型语言模型推理)发送到另一台更强大的计算机(服务器)上执行。它通过一套远程过程调用(RPC)机制,实现了计算资源的网络化共享。用户可以在本地设备上编写代码,但实际的繁重计算则由远程的高性能硬件(如GPU)完成,就像给本地电脑外接了一个“云端大脑”一样。

ggml-rpc 工作原理

flowchart TD
    A0["远程过程调用后端 (RPC Backend)
"]
    A1["远程后端缓冲区 (RPC Buffer)
"]
    A2["RPC 通信协议
"]
    A3["RPC 服务器 (rpc_server)
"]
    A4["张量序列化 (rpc_tensor)
"]
    A5["远程计算设备 (RPC Device)
"]
    A6["后端注册机制 (Backend Registration)
"]
    A0 -- "分配与管理" --> A1
    A0 -- "发送计算任务" --> A3
    A3 -- "实现" --> A2
    A2 -- "使用...打包张量" --> A4
    A5 -- "初始化" --> A0
    A6 -- "添加" --> A5

ggml-rpc介绍

  1. 远程计算设备 (RPC Device)

  2. 后端注册机制 (Backend Registration)

  3. 远程过程调用后端 (RPC Backend)

  4. RPC 服务器 (rpc_server)

  5. RPC 通信协议

  6. 张量序列化 (rpc_tensor)

  7. 远程后端缓冲区 (RPC Buffer)