跳至内容

如何在本地运行 Fable 5 增强版 Gemma 4

了解如何在 RTX 5070 Ti 上使用预构建的 llama.cpp 二进制文件本地运行 Fable 5 增强版 Gemma 4,测试 MTP 推测解码,将 Pi 接入以进行私有 AI 编码代理工作流,并排查常见安装问题。
已更新 2026年10月6日  · 12分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

在 Fable 5 和 Mythos 5 停止服务后,开源开发者开始尝试在本地运行更小的模型,这些模型使用高质量的合成编程与代理数据进行训练。Fable 5 增强版 Gemma 4 就是一个例子。

它是基于 Gemma 4 12B 的微调模型,训练数据来自 Fable 5 和 Composer 2.5 生成的数据集。目标是将有用的编程与代理行为迁移到可在本地运行的更小模型中。

其训练重点在于实用工作流,例如理解任务、读取文件、使用工具、编辑代码、运行命令以及验证最终结果。

在本指南中,我将向您展示如何在 RTX 5070 Ti 上使用 llama.cpp 本地运行 Fable 5 增强版 Gemma 4 模型。

我们将安装 llama.cpp,下载 GGUF 模型和 MTP 草稿模型,启动一个兼容 OpenAI 的本地服务器,并使用 cURL 和内置 WebUI 进行测试。

最后,我们会将模型连接到 Pi Coding Agent,并交给它一个真实的编码任务。核心问题在于,这个紧凑的 12B 模型能否提供有用的编码代理行为,并与更大的本地模型(如 Qwen 3.6 27B 或 Gemma 4 31B)竞争。

什么是 Fable 5 增强版 Gemma 4 12B?

Fable 5 增强版 Gemma 4 是一款基于 Google Gemma 4 12B 指令模型的紧凑型编程与代理模型。它由 Yuxin Lu 创建,并以 GGUF 格式发布,便于在 llama.cpp 及其他兼容工具中本地使用。

yuxinlu1 在 Hugging Face 上的个人资料

来源: yuxinlu1(Yuxin Lu) 

本指南使用的是 v2 版本。它延续了 v1 的编程能力,但更侧重于代理式技术工作。

它并非只生成代码,而是被设计为可以检查文件、进行推理、使用工具、编辑代码、运行命令并验证最终结果。

训练数据:Composer 2.5 与合成编程

原始模型在由 Composer 2.5 和 Fable 5 生成的、经验证的 Python 编程数据上进行微调。

主要训练集使用 Composer 2.5 的推理轨迹和针对具有确定性测试的 Python 任务的代码解法。仅保留通过测试的样例。

对于 Composer 2.5 失败的较难任务,则使用 Fable 5 生成新的推理过程与修正后的解法,并在执行验证通过后纳入训练数据。

在 v2 中,模型加入了多步终端与工具使用轨迹。这让模型学习按“读取、推理、行动、验证”的流程工作,而不是给出一个答案后就停止。

在 Fable 5 不再可用后,一些缺失的 Fable 5 风格推理轨迹使用 Opus 4.8 重建。

V2 代理模型的主要特性

  • 编程与工具使用: 旨在读取文件、运行命令、编辑代码、调试错误并检查结果。
  • 经验证的编程基础: 训练样例使用通过确定性测试的 Python 解法。
  • 代理能力升级: v2 为终端任务与编码代理加入多步工具使用流程。
  • 本地优先部署: 推荐的 Q4_K_M 量化约 7 GB,可在许多现代消费级 GPU 上实用运行。
  • 思考与结构化工具调用: 在 llama.cpp 中保持启用 --jinja,以便模型使用 Gemma 4 设计的聊天模板与工具调用格式。
  • 长上下文支持: 模型支持最高 256K 上下文,但实际上限取决于可用显存、KV 缓存设置以及所选量化方式。

与基础版 Gemma 4 的性能对比

在本地 tau2-bench telecom 对比中,v2 模型达到了约 55%,而基础 Gemma 4 12B 指令模型约为 15%。

这表明主要提升来自代理行为。微调后的模型更擅长检查任务、采取下一步行动、使用工具并验证结果,而不是在首次回复后就停止。

