原生的llama.cpp服务器简单部署指南(适用于Windows用户)
《Ollama vs LM Studio,最适合你的是什么?》《本地大语言模型部署工具对比:Ollama vs LM Studio 如何选择适合自己的 AI 助手》
《Ollama 与 LM Studio:主要区别是什么?》
《Ollama VS LM Studio,谁是最佳本地化模型运行工具》
《为什么都在用Ollama而LM studio却更少人使用?》
“LM Studio更好用点,可以全程鼠标草作”
“LM Studio性能比Ollama要好。”
“如果你要进阶,比如知识库、agent、使用工具等等,那LM Studio本身的功能是不够的,这也是为什么更多人选择Ollama/Ollama-cpp/vllm等基座”
............
你是否见到过这样的标题和言论?你是否还在为用LM Studio还是用Ollama苦恼?如果你是,那这篇文章就是解决你的痛点的文章,因为我会告诉你,这俩在某种程度上都是“玩具”!
为什么LM Studio和Ollama在某种意义上是玩具?
首先是最重要的,Ollama和LM Studio都缺少了最重要的安全保障措施:API密钥。这直接导致了被广泛用作个人、小型工作室与小型服务器部署小型AI的Ollama出现鉴权问题、被人偷取算力后,被学新闻学的报道成“Ollama被曝出严重安全漏洞”,而这根本不是安全漏洞,因为Ollama如果单本地部署的话是没有什么安全漏洞的,这只是一次鉴权缺失罢了。LM Studio同理,但由于使用它部署的多半是新手和个人,这些人要么完全不知道API的存在,要么用的不是公网IP,所以看似“没问题”,然而实际上还是有问题的,毕竟一旦有了公网IP,你就会发现,它只不过是把端口改成了1234的Ollama罢了。
然后就是各自的缺陷了,Ollama既要命令行草作,又要简单,导致大量草作都无法在模型加载的时候设置,这其中包括最重要的GPU Offload和最大上下文长度,你甚至需要在模型加载完后,使用`/set parameters`命令调整,然后只要调整了,在聊天第一句话必定要执行自动重新加载,这就属于多此一举,因为我本来可以在加载前就设定好这些东西,然后只需要加载一次就够了。而LM Studio的GUI是闭源的,只有CLI是开源的,谁知道这个GUI会不会把你的聊天消息窃取掉?这个没人能够保证。最后,Ollama和LM Studio都使用了魔改版的llama.cpp,Ollama魔改的最厉害,导致连原本llama.cpp能加载的GGUF文件,它都要转化一道;而LM Studio稍微好一点,但仍然好的不多,因为其更新慢,甚至llama.cpp已经支持新模型了,它还要两天才能跟进,这两天的真空期,对绝大多数想要尝鲜的人,是非常痛苦的。
所以今天,我们放下Ollama和LM Studio,直接从它们的底层——llama.cpp入手,教你如何使用llama-server,来实现更好的效果。
什么是llama.cpp?
llama.cpp是一个基于纯C/C++实现的高性能大语言模型推理引擎,专为优化本地及云端部署而设计。其核心目标在于通过底层硬件加速和量化技术,实现在多样化硬件平台上的高效推理,同时保持低资源占用与易用性。
对这一块就不多做介绍了,你只需要知道,llama.cpp是个人设备AI部署的基石就行了。感兴趣的话自行了解。
如何获取llama.cpp?
首先我们需要编译llama.cpp,首先我们得执行:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
然后用MAKE编译它...
嘶...
为什么要编译?编译有什么好处?
对了,大部分用户完全不需要编译llama.cpp,除非是Linux用户,还用了NVIDIA显卡,而这里我们主要面向的用户是Windows用户,所以嘛...这里不讲编译是什么,因为如果你去https://github.com/ggml-org/llama.cpp官网,你会直接发现根本不用编译,因为Release上面,已经有预编译好的文件。
https://i0.hdslb.com/bfs/new_dyn/55afb84b39851ffe539b2adb5b772d50428172075.png@1192w.avif
你只需要根据自己的GPU型号,下载即可,NVIDIA GPU用户需要下载cudart-llama-bin-win-cuda-12.4-x64.zip和llama-b6945-bin-win-cuda-12.4-x64.zip,将这俩解压到同一个文件夹下就行,其他的用户也是按需下载即可。后续更新的话,只需要替换文件即可。
下载完以后还没完,如果你需要便携的运行llama.cpp的话,你需要将llama.cpp文件夹加入到环境变量Path中,Windows里面,打开设置,找到“系统信息”,找到“高级系统设置”,找到“环境变量”,最后找到Path,点开,然后点击“浏览...”,将llama.cpp的文件夹添加进来。
到这里,你基本上就配置好llama.cpp了。这个教程主要教你如何使用llama-server,其他的可以自行探索。
如何使用llama-server
首先,你仍然需要一个GGUF格式的模型,那么...LM Studio的价值就出来了,毕竟这货还能下载GGUF模型加上预览模型信息,你也可以直接上HuggingFace上下载,然后你可以用LM Studio看一下这个模型的参数是什么:
https://i0.hdslb.com/bfs/new_dyn/4a8519264acb93777663af8ee82fb717428172075.png@1192w.avif
或者一种更加麻烦的方式:用llama-cli查看,输入命令llama-cli -m model.gguf -n 1,然后等待以后,Ctrl+C退出即可,我们只需要那一些输出信息。
https://i0.hdslb.com/bfs/new_dyn/0f5c9ce13deecb8620dbf1a5157b45f9428172075.png@1094w_1536h.avif
重点要看的版块是:
n_layer(对应GPU Offload)
n_ctx_train(对应模型最大能支持的上下文长度)
嗯,就这俩要关注一下,然后就没了,我们不需要管别的。
然后现在可以评估一下你的GPU情况,来拟定命令了。
我们主要需要的文档是https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md,这里面你能了解到各种参数,下面我会把LM Studio GUI上的参数都使用命令行的形式写出来:
https://i0.hdslb.com/bfs/new_dyn/9c9795ceeffef0ceb1fec058a12f500d428172075.png@1192w.avif
https://i0.hdslb.com/bfs/new_dyn/6940827956ca00c0c0adf9c6d3439526428172075.png@974w_1122h.avif
这样我们就能对应着写出命令来。把命令组合起来,就可以加载服务器。
当然这还没完,如果你是多模态模型,你还需要额外加载mmproj模型,使用以下命令即可。--mmproj your_mmproj_model.gguf另外,llama.cpp还支持API密钥功能,刚好是Ollama和LM Studio都缺失的功能,我们可以使用以下命令直接搞一个API密钥鉴权--api-key sk-your-super-secret-key也可以把它保存到文件里面,使用以下命令加载。--api-key-file FNAME
那么现在这里就有一行示例命令:
llama-server -m Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf --mmproj mmproj-Qwen3-VL-30B-A3B-Instruct-F16.gguf --host 0.0.0.0 --port 12345 -c 40960 -ngl 4 -t 6 -b 512 --mlock --temp 0.8 --top-k 40 --repeat-penalty 1.2 --min-p 0.05 --top-p 0.95 --api-key-file key.txt
我们来好好解释一下这些东西:
-m Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf指定要加载的主模型文件。
--mmproj mmproj-Qwen3-VL-30B-A3B-Instruct-F16.gguf对于多模态模型(如Qwen-VL),需要额外指定mmproj投影模型文件。
-c 40960设置最大上下文长度为40960个token。这个值不能超过模型`n_ctx_train`的限制。
-ngl 4设置GPU卸载层数为4。这意味着模型的前4层将在GPU上运行,其余层在CPU上运行。
-t 6设置使用的CPU线程数为6,一般来说,设置的线程数不大于CPU核心数即可。
-b 512设置评估批处理大小为512。
--mlock锁定模型在内存中,防止被系统交换到磁盘,提高性能稳定性。
--temp 0.8设置温度参数,控制输出的随机性。
--top-k 40设置Top-K采样,限制每一步只从概率最高的40个词中选择。
--repeat-penalty 1.2设置重复惩罚,降低生成重复词语的概率。
--min-p 0.05设置Min-P采样,只保留累积概率大于等于0.05的词。
--top-p 0.95设置Top-P采样(核采样),保留累积概率达到0.95的最小词集。
--api-key-file key.txt启用API密钥鉴权,从key.txt文件中读取密钥。这是对Ollama和LM Studio安全缺陷的完美弥补。
把这串命令输入到你的终端上,或者干脆保存成bat文件,直接双击bat文件执行即可(推荐这么做),然后你就能通过http://localhost:12345访问到一个简单的Web UI,没错,llama.cpp默认运行一个Web UI!如果想禁用,只需要加一个`--no-webui`即可,然而我非常不建议这么做,毕竟这个WebUI就是你调试的基础工具。另外,如果你设置了API密钥,记得把API密钥输入进WebUI里,然后你就可以得到一个非常“简陋”的对话UI,但是已经足够了,不是吗?
通过这篇文章,你已经掌握了如何绕过Ollama和LM Studio,直接利用llama.cpp的强大能力。你不仅获得了对模型参数的完全控制权,还通过`--api-key-file`实现了至关重要的安全保障。这不再是“玩具”,而是一个真正可以用于个人、工作室甚至小型企业生产环境的、可定制、可扩展的本地AI基础设施。下一步,你可以探索llama.cpp文档中更多高级功能,如语法约束、嵌入向量生成、重排序模型等,将你的本地AI体验提升到新的高度。
页:
[1]