Downloads ยท 30 days
17
18% of all-time downloads
eivintobias/heartly-v2
heartly-v2 is a text generation model from eivintobias. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
๐ This is Track 1 โ the newer work lives on RWKV Heartly runs two tracks. This model is Track 1 (Qwen2.5-0.5B), the first published artifact and the one whose failures are documented in detail below. Track 2 went furโฆ
Downloads ยท 30 days
17
18% of all-time downloads
All-time downloads
94
Public
Repo size
994 MB
Likes
0
Public
Click a slice to open those files.
.gguf994 MB ยท 100%
From the Hugging Face model README
๐ This is Track 1 โ the newer work lives on RWKV
Heartly runs two tracks. This model is Track 1 (Qwen2.5-0.5B), the first published artifact and the one whose failures are documented in detail below. Track 2 went further on recurrent models and is where the project's actual results are:
- heartly-rwkv7-1.5b-v2 โ latest โ RWKV7-1.5B, grammar 100%, decide accuracy 100%, boundary head AUROC 1.000, plus working memory channels
- heartly-rwkv7-1.5b โ the Stage 3 baseline
This card stays up because the failure data is the contribution: it shows concretely that control tokens alone don't work โ grammar is cheap, the training distribution is the mechanism. That lesson is what produced Track 2.
Code, full experiment record and papers: https://github.com/eivintobias/heartly
โ ๏ธ EARLY RESEARCH PROTOTYPE โ NOT PRODUCTION READY โ ๏ธ
This model is an experimental research artifact. It has significant known issues (see below) and should not be used in any application where reliability is required. It is published to share the design approach and the failure data with the research community.
Heartly is a 0.5B parameter model (fine-tuned from Qwen2.5-0.5B) that explores a novel approach to hallucination reduction. Instead of training a model to always answer, Heartly is trained to:
<decide>speak|stop</decide> tokens<verify>known|unknown</verify> tokens<stop> as a valid, complete outputThe core thesis: hallucination is not primarily a knowledge problem โ it's a nature problem. A model optimized to always produce confident text develops a nature in which silence and honest ignorance do not exist. Heartly attempts to change that nature at the data layer.
thinking [internal reasoning] response
<decide>speak|stop</decide>
<verify>known|unknown</verify>
[answer if known]
<stop>
Fine-tuned on 12 datasets across four domains (~247k total samples):
| Domain | Datasets |
|---|---|
| Factual QA | SQuAD v1.1, TriviaQA, Natural Questions Open, SciQ, BoolQ, WebQuestions |
| Coding | CodeAlpaca-20k, Python Code Instructions 18k, MBPP |
| Instructions | Dolly-15k, Alpaca |
| Math | GSM8K |
Factual QA was processed through a Knowledge Base โ DatasetRenderer pipeline that generates both positive examples (known facts) and boundary-negative examples (unknown facts at the edge of the KB) to train abstention behavior.
Based on testing at checkpoint step 33500:
| Issue | Details |
|---|---|
| Entity/attribute mapping collapse | Questions from TriviaQA/Natural Questions are stored with entity="general trivia" and the full question as attribute, producing nonsensical query templates. |
| Special token emission failure | The model outputs speakknown without proper <decide>/<verify> tag boundaries โ tokenizer vocabulary likely misaligned during GGUF conversion. |
| Reasoning block leaks | The thinking ... response internal reasoning is emitted as visible text rather than handled as a hidden scratchpad. |
| Repetition loops | The model gets stuck repeating phrases โ <stop> is not reliably recognized as an EOS signal. |
| Confident wrong answers | The abstention mechanism (<verify>unknown</verify>) does not reliably fire for out-of-knowledge questions. |
| Verbose output | Despite the decide/verify/stop mechanics, the model still produces very long answers โ the base model's chat-nature was not fully overridden. |
These are instructive failures: they demonstrate that special tokens alone are insufficient โ the training data must properly embody the desired nature at sufficient scale and quality.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("eivintobias/heartly-v2")
tokenizer = AutoTokenizer.from_pretrained("eivintobias/heartly-v2")
prompt = "User: What is the capital of France?\nAssistant: "
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=160, temperature=0.0)
print(tokenizer.decode(outputs[0]))
See heartly_test_prompts.md for 75 structured test prompts organized into three categories:
<stop>This model accompanies the research paper "Nature-First AI: Training Language Models Toward Freedom Through Truth" (draft v0.2, included in the repository). Key claims:
The failures on this card motivated Track 2, which tested the same ideas on recurrent models where the internal state can be read directly. Headline results, all in RESULTS.md:
speakknown token collapse seen here.heartly-rnn/RESULTS.mdRESEARCH_PAPER_II_TRUE_BOUNDARY.mdresearch_papers/plain/heartly_test_prompts.mdeivintobias/heartly-rwkv7-1.5b-v2@misc{heartly2026,
author = {Eivin},
title = {Nature-First AI: Training Language Models Toward Freedom Through Truth},
year = {2026},
howpublished = {https://huggingface.co/eivintobias/heartly-v2}
}
Apache License 2.0 โ see LICENSE in the repository. Base model (Qwen2.5-0.5B) is subject to its own license terms.