步骤 1:通过 cURL 在 Linux 上安装 llama.cpp

这是在 Linux 机器上安装 llama.cpp 的最快、最简单方法。安装器会下载预构建的二进制文件并为您完成设置,而无需克隆仓库并从源代码编译。

在终端中运行以下命令:

curl -LsSf https://llama.app/install.sh | sh

几秒钟内,安装器会下载 llama.cpp 二进制文件并完成设置。

使用预构建二进制文件安装 llama.cpp

接着,将 llama.cpp 添加到您的 PATH,这样即便重启终端,您也能在任意目录运行 llama 命令:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

最后,验证安装是否成功:

llama help

现在您应该能看到可用的 llama.cpp 命令。

测试 llama.cpp 的 help 命令

步骤 2:下载 Gemma 4 的 GGUF 与 MTP 草稿模型

接着,安装 Hugging Face CLI 与 hf-xet。这可以让您直接从 Hugging Face 下载模型文件,包括使用 Xet 存储大文件的仓库。

pip install -U "huggingface_hub[cli]" hf-xet 

为模型文件创建一个目录:

MODEL_DIR="/workspace/Fable5-Gemma4"
mkdir -p "$MODEL_DIR" 

启用更快的 Xet 下载,然后仅下载本指南所需的文件:

export HF_XET_HIGH_PERFORMANCE=1


hf download \
  yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF \
  --include "gemma4-v2-Q4_K_M.gguf" \
  --include "MTP/gemma-4-12B-it-MTP-Q8_0.gguf" \
  --local-dir "$MODEL_DIR"

下载仓库:yuxinlu1/gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2-GGUF

将会下载两个文件:

  • gemma4-v2-Q4_K_M.gguf:Fable 5 增强版 Gemma 4 的主模型。
  • MTP/gemma-4-12B-it-MTP-Q8_0.gguf:稍后用于 MTP 推测解码的草稿模型。

Q4_K_M 模型约 7 GB。下载时间取决于您的网络连接,但使用 Xet 能提升大模型文件的传输性能。

下载完成后,文件将存放在:

/workspace/Fable5-Gemma4

步骤 3:使用 MTP 推测解码启动本地 AI 服务器

现在,使用主模型与 MTP 草稿模型启动本地服务器:

MODEL_DIR="/workspace/Fable5-Gemma4"

llama serve \
  --model "$MODEL_DIR/gemma4-v2-Q4_K_M.gguf" \
  --alias Fable5-Gemma4 \
  --model-draft "$MODEL_DIR/MTP/gemma-4-12B-it-MTP-Q8_0.gguf" \
  --spec-type draft-mtp \
  --spec-draft-n-max 2 \
  -ngl 99 \
  -ngld 99 \
  --ctx-size 262144 \
  --parallel 1 \
  --cache-type-k q8_0 \
  --cache-type-v q8_0 \
  --flash-attn on \
  --jinja \
  --temp 1.0 \
  --top-p 0.95 \
  --top-k 64 \
  --repeat-penalty 1.1 \
  --host 0.0.0.0 \
  --port 8910

本地运行的 Fable 5 增强版编码模型

--model-draft 参数用于加载 MTP 草稿模型。

MTP 意为多 Token 预测。较小的草稿模型会先预测接下来的少量 token,主模型再并行验证。这样可以在不改变主模型角色的前提下提升生成速度。

--spec-type draft-mtp 启用该 MTP 推测解码方案。--spec-draft-n-max 2 允许草稿模型一次最多提出两个 token。由于更大的值不一定带来速度提升,2 是一个合理的起点。

-ngl 99 将主模型迁移到 GPU,-ngld 99 则对 MTP 草稿模型执行相同操作。值 99 表示尽可能卸载全部可用层到 GPU。

--ctx-size 262144 设置最大 256K token 的上下文窗口。这对大型代码库与长时间终端会话很有用,但也需要更多显存。--parallel 1 将全部上下文保留给一个活动请求,而不是在多用户间分配。

Q8 KV 缓存设置可降低长上下文窗口所需的内存。--flash-attn on 有助于提升注意力计算效率,尤其在长提示词情况下。

请保持启用 --jinja。它会应用模型内置的聊天模板,从而正确格式化提示、推理与工具调用。

