把一个300GB的大模型分放在几台电脑上,就像搬家时把一屋子的箱子送往不同房间:如果逐件排队,真正开始干活前,光准备就要等很久。开发者 Chuyito 针对 llama.cpp 的 RPC 加载做了并行化改动。RPC(远程过程调用)负责协调多台机器加载和运行模型;并行加载则让多个线程同时传输、准备模型数据,减少启动时的排队。
据 Chuyito 在 Reddit 披露,同一模型在 b10173 版本中的加载状态持续了4分54秒;应用 PR 26291,并把环境变量 GGML_RPC_LOAD_THREADS 设为12后,时间降至1分38秒。环境变量是程序外部的配置项,这里用来指定加载线程数,无需改代码。这个优化缩短的是模型启动时间,不代表回答问题或生成文字也会变快。
这项改动当时仍接近完成,是否保留新配置项还涉及文档修改,服务端工作也尚未收尾。数字来自作者与测试者的特定设备结果——两套分别使用 DDR4、DDR5 内存并搭配 4060 Ti 的机器,尚不能直接外推到所有多机配置。