/ Модель

Характеристики

Контекст
4 096 токенов
Параметры
91,6 млн
Лицензия
Apache 2.0
Архитектура
rrt · dense
Библиотека
transformers
Опубликована
20 авг 2026

cRia-LM-75M

Генерация текстаТекст → текст3 профессии

Компактная англоязычная базовая модель на архитектуре Relaxed Recursive Transformer для продолжения текста, экспериментов и дальнейшего дообучения.

2 437скачиваний за 30 дней10лайковвеса обновлены19 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

cRia-LM-75M — компактная базовая языковая модель, разработанная авторами репозитория sz14/cRia-LM-75M. Она содержит 91,6 млн параметров по метаданным и использует архитектуру Relaxed Recursive Transformer: 11 общих слоёв проходят дважды, а дополнительные параметры LoRA на втором проходе сохраняют отдельную ёмкость для этой итерации. Архитектура основана на дизайне слоёв SmolLM2-135M с QK-Norm; обучение включало дистилляцию знаний от более крупных моделей и несколько этапов подготовки.

Модель предназначена для продолжения английского текста, исследований рекурсивного разделения параметров и компактных языковых моделей, а также для дальнейшего предобучения, адаптации к предметной области и дообучения под конкретные задачи. Контекстное окно составляет 4096 токенов. Это базовая модель без instruction tuning и шаблона чата: запросы воспринимаются как обычный текст для продолжения.

Модель небольшая, поэтому её способности к многошаговым рассуждениям и фактическим ответам ограничены; возможны ошибки и галлюцинации. Обучение ориентировано преимущественно на английский язык, а результаты некоторых бенчмарков могут быть завышены из-за использования обучающих частей этих наборов данных. Лицензия — Apache-2.0.

Сценарии применения

  • продолжение английского текста
  • эксперименты с рекурсивными трансформерами
  • исследование компактных языковых моделей
  • дальнейшее предобучение на собственном корпусе
  • адаптация языковой модели к предметной области
  • дообучение базовой модели под прикладную задачу

Ограничения

Модель не обучена следовать инструкциям и не имеет шаблона чата; она может ошибаться в фактах и слабо справляется с многошаговыми рассуждениями. Контекст ограничен 4096 токенами, а использование обучающих частей некоторых бенчмарков может завышать оценку результатов.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

CRIA-LM-75M

Cria (noun): a baby llama, alpaca, vicuña, or guanaco. Pronounced ˈkrē-ə.

~ Merriam-Webster


cRia-LM-75M


cRia-LM-75M is a 75.7M-parameter base language model built as a Relaxed Recursive Transformer (RRT). It uses a shared 11-layer recurrent block evaluated twice, with pass-specific LoRA parameters on the second traversal.

Training was carried out in three stages. Stage 1 established the 2K base model over 10B tokens. Stage 2 continued training with a 2B-token budget and a capability-focused data curriculum; the released Stage 2 checkpoint is step 10,000, corresponding to about 1.31B continuation tokens. Stage 3 extended the context window from 2,048 to 4,096 tokens with a 50M-token run on codelion/sutra-1B. The released checkpoint continues from that long-context stage with 35 learned residual-gain scalars and one epoch over the HellaSwag, ARC-Easy, ARC-Challenge, PIQA, SciQ and SWAG training splits.

This is a base model. It has not been instruction tuned and does not use a chat template. The Transformer layer design follows HuggingFaceTB/SmolLM2-135M, with QK-Norm added for training stability.

Model Details

SpecificationValue
Parameters75.7M
ArchitectureRelaxed Recursive Transformer
Unique Transformer layers13
Effective depth24
Prelude layers1
Shared recurrent layers11
Recurrent passes2
Coda layers1
Hidden size576
MLP intermediate size1,536
Attention heads9 query heads
KV heads3
Attention typeGrouped-query attention
Head dimension64
MLPSwiGLU
NormalizationRMSNorm
Attention normalizationQK-Norm
Position encodingRoPE
RoPE theta100,000
Context length4,096 tokens
Vocabulary size49,152
TokenizerSmolLM2 BPE tokenizer, per-digit tokenized
Token embeddingTied, factorized
Embedding rank210
Recurrent LoRA rank172
Residual gains35 learned scalars
KV cacheRecursion-wise, one slot per effective layer/pass
Model typeBase causal language model

Architecture

