Thanush16's picture
Update README.md
11540a6 verified
|
Raw
History Blame Contribute Delete
2.36 kB
---
library_name: peft
license: mit
language:
- en
base_model:
- meta-llama/Llama-3.2-1B-Instruct
tags:
- function-calling
- tool-use
- qlora
- lora
---
# Llama-3.2-1B-Instruct — Function Calling (QLoRA)
A LoRA adapter that teaches Llama-3.2-1B-Instruct to emit well-formed function/tool calls. The base model understands tool-use intent but produces structurally incorrect JSON; this adapter fixes the output format.
## What it does
**Before (base model):**
```json
{"type": "function", "function": "get_weather", "parameters": {"city": "Nagoya", "unit": "celsius"}}
```
**After (with this adapter):**
```json
[{"name": "get_weather", "arguments": {"city": "Nagoya", "unit": "celsius"}}]
```
The base model used `"parameters"` (wrong key) and a flattened structure. The adapter corrects it to the standard `name`/`arguments` format, wrapped in a list.
## How to use
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
base_id = "meta-llama/Llama-3.2-1B-Instruct"
adapter_id = "Thanush16/llama-3.2-1b-function-calling"
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
base = AutoModelForCausalLM.from_pretrained(base_id, quantization_config=bnb_config, device_map="auto")
model = PeftModel.from_pretrained(base, adapter_id)
model.eval()
tokenizer = AutoTokenizer.from_pretrained(adapter_id)
```
Build prompts with `tokenizer.apply_chat_template(messages, tools=tools, add_generation_prompt=True)`.
## Training
- **Base model:** meta-llama/Llama-3.2-1B-Instruct
- **Method:** QLoRA (4-bit base, LoRA rank 16 on attention + MLP layers, ~0.9% of params trained)
- **Dataset:** [Salesforce/xlam-function-calling-60k](https://huggingface.co/datasets/Salesforce/xlam-function-calling-60k), 500-example subset
- **Config:** 2 epochs, effective batch size 16, learning rate 2e-4
- **Hardware:** single free Kaggle T4 GPU
- **Final mean token accuracy:** ~88%
## Limitations
Trained on 500 examples to fix output *format*, not to be a broadly capable tool-use model. It reliably produces well-formed calls but wasn't evaluated for tool-selection accuracy on hard or ambiguous queries. Only the LoRA adapter is released — load it alongside the base model.