Skip to content

Latest commit

 

History

History
184 lines (128 loc) · 9 KB

faq.md

File metadata and controls

184 lines (128 loc) · 9 KB

FAQ

Q1: 这是不是 llama.cpp 的封装?

不是“套壳 demo”。InferLoop 自有 HTTP、调度、admission、取消与内存账本;CPU/GPU 生产路径 与体验版复用同一套请求生命周期。

7B Q4 CPU 体验镜像默认走 LLAMA backend:InferLoop 壳 + research libllama/libggml 做图执行,以便与 Ollama 同 GGUF 公平对标。依赖闭包仍可自查(见 README「自己验证」); 这不等于把产品定义成 llama.cpp 发行版。

Q2: 速度到底怎么样?

当前默认体验镜像为 7B Q4 LLAMA(HTTP 流式口径,见 B);0.5B F16 为官方资格包 (推理层固定 workload 口径,见 A);Jetson 是另一条商用发布线(见 C)。 三条口径,不要混比:

A. 0.5B CPU 体验 · 推理层固定 workload(12 GiB / 8 vCPU,多线程上线前采集):

场景 实测
单实例 32.94 token/s
4 实例并发(聚合) 106.59 token/s
并发时单实例 26.65 token/s
并发扩展效率 81%

这是测试内 prefill/decode token-step 摊薄口径,不是 HTTP 生成阶段 tok/s。

B. 7B Q4 CPU · HTTP 流式(最终复跑 2026-08-07),同 16 GiB / 8 vCPU + --cpuset-cpus=0-15、同 GGUF、公平 ChatML(prompt_eval_count=25)、强制 CPU、 逐轮 nonce 打破 KV 缓存,vs Ollama 0.11.4:

InferLoop (LLAMA) Ollama 0.11.4
TTFT median 395.4 ms 476.3 ms
decode median 9.75 tok/s 9.87 tok/s

TTFT 领先 ~17%,decode 同包络基本持平(9.75 vs 9.87 tok/s,跑动间有波动; ggml b9030 hybrid patch:decode 走经典 vec_dot、prefill 保留 8x8 repack,见 perf_report)。早期同 prompt 复测 Ollama “~144 ms”是跨请求 KV 缓存命中,不是真实 prefill。证据: evidence/20260807-qwen25-7b-q4km-x86_64-docker/comparison/;过程见 perf_report_qwen7b_q4.md。

C. 商用加速卡 · CUDA 后端(框架多后端之一)· Jetson Orin NX 16GB(T806)· Qwen3.5-4B Q8 (MAXN / 918 MHz):

项 实测
Server qual 385/385 PASS
在线文本 TTFT ≈1.37–1.40 s
客户端 ITL avg ≈55.9 ms/token
KQ8Linear 带宽 ~88 GB/s(流上限 91.1 GB/s 的 ~97%)

证据:商用发布线归档(NDA / 演示请联系商务渠道)。末轮 int4+shared 尝试使 decode 变慢 2–8%,已回退。

Q3: 这个版本适合谁?

若你只关心最高 HTTP decode tokens/s:7B 表已给出同包络对照——decode 基本持平、 TTFT 领先约 17%(强制 CPU、同 GGUF);Jetson 商用路径见 Q2-C。

若你的场景是边缘盒子长期无人值守:更应看内存门与失败模式——“偶尔被 OOM killer 杀掉”的代价通常高于“稳定但慢”。本项目先证明可预测性,再追速度。

Q4: 内存不足时会怎样?

在冷启动 / admission 阶段给出精确账目并主动退出。当前 7B Q4 LLAMA 镜像(serve + 4 GiB 预算)的实测日志:

llm_llama_backend.cpp-501 ERROR [llm-backend][llama] memory admission rejected:
  reason=cgroup-limit, modelMB=4466, requiredMB=11044, limitMB=4096

0.5B 资格包(test + 768 MiB 预算)的对应日志:

CPU cold-load memory admission rejected:
  freeMB=764, requiredMB=1267, mappedMB=942, residentWeightMB=942, ...

两种路径退出码都不是 137(0.5B 资格包 exit=1;7B serve 反向门 docker_outer_rc=255 且 docker_oom_killed=false),memory.events 中 oom=0 oom_kill=0——内核 OOM killer 从未介入。这是设计内的失败模式,不是崩溃。

Q5: 你们说的"不 OOM",我怎么验证不是挑好数据说的?

跑 README「自己验证」的反向 OOM 门:当前 7B Q4 用 serve + 4 GiB(4 GiB < 所需 11044 MiB),0.5B 资格包用 test + 768 MiB(768 MiB < 所需 1267 MiB)。预算压到 已知不足的水平,强制服务在真实短缺下暴露行为。另外,memory.events 是内核维护的原始 文件,oom_kill 计数我们无法伪造——这是整条证据链最值得你核对的一环。

Q6: 模型从哪里来?

本仓库不重新分发模型权重。当前 7B Q4 LLAMA 镜像的 models/qwen/model.gguf(Q4_K_M) 由构建从本地缓存烘焙,SHA-256 7376371b…becab76 固化在 manifest;0.5B F16 权重由 scripts/download_model.sh 拉取(download_model_qwen7b_q4.sh 对应 7B GGUF)。 权重由 .gitignore 排除;自行体验请按原始许可证下载对应文件。

