<?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>LLAMA.CPP升级到0.7的命令参数（免思考）</title>
    <link>http://www.yblgt.com/?post=1626</link>
    <description><![CDATA[<p>yblgt@yblgt-ThinkStation-P710:~/llama.cpp$ ./build/bin/llama-server   -m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-UD-Q4_K_M.gguf   --port 8000 --host 0.0.0.0   -t 12 --threads-batch 12 --n-gpu-layers 999   -c 204800 --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 --no-warmup   --cache-ram 0 --no-reasoning-preserve  --reasoning-budget 0</p>]]></description>
    <pubDate>Thu, 22 Oct 2026 13:47:40 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1626</guid>
</item>
<item>
    <title>Strata运行IQ2_XS</title>
    <link>http://www.yblgt.com/?post=1625</link>
    <description><![CDATA[<p>运行命令：<br />
yblgt@yblgt-ThinkStation-P710:~/Strata$ ./setup.sh --host 0.0.0.0 --api-key 123456</p>
<p>挂载模型：<br />
<a href="http://100.108.44.45:8080/v1">http://100.108.44.45:8080/v1</a></p>
<p>更新命令<br />
cd ~/Strata<br />
./update.sh</p>
<hr />
<p>Model and engine<br />
Model<br />
qwen3.8-flash-next-iq2_xs<br />
Engine<br />
v0.1.39<br />
Context<br />
131,072 tokens<br />
KV cache<br />
8-bit, all in VRAM<br />
Experts in VRAM<br />
10,713 (14.4 GB)<br />
Speculation<br />
MTP drafts up to 3 tokens, prompt lookup on<br />
Images<br />
off</p>]]></description>
    <pubDate>Wed, 21 Oct 2026 14:09:12 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1625</guid>
</item>
<item>
    <title>STRATA安装方法</title>
    <link>http://www.yblgt.com/?post=1624</link>
    <description><![CDATA[<p>git clone <a href="https://github.com/Niko1221/Strata.git">https://github.com/Niko1221/Strata.git</a><br />
cd Strata<br />
export HF_ENDPOINT=<a href="https://hf-mirror.com">https://hf-mirror.com</a><br />
./setup.sh --host 0.0.0.0 --api-key 123456</p>
<p>（加0.0.0.0，否则其他电脑不能访问）</p>
<p>Ubuntu 安装 Strata 简写步骤（RTX 2080 Ti 22G / 31G 内存）</p>
<p>装驱动：sudo ubuntu-drivers install nvidia:535，重启后 nvidia-smi 确认正常。</p>
<p>克隆仓库：git clone <a href="https://github.com/Niko1221/Strata.git">https://github.com/Niko1221/Strata.git</a> &amp;&amp; cd Strata</p>
<p>设镜像（关键）：export HF_ENDPOINT=<a href="https://hf-mirror.com">https://hf-mirror.com</a></p>
<p>运行安装：./setup.sh</p>
<p>按推荐选择：</p>
<p>模型 → 1（Qwen3.8-Flash-Next）</p>
<p>尺寸 → 1（Q2_0，32G 内存唯一合适档）</p>
<p>上下文 → 4（128K，推荐值）</p>
<p>KV cache → 1（8-bit）</p>
<p>图片 → n；实验加速 → n</p>
<p>等下载：约 66 GB，支持断点续传，中断后重跑 ./setup.sh 即可继续。</p>
<p>启动：浏览器打开 <a href="http://127.0.0.1:8080">http://127.0.0.1:8080</a>。</p>
<p>说明：你的 31G 内存只能选 Q2_0 或 IQ2_XS，脚本已自动启用 low-RAM 模式（GPU 放约 46% 专家，其余放内存）。首次启动会卡 1–3 分钟属正常。</p>]]></description>
    <pubDate>Sat, 03 Oct 2026 18:38:23 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1624</guid>
</item>
<item>
    <title>llama-optimus的安装和测试</title>
    <link>http://www.yblgt.com/?post=1623</link>
    <description><![CDATA[<ol>
<li>安装 pipx</li>
</ol>
<p>bash<br />
sudo apt update<br />
sudo apt install pipx</p>
<ol start="2">
<li>确保 pipx 管理的程序路径已加入 PATH</li>
</ol>
<p>bash<br />
pipx ensurepath</p>
<ol start="3">
<li>安装 llama-optimus</li>
</ol>
<p>bash<br />
pipx install llama-optimus</p>
<p>4、命令<br />
llama-optimus \<br />
--llama-bin ~/llama.cpp/build/bin \<br />
--model /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-UD-Q4_K_M.gguf \<br />
--trials 25 \<br />
--repeat 5 \<br />
--n-tokens 256 \<br />
--ngl-max 99 \<br />
--metric tg</p>]]></description>
    <pubDate>Thu, 01 Oct 2026 12:44:03 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1623</guid>
