<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[一把老骨头]]></title> 
<atom:link href="http://www.yblgt.com/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[工程师，分享知识，分享生活]]></description>
<link>http://www.yblgt.com/</link>
<language>zh-cn</language>

<item>
    <title>VLLM命令</title>
    <link>http://www.yblgt.com/?post=1614</link>
    <description><![CDATA[<p>(myenv) yblgt@yblgt-ThinkStation-P710:~$ nohup vllm serve /data/models/awq3.8-standard \</p>
<blockquote>
<p>--served-model-name qwen38-awq \<br />
--host 0.0.0.0 \<br />
--port 8002 \<br />
--dtype float16 \<br />
--attention-backend TRITON_ATTN \<br />
--tensor-parallel-size 1 \<br />
--gpu-memory-utilization 0.98 \<br />
--max-num-batched-tokens 512 \<br />
--max-num-seqs 2 \<br />
--max-model-len 4096 \<br />
--limit-mm-per-prompt '{&quot;image&quot;: 1, &quot;video&quot;: 0}' \<br />
--mm-processor-kwargs '{&quot;max_pixels&quot;: 262144}' \<br />
--compilation-config '{&quot;cudagraph_mode&quot;: &quot;PIECEWISE&quot;}' \<br />
--trust-remote-code &gt; ~/vllm.log 2&gt;&amp;1 &amp;</p>
</blockquote>]]></description>
    <pubDate>Sat, 05 Sep 2026 12:24:35 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1614</guid>
</item>
<item>
    <title>dflash2 启动命令</title>
    <link>http://www.yblgt.com/?post=1613</link>
    <description><![CDATA[<p>cd ~/llama-dflash<br />
./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf \<br />
-md /data/models/Qwen3.8-27B-DFlash2/Q4_K_M.gguf \<br />
--port 8001 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 --n-gpu-layers 99 \<br />
-c 32768 \<br />
--flash-attn on \<br />
--spec-type draft-dflash --spec-draft-n-max 5 \<br />
--cache-type-k q4_0 --cache-type-v q4_0 \<br />
--cache-ram 8192 \<br />
--parallel 1 --temp 0.7 --top-p 0.8 --top-k 20 --presence-penalty 1.0</p>
<p>拉取分支命令：<br />
cd ~/llama.cpp</p>
<h1>拉取 PR #27342 到本地分支（不动当前分支）</h1>
<p>git fetch origin pull/27342/head:pr-27342</p>
<h1>独立工作树，编译产物隔离</h1>
<p>git worktree add ~/llama-dflash pr-27342<br />
cd ~/llama-dflash<br />
export PATH=/usr/local/cuda/bin:$PATH<br />
cmake -B build \<br />
-DGGML_CUDA=ON \<br />
-DGGML_CUDA_ARCHITECTURES=&quot;75&quot; \<br />
-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \<br />
-DCMAKE_BUILD_TYPE=Release<br />
cmake --build build -j $(nproc)</p>]]></description>
    <pubDate>Thu, 27 Aug 2026 10:58:30 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1613</guid>
</item>
<item>
    <title>更新LLAMA.CPP后优化命令对比</title>
    <link>http://www.yblgt.com/?post=1612</link>
    <description><![CDATA[<p>原命令：./build/bin/llama-server   -m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 99   -c 102400   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --spec-type draft-mtp   --spec-draft-n-max 2   --spec-draft-p-min 0.7   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 0.7   --mlock   --no-warmup   --prio 3  --cache-ram 0  --top-p 0.8  --top-k 20  --presence-penalty 1.0</p>
<p>优化命令：<br />
./build/bin/llama-server \</p>
<blockquote>
<p>-m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 \<br />
--n-gpu-layers 99 \<br />
-c 102400 --batch-size 1024 --ubatch-size 512 \<br />
--flash-attn on --cont-batching \<br />
--spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.7 \<br />
--cache-type-k q4_0 --cache-type-v q4_0 \<br />
--cache-ram 8192 \<br />
--parallel 1 --temp 0.7 --top-p 0.8 --top-k 20 --presence-penalty 1.0</p>
</blockquote>
<p>（去告警）最终命令：./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 \<br />
--n-gpu-layers 99 \<br />
-c 102400 --batch-size 1024 --ubatch-size 512 \<br />
--flash-attn on --cont-batching \<br />
--spec-type draft-mtp --spec-draft-n-max 2 --spec-draft-p-min 0.7 \<br />
--cache-type-k q4_0 --cache-type-v q4_0 \<br />
--cache-ram 8192 \<br />
--parallel 1 --temp 0.7 --top-p 0.8 --top-k 20 --presence-penalty 1.0</p>]]></description>
    <pubDate>Thu, 27 Aug 2026 09:58:24 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1612</guid>
