记录一下使用llama.cpp过程中遇到的一些问题和解决方法

写在前面:

什么未操作即同意的条款?我写的东西免费分享也不是你能随意搬运的理由啊

特此声明,若该文章被搬运到除ZEEKLOG(www.ZEEKLOG.net)以外的其他社区如2048 AI社区,则视为该社区同意将所有收益无偿捐赠给我所有

此外,我写的所有分享都是免费的,如有VIP文章也是ZEEKLOG干的,请私信我修改成免费

起因:使用LMStudio调用AI模型时发现显存占用率一直不超过80%,询问AI解决办法无果后一怒之下换用llama.cpp,遇到了一堆AI解决不了的问题,遂记录

llama.cpp下载地址如下

https://github.com/ggml-org/llama.cpp/releases

以防万一 我老年痴呆说一下如何使用llama.cpp调用模型,把下面的代码保存成bat,放在和llama-server.exe同目录下,然后运行这个bat(确保模型位置选对,GPU_LAYERS和THREADS根据机器能力)

@echo off setlocal set "MODEL_PATH=F:\Models\Yakyu" set "MODEL_FILE=Qwen3-235B-A22B-Instruct-2507-UD-Q8.gguf" set CTX_SIZE=32768 set HOST=127.0.0.1 set PORT=1234 echo 正在启动 OpenAI 兼容 API 服务... echo 模型: %MODEL_PATH%\%MODEL_FILE% echo 端口: http://%HOST%:%PORT% echo. llama-server.exe ^ -m "%MODEL_PATH%\%MODEL_FILE%" ^ --ctx-size %CTX_SIZE% ^ --host %HOST% ^ --port %PORT% echo. echo 服务已停止。按任意键关闭窗口... pause >nul

cmd窗口出现上图的“all slots are idle”说明模型加载完,此时可以调用了,如果出现乱码将 .bat 文件保存为 ANSI 编码格式即可,如果还解决不了那就是不需要管的乱码,不影响使用

注:通过 llama-server.exe -h 命令可以看到:
-fit,  --fit [on|off]                   whether to adjust unset arguments to fit in device memory ('on' or 'off', default: 'on')

也就是默认打开了自动适应, --gpu-layers、--n-cpu-moe等等这些参数不填也行,倒不如说在我的机器上不填效果最好,也有大概率每个人的设备情况不一样,

根据https://www.hardware-corner.net/gpt-oss-offloading-moe-layers/

这篇文章所写,合理设置--n-cpu-moe的值能提速(虽然对我不适用)

所以下面是可调参数多一点的版本:

@echo off setlocal set "MODEL_PATH=F:\Models\Yakyu" set "MODEL_FILE=Qwen3-Next-80B-A3B-Instruct-abliterated-Q8_0.gguf" set GPU_LAYERS=64 set THREADS=64 set CTX_SIZE=32768 set HOST=127.0.0.1 set PORT=1234 echo 正在启动 OpenAI 兼容 API 服务... echo 模型: %MODEL_PATH%\%MODEL_FILE% echo 端口: http://%HOST%:%PORT% echo. llama-server.exe ^ -m "%MODEL_PATH%\%MODEL_FILE%" ^ --gpu-layers %GPU_LAYERS% ^ --threads %THREADS% ^ --ctx-size %CTX_SIZE% ^ --n-cpu-moe 10 ^ --host %HOST% ^ --port %PORT% echo. echo 服务已停止。按任意键关闭窗口... pause >nul

多个分片(shard)组成的 GGUF 分片模型用llama-gguf-split合并成一个才能用,参考代码如下:

D:\Yakyu\llama-b7640-bin-win-cuda-12.4-x64\llama-gguf-split.exe --merge F:/Models/Yakyu/Qwen3-235B-A22B-Instruct-2507/Qwen3-235B-A22B-Instruct-2507-UD-Q8_K_XL-00001-of-00006.gguf F:/Models/Yakyu/Qwen3-235B-A22B-Instruct-2507-UD-Q8.gguf

打开cmd输一下代码就行

上图是AI(Qwen3 Max)(不是广告)的错误回答,太相信AI导致走错了不少路,仅供批判

1、SillyTavern调用时报错:Chat Completion API Assistant response prefill is incompatible with enable_thinking

当我加载的模型是DeepSeek时酒馆就会报这个错

解决办法:
①换用文本补全模式

②bat代码中增加--reasoning-budget 0来关闭思考,全代码如下:

@echo off setlocal set "MODEL_PATH=F:\Models\Yakyu" set "MODEL_FILE=DeepSeek-V3.1-Terminus-MXFP4_MOE.gguf" set CTX_SIZE=32768 set HOST=127.0.0.1 set PORT=1234 echo 模型: %MODEL_PATH%\%MODEL_FILE% echo 端口: http://%HOST%:%PORT% echo. llama-server.exe ^ -m "%MODEL_PATH%\%MODEL_FILE%" ^ --reasoning-budget 0 ^ --chat-template-file "Unslothdeepseek-v3-chat-template.jinja" ^ --ctx-size %CTX_SIZE% ^ --host %HOST% ^ --port %PORT% echo. echo 服务已停止。按任意键关闭窗口... pause >nul

