Downloads · 30 days
19
18% of all-time downloads
gramajo/nouns-proposal-predictor
nouns-proposal-predictor is a text classification model from gramajo. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as mit.
Fine-tuned DistilBERT that reads a Nouns DAO proposal's title + description and predicts whether it passed. Trained on gramajo/nouns-proposals (982 proposals, pass/fail labels).
Downloads · 30 days
19
18% of all-time downloads
All-time downloads
104
Public
Parameters
67M
536 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors268 MB · 100%
From the Hugging Face model README
Fine-tuned DistilBERT that reads a Nouns DAO proposal's title + description and predicts whether it passed. Trained on gramajo/nouns-proposals (982 proposals, pass/fail labels).
Do not use this model to predict real proposal outcomes. It is published as a negative result and as a reproducible artifact, not as a working predictor. See the numbers below and decide for yourself.
Accuracy is meaningless without a baseline. The bar is majority-class accuracy — what you'd score by ignoring the proposal entirely and always guessing the more common outcome. A model only tells you something if it clears that bar.
| run | n train | n test | test pass rate | majority baseline | accuracy | lift | AUC | beats baseline? |
|---|---|---|---|---|---|---|---|---|
| A_stratified_random | 785 | 197 | 50.2% | 50.2% | 58.9% | +8.6% | 0.648 | yes |
| B_temporal_breakeven | 785 | 197 | 28.4% | 71.6% | 73.1% | +1.5% | 0.651 | yes |
| C_post_breakeven_only | 147 | 50 | 28.0% | 72.0% | 72.0% | +0.0% | 0.365 | NO |
What each run asks:
Around proposal ~786, a bloc of large Nouns holders ("BreakEven") began voting down spend proposals to bring outflows in line with revenue. The pass rate shifts sharply across that boundary:
This is a structural break in the decision rule, and the new rule is largely not a function of the proposal text — it's a function of who is voting and what the treasury looks like. Run B is therefore a test of transfer across concept drift, not a test of whether text is informative. Run A is the cleaner test of the latter.
distilbert-base-uncased, max_length 512, batch size 16, lr 3e-5, up to 6–8 epochssplits.json in this repo.Everything needed to check these numbers is public:
splits.json in this reporesults.json in this reponouns_predictor_experiments.ipynb in this repo