</item>
<item>
    <title>安装Knowflow踩坑及利用TRAE排错过程</title>
    <link>http://www.yblgt.com/?post=1611</link>
    <description><![CDATA[<p>KnowFlow / RAGFlow 部署故障排查与解决<br />
三个相互叠加的根因——硬编码 IP 失效、Elasticsearch 内存超限、RBAC 初始化竞态——的定位过程、修复措施与验证结果。</p>
<p>应用<br />
KnowFlow v2.1.8（RAGFlow slim）<br />
服务器<br />
7.6GB RAM · 无 Swap · 公网<br />
日期<br />
2026-08-26<br />
状态<br />
已解决 · 登录恢复<br />
00<br />
摘要<br />
故障表象是「登录页能正常打开，提交任何凭证都提示网络异常」。实际排查下来，这不是单点故障，而是三个先后叠加、彼此独立的问题：</p>
<p>其一，宿主机内存只有官方要求的一半，Elasticsearch 按默认配置拿到约 4GB 堆，17 小时内被内核 OOM Killer 处决 31 次。其二，早期排障时在 extra_hosts 里写死了 es01 的容器 IP，容器重建后该 IP 变更，ragflow-server 的所有 ES 请求都打进了黑洞地址，127 秒超时后进程退出——且以退出码 0 退出，restart: on-failure 策略判定其为正常退出、不再拉起，服务就此躺平。其三，前两个问题修复、链路全通之后登录仍然失败：knowflow-backend 的 RBAC 初始化有一个 60 秒的等表窗口，而 ragflow-server 首次冷启动建表需要约 75 秒，管理员账号的创建在窗口关闭 13 秒后才轮到执行，从未发生，登录报「邮箱未注册」。</p>
<p>三处全部处理之后，登录恢复正常。</p>
<p>3<br />
叠加根因<br />
网络 / 内存 / 竞态<br />
31<br />
ES 17 小时内<br />
被 OOM 重启次数<br />
13秒<br />
RBAC 等待窗口与<br />
建表完成的时间差<br />
0.01s<br />
修复后 ES 健康检查耗时<br />
（修复前 127 秒超时）<br />
01<br />
环境信息<br />
项目  内容<br />
管理面板    1Panel<br />
应用版本    KnowFlow v2.1.8（镜像 zxwei/knowflow:v2.1.8，内含 RAGFlow v2.1.2-189-gdd54c95f slim）<br />
部署路径    /home/1panel/KnowFlow/docker（docker compose 管理）<br />
文档引擎    Elasticsearch 8.11.3（容器 ragflow-es-01，服务名 es01）<br />
其他容器    MySQL 8.0.39 · Valkey 8 · MinIO · Gotenberg 8 · knowflow-backend · ragflow-server<br />
容器网络    docker_ragflow（bridge）<br />
端口映射<br />
宿主机端口   容器端口    用途<br />
8088（原 80）  ragflow-server:80   Web 入口（nginx，登录页在此）<br />
8443（原 443） ragflow-server:443  HTTPS<br />
1200    es01:9200   Elasticsearch API（外部访问）<br />
5455    mysql:3306  MySQL<br />
5000    knowflow-backend:5000   RBAC 后端（登录接口）<br />
3000 / 6379 / 9000-9001 gotenberg / redis / minio   文档转换 / 缓存 / 对象存储<br />
硬件与官方要求对照<br />
项目  本机实际    官方要求[1]<br />
内存  7.6GB，无 Swap    ≥ 16GB<br />
磁盘 / CPU    未核查 磁盘 ≥ 50GB，CPU ≥ 4 核<br />
伏笔内存一项差了一半，是后面所有问题的物质基础。官方 README 对硬件要求有明确说明[1]，部署前应当先对齐。</p>
<p>02<br />
故障现象<br />
浏览器能正常打开 <a href="http://IP:8088/login——说明">http://IP:8088/login——说明</a> nginx 与前端静态资源本身正常。<br />
提交任意账号密码，页面统一提示「网络异常，您的网络发生异常，无法连接服务器」。<br />
1Panel 界面显示各服务「启动中」，看起来一切都在跑。<br />
事实：docker compose ps 只列出 6 个容器，ragflow-server 不在其中；加 -a 后显示 Exited (0)。<br />
前端这个「网络异常」提示对应的场景是请求超时或代理层无响应，与凭证对错无关——密码错误会返回明确的文案。而「容器在跑」的错觉来自两点：compose 默认不显示已退出容器，以及 RAGFlow 官方 FAQ 强调的——容器状态 Up 不等于服务健康[5]。</p>
<p>03<br />
故障因果链总览<br />
图 1三个根因如何层层传导为「登录失败」<br />
根因三 · RBAC 初始化竞态</p>
<p>根因二 · extra_hosts 硬编码 IP 失效</p>
<p>根因一 · Elasticsearch 反复 OOM</p>
<p>宿主机内存 7.6GB，无 Swap<br />
低于官方要求的 16GB</p>
<p>.env 默认 MEM_LIMIT = 8GB<br />
ES 堆自动取一半 ≈ 4GB</p>
<p>ES 被 OOM Killer 反复处决<br />
17 小时内重启 31 次</p>
<p>早期排障在 extra_hosts<br />
写死 es01:172.19.0.4</p>
<p>容器重建后 es01 实际 IP<br />
变为 172.20.0.6</p>
<p>ragflow-server 的 ES 请求<br />
全部打入黑洞，127 秒超时</p>
<p>knowflow-backend 等待建表<br />
上限 30 次 × 2 秒 = 60 秒</p>
<p>ragflow-server 加载 deepdoc 模型<br />
约 75 秒后才建好三张表</p>
<p>RBAC 初始化放弃执行<br />
user 表始终为空</p>
<p>ragflow-server 报<br />
ES unhealthy in 120s 后退出</p>
<p>退出码为 0，restart: on-failure<br />
判定正常退出，不再拉起</p>
<p>ragflow-server 长期 Exited<br />
8088 端口无人应答</p>
<p>登录页提示「网络异常」</p>
<p>链路修复后登录<br />
报 109 邮箱未注册</p>
<p>三个根因相互独立：只修任何一个，登录都不会成功。这也是本次排障反复「修完还是不行」的原因。</p>
<p>04<br />
根因分析<br />
4.1 根因一：extra_hosts 硬编码 IP，随容器重建失效<br />
来龙去脉。初次部署时 ragflow-server 反复退出，日志报 Failed to resolve 'es01'。当时为快速恢复，在 ragflow 服务的 extra_hosts 中写入了 es01 当时的容器 IP（172.19.0.4），服务一度恢复。随后一次 docker compose down &amp;&amp; docker compose rm -f &amp;&amp; docker compose up -d 重建了全部容器——bridge 网络的 IP 由 Docker 按启动顺序分配，重建后 es01 拿到的是 172.20.0.6，而旧映射没有清除。</p>
<p>证据。两条 inspect 输出直接对比：</p>
<h1>ragflow-server 容器实际生效的 extra_hosts</h1>
<p>[&quot;es01:172.19.0.4&quot;,&quot;host.docker.internal:host-gateway&quot;]</p>
<h1>es01 容器当前 IP</h1>
<p>es01 当前IP: docker_ragflow = 172.20.0.6<br />
识别特征。黑洞 IP 的行为是「包发出去，永远等不到回应」——超时发生在 127 秒量级，而不是「连接拒绝」。ragflow-server 日志里整齐划一的 GET <a href="http://es01:9200/">http://es01:9200/</a> [status:N/A duration:127.2s] 就是这个特征。</p>
<p>最容易误判的一处当时用临时容器 curl <a href="http://es01:9200">http://es01:9200</a> 返回 401，得出「网络是通的、只缺认证」的结论——这个结论对临时容器成立，对 ragflow-server 不成立：临时容器没有 extra_hosts 覆盖，走的是 Docker 内置 DNS；ragflow-server 的解析被 hosts 劫持了。用「别的容器能通」验证「这个容器能通」，在存在 hosts 覆盖时不成立。<br />
正解。同一 compose 网络内，服务名本来就能直接解析，extra_hosts 只在跨网络访问宿主机等场景需要。修复方式是删除这一行，而不是把 IP 更新成新值——下次重建它还会变。</p>
<p>4.2 根因二：内存超限，ES 反复被 OOM 处决<br />
证据链。</p>
<h1>宿主机内存</h1>
<p>Mem:  total 7.6G   used 6.9G   free 128M   available 57M<br />
Swap: 0B 0B 0B</p>
<h1>ES 容器重启计数（容器创建约 17 小时）</h1>
<p>RestartCount=31</p>
<h1>内核 OOM 记录（两次选中 RSS 最大的 java 进程，即 ES）</h1>
<p>Killed process 5246 (java) ... anon-rss:4426688kB   ≈ 4.2GB<br />
Killed process 19456 (java) ... anon-rss:4096060kB  ≈ 3.9GB<br />
机理。官方 .env 默认 MEM_LIMIT=8073741824（8GB），注释写明需按宿主机内存调整[3]；compose 将它作为 es01 的 mem_limit[4]。ES 8 在未显式设置 ES_JAVA_OPTS 时，堆自动取容器内存限制的一半，即约 4GB。7.6GB 的机器上，MySQL、MinIO、Redis、knowflow-backend、ragflow-server 各占一块之后，剩余内存兜不住 4GB 堆加 JVM 非堆开销，内核 OOM Killer 每次都选中 RSS 最大的 java 进程——这正是 dmesg 里两处 Killed process (java) 的来历。</p>
<p>处理。MEM_LIMIT 降为 2147483648（2GB，堆约 1GB）。代价是文档量大、并发高的场景下 ES 会吃紧；长期方案仍是把内存补到 16GB 以上，或显式设置更小的堆并接受性能折损。</p>
<p>4.3 放大因素：Exited(0) × restart: on-failure<br />
ragflow-server 因 ES 不健康抛出异常，但入口脚本最终以退出码 0 结束。compose 里的重启策略是 restart: on-failure[2]——只重启「失败」（非零退出码）的容器。退出码 0 被判定为正常退出，哪怕 ES 后来恢复 healthy，ragflow-server 也不会自己起来。所以现场呈现的是：6 个依赖容器 Up、主角 Exited、登录页报网络异常，且没有任何自动恢复的迹象。</p>
<p>排查上的两个对应教训：docker compose ps 不加 -a 看不到退出的容器；看到 Exited (0) 不要想当然认为「正常退出、没有问题」。</p>
<p>4.4 根因三：RBAC 初始化竞态——60 秒窗口 vs 75 秒建表<br />
现象。前两个根因修复后，ES 健康检查 200、ragflow-server 横幅出现、登录接口返回 200，链路明明全通了——但页面报 109 Email: admin@gmail.com is not registered。换官方默认凭证 admin / 12345678 登录，同样报未注册。</p>
<p>查证。三条证据指向同一个事实——管理员账号从未被创建：</p>
<h1>.env 中没有覆盖管理员定义（走 compose 默认值）</h1>
<p>$ grep -E 'MANAGEMENT_ADMIN' .env<br />
（无输出）</p>
<h1>rag_flow 库的 user 表是空的——「未注册」是真话</h1>
<p>$ SELECT email, nickname FROM <code>user</code>;<br />
Empty set</p>
<h1>knowflow-backend 日志：等表等了 30 次，放弃</h1>
<p>等待以下表创建: user, tenant, user_tenant<br />
等待数据库就绪... (尝试 30/30)<br />
ERROR - RBAC初始化最终失败，已达到最大重试次数<br />
图 2竞态时间线：两个进程的窗口只差 13 秒<br />
knowflow-backend · 等待 user / tenant / user_tenant 建表<br />
09:52:02 → 09:53:04<br />
ragflow-server · CPU 加载 deepdoc 模型并初始化 web 数据<br />
09:52:12 → 09:53:17<br />
09:53:04 RBAC 初始化放弃<br />
09:53:17 三张表建好<br />
13 秒之差<br />
09:52:00<br />
09:52:30<br />
09:53:00<br />
09:53:30<br />
整栈冷启动实测：表建好时，knowflow-backend 已在 13 秒前放弃等待——初始化逻辑不会再来第二次。<br />
机理。knowflow-backend 启动时等待 user / tenant / user_tenant 三张表就绪，重试上限 30 次 × 2 秒 = 60 秒；而 ragflow-server 首次冷启动要在 CPU 上加载 deepdoc 的 det.onnx / rec.onnx 模型并初始化 web 数据，本机耗时约 75 秒。竞态只在整栈同时冷启动时触发——一旦错过窗口，RBAC 初始化不会重试，user 表从此为空。</p>
<p>处理。此时三张表早已存在，单独 docker restart knowflow-backend 即可，初始化立即成功、管理员账号落库。管理员凭证取 compose 中 MANAGEMENT<em>ADMIN</em>* 环境变量的默认值（admin / 12345678），本机 .env 未覆盖[2]。</p>
<p>复发风险每次整栈冷启动（服务器重启、compose down/up）都可能再次触发该竞态。若重启后登录报「邮箱未注册」，先执行 docker restart knowflow-backend，不要急着怀疑密码。</p>
<p>05<br />
排查过程复盘<br />
阶段  动作  发现 / 结果<br />
初次部署    docker compose up -d    ragflow-server 反复退出，日志报 Failed to resolve 'es01'<br />
初排 ①    extra_hosts 写入 es01:172.19.0.4  服务一度恢复——同时埋下根因二（IP 随重建失效）<br />
初排 ②    docker compose config   发现 extra_hosts 重复定义导致 YAML 解析错误，删除重复项<br />
初排 ③    down &amp;&amp; rm -f &amp;&amp; up -d  容器全部启动，但登录仍报网络异常（此时旧 IP 已失效、ES 仍在被 OOM）<br />
本次 ①    docker compose ps   6 个容器在跑，ragflow-server 缺席<br />
本次 ②    docker compose ps -a    ragflow-server Exited (0)<br />
本次 ③    docker logs ragflow-server  ES 检查全部 status:N/A duration:127s → unhealthy in 120s → 退出<br />
本次 ④    inspect es01 / free -h / dmesg  RestartCount=31；内存 7.6G 可用 57M；OOM 处决 java 两次<br />
本次 ⑤    inspect 对比 extra_hosts 与 es01 IP    172.19.0.4 ≠ 172.20.0.6，坐实黑洞映射<br />
修复 ①    删除 extra_hosts 中 es01 硬编码行  仅剩 host.docker.internal:host-gateway<br />
修复 ②    MEM_LIMIT 改为 2147483648 es01 重建，Memory=2147483648，RestartCount 归零<br />
修复 ③    docker compose up -d    7 个容器全部启动，ES healthy，ragflow-server 横幅出现，POST /v1/user/login 200 ×3<br />
新现象 页面登录    改报 109 邮箱未注册——链路问题已清，转入账号问题<br />
查证  grep .env / 查 user 表 / backend 日志   user 表为空；RBAC 30 次等待失败，确认初始化从未执行<br />
修复 ④    docker restart knowflow-backend 管理员账号创建，登录成功<br />
06<br />
修复措施<br />
所有改动前先备份：docker-compose.yml.bak.0826、.env.bak.0826（与原文件同目录）。</p>
<p>1<br />
删除 extra_hosts 中硬编码的 es01 映射<br />
cd /home/1panel/KnowFlow/docker<br />
cp docker-compose.yml docker-compose.yml.bak.$(date +%m%d)<br />
sed -i '/es01:172.19.0.4/d' docker-compose.yml<br />
grep -n -A3 'extra_hosts' docker-compose.yml<br />
验证点：ragflow 服务下 extra_hosts 仅剩 host.docker.internal:host-gateway。同网络内服务名交给 Docker DNS 解析。</p>
<p>2<br />
ES 内存限制降为 2GB<br />
cp .env .env.bak.$(date +%m%d)<br />
sed -i 's/^MEM_LIMIT=.*/MEM_LIMIT=2147483648/' .env<br />
grep -n 'MEM_LIMIT' .env<br />
验证点：输出 MEM_LIMIT=2147483648。ES 堆随之降为约 1GB，退出被反复 OOM 的循环。</p>
<p>3<br />
重建容器<br />
docker compose up -d</p>
<h1>验证两项改动均已生效</h1>
<p>docker inspect ragflow-server --format '{{json .HostConfig.ExtraHosts}}'<br />
docker inspect ragflow-es-01 --format 'Memory={{.HostConfig.Memory}}'<br />
预期：ExtraHosts 只剩 host-gateway；Memory=2147483648。随后 docker logs -f ragflow-server，等到 ASCII 横幅再试登录——官方文档明确说明横幅出现前登录会报网络异常[1]。</p>
<p>4<br />
补做 RBAC 初始化（针对竞态）<br />
docker restart knowflow-backend<br />
docker logs knowflow-backend --tail 40<br />
适用条件：链路已通但登录报「邮箱未注册」。表已存在时重启即完成管理员创建。整栈冷启动后若复发，重复本步即可。</p>
<p>07<br />
修复验证<br />
指标  修复前 修复后<br />
ES 健康检查 status:N/A，duration 127 秒超时 status:200，duration 0.01 秒<br />
ES 稳定性  17 小时重启 31 次（OOM）   RestartCount 0（限内存 2GB 后）<br />
ragflow-server  Exited (0)，无自动拉起    Up，横幅 + HTTP server start (0.0.0.0)<br />
登录接口    前端拿不到响应（网络异常）   POST /v1/user/login → 200<br />
登录结果    —   成功进入系统<br />
08<br />
常用命令速查<br />
目的  命令  备注<br />
查看所有容器（含已退出）    docker compose ps -a    不加 -a 看不到 Exited 的容器<br />
跟踪 ragflow 启动   docker logs -f ragflow-server   看到 ASCII 横幅才算就绪[1]<br />
看 backend 日志    docker compose logs knowflow-backend --tail 50  RBAC 初始化结果在这里<br />
查容器当前 IP    docker inspect ragflow-es-01 --format '{{range $k,$v := .NetworkSettings.Networks}}{{$k}} = {{$v.IPAddress}}{{end}}'    重建后会变化<br />
查容器生效的 extra_hosts  docker inspect ragflow-server --format '{{json .HostConfig.ExtraHosts}}'    排查 hosts 劫持<br />
查重启次数 / 内存限制    docker inspect ragflow-es-01 --format 'RestartCount={{.RestartCount}}'  RestartCount 持续增长 = 异常<br />
容器内测 ES docker exec ragflow-server curl -s -u elastic:&lt;密码&gt; <a href="http://es01:9200">http://es01:9200</a> 401 也说明网络通、只缺认证<br />
查用户表    docker exec ragflow-mysql mysql -uroot -p&lt;密码&gt; -e &quot;USE rag_flow; SELECT email FROM `user`;&quot;    空表 = 管理员未创建<br />
验证 compose 配置   docker compose config   YAML 语法与变量检查<br />
查 OOM 记录    dmesg | grep -i &quot;killed process&quot;    配合 free -h 使用<br />
整栈重启    docker compose down &amp;&amp; docker compose up -d 冷启动后留意第 4 步竞态<br />
09<br />
经验与注意事项<br />
不要把容器 IP 写进 extra_hosts。bridge 网络的 IP 由 Docker 分配，容器重建即变。同网络内服务名解析是 Docker DNS 的本职；确需跨网络访问时，建共享 external network，而不是维护 IP 清单。<br />
官方硬件要求要当真。7.6GB 跑一个要求 16GB 的栈，ES 默认 8GB 的 MEM_LIMIT 就是定时炸弹。部署前先对齐 .env 中 MEM_LIMIT 与实际内存[3]。<br />
docker compose ps 默认不显示退出容器，排查第一步先加 -a；同时记住 Exited (0) 不等于「正常」——on-failure 策略不会拉起退出码为 0 的容器[2]。<br />
「临时容器能通」不能证明「目标容器能通」。hosts 覆盖只作用于被注入的容器，验证连通性要在目标容器内部执行。<br />
复合故障按证据链逐层剥。本次网络、内存、竞态三个问题独立存在，修任何一个都不够；每修一项就验证一项，不要多变量混着改。<br />
整栈冷启动后登录报「未注册」，先 docker restart knowflow-backend（60 秒等表窗口小于首次建表耗时），排除初始化竞态后再怀疑密码。<br />
判断服务真就绪看日志横幅，不是容器状态 Up——官方文档对登录时机有同样的说明[1][5]。<br />
安全提醒（公网部署必读） 本机为公网 IP 直连部署。默认管理员凭证为 compose 默认值 admin / 12345678[2]，必须立即通过页面或 .env 修改；3306、6379、9200、5000、9000 等容器端口已映射到公网网卡，建议用防火墙 / 安全组收敛到仅 8088 / 8443 可达，其余端口限制来源 IP 或改为仅监听内网。<br />
<a href="http://www.yblgt.com/content/uploadfile/202608/d42f1787710925.rar" title="文档地址">文档地址</a></p>]]></description>
    <pubDate>Wed, 26 Aug 2026 10:04:28 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1611</guid>