</item>
<item>
    <title>针对IQUIZ评测的模型运行参数和测试命令参数</title>
    <link>http://www.yblgt.com/?post=1622</link>
    <description><![CDATA[<p>./build/bin/llama-server \<br />
-m /data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-UD-Q4_K_M.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 \<br />
--n-gpu-layers 999 \<br />
-c 20000 --batch-size 512 --ubatch-size 256 \<br />
--flash-attn on --cont-batching \<br />
--cache-type-k q4_0 --cache-type-v q4_0 \<br />
--parallel 2 \<br />
--temp 0.7 --no-warmup --prio 3 --cache-ram 0 \<br />
--no-reasoning-preserve</p>
<p>测试参数<br />
evalscope eval \<br />
--model &quot;/data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-UD-Q4_K_M.gguf&quot; \<br />
--api-url <a href="http://100.108.44.45:8000/v1">http://100.108.44.45:8000/v1</a> \<br />
--api-key EMPTY \<br />
--eval-type openai_api \<br />
--datasets iquiz \<br />
--generation-config '{&quot;max_tokens&quot;: 4096, &quot;timeout&quot;: 600}'</p>
<p>既然服务就在本机，直接用 127.0.0.1:8000 最稳，不要再走 Tailscale 的 100.108.44.45</p>]]></description>
    <pubDate>Thu, 01 Oct 2026 09:18:28 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1622</guid>