其余采样设置用于控制模型的文本生成方式。--temp 1.0、--top-p 0.95 与 --top-k 64 允许更丰富的回复,而 --repeat-penalty 1.1 有助于减少重复文本。

服务器加载完成后,打开 WebUI:

http://localhost:8910 

您也可以在另一个终端查看 GPU 使用情况:

nvidia-smi

加载 gemma-4-12B-agentic-fable5-composer2.5-v2-3.5x-tau2 后的 GPU 统计信息

在我的 RTX 5070 Ti 上,使用 256K 上下文配置时,模型约占用 11.8 GB 显存,仍有 4 GB 以上可用。

您的内存占用可能会因 llama.cpp 构建版本、GPU 驱动与上下文设置不同而变化。

步骤 4:使用 cURL 与 WebUI 测试 Fable 5 增强版 Gemma 4

保持运行 llama serve 的终端不关闭,然后打开第三个终端测试本地 API。

curl http://127.0.0.1:8910/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Fable5-Gemma4",
    "max_tokens": 512,
    "messages": [
      {
        "role": "user",
        "content": "Create a simple Python script that prints Hello, I am running locally! "
      }
    ]
  }'

响应应包含模型生成的文本以及其思维输出。在此测试中,模型返回如下 Python 代码:

print("Hello, I am running locally!")

JSON 响应确认本地服务器工作正常。在我的快速测试中,模型生成速度约为 每秒 54 个 token。

您也可以使用内置聊天界面。在浏览器中打开以下地址:

http://localhost:8910

WebUI 的使用就像普通聊天应用。选择 Fable5-Gemma4 模型,编写提示并发送给本地服务器。

在 WebUI 中测试 Fable 5 增强版 Gemma 4 模型

对于更大的编码测试,使用以下提示:

Create a calming, premium spa treatment center website in one self-contained HTML file 
with all CSS and JavaScript included inline, elegant booking CTAs, treatment packages, 
therapist profiles, testimonials, and high-quality spa imagery.

在 WebUI 中测试 Fable 5 增强版 Gemma 4 模型

对于这个较长的 HTML 生成任务,我看到的速度大约为 每秒 66 到 70 个 token。较长的编码任务有时能带来更好的推测解码性能,因为模型会生成更连续、更可预测的代码 token 序列。

下面第一个结果在将推理设置为 Medium 时生成。它创建了一个干净的水疗落地页,采用极简布局、导航链接和醒目的预订 CTA。

Fable 5 增强版 Gemma 4 模型生成的网页

第二个结果是在不启用推理的情况下生成的。它呈现了不同的视觉方向,标题更大,整体更偏编辑型的落地页风格。

Fable 5 增强版 Gemma 4 模型生成的网页

两种结果都较为精致,但在此次测试中,启用推理的版本给出了更有结构的结果。

token 速度会因提示长度、输出风格、GPU 负载以及主模型对 MTP 草稿 token 的接受频率而变化。

步骤 5:将 Pi Coding Agent 连接到本地 llama.cpp 服务器

Pi 是一个轻量级终端编码代理。它可以连接到本地的 Fable 5 增强版 Gemma 4 服务器,读取文件、编辑代码、运行命令并完成编码任务。

打开第四个终端并安装 Pi:

curl -fsSL https://pi.dev/install.sh | sh

安装 Pi Coding Agent安装程序可能会提示安装 Node.js。请接受提示并等待安装完成。

重新加载您的终端配置,然后确认 Pi 可用:

source ~/.bashrc
pi --version

接着,安装 pi-llama 插件:

pi install git:github.com/huggingface/pi-llama

该插件会将 Pi 连接到正在运行的 llama.cpp 服务器,并自动发现可用的本地模型。

默认情况下,插件会在端口 8080 查找 llama.cpp。我们的服务器使用 8910 端口,因此在启动 Pi 之前请设置正确的本地 API 地址:

export LLAMA_BASE_URL="http://127.0.0.1:8910/v1"

步骤 6:使用 Pi 与 Fable 5 增强版 Gemma 4 运行 AI 编码任务

创建新项目目录、初始化 Git 并启动 Pi:

