本地运行Fable 5增强版Gemma 4

在Fable 5和Mythos 5被关闭后,开源开发者开始尝试使用高质量合成编码和智能体数据训练的较小本地模型。Fable 5增强版Gemma 4就是其中一个例子。

它是基于Gemma 4 12B的微调模型,使用Fable 5和Composer 2.5生成的数据集进行训练。目标是将有用的编码和智能体行为迁移到可以在本地运行的较小模型中。

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

在本指南中,我将向您展示如何使用llama.cpp在RTX 5070 Ti上本地运行Fable 5增强版Gemma 4模型。我们将安装llama.cpp,下载GGUF模型和MTP草稿模型,启动兼容OpenAI的本地服务器,并使用cURL和内置WebUI进行测试。

最后,我们将把模型连接到Pi编码智能体并赋予一个真实的编码任务。

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

Fable 5增强版Gemma 4是一款基于Google Gemma 4 12B指令模型的紧凑型编码和智能体模型。由Yuxin Lu创建,以GGUF格式发布,用于llama.cpp及其他兼容工具的本地使用。

本指南使用v2版本。它延续了v1编码模型,但更加强调智能体技术工作。它不仅生成代码,还能检查文件、推理问题、使用工具、编辑代码、运行命令和验证最终结果。

2、训练数据:Composer 2.5和合成编码数据

原始模型使用Composer 2.5和Fable 5生成的经过验证的Python编码数据进行微调。

主要训练集使用Composer 2.5的推理轨迹和Python任务的代码解决方案,并附有确定性测试。仅保留生成的代码通过测试的样本。

Fable 5用于Composer 2.5失败的较难任务。它生成了新的推理过程和修正后的解决方案,这些方案在加入训练数据前也通过了执行验证。

对于v2版本,模型增加了多步骤终端和工具使用轨迹。这些教会它遵循"阅读-推理-行动-验证"的工作流程,而不是生成一个答案就停止。

V2智能体模型的主要特点:

  • 编码和工具使用:设计用于读取文件、运行命令、编辑代码、调试错误和检查结果。
  • 经过验证的编码基础:训练样本使用通过确定性测试的Python解决方案。
  • 智能体升级:v2增加了终端任务和编码代理的多步骤工具使用工作流。
  • 本地优先部署:推荐的Q4_K_M量化版本约7 GB,在许多现代消费级GPU上都很实用。
  • 思考和结构化工具调用:在llama.cpp中保持启用--jinja。
  • 长上下文支持:最高支持256K上下文。

在本地tau2-bench电信基准测试对比中,v2模型达到了约55%,而基础Gemma 4 12B指令模型仅为约15%。这表明主要改进来自智能体行为。

3、本地安装与使用

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

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

将llama.cpp添加到PATH:

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

验证:llama help

下载GGUF和MTP草稿模型:

pip install -U "huggingface_hub[cli]" hf-xet
MODEL_DIR="/workspace/Fable5-Gemma4"
mkdir -p "$MODEL_DIR"
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"

启动支持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

在RTX 5070 Ti上,256K上下文时模型使用了约11.8 GB的VRAM。

使用cURL和WebUI测试:

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!"}]}'

WebUI访问:http://localhost:8910

连接Pi编码智能体:

curl -fsSL https://pi.dev/install.sh | sh
source ~/.bashrc
pi --version
pi install git:github.com/huggingface/pi-llama
export LLAMA_BASE_URL="http://127.0.0.1:8910/v1"

运行AI编码任务:

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

选择Fable5-Gemma4模型并赋予编码任务。

故障排查:

  1. MTP加载失败:使用llama.cpp构建版本b9553或移除MTP参数。
  2. 原始工具token:添加--jinja标志。
  3. Pi找不到模型:通过curl http://127.0.0.1:8910/v1/models检查服务器。
  4. 无法写入文件:确保在可写目录中。
  5. 输出重复:添加--repeat-penalty 1.1
  6. 内存不足:降低--ctx-size 32768或禁用MTP。
  7. 多步骤失败:将任务拆分为更小的步骤。

4、结束语

该模型可以生成精美的代码和出色的单轮输出,但其实际的智能体表现并不稳定。对于可靠的多步骤编码智能体任务,在我的测试中,像Qwen3.6 27B这样更大的模型表现更好。这个模型适合本地实验和私有代码生成,但在生产级的智能体工作流中尚不可靠。


原文链接: How to Run Fable 5-Enhanced Gemma 4 Locally

汇智网翻译整理,转载请标明出处