你可以看到代码中还指定了chat-template,这是因为关闭思考后又出现了新的问题:

设置“--reasoning-budget 0”发现模型刚输出空白就停止了,或者ai的输出和输入没有关系,无论输入什么,输出都是“DeepSeek is an AI assistant developed by……”这是内置自动加载的聊天模板有问题,我使用了内置的deepseek3聊天模板发现不行,我不确定这与我从网上下载的gguf模型是否有关。

按照Unsloth的说法:“我们的 DeepSeek-V3.1 GGUF 包含 Unsloth 聊天模板修复 用于 llama.cpp 支持的后端。”我不是从他那里下载的模型,但他的模板确实能解决我的问题,模板如下:
 

{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% if enable_thinking is defined and enable_thinking is false %}{% set thinking = false %}{% elif enable_thinking is defined and enable_thinking is true %}{% set thinking = true %}{% elif not thinking is defined %}{% set thinking = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false,, is_first_sp=true, is_last_user=false) %}{%- for message in messages %}{%- if message['role'] == 'system' %}{%- if ns.is_first_sp %}{% set ns.system_prompt = ns.system_prompt + message['content'] %}{% set ns.is_first_sp = false %}{%- else %}{% set ns.system_prompt = ns.system_prompt + '\n\n' + message['content'] %}{%- endif %}{%- endif %}{%- endfor %}{{ bos_token }}{{ ns.system_prompt }}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{%- set ns.is_first = false -%}{%- set ns.is_last_user = true -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['tool_calls'] is defined and message['tool_calls'] is not none %}{%- if ns.is_last_user %}{{'<|Assistant|></think>'}}{%- endif %}{%- set ns.is_last_user = false -%}{%- set ns.is_first = false %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls'] %}{%- if not ns.is_first %}{%- if message['content'] is none %}{{'<|tool▁calls▁begin|><|tool▁call▁begin|>'+ tool['function']['name'] + '<|tool▁sep|>' + (tool['function']['arguments'] if tool['function']['arguments'] is string else tool['function']['arguments'] | tojson) + '<|tool▁call▁end|>'}}{%- else %}{{message['content'] + '<|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['function']['name'] + '<|tool▁sep|>' + (tool['function']['arguments'] if tool['function']['arguments'] is string else tool['function']['arguments'] | tojson) + '<|tool▁call▁end|>'}}{%- endif %}{%- set ns.is_first = true -%}{%- else %}{{'<|tool▁call▁begin|>'+ tool['function']['name'] + '<|tool▁sep|>' + (tool['function']['arguments'] if tool['function']['arguments'] is string else tool['function']['arguments'] | tojson) + '<|tool▁call▁end|>'}}{%- endif %}{%- endfor %}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- if message['role'] == 'assistant' and (message['tool_calls'] is not defined or message['tool_calls'] is none) %}{%- if ns.is_last_user %}{{'<|Assistant|>'}}{%- if message['prefix'] is defined and message['prefix'] and thinking %}{{'<think>'}} {%- else %}{{'</think>'}}{%- endif %}{%- endif %}{%- set ns.is_last_user = false -%}{%- if ns.is_tool %}{{message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{%- set content = message['content'] -%}{%- if '</think>' in content %}{%- set splitted = content.split('</think>') -%}{%- set content = splitted[1:] | join('</think>') -%}{%- endif %}{{content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_last_user = false -%}{%- set ns.is_tool = true -%}{{'<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endfor -%}{%- if add_generation_prompt and ns.is_last_user and not ns.is_tool %}{{'<|Assistant|>'}}{%- if not thinking %}{{'</think>'}}{%- else %}{{'<think>'}}{%- endif %}{% endif %}

模板文件放置如图所示,都在同一文件夹内

2、llama-server端口绑定失败

如图所示,我使用bat脚本来启动llama-server,并指定了1234端口,即上图右边代码中的:

set PORT=1234

但实际运行后,cmd 日志(上图左上)显示:server is listening on http://127.0.0.1:8080

这是 默认端口,说明 --port 1234 被忽略了或未生效。

我通过 netstat -ano | findstr :1234  一查看(上图左下),发现没有程序占用1234端口, 我就纳闷了,端口没被占用那为什么指定了不用?嫌1234数字不够吉利?

一问AI,经典无中生有,各种幻觉

注:上图中AI的回答是错的

琢磨了一圈才发现是另一台电脑在向这个端口发送请求,我在另一台电脑上的酒馆通过端口转发一直在连这个1234端口

解决方法:把酒馆关了,完美解决
 

Read more

智创 AI 新视界 -- AIGC 背后的深度学习魔法:从原理到实践

智创 AI 新视界 -- AIGC 背后的深度学习魔法:从原理到实践

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的博客,正是这样一个温暖美好的所在。在这里,你们不仅能够收获既富有趣味又极为实用的内容知识,还可以毫无拘束地畅所欲言,尽情分享自己独特的见解。我真诚地期待着你们的到来,愿我们能在这片小小的天地里共同成长,共同进步。💖💖💖 本博客的精华专栏: 1. 大数据新视界专栏系列:聚焦大数据,展技术应用,推动进步拓展新视野。 2. Java 大厂面试专栏系列:提供大厂面试的相关技巧和经验,助力求职。 3. Python 魅力之旅:探索数据与智能的奥秘专栏系列:走进 Python 的精彩天地,感受数据处理与智能应用的独特魅力。 4. Java 性能优化传奇之旅:铸就编程巅峰之路:如一把神奇钥匙,深度开启 JVM 等关键领域之门。丰富案例似璀璨繁星,引领你踏上编程巅峰的壮丽征程。 5. Java 虚拟机(

2026年AI写作工具排行榜与深度测评:网文与剧本创作者的生产力最优解

2026年AI写作工具排行榜与深度测评:网文与剧本创作者的生产力最优解

进入2026年,生成式AI技术已经全面融入内容创作的各个环节。对于广大创作者而言,现在的核心问题已经不再是“要不要用AI”,而是“如何在众多优秀的AI工具中,找到最适合自己创作流的那一款”。 市面上优秀的通用大模型百花齐放,它们各自在不同的领域登峰造极。然而,“术业有专攻”,写代码最强的AI,未必最懂网文的爽点;擅长日常聊天的AI,未必能理清几十万字的长篇大纲。 本文基于超过500位职业网文作者、短剧与漫剧编剧的真实使用数据,从商业化写作的专业视角出发,对当前最热门的几款AI工具(DeepSeek、豆包、Kimi,以及垂直领域的炼字工坊)进行一次客观、有理有据的横向测评。 一、 核心测评维度定义 为了保证测评的专业性,我们摒弃了主观感觉,设定了以下四个针对“商业写作与变现”的核心指标: 1. 逻辑与世界观构建(World-building & Logic): 处理复杂剧情线和人物关系的能力。 2. 长文本记忆与连贯性(Long-context Memory): 在动辄数万字的创作中,保持设定不崩塌的能力。 3. 商业文本适配度(Commercial Text Adapt

Stable Diffusion绘画实战:云端GPU 10分钟出图,2块钱玩一下午

Stable Diffusion绘画实战:云端GPU 10分钟出图,2块钱玩一下午 你有没有遇到过这样的情况?朋友圈里插画师朋友晒出一幅AI生成的奇幻风景画,还拿了某个数字艺术比赛的小奖,评论区一片惊叹。你点开一看,画面细节丰富、光影梦幻,像是从梦境中截取的一帧。你心里一动:“这我也能做?”可刚打开电脑准备试试,发现自己的旧款iMac根本不支持CUDA,本地跑不动Stable Diffusion。去查了下配得上AI绘画的显卡,动辄五六千起步,心里咯噔一下——就为了试个新鲜感,真要花这么多钱吗? 别急,其实你完全不用买新设备。现在有一种更聪明的办法:用云端GPU资源,花两块钱就能玩一下午,10分钟内出第一张图。听起来像天方夜谭?但这就是当前AI技术平民化的现实。通过ZEEKLOG星图提供的预置镜像服务,你可以一键部署Stable Diffusion环境,直接在浏览器里输入提示词、调整参数、生成高质量图像,整个过程就像用美图秀秀一样简单。 这篇文章就是为你这样“想试试但不想砸钱”的小白用户量身打造的。我会手把手带你完成从零到第一张AI画作的全过程,不需要懂代码,也不需要研究复杂的配置

AIGC浪潮下,图文内容社区数据指标体系如何构建?

AIGC浪潮下,图文内容社区数据指标体系如何构建?

文章目录 * 01 案例:以图文内容社区为例实践数据指标体构建 * 02 4个步骤实现数据指标体系构建 * 1. 明确业务目标,梳理北极星指标 * 2. 梳理业务流程,明确过程指标 * 3. 指标下钻分级,构建多层级数据指标体系 * 4. 添加分析维度,构建完整的数据指标体系 * 03 构建数据指标体系的过程总结 * 作者简介 * 目 录 数据指标体系构建是数据分析师的日常工作之一,常见的指标体系方法论包括根据业务发展进程选取由合成略旦易于拆解的指标作为北极星指标。但在实际业务场景中如何运用方法论构建数据指标体系,以监控业务发展呢? 互联网产品按照用户需求进行分类,可以分为工具类、内容类、社交类、交易类以及游戏类。当然,每一个互联网产品并不一定属于单一的某一类别,其类别可能是交叉的。 那各种不同类型的互联网产品都有什么特点?它们对应的北极星指标又分别是什么呢?各类型互联网产品的特点以及北极星指标总结如表1所示。 表 1 各类型互联网产品的特点以及北极星指标 表1 各类型互联网产品的特点以及北极星指标 表1各类型互联网产品的特点以及