[ISSUE]: TextGen Fails to load GGUF models on multiple browsers, different textgen versions.

用户在 Ubuntu 24.04.4 LTS 系统上使用 TextGen WebUI(版本 4.6.2, 4.5.2, 4.7, 4.7.1, 4.7.3),尝试加载 GGUF 模型(如 gemma-3-4b-it-Q4_K_S.gguf 和 mmproj-gemma-3-4b-it-F16.ggu

[ISSUE]: TextGen Fails to load GGUF models on multiple browsers, different textgen versions.

[ISSUE]: TextGen Fails to load GGUF models on multiple browsers, different textgen versions.

快速结论:在 Linux 系统上使用 TextGen WebUI 桌面版加载 GGUF 模型时,遇到“Failed to load … .gguf”错误,并伴随 SUID sandbox 或 exit code -11 崩溃。优先排查:确认 CUDA 驱动版本与 TextGen 构建版本匹配,并检查 Electron sandbox 权限问题。

问题场景

用户在 Ubuntu 24.04.4 LTS 系统上使用 TextGen WebUI(版本 4.6.2, 4.5.2, 4.7, 4.7.1, 4.7.3),尝试加载 GGUF 模型(如 gemma-3-4b-it-Q4_K_S.gguf 和 mmproj-gemma-3-4b-it-F16.gguf)。显卡为 NVIDIA GeForce RTX 2060(6GB VRAM),驱动版本 580.142,CUDA 版本 13.0。无论使用桌面版(electron)还是命令行的 textgen 脚本,均无法加载模型。用户也尝试了 CUDA 13.1 和 12.4 版本构建,同样失败。

报错原文

Failed to load gemma-3-4b-it-Q4_K_S.gguf.
[88464:0502/201036.132286:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:166] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/user1/Development/Apps/textgen/app/electron/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap (core dumped)
09:29:16-072588 ERROR    Error loading the model with llama.cpp: Server process 
                         terminated unexpectedly with exit code: -11

原因分析

主要问题是多方面的:
1. CUDA 驱动版本不匹配:TextGen 的 CUDA 13.1 构建不能在 CUDA 13.0 驱动上运行。需要匹配的构建版本(例如使用 CUDA 12.4 构建)。
2. Electron sandbox 权限问题:桌面版(electron)依赖于 chrome-sandbox 二进制文件,该文件需要 root 所有权和 4755 权限。当软件包被解压到非 root 用户的家目录时,权限不满足,导致 SUID sandbox 错误。
3. 模型加载崩溃(exit code -11):这是底层 llama.cpp 库的 SIGSEGV(段错误),可能是由于 GPU 内存不足或配置问题(如 gpu_layers=auto 分配不当),尤其是在 6GB VRAM 的 RTX 2060 上。
4. 版本特定的 bug:标签中提到版本 4.7 在 Linux 上有 bug,并在 4.7.1 中修复。但即使使用 4.7.3,问题仍然存在。

环境排查

  • 确认操作系统及版本:Ubuntu 24.04.4 LTS
  • 确认 GPU 型号和 VRAM:NVIDIA GeForce RTX 2060 (6GB)
  • 确认 NVIDIA 驱动版本:Driver v.580.142
  • 确认 CUDA 版本:v.13.0(通过 nvidia-smi 查看)
  • 确认 TextGen 构建版本(Linux portable tar.gz 包)与 CUDA 版本匹配:CUDA 13.1 构建需要驱动 >= 13.1
  • 确认 Electron 沙盒权限:chrome-sandbox 是否 owned by root, mode 4755
  • 确认 Python 环境:使用 uv venv 还是 python -m venv,Python 版本 3.12 或 3.13
  • 确认模型文件路径和完整性:gguf 文件是否未损坏
  • 确认 llama.cpp 后端:检查 libggml-cuda.so 是否被加载

解决步骤

  1. 优先尝试:使用与 CUDA 驱动版本匹配的 TextGen 构建。
    下载并使用 CUDA 12.4 版本的构建包(例如 textgen-portable-4.7.1-linux-cuda12.4.tar.gz),而不是 CUDA 13.1 版本。CUDA 13.1 构建需要 13.1 或更高版本的驱动。
  2. 修复 Electron sandbox 权限(如使用桌面版)。
    a. 进入 app/electron 目录(根据安装路径,可能是 /path/to/textgen/app/electron/)。
    b. 以 root 权限执行:
    sudo chown root:root chrome-sandbox
    sudo chmod 4755 chrome-sandbox
    c. 或者,运行时添加 --no-sandbox 参数(不推荐用于生产环境)。
    d. 或者将 TextGen 整个文件夹移动到 root 用户拥有的目录下(如 /opt/)。
  3. 尝试更新到最新版本(如 v4.7.3 或更新)。
    Issue 提交者(oobabooga)指出 v4.7.3 包含了修复(commit d764aaf),用户已验证 v4.7.3 可以启动 GUI,但模型加载仍失败。
  4. 调整模型加载参数,减少 GPU 内存压力。
    在 TextGen GUI 中,尝试手动设置 gpu_layers 为一个较小的值(例如 10-20),而不是使用 auto。或者尝试使用更小的模型(如 Q4_K_M 而不是 Q4_K_S),或在 CPU 上加载(设置 gpu_layers=0)。
  5. 检查模型文件完整性。
    重新下载 gguf 模型文件,确保它们没有被损坏。也可以尝试使用已知可用的 GGUF 模型(如 LLaMA 或 Mistral 系列的小模型)作为测试。
  6. 如果以上均无效,尝试纯 CPU 模式运行。
    卸载或重命名 llama-cpp-python 的 CUDA 构建,强制使用 CPU 后端,测试是否是 CUDA 相关崩溃。

验证方法

启动 TextGen WebUI 或桌面版,从界面中加载一个 GGUF 模型。如果模型成功加载,界面显示正常,没有“Failed to load”错误,且终端无 exit code -11 或其他崩溃信息,则表示问题已解决。可以多次切换模型(不同大小)来验证稳定性。

参考来源

oobabooga/textgen #7530

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8664

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注