Files
ModelHub XC 36970414ce 初始化项目,由ModelHub XC社区提供模型
Model: vedantjadhav701/SparkAI-47m-llama-instruct
Source: Original Platform
2026-09-01 20:02:18 +08:00

119 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
language:
- en
license: apache-2.0
library_name: transformers
tags:
- llama
- causal-lm
- text-generation
- sft
- chat
- pytorch
- fineweb-edu
- cosmopedia
pipeline_tag: text-generation
datasets:
- HuggingFaceFW/fineweb-edu
- HuggingFaceTB/cosmopedia-v2
base_model: vedantjadhav701/SparkAI-47m-llama-10b-token
---
# SparkAI-47M-Llama-Instruct
[![Hugging Face Model](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-SparkAI--47m--llama--instruct-blue)](https://huggingface.co/vedantjadhav701/SparkAI-47m-llama-instruct)
[![GitHub Repository](https://img.shields.io/badge/GitHub-SparkAI-black?logo=github)](https://github.com/VedantJadhav701/SparkAI)
Instruction-tuned checkpoint of **SparkAI-47M-Llama** (~48M parameter decoder-only transformer), fine-tuned for chat and instruction following.
> 🌟 **Key Highlights & Unique Features**
> * ⚡ **Ultra-Low Memory Footprint (~95.4 MB):** Fits in under 100MB of RAM, making it suitable for edge devices, mobile apps, WebGPU, and microcontrollers.
> * 🏋️ **Data-Saturated Pretraining (10 Billion Tokens):** Pretrained on 10B tokens (210 tokens/param) of high-quality FineWeb-Edu + Cosmopedia-v2 text, providing an empirical benchmark on capacity saturation for sub-50M models.
> * 🏗️ **Modern LLaMA 3 Architecture:** Built with Grouped Query Attention (GQA), SwiGLU activations, RoPE positional encodings, RMSNorm pre-normalization, and tied embeddings.
> * 💬 **Full ChatML SFT Alignment:** Fine-tuned with ChatML `<|im_start|>` instruction formatting and template support (`chat_template.jinja`).
---
## 📐 Architecture
* **Parameters:** ~48M (~47.4M non-embedding / tied embeddings)
* **Layers:** 8
* **Hidden Size:** 512
* **Attention Heads:** 8 query heads, 2 key/value heads (Grouped Query Attention - GQA)
* **MLP:** SwiGLU (Intermediate size: 1408)
* **Positional Encoding:** RoPE (Rotary Position Embeddings)
* **Normalization:** RMSNorm (Pre-normalization)
* **Embeddings:** Tied embeddings, no bias terms
* **Vocabulary Size:** 49,152 (SmolLM2 tokenizer with Chat Template)
* **Sequence Length:** 1024
---
## 🏋️ Training & Fine-Tuning Details
* **Base Checkpoint:** [`vedantjadhav701/SparkAI-47m-llama-10b-token`](https://huggingface.co/vedantjadhav701/SparkAI-47m-llama-10b-token)
* **Pretraining Data:** FineWeb-Edu (`sample-100BT`) + Cosmopedia-v2 (**85% / 15%** mix, 10.00B tokens)
* **Optimizer:** AdamW with Cosine LR schedule + warmup
* **Hardware:** NVIDIA A100 80GB PCIe
* **Final Eval Perplexity:** 31.46
### 📈 Pretraining Progression
| Tokens | Perplexity |
| :--- | :--- |
| **630M** | 43.49 |
| **3.77B** | 31.30 |
| **7.00B** | — |
| **10.00B** | 31.46 |
> **Note on Saturation:** Perplexity plateaued between 3.77B and 10.00B tokens despite continued training, indicating the model has saturated its representational capacity at this size.
---
## 📊 Comparison in Sub-50M Parameter Landscape
| Feature | Typical Sub-50M Models | **SparkAI-47M-Llama / Instruct** |
| :--- | :--- | :--- |
| **Token Budget** | ~1B – 2B tokens | **10.00 Billion Tokens** (210 tokens/param) |
| **Data Quality** | Raw web text / C4 | **FineWeb-Edu (85%) + Cosmopedia-v2 (15%)** |
| **Architecture** | Basic MHA / GPT-2 style | **Modern LLaMA 3 (GQA, SwiGLU, RoPE, RMSNorm)** |
| **Model Size** | ~100MB – 200MB | **~95.4 MB (`model.safetensors`)** |
| **SFT Alignment** | Rare / None | **Instruction-tuned with ChatML (`chat_template.jinja`)** |
| **Benchmarking** | Few metrics | **Empirical capacity saturation documented at 10B tokens** |
---
## 💻 Usage with Hugging Face `transformers`
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo_id = "vedantjadhav701/SparkAI-47m-llama-instruct"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForCausalLM.from_pretrained(repo_id)
messages = [
{"role": "user", "content": "What is a computer program?"}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=80, do_sample=True, temperature=0.6)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
---
## 🚀 Quickstart & Local Gradio UI
### Installation
```bash
pip install -r requirements.txt
```
### Run Gradio App
```bash
python app.py
```
Open `http://127.0.0.1:7860` in your web browser.