cRia-LM-75M uses 13 unique Transformer layers arranged as:

1 prelude + (11 shared layers x 2 recurrent passes) + 1 coda

This gives an effective depth of 24 Transformer layers while storing the main parameters for only 13 unique layers.

The 11-layer recurrent block is shared across both passes. On the second pass, the recurrent linear projections receive rank-172 LoRA updates. The two traversals therefore share the base weights while retaining pass-specific capacity.

Each Transformer layer uses:

  • hidden size 576
  • 9 query heads and 3 KV heads with grouped-query attention
  • head dimension 64
  • SwiGLU feed-forward network with intermediate size 1,536
  • RMSNorm
  • rotary position embeddings
  • QK-Norm

Factorized Tied Embedding

The input embedding and language-model readout are tied through a rank-210 factorization:

49,152 x 210
210 x 576

The same factors are used for token lookup and output projection. This keeps the full 49,152-token vocabulary while reducing the parameter cost of the embedding and output head.

Training

Stage 1 — Base pretraining

Stage 1 trained the model for 10B tokens at a sequence length of 2,048. The objective combined next-token cross-entropy with logit-level knowledge distillation from HuggingFaceTB/SmolLM2-360M, with dynamic CE/KD scale balancing.

The Stage 1 sampling mix was:

Data sourceSampling weight
FineWeb-Edu48%
DCLM-Edu32%
Cosmopedia-v212%
FineMath-4+5%
StarCoder Python3%

Stage 1 used Muon for matrix parameters and AdamW for the remaining parameter groups. The learning-rate schedule was warmup-stable-decay: 1% warmup, decay beginning at 80% of the run, and the final 20% used for decay.

Stage 2 — Capability mid-training

Stage 2 used a 2B-token training budget at 2,048-token context. The released Stage 2 checkpoint is step 10,000, or 1,310,720,000 tokens at 131,072 tokens per optimizer step.

The phase used two-teacher distillation: same-tokenizer KL from HuggingFaceTB/SmolLM2-360M and cross-tokenizer supervision from Qwen/Qwen3.5-0.8B-Base using X-Token. The run used the H-KL cross-tokenizer objective after the tokenizer-coverage audit, with dynamic CE/KD balancing retained around the combined distillation loss.

Phase 2A mix

Phase 2A is the capability-injection mix. It remains active through 65% of the planned Stage 2 run. The original configuration assigned 8% to Nemotron QA, but that source was unavailable when the run started. The loader dropped it and renormalized the remaining weights; the table below shows the effective mix that was actually sampled.

Data sourceEffective sampling weight
FineWeb-Edu19.57%
DCLM-Edu13.04%
Cosmopedia-v210.87%
Cosmopedia Stories8.70%
Cosmopedia WikiHow7.61%
Cosmopedia Science9.78%
Wikipedia10.87%
FineMath5.43%
Nemotron Math3.26%
InfiWebMath3.26%
StarCoder Python4.35%
FineWeb-HQ3.26%

Phase 2B mix

Phase 2B is the cooldown mix. It removes the noisier sources and shifts more weight toward higher-quality web, educational, encyclopedic, science, and math data.

Data sourceSampling weight
FineWeb-HQ18%
Cosmopedia-v214%
Cosmopedia Science14%
Wikipedia14%
FineMath12%
Cosmopedia WikiHow8%
Cosmopedia Stories8%
DCLM-Edu8%
StarCoder Python4%

Stage 2 WSD schedule

Stage 1 had already completed a full decay, so Stage 2 re-warmed to a lower peak rather than returning to the original Stage 1 learning rate.

SettingValue
Stage 2 token budget2.00B
Tokens per optimizer step131,072
Planned optimizer steps15,258
AdamW base LR1e-4
Muon base LR0.006
Re-warmfirst 3%
Stable regionthrough 55%
WSD decay start55% (~1.10B tokens)
Phase 2B mix switch65% (~1.30B tokens)
Minimum LR fraction2% of the Stage 2 base LR
Released checkpointstep 10,000 (~1.31B tokens)

After the stable region, the LR multiplier follows the run's square-root WSD decay:

lr_scale = max(0.02, 1 - sqrt(decay_progress))

Because the data-mix switch occurs at 65%, the final portion of Phase 2A already runs under LR decay. The selected step-10,000 checkpoint lands just after the switch to Phase 2B.

