DeepJ TinyStories DeepSeek-style

An experimental 1,301,120-parameter causal language model trained with DeepJ. On 100 deterministic TinyStories validation windows (12800 tokens), loss was 2.182273 and perplexity was 8.866.

Model details

This is a compact DeepJ DeepSeek-style model with 4 layers, width 128, 4 attention heads, Q rank 64, KV rank 32, and a 2048-token vocabulary. It is not an exact DeepSeek-V2/V3/R1 implementation and has no incremental KV cache. The model.dj checkpoint and tokenizer.bpe files use DeepJ's versioned binary formats. They are not directly loadable by the Python Transformers library.

Usage

Use DeepJ 0.6.0-alpha from Maven Central, or a later format-compatible release.

<dependency>
    <groupId>io.github.kirstenali</groupId>
    <artifactId>deepj</artifactId>
    <version>0.6.0-alpha</version>
</dependency>

Download this repository's model.dj and tokenizer.bpe into downloaded-model. Imports are omitted below.

Path directory = Path.of("downloaded-model");
BPEModel bpe = BPEModelIO.load(directory.resolve("tokenizer.bpe"));
BPETokenizer tokenizer = new BPETokenizer(bpe);
DeepSeekConfig config = new DeepSeekConfig(
        2048, 128, 128, 4, 4, 384, 64, 32, 0.2f, 1.0f);
DeepSeekModel model = new DeepSeekModel(config, 42L);
model.load(directory.resolve("model.dj"));
String text = TextGenerator.generate(model, tokenizer, config,
        "Once upon a time", 80, 0.8f, 40, 2026L);

Training data

Trained for 10000 steps with batch size 1 and 128-token sequences on TinyStories, a synthetic English dataset licensed CDLA-Sharing-1.0. The BPE vocabulary was trained from a bounded sample of the training split.

Limitations

Small experimental model trained only on synthetic children's stories. It may produce incorrect, repetitive, biased, or unsuitable text. It has not been evaluated for safety or downstream use and is not a general-purpose assistant.

Downloads last month
192
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support