Finalize model card: SLM terminology, EdgeJSON v3.1 clarification, version comparison context
b53a4a3
verified
| language: | |
| - en | |
| license: apache-2.0 | |
| base_model: HuggingFaceTB/SmolLM2-360M | |
| tags: | |
| - json | |
| - structured-output | |
| - edge-ai | |
| - iot | |
| - small-language-model | |
| - peft | |
| - lora | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| # Maaza SLM-360M-JSON v1.2 | |
| **First SLM with complex schema wins on EdgeJSON v3.1 normalized benchmark.** | |
| A 360M parameter model fine-tuned for high-accuracy JSON extraction. v1.2 introduces extended context (2048 tokens) for improved complex schema handling. | |
| ## Performance | |
| ### EdgeJSON v3.1 Benchmark (Normalized Scoring) | |
| | Metric | Score | | |
| |--------|-------| | |
| | **JSONExact** | 58.9% | | |
| | **Field F1** | 0.761 | | |
| | **Avg Latency** | ~39ms/token | | |
| ### By Complexity | |
| | Complexity | JSONExact | Field F1 | | |
| |------------|-----------|----------| | |
| | Simple (2-4 fields) | 88.2% | 0.961 | | |
| | Medium (4-8 fields) | 51.4% | 0.860 | | |
| | Complex (8+ fields) | 4.0% | 0.072 | | |
| ### Version Comparison | |
| > **Note:** v1.1+ use EdgeJSON v3.1 normalized scoring (case-insensitive keys). This is stricter on simple/medium schemas but fairer overall. v1.2 is the first SLM to solve complex schemas under the standardized benchmark. | |
| | Version | EdgeJSON Eval | Overall (JSONExact) | Complex | Notes | | |
| |---------|---------------|---------------------|---------|-------| | |
| | v1.0 | v3.0 (strict) | 55.1% | 4.0% | Original release | | |
| | v1.1 | v3.1 (normalized) | **60.1%** | 0.0% | Best simple/medium under fair scoring | | |
| | **v1.2** | v3.1 (normalized) | 58.9% | **4.0%** | **Complex breakthrough under fair scoring** | | |
| ### vs Baselines | |
| | Model | Params | JSONExact | Complex | | |
| |-------|--------|-----------|---------| | |
| | SmolLM2-360M (base) | 360M | 11.4% | 0.0% | | |
| | Qwen2.5-3B | 3B | 6.0% | 0.0% | | |
| | **Maaza v1.2** | **360M** | **58.9%** | **4.0%** | | |
| ## Quick Start | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| from peft import PeftModel | |
| import torch | |
| # Load model | |
| base = AutoModelForCausalLM.from_pretrained( | |
| "HuggingFaceTB/SmolLM2-360M", | |
| torch_dtype=torch.float16, | |
| device_map="auto" | |
| ) | |
| model = PeftModel.from_pretrained(base, "CycleCoreTechnologies/Maaza-SLM-360M-JSON-v1.2") | |
| tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-360M") | |
| # Inference | |
| prompt = """Extract the structured JSON data from the following text. Use snake_case for all keys. | |
| Input: Order #12345 from Jane Smith (jane@example.com). Items: Widget x2 ($19.99), Gadget ($49.99). Ship to 123 Main St, Springfield IL 62701. Total $89.97. | |
| Output:""" | |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) | |
| outputs = model.generate(**inputs, max_new_tokens=512, do_sample=False) | |
| print(tokenizer.decode(outputs[0], skip_special_tokens=True).split("Output:")[-1]) | |
| ``` | |
| ### Expected Output | |
| ```json | |
| { | |
| "order_id": "12345", | |
| "customer": {"name": "Jane Smith", "email": "jane@example.com"}, | |
| "items": [ | |
| {"name": "Widget", "quantity": 2, "price": 19.99}, | |
| {"name": "Gadget", "quantity": 1, "price": 49.99} | |
| ], | |
| "shipping": {"street": "123 Main St", "city": "Springfield", "state": "IL", "zip": "62701"}, | |
| "total": 89.97 | |
| } | |
| ``` | |
| ## Evaluation | |
| Run the EdgeJSON benchmark: | |
| ```bash | |
| git clone https://github.com/CycleCore-Technologies/slmbench | |
| cd slmbench | |
| pip install -r requirements.txt | |
| python benchmarks/edge_json/scripts/eval.py \ | |
| --model HuggingFaceTB/SmolLM2-360M \ | |
| --adapter CycleCoreTechnologies/Maaza-SLM-360M-JSON-v1.2 \ | |
| --dataset benchmarks/edge_json/data/edgejson_test_v3.jsonl \ | |
| --device cuda | |
| ``` | |
| ## Model Details | |
| - **Base**: SmolLM2-360M | |
| - **Method**: LoRA fine-tuning | |
| - **Context**: 2048 tokens (extended in v1.2) | |
| - **License**: Apache 2.0 | |
| ## Use Cases | |
| - Edge device JSON extraction | |
| - API response parsing | |
| - Document structure extraction | |
| - IoT data normalization | |
| ## Limitations | |
| - Complex schemas (8+ fields, deep nesting) remain challenging | |
| - Best suited for simple/medium complexity extraction | |
| - v1.1 recommended if complex schemas not needed (higher overall accuracy) | |
| ## Links | |
| - [EdgeJSON Benchmark](https://github.com/CycleCore-Technologies/slmbench) | |
| - [SLMBench Leaderboard](https://slmbench.com) | |
| - [v1.1 Model](https://huggingface.co/CycleCoreTechnologies/Maaza-SLM-360M-JSON-v1.1) | |
| - [Research Paper](https://github.com/CycleCore-Technologies/slmbench/tree/main/papers) (forthcoming) | |
| ## Citation | |
| ```bibtex | |
| @misc{cyclecore2025maaza, | |
| title={Maaza SLM-360M-JSON: Small Language Model for JSON Extraction}, | |
| author={CycleCore Technologies}, | |
| year={2025}, | |
| howpublished={\url{https://huggingface.co/CycleCoreTechnologies/Maaza-SLM-360M-JSON-v1.2}} | |
| } | |
| ``` | |
| ## Contact | |
| - hi@cyclecore.ai | |
| - [@CycleCoreTech](https://x.com/CycleCoreTech) | |
| --- | |
| Apache 2.0 | Copyright 2025 CycleCore Technologies | |