Downloads Β· 30 days
0
eivintobias/heartly-rwkv7-1.5b
heartly-rwkv7-1.5b is a machine learning model from eivintobias. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for rwkv. The card lists the license as apache-2.0.
π Superseded β use heartly-rwkv7-1.5b-v2 This is the Stage 3 model. A newer one exists: heartly-rwkv7-1.5b-v2 (Stage 4c) keeps everything measured below β grammar 100%, decide 100%, boundary head AUROC 1.000 β and adβ¦
Downloads Β· 30 days
0
Access
Public
Updated Jul 26, 2026
Parameters
1.5B
3.1 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors3.1 GB Β· 100%
From the Hugging Face model README
π Superseded β use heartly-rwkv7-1.5b-v2
This is the Stage 3 model. A newer one exists: heartly-rwkv7-1.5b-v2 (Stage 4c) keeps everything measured below β grammar 100%, decide 100%, boundary head AUROC 1.000 β and adds working memory channels (write-gate 5/5 across all 7 formats, retrieval-store context injection 4/5). Start there unless you specifically want the Stage 3 baseline for comparison.
This card stays up because the Stage 3 numbers are the control condition for everything that followed.
β οΈ EARLY RESEARCH PROTOTYPE β NOT PRODUCTION READY β οΈ
Heartly explores a "nature-first" approach to hallucination: instead of training a model to always answer, we train it to decide whether to speak, verify what it knows, and admit ignorance β compiled into the data itself.
This model is the Stage 3 artifact of the Heartly Track 2 program: an RWKV7-Goose-1.5B (recurrent, no attention) fine-tuned on 6,031 Heartly-grammar samples, shipped with a tiny boundary head (logistic probe, probe_head_rwkv7.pkl) that reads known vs unknown directly from the model's recurrent state at the <verify> position.
Headline measurements (300 held-out true-boundary questions + 1,200 head-training samples):
| metric | value |
|---|---|
Grammar adoption (parseable <verify> decision) | 100% (300/300) |
| Decide accuracy (speak/stop + known/unknown vs true labels) | 100% |
| Boundary head AUROC (layers 6 / 12 / 18 / 23) | 1.000 / 1.000 / 1.000 / 1.000 |
| Say/sense agreement | 100% |
Full experiment record: heartly-rnn/RESULTS.md on GitHub (Stages 1β3).
This model does not work with a vanilla transformers install. RWKV7 has no native transformers support β it runs through the flash-linear-attention (fla) library and its triton kernels:
pip install "transformers==4.56.2" "flash-linear-attention>=0.5"
pip install -U transformers.trust_remote_code=True (the repo ships modeling_rwkv7.py + hf_rwkv_tokenizer.py).import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("eivintobias/heartly-rwkv7-1.5b",
trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
"eivintobias/heartly-rwkv7-1.5b",
dtype=torch.bfloat16, trust_remote_code=True, device_map="cuda")
prompt = "User: What is the capital of France?\nAssistant: "
enc = tok(prompt, return_tensors="pt").to("cuda")
out = model.generate(**enc, max_new_tokens=120, do_sample=False,
pad_token_id=tok.pad_token_id)
print(tok.decode(out[0][enc["input_ids"].shape[1]:],
skip_special_tokens=False))
Expected output shape (the Heartly grammar):
<think> [reasoning] </think><decide>speak</decide><verify>known</verify> Paris. <stop>
| marker | meaning |
|---|---|
<think> β¦ </think> | internal scratchpad reasoning |
<decide>speak|stop</decide> | the model chooses whether to respond at all β silence is a first-class output |
<verify>known|unknown</verify> | self-reported knowability of the question |
<stop> | conversation rest |
probe_head_rwkv7.pkl β a ~2k-parameter logistic probe (scikit-learn pipeline) trained on the model's recurrent state at the <verify> position. On 1,200 fresh disjoint samples it reads the model's own knowledge boundary at AUROC 1.000. It is a sensor, not a gate: per the project's North-Star principle, it informs and alarms β it never vetoes the output.
Known limitation (documented in Stage 2/2.5 of the research record): the head shares state with the generator, so it can be blind to confident confabulation β the independent-critic line of the program addresses exactly that.
RWKV/RWKV7-Goose-World3-1.5B-HF (24 layers, hidden 2048, vocab 65,536)reply_formatter.py parses a raw generation down to just the answer zone.heartly-rnn/RESULTS.md (Stage 3 section)research_papers/RESEARCH_PAPER_II_TRUE_BOUNDARY.mdresearch_papers/plain/eivintobias/heartly-rwkv7-1.5b-v2 (Stage 4c, + memory) β start hereeivintobias/heartly-v2 (Qwen2.5-0.5B GGUF, Track 1)@misc{heartly-rwkv7-2026,
author = {Eivin},
title = {Heartly RWKV7-1.5B β Nature-First AI, Track 2 Stage 3},
year = {2026},
howpublished = {https://huggingface.co/eivintobias/heartly-rwkv7-1.5b}
}