</item>
<item>
    <title>从UBUNTU拷贝文件命令</title>
    <link>http://www.yblgt.com/?post=1621</link>
    <description><![CDATA[<p>使用POWERSHELL</p>
<p>scp -r yblgt@100.108.44.45:~/outputs/20260929_111046/reports C:\</p>
<p>输入密码后操作</p>
<p>*使用场景：拷贝IQUIZ测试报告<br />
python3 -m venv .venv-evalscope<br />
source .venv-evalscope/bin/activate</p>
<p>evalscope eval --model &quot;/data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf&quot; --api-url <a href="http://100.108.44.45:8000/v1">http://100.108.44.45:8000/v1</a> --api-key EMPTY --eval-type openai_api --datasets iquiz</p>]]></description>
    <pubDate>Thu, 01 Oct 2026 09:13:53 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1621</guid>
</item>
<item>
    <title>UBUNTU24.04安装EvalScope和运行命令</title>
    <link>http://www.yblgt.com/?post=1620</link>
    <description><![CDATA[<ol>
<li>创建并激活虚拟环境（推荐）<br />
用 conda 或 Python 自带的 venv 隔离环境，避免依赖冲突。官方推荐使用 Python 3.10。</li>
</ol>
<p>bash</p>
<h1>使用 conda（如果已安装）</h1>
<p>conda create -n evalscope python=3.10<br />
conda activate evalscope</p>
<h1>或者使用 venv</h1>
<p>python3 -m venv .venv-evalscope<br />
source .venv-evalscope/bin/activate</p>
<ol start="2">
<li>安装 EvalScope<br />
直接 pip 安装核心包，你已经有了 llama.cpp 服务，不需要额外的本地推理依赖。</li>
</ol>
<p>bash<br />
pip install evalscope</p>
<ol start="3">
<li>验证</li>
</ol>
<p>bash<br />
evalscope --version</p>
<p>运行命令：<br />
evalscope eval   --model &quot;/data/models/unsloth-qwen3.8-27b/Qwen3.8-27B-Q4_K_M.gguf&quot;   --api-url <a href="http://127.0.0.1:8000/v1">http://127.0.0.1:8000/v1</a>   --api-key EMPTY   --eval-type openai_api   --datasets iquiz</p>]]></description>
    <pubDate>Mon, 28 Sep 2026 21:34:42 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1620</guid>
</item>
<item>
    <title>家中新挂硬盘UBUNTU24.04启用WEBUI命令</title>
    <link>http://www.yblgt.com/?post=1619</link>
    <description><![CDATA[<p>重新启动它<br />
你之前应该是在 webui-env 这个虚拟环境里启动的。标准启动方式：</p>
<p>bash<br />
复制<br />
下载<br />
cd /home/yblgt/projects/webui-env<br />
source bin/activate<br />
open-webui serve<br />
如果想让它后台跑、关掉终端也不停：</p>
<p>bash<br />
复制<br />
下载<br />
cd /home/yblgt/projects/webui-env<br />
source bin/activate<br />
nohup open-webui serve &gt; ~/open-webui.log 2&gt;&amp;1 &amp;<br />
启动后等几秒，再查：</p>
<p>bash<br />
复制<br />
下载<br />
ss -tlnp | grep 8080<br />
有输出就说明起来了，然后浏览器访问 <a href="http://localhost:8080">http://localhost:8080</a></p>]]></description>
    <pubDate>Sun, 27 Sep 2026 20:07:12 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1619</guid>
</item>
<item>
    <title>Bonsai-2-27B执行命令</title>
    <link>http://www.yblgt.com/?post=1618</link>
    <description><![CDATA[<p>yblgt@yblgt-ThinkP710:~/hll$ /home/yblgt/hll/build/bin/llama-server \</p>
<blockquote>
<p>-m /data/models/bonsai-27b/Ternary-Bonsai-2-27B-PQ2_0.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 \<br />
--n-gpu-layers 99 \<br />
-c 262144 \<br />
--batch-size 1024 --ubatch-size 512 \<br />
--flash-attn on --cont-batching \<br />
--cache-type-k q8_0 --cache-type-v q8_0 \<br />
--parallel 1 \<br />
--temp 1.0 --top-p 0.95 --top-k 20 \<br />
--min-p 0.0 --presence-penalty 0.0 --repeat-penalty 1.0 \<br />
--load-mode mlock --no-warmup \<br />
--cache-ram 0 \<br />
--reasoning-preserve</p>
</blockquote>
<p>安装LLAMA.CPP的分支FORK<br />
编译 fork（若已编译可跳过）<br />
cd /home/yblgt<br />
git clone <a href="https://github.com/PrismML-Eng/llama.cpp">https://github.com/PrismML-Eng/llama.cpp</a> hll<br />
cd /home/yblgt/hll<br />
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=75<br />
cmake --build build -j$(nproc)</p>
<h1>2. 单次验证</h1>
<p>/home/yblgt/hll/build/bin/llama-cli \<br />
-m /data/models/bonsai-27b/Ternary-Bonsai-2-27B-PQ2_0.gguf \<br />
-ngl 99 -fa on -c 8192 \<br />
--temp 1.0 --top-p 0.95 --top-k 20 \<br />
-p &quot;你好&quot; -n 64</p>]]></description>
    <pubDate>Fri, 25 Sep 2026 08:59:06 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1618</guid>
</item>
<item>
    <title>LLAMA.CPP V0.5运行qwen3.8-27b较好的参数（输出平均34token/s）</title>
    <link>http://www.yblgt.com/?post=1617</link>
    <description><![CDATA[<p>注:256K肯定OOM,100K没问题，内存占用81，上下文还能上升一点，没时间 试了<br />
./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  --no-warmup   --prio 3  --cache-ram 0  --top-p 0.8  --top-k 20  --presence-penalty 1.0  --no-reasoning-preserve</p>]]></description>
    <pubDate>Thu, 24 Sep 2026 21:11:56 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1617</guid>
</item>
<item>
    <title>最新投入使用的模型调用命令（2026-9-23）</title>
    <link>http://www.yblgt.com/?post=1616</link>
    <description><![CDATA[<p>./build/bin/llama-server \<br />
-m /data/models/is-qwen3.8-35b/Qwen3.8-35B-A3B-Distill.APEX-I-MiniPlus-V2.1-Abliterated.gguf \<br />
--port 8000 --host 0.0.0.0 \<br />
-t 12 --threads-batch 12 \<br />
--n-gpu-layers 99 \<br />
-c 204800 \<br />
--batch-size 1024 --ubatch-size 512 \<br />
--flash-attn on --cont-batching \<br />
--cache-type-k q4_0 --cache-type-v q4_0 \<br />
--parallel 1 \<br />
--temp 0.2 \<br />
--no-warmup \<br />
--cache-ram 0 \<br />
--top-p 0.8 --top-k 20 --presence-penalty 1.0 \<br />
--reasoning-preserve</p>]]></description>
    <pubDate>Wed, 23 Sep 2026 13:01:16 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1616</guid>
</item>
<item>
    <title>WORKBUDDY,TRAE搜索资料模板</title>
    <link>http://www.yblgt.com/?post=1615</link>
    <description><![CDATA[<p>检索主题：<XXXXXX> </p>
<p>要求： </p>
<ol>
<li>至少覆盖 8 个独立来源，逐个列出链接 </li>
<li>从以下角度分别检索：官方/政策、行业媒体、企业公开信息、技术社区 </li>
<li>优先权威源（gov.cn、行业协会、上市公司公告），自媒体内容需标注 </li>
<li>时间范围：近12 个月 </li>
<li>关键数据标注来源；多源冲突时单独列出，不要取平均值 </li>
<li>最后给我一份&quot;信息缺口&quot;清单：哪些点你没找到可靠来源</li>
</ol>]]></description>
    <pubDate>Mon, 14 Sep 2026 22:44:25 +0800</pubDate>
    <dc:creator>一把老骨头</dc:creator>
    <guid>http://www.yblgt.com/?post=1615</guid>
</item>
<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>
</channel>
</rss>