</item>
<item>
    <title>QWEN3.8-27B参数调优</title>
    <link>http://www.yblgt.com/?post=1610</link>
    <description><![CDATA[<p>原命令：<br />
yblgt@yblgt-ThinkP710:~/llama.cpp$ ./build/bin/llama-server   -m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 99   -c 102400   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --spec-typ<br />
e draft-mtp   --spec-draft-n-max 2   --spec-draft-p-min 0.6   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 0.7   --mlock   --no-warmup   --prio 3  --cache-ram 0</p>
<p>优化命令：<br />
yblgt@yblgt-ThinkP710:~/llama.cpp$ ./build/bin/llama-server   -m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 99   -c 102400   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --spec-typ<br />
e draft-mtp   --spec-draft-n-max 2   --spec-draft-p-min 0.7   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 0.7   --mlock   --no-warmup   --prio 3  --cache-ram 0  --top-p 0.8  --top-k 20  --presence-penalty 1.0</p>
<p>方案二Thinking模式：<br />
yblgt@yblgt-ThinkP710:~/llama.cpp$ ./build/bin/llama-server   -m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 99   -c 102400   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --spec-typ<br />
e draft-mtp   --spec-draft-n-max 2   --spec-draft-p-min 0.7   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 1.0   --mlock   --no-warmup   --prio 3  --cache-ram 0  --top-p 0.95  --top-k 20  --presence-penalty 0.0</p>]]></description>
    <pubDate>Tue, 18 Aug 2026 10:26:27 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1610</guid>
