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¶
- xLAM dataset betöltés (Salesforce, 60K+ function calling példa)
- ChatML / Llama-3 formátumra alakítás (system + user + assistant role-ok, tools JSON listával)
- QLoRA setup: 4-bit NF4 quantization + LoRA adapterek (r=16, alpha=16, dropout=0.05)
- Hardware auto-detect: bf16 + FlashAttention 2 (H100/A100) VAGY fp16 + SDPA fallback
- TRL SFT trainer — supervised fine-tuning
- 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)