Stage 3 — 2K to 4K context extension

Stage 3 increases the supported context length from 2,048 to 4,096 tokens. The run was configured for 50M tokens on codelion/sutra-1B, with the long-context checkpoint used for this release selected at step 100, roughly 15M tokens into the run. The released model then continued with 35 learned residual-gain scalars for one epoch over the HellaSwag, ARC-Easy, ARC-Challenge, PIQA, SWAG, and SciQ training splits.

The context-length curriculum used the following token fractions:

Sequence lengthToken fraction
1,02425%
2,04840%
4,09635%

The training path uses Apple's Cut Cross Entropy directly against cRia's factorized tied output head. The cce_exact implementation was used to avoid gradient filtering while reducing the memory cost of materializing full-vocabulary logits for CE computation.

RoPE theta remains 100,000 and no RoPE scaling is applied. The model has no learned absolute position table, so moving from 2K to 4K does not add parameters.

Evaluation

The complete standard suite was evaluated zero-shot with FP32 model tensors and FP32 log-softmax. CUDA TF32 matmuls were enabled.

BenchmarkMetricScoreStd. error
ARC-Challengeacc_norm30.460.0134
ARC-Easyacc_norm58.160.0101
ArithMark-3acc_norm37.300.0153
Balanced COPAacc58.700.0156
BananaMind Base Bench 1.1raw accuracy60.86—
BLiMPacc79.060.0015
BoolQacc53.820.0087
CommonsenseQAacc20.480.0116
HellaSwagacc_norm38.950.0049
LAMBADAacc38.170.0068
LAMBADAperplexity43.671.9797
MMLU (continuation)acc26.660.0037
OpenBookQAacc_norm34.200.0212
PIQAacc_norm64.740.0111
SciQacc_norm90.000.0095
TruthfulQA MC2acc41.740.0153
Winograndeacc52.170.0140
Average (accuracy metrics only)—49.09—

The average is the unweighted arithmetic mean of the 14 standard accuracy scores, ArithMark-3 normalized accuracy, and BananaMind raw accuracy.

Comparison with established small language models

BenchmarkMetricGPT-2OPT-125MAMD-Llama-135MSmolLM-135MSmolLM2-135M
ARC-Challengeacc_norm22.7022.5326.0228.7529.61
ARC-Easyacc_norm39.5240.0331.8256.4858.54
ArithMark-3acc_norm37.0035.3035.7036.8038.80
Balanced COPAacc54.8056.9050.5058.1061.20
BananaMind Base Bench 1.1raw accuracy50.5747.7153.1467.7166.00
BLiMPacc82.1381.6458.1678.5378.96
BoolQacc49.1156.2161.8360.1860.31
CommonsenseQAacc19.5719.9819.5719.9019.57
HellaSwagacc_norm31.1231.6027.1542.6143.08
LAMBADAacc32.5638.8121.1937.7342.89
LAMBADAperplexity40.0723.131,074.6732.3319.26
MMLU (continuation)acc25.4725.1525.4228.9229.90
OpenBookQAacc_norm27.2028.8026.0034.4033.40
PIQAacc_norm62.5762.0260.6668.1768.50
SciQacc_norm64.3070.4047.2074.8078.20
TruthfulQA MC2acc40.6842.8742.7339.2838.79
Winograndeacc51.4651.3851.9353.2853.04
Average (accuracy metrics only)—43.1744.4639.9449.1050.05

We don't make any claims about inferiority or superiority of any model. While we took care of avoiding leakage from validation and test sets, we DID use the train splits of several of these benchmarks in our pre-training corpus. Compared to other models who had a longer training regime on non-benchmark data, it is possible real performance may lag behind what these benchmarks indicate (LAMBADA perplexity and MMLU already shows this trend somewhat).

Inference Performance

Measurements used FP32 weights, batch size 1, synchronized CUDA medians, PyTorch 2.12.0+cu130, WSL2, and an RTX 4070 Ti.

MeasurementResult
128-token cached prefill17.85 ms
512-token cached prefill17.49 ms
2,048-token cached prefill49.54 ms
128-token prompt + 128-token decode62.97 tokens/s
Resident CUDA allocation after warm-up305.20 MiB
Incremental peak CUDA allocation, 128 + 12810.358 MiB
Reserved CUDA memory328 MiB

