mathcode-llm / README.md
teddyoas's picture
model card with HF metadata
a047c60 verified
|
Raw History Blame Contribute Delete
2.02 kB
---
library_name: transformers
pipeline_tag: text-generation
tags:
- llm
- from-scratch
- mathematics
- code
- nature-of-code
license: mit
language:
- en
- code
---
# mathcode-llm
A decoder-only transformer language model **built from scratch** -- no
pretrained weights, no `transformers` model classes. Every layer (RMSNorm,
RoPE, grouped-query attention, SwiGLU, KV-cached decoding) is hand-written
PyTorch in `model/transformer.py`, and the BPE tokenizer was trained from
scratch on our own corpus.
## Training data
| Source | Share |
|---|---|
| `open-web-math` (arXiv papers, Math StackExchange) | 50.2% |
| `codeparrot-clean` (Python from GitHub) | 37.7% |
| `code-search-net` (Python / JS / Go / Java functions) | 5.8% |
| `verifiable-coding-problems-python` | 4.8% |
| **The Nature of Code** (Daniel Shiffman, full 13 chapters) | 1.4% |
600 M training tokens, interleaved at 4096-token granularity so the domain
mixture stays stable throughout training.
## Architecture
| | |
|---|---|
| Parameters | ~110 M (85 M non-embedding) |
| Layers / heads / width | 12 / 12 / 768 |
| Context length | 1024 tokens |
| Vocabulary | 32,768 (byte-level BPE, trained from scratch) |
| Normalisation | RMSNorm (pre-norm) |
| Position | RoPE |
| FFN | SwiGLU |
| Attention | multi-head, KV cache for fast sampling |
| Embeddings | tied |
## Usage
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("teddyoas/mathcode-llm")
model = AutoModelForCausalLM.from_pretrained("teddyoas/mathcode-llm")
```
The tokenizer is a `PreTrainedTokenizerFast` built with the `tokenizers`
library, so `AutoTokenizer` loads it directly.
## Resuming training
`checkpoint/latest.pt` holds the model, the optimiser state, the AMP scaler,
the step counter and the token counter:
```bash
python train.py --config configs/mathcode.yaml \
--resume checkpoint/latest.pt
```
## Status
Training checkpoint: **step 100 / 4577**
(13,107,200 tokens seen, val loss inf)