GitHub MCP Function-Calling — Gemma 4 E4B(full SFT)

google/gemma-4-E4B-it 為基底,在 Simon-Liu/github-mcp-call-reasoning-1k 上做全參數監督式微調(full-parameter SFT),訓練成會先推理、再正確呼叫 GitHub MCP 工具(function calling)的繁體中文模型。

微調前後成效(held-out 測試集,n=50)

未微調基底 vs 微調後,在相同 held-out 樣本上的工具呼叫正確率:

指標 FT 前 FT 後 提升
有工具呼叫率 86.0% 100.0% +14.0%
函式名正確率 86.0% 100.0% +14.0%
名稱+參數全對率 74.0% 98.0% +24.0%

有工具呼叫率=是否吐出 <tool_call>函式名正確率=function name 正確;名稱+參數全對率=name 與 arguments 皆正確(exact match,最嚴格)。

訓練設定

  • 方法:全參數 SFT(非 LoRA)
  • 基底:google/gemma-4-E4B-it
  • 資料:Simon-Liu/github-mcp-call-reasoning-1k(~1k 筆 GitHub MCP function-calling,繁中推理)
  • epochs 3、effective batch 8、learning rate 1e-5、optimizer adafactor、max length 4096、bf16

使用方式

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model = AutoModelForCausalLM.from_pretrained("Simon-Liu/gemma-4-e4b-github-mcp-sft-it", torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("Simon-Liu/gemma-4-e4b-github-mcp-sft-it")

messages = [
    {"role": "system", "content": "<工具定義,Hermes 風格 JSON>"},
    {"role": "user", "content": "我現在 GitHub 登入的帳號是誰?"},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=512, do_sample=False)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

授權

衍生自 Google Gemma,使用前請遵守 Gemma 使用條款

Downloads last month
5
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Simon-Liu/gemma-4-e4b-github-mcp-sft-it

Finetuned
(215)
this model

Dataset used to train Simon-Liu/gemma-4-e4b-github-mcp-sft-it