🏆 Benchmark Scorecard (100 Tasks Per Domain)
Table with columns: Benchmark Domain, Native Normal Baseline, Grugified Adapter, Absolute Gain, Relative Surge| Benchmark Domain | Native Normal Baseline | Grugified Adapter | Absolute Gain | Relative Surge |
|---|
| Tool Calling (Glaive AI 100) | 5.0% | 95.0% | +90.0% | 19.0x Surge 🚀 |
| Quantitative Math (GSM8K 100) | 0.0% | 9.0% | +9.0% | Non-zero logic |
| Coding (HumanEval 100) | 8.0% | 11.0% | +3.0% | 1.38x |
| Overall 300-Item Benchmark | 4.3% | 38.3% | +34.0% | 8.9x Surge |
Compact models (< 2B) lack the working memory to maintain both conversational self-debate and strict JSON schemas. Under native unconstrained prompting, SmolLM2 outputs rambling natural language, exhausting context before emitting valid JSON.
Grug Speech pins down the exact target invariants:
<think>Domain: tool_useGoal: get weatherInvariants: city="Tokyo", unit="celsius"Action: emit get_current_weatherDone.</think><tool_call>{"name": "get_current_weather", "arguments": {"city": "Tokyo", "unit": "celsius"}}</tool_call>
Result: 95 out of 100 tool tasks passed successfully.
🚀 Quickstart
import torchfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom peft import PeftModel BASE_MODEL = "HuggingFaceTB/SmolLM2-1.7B-Instruct"ADAPTER_ID = "Novasaki/SmolLM2-1.7B-UniversalGrugifier" tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)base_model = AutoModelForCausalLM.from_pretrained( BASE_MODEL, torch_dtype=torch.bfloat16, device_map="auto")model = PeftModel.from_pretrained(base_model, ADAPTER_ID)
📚 Technical Report & Full Citation