llama.cpp配置及使用

软件新增集成了llama.cpp+llama-swap支持

但是默认配置还是ollama,因为它的设置简单,如果您的显卡不是最近3-5年的A卡或者N卡,由或者过新没用适配,可以考虑llama.cpp,因为llama.cppvulkan方案是通用显卡加速方案

为什么集成llama.cpp

  • ollama一直不支持vulkan

https://github.com/ollama/ollama/pull/9650 这个pr放了快1年了,一直没人管…

  • vulkan模式无视显卡种类,只要是支持vulkan的都可以用,并且特别小,只需要十几MB

目前好像n卡的600系以上都支持vulkan,理论上,10年前的显卡都可以用这个,不需要考虑cuda,rocm…或者其他专有驱动

llama.cppollama的区别

  • ollama有完整的官方下载渠道,可以集中管理,llama.cpp虽然只要是gguf格式的,就可以调用,但是没有集中管理,下载还需要自己去hf上找

但是,我在软件内实现了ollama模型同步功能,也就是说之前下载过的模型,可以直接同步到llama.cpp中使用,无感知
其他下载也给出了镜像站,基本上没太大问题

  • llama.cpp支持vulkan,一种通用的显卡加速技术,不挑显卡,ollama目前只支持cuda,rocm,除了这两种就需要单独找特定版本,否则只能用cpu,非常慢

哪怕a卡有rocm,也仅仅是部分新显卡有官方支持,其他的都是第三方
intel的ollama特供版好像也是最近才出来的,其他的像国产的显卡,更不不会有适配…

  • ollama有自动的显存/内存分配技术,llama.cpp中需要手动分层

这一点在windows上不需要考虑太多,因为windows还有共享显存设计,比如像amd 8845H,最大可以使用24G内存当显存(16+8,虽然两个都是内存,但是后面的8是借的),7900xt可以用52g(20+32).共享部分好像是内存的一半,也就是说超一点没关系,反正会自动借内存;但是在linux中就不太友好了,目前我还没有找到共享显存的方法,也就是卡是多少,那么就是多少,需要手动处理.比如qwen3:30b(q4)好像是39层 16g吧(待修正),如果显存不够就需要手动调整层数
不过Ollama的自动分配也不太准,有时候明明能放下的,非要分到内存中

  • llama.cpp中的可调整参数比较多,ollama参数调整较少,并且需要创建层

虽然有一部分参数没啥用,但是确实比较方便定制,ollama的话就需要单独加层调整,不如llama.cpp方便

  • llama.cpp更新比较快,一天经常是好几次更新,ollama可能几天更新一次,如果想用新模型,那么就需要等
  • ollama一个可以同时启动/分别启动多个模型,llama.cpp一个进程只能启动一个模型

软件引入了llama-swap来管理llama.cpp进程,这一点用户不用管太多

使用

  • 还是环境配置位置

  1. 切换到llama.cpp安装启动;

注意,这里的切换是指的默认下一次启动,也就是切换后不会自动执行,要么执行第2步,要么重启

  1. 鼠标到下面的状态栏悬停,点击里面的启动

ollama/llama.cpp在下方状态栏中均加入了启动/停止,可以在非自动启动的情况下手动启动

  1. 点击下载

这里下载的是llama-swap,可以理解为一个反向代理,因为llama.cpp一个进程只能启动一个模型

  1. 添加模型

添加/同步模型后,会自动生成相关配置,相关配置会生成llama-swap配置,不过这些用户都不需要管,会自动处理
添加模型后会自动激活为当前新添加模型

  1. 同步Ollama模型

假如之前使用ollama想转llama.cpp可以用这个

  1. 已有模型列举

因为ollama是由它自己管理模型的,所以在使用时没有展示在这里(状态栏有命令可以显示)

添加模型

  • 点击这里会弹出窗口,然后找llama.cpp选项复制相关参数即可

  • 比如这里复制Qwen/Qwen3-8B-GGUF:Q4_K_M

  • 复制之后,将内容添加到1处,然后点击2中的下载模型

已经配置了镜像站,一般不会失败,因为还加了心跳/重试/低速等检测,保证下载完成

  • 等待进度条走到头,点击提交,如果之前没填过模型名,那么这里会自动根据仓库名生成一个

  • 提交/同步后,右下角会有同步配置提示,这个主要是因为上面的配置中,是配置了llama.cpp版本的,当同步配置时,会去检查当前llama.cpp版本是否存在,如果不存在会去下载,因此在提示消失前,请不要调用模型

高级设置

  • 所有配置其实都写到配置文件中,可以不用上面的Ui直接修改,也会自动同步

    "shenghuabi.llama.config": {
        "server": {
            "list": [
                {
                    "config": {
                        "common": {
                            "flash-attn": {
                                "enable": true
                            },
                            "gpu-layers": {
                                "enable": true,
                                "value": [
                                    992
                                ]
                            },
                            "model": {
                                "enable": true,
                                "value": [
                                    "/home/chen/.ollama/models/blobs/sha256-93f3531832e8363450d2d33e594c651fcf8563de408902f3f64b2885b226f3b8"
                                ]
                            }
                        }
                    },
                    "exec": {
                        "version": "b5468",
                        "device": "vulkan"
                    },
                    "model": "hf-mirror.com/wszgrcy/chinese-text-correction-1.5b:F16"
                }]}}

  • 所有参数都是llama-server --help中的参数,基本上是1:1的,如果有新增参数没有列出可以提醒我添加