mkdir -p /workspace/data-app
cd /workspace/data-app
git init
pi

在 Pi 中输入:

/model

选择“Fable5-Gemma4”模型。

在 Pi Coding Agent 中选择本地 AI 模型

然后,给代理一个实用的编码任务:

Create a simple data analytics dashboard using Streamlit that lets users 
upload a CSV file, view the data, and explore clear visualizations. 
Include a sample CSV file and test the full app to make sure it works correctly.

Pi Coding 代理使用 write 工具

模型最终创建了一个可用的 Streamlit 仪表盘,支持 CSV 上传与可视化。

不过,这个过程远比预期更困难。

由 Fable 5 增强版编码模型生成的 Streamlit 仪表盘

它在工具调用、终端命令与项目文件写入方面反复遇到困难。

它常常在规划好下一步之后无法完成行动,因此我不得不不断引导它处理错误并重试命令。

我无法确认问题是否来自模型、Pi 集成、本地权限,或这些因素的组合。

大约重试了 20 分钟后,它给出了可用结果。对于一个相对简单的 Streamlit 任务,这样的效率显得过慢且不稳定。

在我另一次测试中,使用 GLM 5.2 完成同一任务大约只用了一分钟。

将一个 12B 的本地模型与更大的前沿模型比较并不完全公平。

不过,差距依然明显。

Fable 5 增强版 Gemma 4 能生成精致的代码与强劲的单轮输出,但在此次测试中的真实代理表现并不稳定。对于本应由有能力的编码代理快速且独立完成的任务,它需要过多干预。

我的结论是,该模型适合用于本地试验、私有代码生成与轻量级工作流。

但基于此次测试,我暂时不会将其用于需要可靠性的多步编码代理任务。

Fable 5 与 llama.cpp 安装问题排查

虽然本指南提供了简便的模型测试方法,但您仍可能因硬件、本地环境与 llama.cpp 构建差异而遇到问题。

1. MTP 草稿模型加载失败

如果服务器在加载 MTP 草稿模型时崩溃,并显示如下错误:

invalid vector subscript

问题可能出在您的 llama.cpp 构建版本,而非模型文件。

模型仓库报告称,llama.cpp 构建 b9553 可与 Gemma 4 的 MTP 草稿模型配合使用,而较新的构建如 b9702 与 b9717 可能在加载草稿模型时失败。

快速的回退方案是从服务器命令中移除 MTP 参数,只运行主模型。模型仍能正常工作,但生成速度可能会更慢。

移除以下行:

--model-draft "$MODEL_DIR/MTP/gemma-4-12B-it-MTP-Q8_0.gguf"
--spec-type draft-mtp
--spec-draft-n-max 2
-ngld 99

2. 输出中出现原始工具标记

如果在响应中看到 <|tool_call> 或 <|channel> 等标记,说明客户端没有正确应用 Gemma 4 的原生工具调用格式。

确保服务器命令中包含:

--jinja

然后重启服务器。这将为模型的推理与结构化工具调用应用正确的聊天模板。

3. Pi 找不到本地模型

首先,检查 llama.cpp 服务器是否仍在运行:

curl http://127.0.0.1:8910/v1/models

您应当能在响应中看到 Fable5-Gemma4。

然后,确保 Pi 指向的是 8910 端口,而不是 llama.cpp 默认的 8080:

export LLAMA_BASE_URL="http://127.0.0.1:8910/v1"
pi

请在同一终端会话中运行这两个命令。

4. Pi 无法写入或编辑文件

在可写的项目目录中启动 Pi:

cd /workspace/data-app
pi

您可以测试当前目录是否允许创建文件:

touch write-test.txt && rm write-test.txt

如果此命令失败,问题在于工作区权限,而非模型本身。请切换到可写目录后再启动 Pi。

5. 输出重复或乱码

如果模型开始重复文本、数字或符号,请检查服务器命令中的采样设置。

使用以下取值:

--temp 1.0 \
--top-p 0.95 \
--top-k 64 \
--repeat-penalty 1.1

重复惩罚尤为重要。没有它,模型可能会产生重复或乱码输出。

6. 内存不足错误

