--- license: apache-2.0 base_model: unsloth/functiongemma-270m-it tags: - function-calling - tool-use - mobile-actions - gemma - unsloth datasets: - google/mobile-actions language: - en pipeline_tag: text-generation --- ## Model Card This model is fine-tuned version of [google/functiongemma-270m-it](https://huggingface.co/google/functiongemma-270m-it) model for mobile action function calling tasks. ## Intended Use Handles function-calling style mobile actions such as creating calendar events, sending emails, adding contacts, showing maps, managing Wi‑Fi, and toggling the flashlight, based on the `google/mobile-actions` dataset. ## Model Details - **Base Model**: [google/functiongemma-270m-it](https://huggingface.co/google/functiongemma-270m-it) - **Fine-tuning**: SFT with LoRA - **Dataset**: [google/mobile-actions](https://huggingface.co/datasets/google/mobile-actions) - **Params**: ~270M (base) + LoRA merged into final weights ## Quick Start ```bash pip install torch transformers datasets accelerate huggingface_hub ``` ```python import torch from datasets import load_dataset from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer model_id = "dousery/functiongemma-mobile-actions" device = "cuda" if torch.cuda.is_available() else "cpu" model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16 if device == "cuda" else torch.float32, device_map="auto" if device == "cuda" else None, trust_remote_code=True, ).eval() tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) if device == "cpu": model = model.to(device) dataset = load_dataset("google/mobile-actions", split="train") text = tokenizer.apply_chat_template( dataset[0]["messages"][:2], tools=dataset[0]["tools"], tokenize=False, add_generation_prompt=True, ).removeprefix("") inputs = tokenizer(text, return_tensors="pt").to(device) with torch.no_grad(): _ = model.generate( **inputs, max_new_tokens=256, streamer=TextStreamer(tokenizer, skip_prompt=True), top_p=0.95, top_k=64, temperature=1.0, ) ``` ## Training Summary - **Frameworks**: Unsloth + TRL, PyTorch 2.9.1, Transformers 4.57.3 - **Steps**: 100 (SFT with LoRA, then merged) - **Effective Batch Size**: 8 (bs=4, grad accum=2) - **LR / Scheduler**: 2e-4, linear - **LoRA**: r=16, alpha=16, dropout=0, ~3.8M trainable params - **Seq Len**: 4096 - **Hardware**: NVIDIA H100 80GB on Modal - **Final Train Loss**: 0.2408 | **Eval Loss**: ~0.0129 ## Limitations - Trained for only 100 steps; niche mobile-action domain. - Datetime formats can drift slightly. - Best on GPU for speed; CPU works but slower. ## Citation ```bibtex @misc{functiongemma-mobile-actions, title={FunctionGemma Mobile Actions - Merged for Mobile Function Calling}, author={dousery}, year={2025}, howpublished={\url{https://huggingface.co/dousery/functiongemma-mobile-actions}} } ``` ## License Apache-2.0 (inherits base model license).