Kihagyás

xLAM Function Calling Fine-tuning — HF Cookbook

Forrás: HuggingFace Cookbook (Behrooz Azarkhalili) Dátum: 2026-06-10 Notebook: huggingface/cookbook/notebooks/en/function_calling_fine_tuning_llms_on_xlam.ipynb


Miről szól?

A HuggingFace Cookbook egy gyakorlatias tutorial, amely bemutatja, hogyan lehet function calling képességgel fine-tuneolni nyílt LLM-eket a Salesforce xLAM dataset és a QLoRA (4-bit + LoRA adapter) kombinációjával. Támogatott modellek: Llama 3, Qwen2, Mistral, Gemma, Phi-3.

Mi az a Function Calling?

A function calling lehetővé teszi, hogy az LLM ne csak szöveget generáljon, hanem strukturált JSON hívásokat adjon vissza külső eszközökre (search, calculator, payment API, adatbázis). Ez az agentic AI alapja: a finomhangolt modell megbízhatóan, prediktabilis formátumban hív toolokat, amit egy orchestrator parse-ol és végrehajt.

Pipeline áttekintés

  1. xLAM dataset betöltés (Salesforce, 60K+ function calling példa)
  2. ChatML / Llama-3 formátumra alakítás (system + user + assistant role-ok, tools JSON listával)
  3. QLoRA setup: 4-bit NF4 quantization + LoRA adapterek (r=16, alpha=16, dropout=0.05)
  4. Hardware auto-detect: bf16 + FlashAttention 2 (H100/A100) VAGY fp16 + SDPA fallback
  5. TRL SFT trainer — supervised fine-tuning
  6. Evaluation — teszt promptokkal JSON function hívás generálás

Kulcs komponensek

ModelConfig + TrainingConfig (dataclass)

@dataclass
class TrainingConfig:
    batch_size: int = 16
    gradient_accumulation_steps: int = 8
    learning_rate: float = 1e-4
    max_steps: int = 1000
    lora_r: int = 16
    lora_alpha: int = 16

Multi-modell támogatás: a create_training_config() automatikusan felismeri a modell típusát (Llama, Qwen, Mistral, Gemma, Phi) és beállítja a tokenizer specifikus dolgokat (pad token, eos token, padding side).

BitsAndBytesConfig (4-bit QLoRA)

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_use_double_quant=True,
)

Eredmény: 16-24GB VRAM elég egy 7B modell fine-tuneolásához, szemben a teljes fp16-tal igényelt ~28GB+ memóriával.

xLAM Formatter (ChatML)

f"""<|begin_of_text|>
<|start_header_id|>system<|end_header_id|>
You are a helpful assistant with access to functions. Use them if required.
{json.dumps(tools)}<|eot_id|>
<|start_header_id|>user<|end_header_id|>
{query}<|eot_id|>
<|start_header_id|>assistant<|end_header_id|>
{json.dumps(answers)}<|eot_id|>"""

A tanító példa: system prompt (tools lista) + user query + assistant function hívás JSON-ban. A modell megtanulja, hogy a tools listából válasszon, és JSON-struktúrában adja vissza a hívandó függvényt + paramétereket.

Hardware Requirements

  • Minimum: 16GB VRAM (kisebb modellek: 0.5B–3B)
  • Ajánlott: 24GB VRAM (7B–8B modellek)
  • Ideális: NVIDIA H100 NVL (100GB) — a tutorial ezen lett tesztelve
  • RAM: 32GB+
  • Storage: 50GB+

Miért fontos?

  • Open-source function calling: nem kell OpenAI/Anthropic API-ra támaszkodni, saját finomhangolt modell futtatható lokálisan
  • Privacy: érzékeny tool hívások (HR, finance, egészségügy) nem mennek külső API-ba
  • Költség: egyszeri fine-tune költség vs. folyamatos API díjak
  • Specializáció: domain-specifikus tool-ok (pl. céges belső API-k) betaníthatók

Kapcsolódó topicok

  • ai automation — AI és automatizáció
  • nostr ecosystem — Nostr ökoszisztéma (Nostr ügynökök is használhatnak function calling-ot)
Vissza a tetejére