Nouns DAO Proposal Predictor
A DistilBERT model fine-tuned on Nouns DAO Proposals to predict whether a governance proposal will pass or fail based on its title and description.
Model Description
- Model:
distilbert-base-uncased(66M parameters) - Task: Binary text classification (Pass / Fail)
- Training data: 785 Nouns DAO proposals (chronological train split)
- Evaluation data: 197 proposals (most recent 20%, chronological test split)
- Training hardware: Google Colab T4 GPU (~5 minutes)
Performance
Evaluated on the chronological test set (proposals 786β982, where the DAO was significantly more conservative):
| Metric | Score |
|---|---|
| Accuracy | ~58% |
| F1 (binary) | ~0.42 |
| Precision | ~0.35 |
| Recall | ~0.54 |
β οΈ Important context: The test set has a 28% pass rate vs 56% in the training set due to the Nouns DAO becoming more conservative over time. This chronological split is intentional β it simulates real-world prediction of future proposals from historical data. A random split would show inflated ~65% F1 but would leak temporal information.
Intended Use
- Educational tool for understanding DAO governance patterns
- Baseline model for proposal outcome prediction research
- Not intended for: automated voting, financial decisions, or production governance without human oversight
Limitations
- Trained on only 785 examples β a very small dataset by ML standards
- The Nouns DAO's voting patterns, participants, and norms have shifted significantly over 5 years
- Proposal descriptions vary wildly in length and format (some have images, markdown, etc.)
- Categories (Art, Governance, Funding, Events, Infrastructure) are LLM-assigned, not human-verified
- Does not use proposal category as a feature (text-only v1)
Training Details
- Epochs: 4 (with early stopping)
- Batch size: 16
- Learning rate: 2e-5
- Max sequence length: 512 tokens
- Class weights: Computed from training set imbalance (56%/44% pass/fail)
- Loss: Weighted cross-entropy
Dataset
Trained on gramajo/nouns-proposals β all 983 Nouns DAO proposals from August 2021 to July 2026, with pass/fail labels and LLM-assigned categories.
Usage
from transformers import pipeline
classifier = pipeline("text-classification", model="gramajo/nouns-proposal-predictor")
result = classifier("Your proposal title and description here")
# [{'label': 'LABEL_1', 'score': 0.73}] β LABEL_1 = Pass, LABEL_0 = Fail
Citation
@misc{nouns-proposal-predictor-2026,
author = {Juan Gramajo},
title = {Nouns DAO Proposal Predictor},
year = {2026},
publisher = {Hugging Face},
howpublished = {\\url{https://huggingface.co/gramajo/nouns-proposal-predictor}}
}
License
MIT. Built on Nouns DAO data which is CC0 (public domain).