256K 上下文窗口需要较大的 KV 缓存。如果服务器显存不足,请先减小上下文大小:

--ctx-size 32768

您也可以禁用 MTP 草稿模型以释放更多显存。使用以下命令查看当前 GPU 显存占用:

nvidia-smi

7. 代理在多步任务中持续失败

模型可以生成高质量代码,但在未经干预的情况下仍可能难以完成较长任务。在我的测试中,它有时会规划出正确行动,但在运行命令、写入文件或出错后继续执行时失败。

为获得更好的结果,请将大型请求拆分为小任务:

  1. 创建项目文件与示例 CSV
  2. 构建 Streamlit 界面
  3. 添加图表与 CSV 上传支持
  4. 运行应用并修复错误

这样可以让模型在每一步拥有更小的目标,并更容易定位故障来自模型、Pi、服务器还是工作区权限。

总结

就我的测试而言,我认为围绕该模型的热度并不完全合理。无论是否启用 MTP,在通用任务中速度几乎相同;在编码任务中,MTP 确实有所帮助,我看到大约 20% 到 30% 的提速。这有用,但并不能解决更大的问题:可靠性。

我也在 WebUI 中测试了该模型。

有时在为某个文件写代码时,它会莫名其妙地停下。当我让它继续时,它会把续写内容作为下一条聊天回复的文本输出,而不是继续写入文件。

我也注意到,启用“思考”有时会让输出更差,这有些出乎意料。

我还在 Claude Code 中测试过,体验更令人挫败。

该模型不断创建多余文件、临时文件和其他与简单项目无关的内容。它最终完成了任务,但过程需要过多引导,耗时过长。

我知道将一个 12B 的本地模型与 GPT-5.5 或 GLM 5.2 比较并不完全公平。但即便与更小的本地模型相比,我也并不惊艳。

就我的经验而言,Qwen3.6 27B 在编程与代理任务上要出色得多,尽管它更大。

目前,我更将此模型视为一个有趣的实验,而非可靠的编码代理。

我对同一创作者即将推出的 Fable 调优版 Qwen3.6 27B 更感兴趣。我也看到其他一些开源贡献者发布了类似的蒸馏编码模型,但截至目前,我尚未在真实的编码代理任务上看到显著改进。

该模型可以生成好看的代码和精致的单轮输出。但当您要求它像代理一样工作、使用工具、创建文件、修复错误并验证结果时,它的表现仍不稳定,使用起来令人沮丧。

FAQs

我可以将 Fable 5 增强版 Gemma 4 用于商业项目吗?

可以。与更为严格的 Gemma 1、2 和 3 的条款不同,Google 将基础版 Gemma 4 模型以 Apache 2.0 许可证发布。由于本微调模型建立在该基础之上,它继承了 Apache 2.0 许可证,这意味着可完全免费用于商业应用、修改与再分发。

我可以用 Ollama 或 LM Studio 替代 llama.cpp 吗?

可以。GGUF 文件与 Ollama、LM Studio、Jan 以及其他本地 AI 客户端完全兼容。不过,由于 Gemma 4 使用了新的 gemma4_unified 架构,您必须确保客户端软件已更新至最新版本;旧版本会报错并无法加载权重。

该模型是否只能写 Python?

虽然它可以输出 HTML、CSS、JavaScript 等网页语言(如水疗网站测试所示),但其核心训练集几乎完全由 可验证的 Python 算法任务 组成。因此,相比其他语言,它在 Python 上的深度推理能力、边界情况检测与工具使用可靠性显著更强。

该模型是否包含内置的安全拒绝?

很少会拒绝。由于其在 Composer 2.5 与 Fable 5 的任务导向合成推理轨迹上进行了大量微调,未采用标准的安全回避策略,因此相比基础版 Gemma 4 模型,它更少拒绝提示。它并未进行安全对齐,这意味着如果要将此模型封装进生产应用,开发者需要自行实现防护措施。


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题
人工智能
大语言模型

Top DataCamp Courses

课程

高级 AI 辅助开发

1 小时 30 分钟
1.8K
学习将 AI 用作资深工程伙伴,用于代码分析、性能优化、安全和软件架构决策。
查看详情Right Arrow
开始课程
查看更多Right Arrow