llama-swap
一款与llama.cpp配合使用的模型内存调度工具,支持按需动态加载和自动卸载模型,实现多模型的高效内存管理
时间轴 (近 90 天)
llama-swap 是一个轻量级的模型切换代理,用于在 llama.cpp 服务端按需加载和卸载不同模型。
Berth 支持在 Ninfer-4090(llama-swap)、Strata、ComfyUI、OpenWebUI 等多个引擎之间原生切换。
1664x960在24GB显存中占用21.6GB(基线1.2GB),且只在显卡真正空闲时才能运行;多次渲染失败是因为llama-swap和常驻引擎在渲染中途溜回GPU。
该方案将锁按主机和端口为每个后端加锁,采用跨进程flock,锁的粒度是单个回合:回合开始时获取,结束时释放。
最终配置为model.single_session_lock: true,闸门按后端而非模型加锁,因为显卡一次只加载一个模型;当第二条GPU通道出现时,键将变为模型作用域。
systemctl stop strata会连带停掉llama-swap,因为llama-swap携带Requires=strata.service;而llama-swap无法在Strata运行时加载GGUF成员,因为Strata始终占着显存;HyperQwen窗口只能绕过代理直连:18020,此时:8080下线。
频繁的agent cron任务必须暂停,因为llama-swap对已死成员每次请求要烧420秒健康检查超时,cron agent会在运行中途报错。
llama-swap是架设在llama.cpp之上的轻量级HTTP代理,负责多模型的动态加载与卸载调度
llama.cpp配合llama-swap实测能达到每秒75–80个Token,作者认为比Ollama更快更好用
全部知识事实 (8)
Berth 支持在 Ninfer-4090(llama-swap)、Strata、ComfyUI、OpenWebUI 等多个引擎之间原生切换。
50%待验证llama-swap 是一个轻量级的模型切换代理,用于在 llama.cpp 服务端按需加载和卸载不同模型。
50%待验证该方案将锁按主机和端口为每个后端加锁,采用跨进程flock,锁的粒度是单个回合:回合开始时获取,结束时释放。
50%待验证最终配置为model.single_session_lock: true,闸门按后端而非模型加锁,因为显卡一次只加载一个模型;当第二条GPU通道出现时,键将变为模型作用域。
50%待验证频繁的agent cron任务必须暂停,因为llama-swap对已死成员每次请求要烧420秒健康检查超时,cron agent会在运行中途报错。
50%待验证systemctl stop strata会连带停掉llama-swap,因为llama-swap携带Requires=strata.service;而llama-swap无法在Strata运行时加载GGUF成员,因为Strata始终占着显存;HyperQwen窗口只能绕过代理直连:18020,此时:8080下线。
50%待验证llama.cpp配合llama-swap实测能达到每秒75–80个Token,作者认为比Ollama更快更好用
50%待验证llama-swap是架设在llama.cpp之上的轻量级HTTP代理,负责多模型的动态加载与卸载调度
50%