For repeated unpadded greedy requests of one fixed shape, the reusable CUDA graph runner reached 318.77 tokens/s with a 128-token prompt and 64 generated tokens. The graph is inference-only, is fixed to its configured batch/prompt/output shape, and must be rebuilt after training changes model parameters.

Usage

The model ships with a custom Transformers implementation, so trust_remote_code=True is required for the model. The tokenizer is loaded directly from the cRia repository.

model.generate() uses the recursion-wise KV cache by default. use_cache=True is shown explicitly below so the inference path is clear.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "sz14/cRia-LM-75M"
device = "cuda" if torch.cuda.is_available() else "cpu"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype=torch.float32,
).to(device).eval()

prompt = "In mathematics, a vector is"
inputs = tokenizer(prompt, return_tensors="pt").to(device)

with torch.no_grad():
    output = model.generate(
        **inputs,
        max_new_tokens=64,
        do_sample=False,
        use_cache=True,
    )

print(tokenizer.decode(output[0], skip_special_tokens=True))

Explicit KV-cache usage

For custom decode loops, a cache can also be created and passed through past_key_values directly:

prompt = "In mathematics, a vector is"
inputs = tokenizer(prompt, return_tensors="pt").to(device)
cache = model.new_cache(batch=inputs.input_ids.shape[0])

with torch.no_grad():
    # Prefill the prompt and populate the cache.
    out = model(
        **inputs,
        past_key_values=cache,
        use_cache=True,
    )

    # Decode one token using only the new token plus cached K/V states.
    next_token = out.logits[:, -1].argmax(dim=-1, keepdim=True)
    out = model(
        input_ids=next_token,
        past_key_values=cache,
        use_cache=True,
    )

print("cached positions:", cache.pos)

Pass use_cache=False to model.generate() to fall back to full-prefix recomputation.

KV-cache implementation

The recurrent block shares weights across passes, but the two passes do not share keys and values. The second traversal uses its own LoRA-adapted projections, so each recurrent pass receives a separate cache slot. With the current architecture this produces 24 cache slots, matching the model's 24 effective layers.

The current implementation supports:

  • cached prompt prefill and token-by-token decode
  • batched generation with left padding
  • attention masks over the full cached key length
  • RoPE positions derived from the cumulative attention mask for padded batches
  • beam-search cache reordering
  • explicit cache cropping/resetting
  • a hard 4,096-token cache/context bound with clear errors beyond the configured window

A standalone model.generate_cached(...) helper is also available for direct incremental decoding outside the standard Transformers generation path.

Intended Use

cRia-LM-75M is intended primarily for:

  • research on recursive parameter sharing
  • experiments with compact language models
  • further pretraining and domain adaptation
  • supervised fine-tuning
  • small language-model backbones
  • architecture and knowledge-distillation research

Because this is a base model, prompts are treated as ordinary text continuation rather than instructions.

Limitations

cRia-LM-75M is a small base language model and should not be expected to match substantially larger pretrained models.

Known limitations include:

  • weak multi-step reasoning
  • limited factual knowledge
  • potential factual errors and hallucinations
  • no instruction-following training
  • no chat template
  • English-focused training
  • a 4,096-token maximum context window

The model should not be treated as a reliable source of factual information or used without additional validation in high-stakes applications.

Architecture and Training Lineage

The Transformer layer design follows HuggingFaceTB/SmolLM2-135M, released by Hugging Face under the Apache 2.0 license.

HuggingFaceTB/SmolLM2-360M was used for same-tokenizer logit distillation in the initial training and Stage 2. Stage 2 additionally used Qwen/Qwen3.5-0.8B-Base for cross-tokenizer X-Token distillation.

The recursive parameter-sharing approach is based on:

Bae et al., "Relaxed Recursive Transformers: Effective Parameter Sharing with Layer-wise LoRA," arXiv:2410.20672.

Stage 2 cross-tokenizer distillation uses:

Sreenivas et al., "X-Token: Projection-Guided Cross-Tokenizer Knowledge Distillation," arXiv:2605.21699.

Stage 3 uses Apple's Cut Cross Entropy implementation from Wijmans et al., "Cut Your Losses in Large-Vocabulary Language Models," arXiv:2411.09009v2.

License

cRia-LM-75M is released under the Apache License 2.0.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
RRTForCausalLM
Ревизия весов
a424901

0 моделей