</item>
<item>
    <title>hf-mirror</title>
    <link>http://www.yblgt.com/?post=1609</link>
    <description><![CDATA[<p><a href="https://hf-mirror.com/models?apps=llama.cpp&amp;sort=trending">https://hf-mirror.com/models?apps=llama.cpp&amp;sort=trending</a></p>]]></description>
    <pubDate>Tue, 14 Jul 2026 21:55:15 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1609</guid>
</item>
<item>
    <title>安装VLLM手册</title>
    <link>http://www.yblgt.com/?post=1608</link>
    <description><![CDATA[<p>方案一：使用 uv 安装（推荐）</p>
<p>这是官方推荐的安装方式。uv 是一个快速的 Python 环境管理器，能自动处理 PyTorch 与 CUDA 版本的匹配问题 。</p>
<ol>
<li>安装系统依赖和 uv 工具<br />
bash</li>
</ol>
<h1>更新系统并安装编译工具和 Python 开发头文件</h1>
<p>sudo apt update &amp;&amp; sudo apt upgrade -y<br />
sudo apt install -y build-essential python3.12 python3.12-venv python3.12-dev git-lfs</p>
<h1>安装 uv 工具</h1>
<p>curl -LsSf <a href="https://astral.sh/uv/install.sh">https://astral.sh/uv/install.sh</a> | sh<br />
source $HOME/.cargo/env</p>
<pre><code>注意：python3.12-dev 包提供了编译必需的 Python.h 头文件，缺少它可能导致安装失败 。</code></pre>
<ol start="2">
<li>创建并进入项目目录<br />
bash</li>
</ol>
<p>mkdir -p ~/projects/vllm &amp;&amp; cd ~/projects/vllm</p>
<ol start="3">
<li>创建并激活 Python 虚拟环境<br />
bash</li>
</ol>
<p>uv venv myenv --python 3.12 --seed<br />
source myenv/bin/activate</p>
<ol start="4">
<li>安装 vLLM</li>
</ol>
<p>在虚拟环境中，使用 uv 安装 vLLM，它会自动检测当前 CUDA 驱动并选择合适的 PyTorch 后端 。<br />
bash</p>
<p>uv pip install vllm --torch-backend=auto</p>
<ol start="5">
<li>验证安装<br />
bash</li>
</ol>
<p>python3 -c &quot;import vllm; print(vllm.<strong>version</strong>)&quot;</p>
<p>如果成功打印出版本号，说明安装成功 </p>
<p>启动服务与运行模型</p>
<p>完成安装后，你可以通过以下两种方式之一启动 vLLM 服务。<br />
离线推理方式（Python 脚本）</p>
<p>创建一个 Python 文件，例如 run.py，用于加载模型并执行推理 。<br />
python</p>
<p>from vllm import LLM, SamplingParams</p>
<h1>1. 加载模型，替换为你的模型路径或 Hugging Face 名称</h1>
<p>llm = LLM(model=&quot;deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B&quot;, tensor_parallel_size=1)</p>
<h1>2. 设置采样参数</h1>
<p>sampling_params = SamplingParams(temperature=0.7, top_p=0.9, max_tokens=512)</p>
<h1>3. 执行推理</h1>
<p>outputs = llm.generate([&quot;解释量子计算的基本原理&quot;], sampling_params)</p>
<h1>4. 打印结果</h1>
<p>for output in outputs:<br />
print(output.outputs[0].text)</p>
<p>然后在终端执行：python3 run.py<br />
OpenAI 兼容服务器方式</p>
<p>这是最常用的方式，可以启动一个 HTTP 服务供其他程序调用 。</p>
<p>创建一个启动脚本 start_server.sh：<br />
bash</p>
<h1>!/bin/bash</h1>
<p>source ~/projects/vllm/myenv/bin/activate<br />
vllm serve &lt;你的模型名称或路径&gt; \<br />
--host 0.0.0.0 \<br />
--port 8000 \<br />
--dtype auto \<br />
--gpu-memory-utilization 0.85 \<br />
--max-model-len 32768 \<br />
--trust-remote-code</p>
<p>赋予执行权限并运行：<br />
bash</p>
<p>chmod +x start_server.sh<br />
./start_server.sh</p>
<p>调整参数：<br />
docker run -d \<br />
--runtime=nvidia --gpus=all \<br />
-v /path/to/your/model:/model \<br />
-p 8000:8000 \<br />
vllm/vllm-openai:v0.8.5 \   # 注意，此处指定了特定版本<br />
--model /model \<br />
--tensor-parallel-size 1 \  # 单卡设为1；如果你有2张就设为2<br />
--quantization awq \        # 根据你下载的模型量化类型调整<br />
--dtype auto \<br />
--max-model-len 16384 \     # 可适当降低以防显存溢出<br />
--gpu-memory-utilization 0.9 \<br />
--swap-space 32             # 设置swap空间，防止KV Cache溢出</p>]]></description>
    <pubDate>Tue, 14 Jul 2026 21:44:01 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1608</guid>
</item>
<item>
    <title>安装LLAMA.CPP</title>
    <link>http://www.yblgt.com/?post=1607</link>
    <description><![CDATA[<ol>
<li>安装 NVIDIA 驱动与 CUDA</li>
</ol>
<p>最稳妥的方式是使用 Ubuntu 的官方源来安装驱动，它能自动处理依赖关系，避免冲突。</p>
<pre><code>更新系统并安装驱动工具
bash

sudo apt update
sudo apt upgrade -y
sudo apt install -y ubuntu-drivers-common build-essential

自动安装推荐驱动（最简单）
这条命令会自动检测你的显卡并安装最合适的驱动版本。
bash

sudo ubuntu-drivers autoinstall

安装完成后，务必重启系统：
bash

sudo reboot

验证驱动安装
重启后，运行 nvidia-smi，你应该能看到 GPU 信息、驱动版本和最高支持的 CUDA 版本。例如，输出可能会显示 CUDA Version: 12.4。

安装 CUDA 工具包
为了让 llama.cpp 在编译时能用到 CUDA，需要安装开发工具包。通过 NVIDIA 官方网络源安装是最简单的方式。
bash

# 下载并安装 CUDA 密钥环
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb

# 更新源并安装 CUDA 工具包
sudo apt update
sudo apt install -y cuda-toolkit

配置环境变量
将 CUDA 添加到 PATH，方便后续使用。
bash

echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' &gt;&gt; ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' &gt;&gt; ~/.bashrc
source ~/.bashrc

最后，运行 nvcc --version 验证 CUDA 编译器是否安装成功。</code></pre>
<ol start="2">
<li>安装与编译 llama.cpp</li>
</ol>
<p>llama.cpp 支持从源码编译，这样能确保你的机器获得最优性能。</p>
<pre><code>安装编译依赖
bash

sudo apt install -y cmake git

克隆源码
bash

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

创建构建目录并编译
使用 CMake 进行编译。关键在于通过 -DGGML_CUDA=ON 开启 CUDA 支持。-j 参数可以加快编译速度。
bash

mkdir build &amp;&amp; cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON
cmake --build . --config Release -j $(nproc)

编译完成后，可执行文件（如 llama-server, llama-cli）就在 build/bin/ 目录下</code></pre>]]></description>
    <pubDate>Mon, 13 Jul 2026 22:42:05 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1607</guid>
</item>
<item>
    <title>下载大模型命令汇总</title>
    <link>http://www.yblgt.com/?post=1606</link>
    <description><![CDATA[<p>前体是把hf-mirror.com加入</p>
<p>3 个模型 hf 下载命令（直接复制运行）<br />
全部自动存到 /data/models 里</p>
<ol>
<li>Qwen3.5-27B 4-bit<br />
hf download Qwen/Qwen3.5-27B-Instruct-GGUF qwen3.5-27b-instruct-q4_0.gguf --local-dir /data/models</li>
</ol>
<p>hf download hf-mirror.com/HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf<br />
正在下载<br />
hf download HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive   --local-dir ./Qwen3.6-35B-A3B-Uncensored   Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf</p>
<p>hf download unsloth/Qwen3.6-35B-A3B-MTP-GGUF \<br />
--local-dir ./Qwen3.6-35B-A3B-MTP \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot;</p>
<p>hf download bartowski/DeepSeek-R1-Distill-Qwen-32B-GGUF \<br />
--local-dir ./DeepSeek-R1-Distill \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot;</p>
<p>hf download google/gemma-4-31B-it-qat-q4_0-gguf \<br />
--local-dir ./gemma-4-31b \<br />
--include &quot;*.gguf&quot;</p>
<p>hf download Jackrong/Qwopus3.6-27B-Coder-GGUF \<br />
--include &quot;<em>Q4_K_M</em>.gguf&quot; \<br />
--local-dir ./qwopus-27b-coder</p>
<p>hf download Jackrong/Qwopus3.6-35B-A3B-V1-GGUF \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot; &quot;<em>mmp</em>.gguf&quot; \<br />
--local-dir ./qwopus-35b-v1</p>
<p>hf download Mia-AiLab/Qwable-3.6-27b \<br />
--include &quot;*.gguf&quot; \<br />
--local-dir ./qwable-27b</p>
<p>hf download unsloth/Qwen3.6-27B-MTP-GGUF \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot; \<br />
--local-dir ./unsloth-qwen27b</p>
<pre><code>hf download unsloth/Llama-3.3-70B-Instruct-GGUF \</code></pre>
<p>--include &quot;<em>IQ4_XS</em>.gguf&quot; \<br />
--local-dir ./llama70b</p>
<p>hf download Jackrong/Qwopus3.6-35B-A3B-v1-MTP-GGUF \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot; \<br />
--local-dir ./qwopus-35b-v1-mtp</p>
<p>hf download Anbeeld/Qwen3.6-27B-DFlash-GGUF \<br />
--include &quot;<em>Q4_K_M</em>.gguf&quot; \<br />
--local-dir ./unsloth-qwen27b</p>
<p>hf download unsloth/Qwen3.6-27B-GGUF \<br />
--include &quot;<em>mm</em>.gguf&quot; \<br />
--local-dir ./unsloth-qwen27b</p>
<p>hf download Anbeeld/Qwen3.6-35B-A3B-DFlash-GGUF \<br />
--include &quot;<em>IQ4_XS</em>.gguf&quot; \<br />
--local-dir ./unsloth-qwen3.6-35b-a3b</p>
<p>hf download unsloth/Qwen3.6-35B-A3B-GGUF \<br />
--include &quot;<em>UD-IQ4_XS</em>.gguf&quot; \<br />
--include &quot;<em>mm</em>.gguf&quot; \<br />
--local-dir ./unsloth-qwen3.6-35b-a3b</p>
<p>hf download unsloth/Qwen3-VL-30B-A3B-Instruct-GGUF \<br />
--include &quot;<em>Q4_K_M</em>.gguf&quot; &quot;<em>mmp</em>.gguf&quot; \<br />
--local-dir ./nsloth-qwen3-vl-30b</p>
<p>hf download Brian6145/Qwen3.6-27B-Claude-Opus-Sonnet-DistilledV2-MTP-GGUF \<br />
--include &quot;<em>Q4_K_M</em>.gguf&quot; &quot;<em>mmp</em>.gguf&quot; \<br />
--local-dir ./brian6145-27b</p>
<p>hf download Anbeeld/Qwen3.6-27B-DFlash-GGUF \<br />
--include &quot;<em>Q5_K_M</em>.gguf&quot; &quot;<em>mmp</em>.gguf&quot; \<br />
--local-dir ./anbeeld-dflash-27b</p>
<p>hf download incoai/Qwen3.8-27B-DFlash2-GGUF \</p>
<blockquote>
<p>--include &quot;<em>Q4_K_M</em>.gguf&quot; \<br />
--local-dir /data/models/Qwen3.8-27B-DFlash2</p>
</blockquote>]]></description>
    <pubDate>Mon, 06 Jul 2026 22:55:32 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1606</guid>
</item>
<item>
    <title>我的DFLASH模型测试命令</title>
    <link>http://www.yblgt.com/?post=1605</link>
    <description><![CDATA[<p>./build/bin/llama-server  -m /data/models/brian6145-27b/Qwen3.6-27B-Claude-Opus-Sonnet-DistilledV2-MTP-Q4_K_M.gguf  --mmproj /data/models/unsloth-qwen27b/mmproj-F16.gguf  --no-mmproj-offload  --spec-draft-model data/models/anbeeld-dflash-27b/Qwen3.6-27B-DFlash-Q5_K_M.gguf&quot;  --spec-type dflash  --spec-dflash-cross-ctx 1024  --port 8000  -np 1  --kv-unified  -ngl all  --spec-draft-ngl all  -b 1024 -ub 512  --ctx-size 102400  --cache-type-k q5_0 --cache-type-v q4_1  --flash-attn on  --jinja  --no-mmap --mlock  --no-host  --reasoning on  --chat-template-kwargs '{\&quot;preserve_thinking\&quot;:true}'  --temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0 --image-min-tokens 1024</p>]]></description>
    <pubDate>Mon, 06 Jul 2026 20:04:33 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1605</guid>
</item>
<item>
    <title>老铁的DFLASH命令，参考一下</title>
    <link>http://www.yblgt.com/?post=1604</link>
    <description><![CDATA[<p>**./llama-server.exe <code> -m "C:\Users\home\.cache\modelscope\hub\models\Brian6145\Qwen3___6-27B-Claude-Opus-Sonnet-DistilledV2-MTP-GGUF\Qwen3.6-27B-Claude-Opus-Sonnet-DistilledV2-MTP-Q4_K_M.gguf"</code><br />
--mmproj &quot;c:\Users\home.cache\modelscope\hub\models\unsloth\Qwen3.6-27B-GGUF\Qwen3.6-27B-GGUF\mmproj-BF16.gguf&quot; <code> --no-mmproj-offload</code><br />
--spec-draft-model &quot;c:\Users\home.cache\modelscope\hub\models\anbeeld\Qwen3.6-27B-DFlash-GGUF\Qwen3.6-27B-DFlash-Q5_K_M.gguf&quot; <code> --spec-type dflash</code><br />
--spec-dflash-cross-ctx 1024 <code> --port 8082</code><br />
-np 1 <code> --kv-unified</code><br />
-ngl all <code> --spec-draft-ngl all</code><br />
-b 2048 -ub 512 <code> --ctx-size 102400</code><br />
--cache-type-k q5_0 --cache-type-v q4_1 <code> --flash-attn on</code><br />
--jinja <code> --no-mmap --mlock</code><br />
--no-host <code> --reasoning on</code><br />
--chat-template-kwargs '{\&quot;preserve_thinking\&quot;:true}' <code> --temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0</code><br />
--image-min-tokens 1024</p>]]></description>
    <pubDate>Mon, 06 Jul 2026 19:47:34 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1604</guid>
</item>
<item>
    <title>wampserver的依赖库和其他技术文件网址</title>
    <link>http://www.yblgt.com/?post=1603</link>
    <description><![CDATA[<p><a href="https://wampserver.aviatechno.net/">https://wampserver.aviatechno.net/</a><br />
<img src="http://www.yblgt.com/content/uploadfile/202607/17d21783250922.png" alt="" /></p>]]></description>
    <pubDate>Sun, 05 Jul 2026 19:27:51 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1603</guid>
</item>
<item>
    <title>运行VL大模型修改了命令</title>
    <link>http://www.yblgt.com/?post=1602</link>
    <description><![CDATA[<p>./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen3-vl-30b/Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 6 \<br />
--threads-batch 6 \<br />
--n-gpu-layers 81 \<br />
-c 102400 \<br />
--batch-size 1024 \<br />
--ubatch-size 512 \<br />
--flash-attn on \<br />
--cont-batching \<br />
--cache-type-k q4_0 \<br />
--cache-type-v q4_0 \<br />
--parallel 1 \<br />
--temp 0.7 \<br />
--top-p 0.8 \<br />
--top-k 20 \<br />
--presence-penalty 1.5 \<br />
--jinja \<br />
--mlock \<br />
--no-warmup \<br />
--prio 3</p>
<p>./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen3-vl-30b/Qwen3-VL-30B-A3B-Instruct-Q4_K_M.gguf \<br />
--mmproj /data/models/unsloth-qwen3-vl-30b/mmproj-F16.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 6 \<br />
--threads-batch 6 \<br />
--n-gpu-layers 60 \<br />
-c 24576 \<br />
--batch-size 512 \<br />
--ubatch-size 256 \<br />
--flash-attn on \<br />
--cont-batching \<br />
--cache-type-k q4_0 \<br />
--cache-type-v q4_0 \<br />
--parallel 1 \<br />
--temp 0.7 \<br />
--top-p 0.8 \<br />
--top-k 20 \<br />
--presence-penalty 1.5 \<br />
--jinja \<br />
--mlock \<br />
--no-warmup \<br />
--prio 3 \<br />
--image-min-tokens 1024</p>]]></description>
    <pubDate>Sun, 05 Jul 2026 06:00:20 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1602</guid>
</item>
<item>
    <title>采纳DFLASH大模型的命令（未成功，要换分支跑）</title>
    <link>http://www.yblgt.com/?post=1601</link>
    <description><![CDATA[<p>./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen27b/Qwen3.6-27B-Q4_K_M.gguf \<br />
--mmproj /data/models/unsloth-qwen27b/mmproj-F16.gguf \<br />
--no-mmproj-offload \<br />
--spec-draft-model /data/models/unsloth-qwen27b/Qwen3.6-27B-DFlash-Q4_K_M.gguf \<br />
--spec-type draft-dflash \<br />
--port 8000 \<br />
-np 1 \<br />
--kv-unified \<br />
-ngl 99 \<br />
--spec-draft-ngl 99 \<br />
-b 1024 -ub 512 \<br />
--ctx-size 102400 \<br />
--cache-type-k q5_0 --cache-type-v q4_1 \<br />
--flash-attn on \<br />
--jinja \<br />
--no-mmap --mlock \<br />
--no-host \<br />
--reasoning on \<br />
--chat-template-kwargs '{&quot;preserve_thinking&quot;:true}' \<br />
--temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0 \<br />
--image-min-tokens 1024</p>]]></description>
    <pubDate>Thu, 02 Jul 2026 14:10:25 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1601</guid>
</item>
<item>
    <title>Beellama安装手册</title>
    <link>http://www.yblgt.com/?post=1600</link>
    <description><![CDATA[<ol>
<li>BeeLlama.cpp 简介<br />
BeeLlama.cpp（简称 Bee）是 llama.cpp 的一个高性能分支，专注于提升本地 GGUF 模型推理的速度和上下文长度。它在保留 llama.cpp 工具和服务器流程的基础上，增加了以下关键特性：<br />
DFlash 推测解码：利用小型草稿模型预测多个 token，由主模型验证，显著提升生成速度（尤其适用于代码、结构化文本等低熵内容）。<br />
自适应草稿控制：动态调整草稿长度以优化吞吐量。<br />
TurboQuant/TCQ KV 缓存压缩：提供高达 7.5 倍的 KV 缓存压缩，有效节省显存。<br />
推理循环保护：检测并干预重复的推理输出。<br />
完整的多模态支持：支持视觉输入。</li>
<li>系统要求<br />
操作系统：Ubuntu（推荐 20.04 或更高版本）<br />
GPU：NVIDIA RTX 2080 Ti (22GB VRAM)<br />
CUDA：12.4 或 13.1<br />
依赖：CMake, GCC, NVIDIA 驱动及 CUDA Toolkit</li>
<li>安装步骤<br />
3.1 方法一：使用预编译二进制文件（推荐）<br />
下载二进制文件：<br />
访问 BeeLlama.cpp Releases 页面，根据你的 CUDA 版本下载对应的 Ubuntu 预编译包。<br />
如果你安装的是 CUDA 12.4，请下载 bin-ubuntu-cuda-12.4-x64.tar.gz<br />
如果你安装的是 CUDA 13.1，请下载 bin-ubuntu-cuda-13.1-x64.tar.gz<br />
tar -xzf bin-ubuntu-cuda-<your_cuda_version>-x64.tar.gz<br />
cd beellama.cpp<br />
3.2 方法二：从源代码编译（可选，性能可能略优）<br />
安装依赖：</li>
</ol>
<p>sudo apt update<br />
sudo apt install build-essential cmake git</p>
<h1>确保已安装 CUDA Toolkit</h1>
<p>克隆仓库并编译：</p>
<p>git clone <a href="https://github.com/Anbeeld/beellama.cpp.git">https://github.com/Anbeeld/beellama.cpp.git</a><br />
cd beellama.cpp</p>
<h1>针对 RTX 2080 Ti (Turing 架构, compute capability 7.5) 进行编译</h1>
<p>cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=ON \<br />
-DGGML_CUDA_FA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON \<br />
-DCMAKE_CUDA_ARCHITECTURES=75 \<br />
-DCMAKE_BUILD_TYPE=Release</p>
<p>cmake --build build -j<br />
注意: DCMAKE_CUDA_ARCHITECTURES=75 是为 RTX 2080 Ti 设置的。如果你不确定，可以省略此选项，CMake 会自动检测。</p>
<ol start="4">
<li>模型准备<br />
你需要下载三个文件（以 Qwen 3.6 27B 为例）：<br />
主模型 (Target Model):<br />
高精度版: Qwen3.6-27B-Q5_K_S.gguf (来自 unsloth/Qwen3.6-27B-GGUF)<br />
高速/低显存版: Qwen3.6-27B-Q4_K_M.gguf 或 Qwen3.6-27B-IQ4_XS.gguf (来自 cHunter789/Qwen3.6-27B-i1-IQ4_XS-GGUF)<br />
DFlash 草稿模型 (Draft Model):<br />
从 Anbeeld/Qwen3.6-27B-DFlash-GGUF 下载，例如 Qwen3.6-27B-DFlash-Q4_K_M.gguf。<br />
多模态投影器 (可选, mmproj):<br />
如果需要视觉功能，从 unsloth/Qwen3.6-27B-GGUF 下载 mmproj-BF16.gguf。<br />
将这些文件放在一个易于访问的目录中，例如 ~/models/。</li>
<li>启动服务器（针对 22GB 显存优化）<br />
考虑到你的 RTX 2080 Ti 有 22GB 显存（略少于官方推荐的 24GB），我们采用高速/低显存组合，并进行适当调整以确保稳定运行。<br />
5.1 基础启动命令（无视觉）</li>
</ol>
<p>./build/bin/llama-server \<br />
-m &quot;~/models/Qwen3.6-27B-Q4_K_M.gguf&quot; \<br />
--spec-draft-model &quot;~/models/Qwen3.6-27B-DFlash-Q4_K_M.gguf&quot; \<br />
--spec-type dflash \<br />
--spec-dflash-cross-ctx 512 \<br />
--port 8080 \<br />
-np 1 \<br />
--kv-unified \<br />
-ngl all \<br />
--spec-draft-ngl all \<br />
-b 2048 -ub 512 \<br />
--ctx-size 65536 \ # 将上下文减少到 64K 以适应 22G 显存<br />
--cache-type-k turbo3_tcq \<br />
--cache-type-v turbo3_tcq \ # 使用 TCQ 压缩进一步节省显存<br />
--flash-attn on \<br />
--no-mmap --mlock \<br />
--temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0<br />
5.2 启动命令（带视觉）<br />
bash</p>
<p>./build/bin/llama-server \<br />
-m &quot;~/models/Qwen3.6-27B-Q4_K_M.gguf&quot; \<br />
--mmproj &quot;~/models/mmproj-BF16.gguf&quot; \<br />
--no-mmproj-offload \ # 将 mmproj 卸载到 CPU 以节省 GPU 显存<br />
--spec-draft-model &quot;~/models/Qwen3.6-27B-DFlash-Q4_K_M.gguf&quot; \<br />
--spec-type dflash \<br />
--spec-dflash-cross-ctx 512 \<br />
--port 8080 \<br />
-np 1 \<br />
--kv-unified \<br />
-ngl all \<br />
--spec-draft-ngl all \<br />
-b 2048 -ub 512 \<br />
--ctx-size 65536 \<br />
--cache-type-k turbo3_tcq \<br />
--cache-type-v turbo3_tcq \<br />
--flash-attn on \<br />
--no-mmap --mlock \<br />
--temp 0.6 --top-k 20 --top-p 1.0 --min-p 0.0</p>
<p>5.3 关键参数解释<br />
-m: 主模型路径。<br />
--spec-*: DFlash 相关配置，启用推测解码。<br />
--ctx-size 65536: 重要！将上下文长度从默认的 100K+ 降低到 64K，这是为了适配 22GB 显存。<br />
--cache-type-k/v turbo3_tcq: 重要！使用 TCQ 压缩技术大幅减小 KV 缓存占用。turbo3_tcq 在显存和精度之间取得了较好的平衡。<br />
--spec-dflash-cross-ctx 512: 减少草稿模型能看到的上下文，进一步节省显存。<br />
--no-mmproj-offload: 对于独立显卡，将视觉模块卸载到 CPU 可以释放宝贵的 GPU 显存。<br />
-ngl all: 将所有模型层加载到 GPU 上。</p>
<ol start="6">
<li>故障排除<br />
显存不足 (Out of VRAM):<br />
进一步降低 --ctx-size (例如 32768)。<br />
尝试使用 turbo2_tcq 作为缓存类型（但会损失更多精度）。<br />
将主模型换成 IQ4_XS 版本。<br />
DFlash 未生效:<br />
检查日志中是否有 dflash: 或 speculative 相关信息。<br />
确认草稿模型是专门为 DFlash 准备的，而不是普通的 Qwen 模型。<br />
TCQ 缓存类型报错:<br />
确保你使用的是 CUDA 后端编译的版本。TCQ (turbo*_tcq) 仅支持 CUDA。<br />
通过以上配置，你应该能够在你的 RTX 2080 Ti 22GB + Ubuntu 系统上成功运行 BeeLlama.cpp，并利用 DFlash 和 TCQ 技术获得高效的推理体验。</li>
</ol>]]></description>
    <pubDate>Wed, 01 Jul 2026 13:57:03 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1600</guid>
</item>
<item>
    <title>LLAMA.CPP升级成功命令</title>
    <link>http://www.yblgt.com/?post=1599</link>
    <description><![CDATA[<p>更新代码并准备环境</p>
<p>首先，进入 llama.cpp 项目目录，拉取最新的代码。然后，根据官方推荐，清理旧版的 Web UI 构建文件，并确保 Node.js 环境是最新的，这是为了构建内置 Web UI 所必需的。</p>
<p>cd ~/llama.cpp<br />
git pull origin master  # 拉取最新代码</p>
<h1>清理旧 Web UI 构建文件</h1>
<p>rm -rf tools/ui/dist</p>
<h1>清理旧编译文件，保证全新编译</h1>
<p>rm -rf build</p>
<h1>安装或更新 Node.js 和 npm (用于构建 UI 资源)</h1>
<h1>这里使用了 NodeSource 的脚本安装 Node.js 20.x 版本</h1>
<p>curl -fsSL <a href="https://deb.nodesource.com/setup_20.x">https://deb.nodesource.com/setup_20.x</a> | sudo -E bash -<br />
sudo apt install -y nodejs</p>
<h1>重新编译</h1>
<p>mkdir build &amp;&amp; cd build<br />
cmake .. \<br />
-DCMAKE_BUILD_TYPE=Release \<br />
-DGGML_CUDA=ON \<br />
-DLLAMA_CURL=ON \<br />
-DLLAMA_SERVER=ON<br />
make -j$(nproc)</p>
<p>参数：<br />
-DGGML_CUDA=ON  启用 NVIDIA CUDA GPU 加速<br />
-DGGML_CUDA_F16=ON  启用 FP16 计算（可选，提升性能）<br />
-DLLAMA_CURL=ON 启用 HTTP/HTTPS 网络支持（Web UI 需要）<br />
-DLLAMA_SERVER=ON   编译 llama-server（Web UI 服务）<br />
-DLLAMA_AVX2=ON 启用 AVX2 指令集优化（Intel CPU）</p>
<p>另一个：<br />
cd ~/llama.cpp<br />
git pull origin master  # 拉取最新代码</p>
<h1>清理旧 Web UI 构建文件</h1>
<p>rm -rf tools/ui/dist</p>
<h1>清理旧编译文件，保证全新编译</h1>
<p>rm -rf build</p>
<h1>安装或更新 Node.js 和 npm (用于构建 UI 资源)</h1>
<h1>这里使用了 NodeSource 的脚本安装 Node.js 20.x 版本</h1>
<p>curl -fsSL <a href="https://deb.nodesource.com/setup_20.x">https://deb.nodesource.com/setup_20.x</a> | sudo -E bash -<br />
sudo apt install -y nodejs</p>
<p>mkdir build &amp;&amp; cd build</p>
<h1>配置 CMake。你原来的 CUDA、CURL 等选项都保留着</h1>
<p>cmake .. \<br />
-DCMAKE_BUILD_TYPE=Release \<br />
-DGGML_CUDA=ON \<br />
-DLLAMA_CURL=ON \<br />
-DLLAMA_SERVER=ON  # 这个选项会构建内置 Web UI</p>
<h1>开始编译，使用所有 CPU 核心加速</h1>
<p>make -j$(nproc)</p>]]></description>
    <pubDate>Tue, 30 Jun 2026 14:51:44 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1599</guid>
</item>
<item>
    <title>我的主力模型在三大场景的命令参数</title>
    <link>http://www.yblgt.com/?post=1598</link>
    <description><![CDATA[<p>写文章专用：（占用21103M,写文章速度30T/S）<br />
./build/bin/llama-server   -m /data/models/unsloth-qwen27b/Qwen3.6-27B-Q4_K_M.gguf   --mmproj /data/models/unsloth-qwen27b/mmproj-F16.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 999   -c 81920   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --spec-type draft-mtp   --spec-draft-n-max 2   --spec-draft-p-min 0.7   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 0.6   --mlock   --no-warmup   --prio 3  --cache-ram 0  --image-min-tokens 1024</p>
<p>速度快专用：(占用20388M,写文章速度80T/S)<br />
./build/bin/llama-server   -m /data/models/other/qwopus3.6-35b-a3b-v1/Qwopus3.6-35B-A3B-v1-IQ4_XS.gguf   --mmproj /data/models/other/qwopus3.6-35b-a3b-v1/mmproj-F32.gguf   --port 8000 --host 0.0.0.0   -t 12   --threads-batch 12   --n-gpu-layers 999   -c 102400   --batch-size 1024   --ubatch-size 512   --flash-attn on   --cont-batching   --cache-type-k q4_0 --cache-type-v q4_0   --parallel 1   --temp 0.6   --mlock   --no-warmup   --prio 3 --cache-ram 0  --image-min-tokens 1024</p>
<p>写代码专用：（不带图,占用20007M,写文章速度40T/S）<br />
./build/bin/llama-server -m /data/models/other/qwen3.6-27b-mtp/Qwen3.6-27B-MTP-Q4_K_M.gguf --port 8000 --host 0.0.0.0 -t 12 --threads-batch 12 --n-gpu-layers 999 -c 102400 --batch-size 1024 --ubatch-size 512 --flash-attn on --cont-batching --spec-type draft-mtp --spec-draft-n-max 2 --spec-draft-p-min 0.5 --cache-type-k q8_0 --cache-type-v q8_0 --parallel 1 --temp 0.2 --top-p 0.9 --mlock --no-warmup --prio 3 --cache-ram 0</p>]]></description>
    <pubDate>Sun, 28 Jun 2026 15:13:42 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1598</guid>
</item>
<item>
    <title>下载无审查QWEN3.6-35B-A3B-UNCENSORED的命令</title>
    <link>http://www.yblgt.com/?post=1597</link>
    <description><![CDATA[<p>hf download HauhauCS/Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive \<br />
--local-dir ./Qwen3.6-35B-A3B-Uncensored \<br />
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf</p>]]></description>
    <pubDate>Tue, 16 Jun 2026 20:35:54 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1597</guid>
</item>
<item>
    <title>尝鲜下载谷歌Gemma 4 QAT大模型地址（26B、12B）</title>
    <link>http://www.yblgt.com/?post=1596</link>
    <description><![CDATA[<p>26B:<br />
hf download unsloth/gemma-4-26B-A4B-it-qat-GGUF   --local-dir ./gemma-4-26b   --include &quot;*.gguf&quot;</p>
<p>12B:</p>
<h1>下载主模型（推荐 Q4_K_M 版本，性能与体积平衡）</h1>
<p>hf download bartowski/gemma-4-12B-it-GGUF   --local-dir ./gemma-4-12b   --include &quot;gemma-4-12B-it-Q4_K_M.gguf&quot;</p>
<h1>下载视觉编码器（必须，让模型能看图）</h1>
<p>hf download unsloth/gemma-4-12b-it-GGUF   --local-dir ./gemma-4-12b   --include &quot;mmproj-F16.gguf&quot;</p>
<p><img src="http://www.yblgt.com/content/uploadfile/202606/b0131781138280.png" alt="" /></p>]]></description>
    <pubDate>Thu, 11 Jun 2026 08:32:40 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1596</guid>
</item>
<item>
    <title>LLAMA-BENCH自动测试命令</title>
    <link>http://www.yblgt.com/?post=1595</link>
    <description><![CDATA[<p>未加入线程：</p>
<h1>你的固定基础配置</h1>
<p>BASE=&quot;/home/yblgt/llama.cpp/build/bin/llama-bench \<br />
--model /data/models/qwen3.6-27b-mtp/Qwen3.6-27B-MTP-Q4_K_M.gguf \<br />
-t 6 \<br />
-ngl 81 \<br />
--flash-attn 1 \<br />
-n 256 -p 512 \<br />
-r 3&quot;</p>
<h1>测试不同的 batch-size 和 ubatch-size 组合</h1>
<p>for batch in 512 1024 1536 1920 2048 4096; do<br />
for ubatch in 256 512 768 1024); do<br />
echo &quot;=== Testing batch=$batch ubatch=$ubatch ===&quot;<br />
$BASE --batch-size $batch --ubatch-size $ubatch<br />
done<br />
done</p>
<p>加入线程<br />
bash</p>
<h1>!/bin/bash</h1>
<h1>基础配置（不再包含 -t）</h1>
<p>BASE=&quot;/home/yblgt/llama.cpp/build/bin/llama-bench \<br />
--model /data/models/qwen3.6-27b-mtp/Qwen3.6-27B-MTP-Q4_K_M.gguf \<br />
-ngl 81 \<br />
--flash-attn 1 \<br />
-n 256 -p 512 \<br />
-r 3&quot;</p>
<h1>测试不同的线程数、batch-size 和 ubatch-size 组合</h1>
<p>for t in 6 12; do<br />
for batch in 512 1024 1536 1920 2048 4096; do<br />
for ubatch in 256 512 768 1024); do<br />
echo &quot;=== Testing threads=$t batch=$batch ubatch=$ubatch ===&quot;<br />
$BASE -t $t --batch-size $batch --ubatch-size $ubatch<br />
done<br />
done<br />
done</p>]]></description>
    <pubDate>Mon, 25 May 2026 13:15:04 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1595</guid>
</item>
</channel>
</rss>