Q7: 当前支持文本聊天和流式输出吗?

支持。Qwen2 模型组件已经接通 tokenizer 编码、ChatML 模板与文本还原:

  • 非流式 Chat:HTTP 200,并含 assistant content;
  • SSE Chat:HTTP 200,并含 content delta 与 [DONE];
  • 4 路并发(0.5B):24/24 请求返回 HTTP 200,且真实推理请求扇出到全部 4 个实例。

7B 流式 TTFT / decode 已按方法论对 Ollama 复跑(见 Q2-B)。0.5B 资格包不以 HTTP TTFT 作为发布门。

Q8: 如何修改内存上限?

当前 7B Q4 LLAMA 默认包络为 16 GiB(serve 正向;反向门 4 GiB);0.5B 资格包为 12 GiB(反向门 768 MiB)。修改 --memory 后必须重新执行对应入口复验正向 peak、 memory.events 与退出码。每个新 profile 都是独立的 qualification,不能外推。

Q8b: 应该起多少个推理实例?

用 INFERLOOP_CPU_DEVICE_COUNT 设置。每个实例持有一份完整模型,因此并发数受内存约束:

场景 建议
7B Q4 TTFT 对标 1 实例 + INFERLOOP_CPU_OP_THREADS=8(并行在 llama.cpp n_threads,不是多份权重)
0.5B F16 资格 / 多实例仿真 默认 4 实例 / 12 GiB

增加实例提升的是并发请求数,不是单请求速度。

Q9: 镜像太大了,能瘦身吗?

能。当前 7B Q4 LLAMA 镜像约 4.85 GB,其中约 4.4 GB 是 model.gguf;0.5B 资格包镜像 约 2.08 GB,其中约 943 MB 是未量化 F16 权重——保留 F16 是为了让 HF golden 有意义。 用 scripts/download_model.sh / scripts/download_model_qwen7b_q4.sh 运行时挂载自备权重, 镜像可降到 100 MB 量级。

Q10: 对比测试在哪里?

  • 方法论:comparison_methodology.md
  • 已执行:benchmark/run_qwen7b_comparison.sh(vs Ollama 0.11.4)
  • 仍 NOT-EXECUTED(本 CPU 制品):裸 llama.cpp / vLLM / TRT-LLM
  • Jetson 商用:真机证据在商用发布线归档(NDA / 演示联系商务渠道),不在本仓库

Q11: 容器测试通过,是不是等于我的 Jetson 上也没问题?

不等于——CPU Docker 不能代替 Jetson 真机资格(带宽、功耗、热降频都不同)。

补充事实:商用 CUDA 路径已在 Orin NX 16GB(T806) 上对 Qwen3.5-4B Q8 完成 Server/Agent 资格与热点分析(见 Q2-C)。那是另一条发布线,不是本 CPU 体验镜像的“自动通过”。

Q12: 授权怎么算?

个人非商业用途免费体验。商业部署、OEM/ODM、定制开发与长期支持需授权, 渠道见 README 的「商务与技术支持」。模型权重受原始模型许可证约束,本项目不重新分发。

Q13: 这个速度就是你们产品的水平吗?

不是。本仓库是免费 CPU 体验版,刻意跑在受限条件下(纯 CPU、内存上限、只读根等)。 这里的数字回答“可不可信 / 同包络对照如何”,不是商用加速卡峰值广告。

商用路径在加速卡上跑更大模型;InferLoop 为多后端框架(CUDA / 昇腾 / 海光 DCU,见 Q15), 当前已公布数字仅 CUDA 后端(Jetson T806 的 Qwen3.5-4B Q8,见 Q2-C)。需要演示请走 README 商务渠道。

Q14: 支持信创 / 国产化平台吗?

设计取向上契合:自主可控运行时、资源受限下的确定性行为、可审计依赖闭包。

但必须如实说明:CPU 体验证据来自 x86_64;Jetson(NVIDIA)已有商用真机证据,不等于 麒麟 / 统信 / 龙芯 / 飞腾 / 鲲鹏已实测。昇腾 / 海光 DCU 后端已接入(见 Q15),但真机 资格待目标设备验证,完成前不公布性能数字。国产平台适配在路线图上,未测不宣称支持。

Q15: 支持哪些加速卡?

InferLoop 是多后端推理框架,以下后端均已接入(接入 ≠ 真机资格完成):

后端 状态
CUDA GPU 后端已接入,真机调试与资格已完成(Jetson Orin NX 16GB / Qwen3.5-4B Q8,见 Q2-C)
华为昇腾 NPU 后端已接入(ENGINE_ASCEND),真机资格待目标设备验证
海光 DCU 后端已接入(ENGINE_DCU),真机资格待目标设备验证
CPU 本仓库免费体验版(LLAMA backend + 0.5B 参考算子资格包)

本仓库只分发 CPU 体验镜像。昇腾 / DCU 目标设备真机资格与性能数字完成后会走商用发布线, 需要演示或评估请联系 README 商务渠道。