Quark-270m-Base / README.md
ThingsAI's picture
Update README.md
858ce94 verified
---
language:
- it
- en
license: apache-2.0
tags:
- text-generation
- causal-lm
- bilingual
- italian
- english
- small-language-model
- trained-from-scratch
- quark
library_name: transformers
pipeline_tag: text-generation
---
# Quark-270M Base — Bilingual Italian-English Language Model
Quark-270M Base is a compact bilingual language model for Italian and English, built entirely from scratch by [ThingsAI](https://things-ai.org). This is the raw pretrained model optimized for text completion.
For conversational use, see [**Quark-270M-Instruct**](https://huggingface.co/ThingAI/Quark-270m-Instruct).
## Model Details
| | |
|---|---|
| **Parameters** | 252M (with weight tying) |
| **Architecture** | Decoder-only Transformer |
| **Vocabulary** | 65,537 tokens (QuarkTokenizer, bilingual BPE) |
| **Context Length** | 2,048 tokens |
| **Precision** | BF16 |
| **Languages** | Italian, English |
| **License** | Apache 2.0 |
## Architecture
| Component | Details |
|---|---|
| Model Dimension | 768 |
| Layers | 32 |
| Attention | Grouped Query Attention (GQA) |
| Query Heads | 12 |
| KV Heads | 4 (3:1 ratio) |
| Head Dimension | 64 |
| FFN Dimension | 2,048 |
| FFN Activation | SwiGLU |
| Normalization | RMSNorm (pre-norm) |
| Positional Encoding | RoPE (θ=10,000) |
| Weight Tying | embed_tokens ↔ lm_head |
## Pretraining
### Data
Trained on **~10B tokens** from a curated bilingual mix:
| Subset | Weight | Source |
|---|---|---|
| FineWeb-2 (Italian) | 29% | `HuggingFaceFW/fineweb-2` [ita_Latn] |
| CulturaX (Italian) | 14% | `uonlp/CulturaX` [it] |
| Wikipedia (Italian) | 7% | `wikimedia/wikipedia` [20231101.it] |
| FineWeb (English) | 36% | `HuggingFaceFW/fineweb` [sample-10BT] |
| Wikipedia (English) | 7% | `wikimedia/wikipedia` [20231101.en] |
| The Stack (Code) | 7% | `bigcode/the-stack-smol` |
**Language split:** Italian 50% · English 43% · Code 7%
### Training Configuration
| | |
|---|---|
| **Hardware** | NVIDIA B200 |
| **Total Tokens** | ~10B |
| **Batch Size** | 64 × 4 grad accum = 256 sequences |
| **Sequence Length** | 2,048 |
| **Learning Rate** | 3e-4 → 3e-5 (cosine) |
| **Warmup Steps** | 1,000 |
| **Optimizer** | AdamW (β₁=0.9, β₂=0.95) |
| **Precision** | BF16 mixed precision |
| **Throughput** | ~281k tokens/sec |
| **Training Time** | ~10 hours |
## Usage
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"ThingAI/Quark-270m-Base",
trust_remote_code=True,
torch_dtype="bfloat16"
).cuda()
tokenizer = AutoTokenizer.from_pretrained("ThingAI/Quark-270m-Base")
inputs = tokenizer("L'Italia è un paese", return_tensors="pt").to("cuda")
out = model.generate(**inputs, max_new_tokens=100, do_sample=True, temperature=0.7, top_k=40)
print(tokenizer.decode(out[0]))
```
> **Note:** This is a base model for text completion. For chat and instructions, use [Quark-270M-Instruct](https://huggingface.co/ThingAI/Quark-270m-Instruct).
## Limitations
- **Scale:** 252M parameters limits factual knowledge and complex reasoning
- **Hallucination:** Generates plausible but often incorrect information
- **Mathematics:** Limited arithmetic capabilities
- **Code:** Can produce syntactically plausible but often non-functional code
## The Quark Family
| Model | Parameters | Type |
|---|---|---|
| [Quark-50M](https://huggingface.co/ThingAI/Quark-50m) | 51M | Base |
| [Quark-135M](https://huggingface.co/ThingAI/Quark-135m) | 135M | Base |
| **Quark-270M Base** | **252M** | **Base** |
| [Quark-270M-Instruct](https://huggingface.co/ThingAI/Quark-270m-Instruct) | 252M | Chat |
## Links
- 🌐 [ThingsAI](https://things-ai.org)
- 💬 [Things Chat](https://chat.things-ai.org)
- 🔤 [QuarkTokenizer](https://huggingface.co/ThingAI/QuarkTokenizer)
---
*Built from scratch by ThingsAI 🇮🇹*