--- base_model: unsloth/gemma-2-2b-it-bnb-4bit tags: - text-generation-inference - transformers - unsloth - gemma2 - trl - reasoning - chain-of-thought license: apache-2.0 language: - en datasets: - Glint-Research/Fable-5-traces pipeline_tag: text-generation ---
Mable-1 Banner # Mable-0.5 🧠⚡ *A high-reasoning 2B language model fine-tuned on Gemma-2-2B using Fable-5 reasoning traces.*
--- ## 📌 Model Overview **Mable-0.5** is a fine-tuned variant of Google's **Gemma-2-2B-it**, trained with 3,500 curated reasoning traces from the **Fable-5** dataset. It specializes in step-by-step reasoning, structured chain-of-thought (CoT) breakdown, and execution-oriented decision making. * **Developer:** Moonlink * **Base Model:** `unsloth/gemma-2-2b-it-bnb-4bit` * **Fine-Tuning Technique:** LoRA (Rank = 16, Alpha = 32) * **Optimization:** Fine-tuned via [Unsloth](https://github.com/unslothai/unsloth) --- ## 🚀 Available Formats & Usage This repository contains all 3 formats for maximum flexibility across deployment environments: ### 1. 🦙 GGUF Format (Local / Ollama / LM Studio) Run `Mable-0.5` locally on CPU or Apple Silicon using the quantized `.gguf` file. **Using Ollama:** ```bash # Download and run the quantized GGUF directly from Hugging Face ollama run hf.co/Moonlink/Mable-0.5:Q4_K_M ``` --- ### 2. ⚡ LoRA Adapters (Transformers / Unsloth) Attach the lightweight adapter weights to the base Gemma-2-2B model. ```python from unsloth import FastLanguageModel model, tokenizer = FastLanguageModel.from_pretrained( model_name = "Moonlink/Mable-0.5", max_seq_length = 2048, load_in_4bit = True, ) FastLanguageModel.for_inference(model) prompt = """user How many r's are in the word strawberry? model THOUGHT: """ inputs = tokenizer([prompt], return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` --- ### 3. 📦 Merged 16-Bit Weights (vLLM / Pipeline Deployment) Use the fully merged standalone model for production serving. ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "Moonlink/Mable-0.5" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype="auto", device_map="auto" ) ``` --- ## 📋 Prompt Format `Mable-0.5` follows the Gemma chat template with explicit `THOUGHT:` and `ACTION:` structural blocks: ```text user {Your prompt here} model THOUGHT: {Chain-of-thought reasoning steps} ACTION: {Final response or action} ``` --- ## 🛠️ Fine-Tuning Hyperparameters * **Max Sequence Length:** 2,048 tokens * **Optimizer:** AdamW 8-bit * **Learning Rate:** 2e-4 (Linear decay) * **Effective Batch Size:** 4 (Batch size = 1, Gradient Accumulation = 4) * **Epochs/Steps:** 120 steps (~3,500 rows processed) * **Precision:** Mixed FP16/BF16 ## 🤗 If you benefit from any of our work in HuggingFace please give us a Like or Follow.