ChaosNLI: NLI Label Distributions
Distributional annotation of Natural Language Inference judgments, based on ChaosNLI (Nie, Zhou, and Bansal, EMNLP 2020). Given a context and a statement, the annotator first makes the original 3-way judgment (Entailment / Neutral / Contradiction), then distributes 100 points across the three labels to express a belief distribution. Framing caveat: ChaosNLI's label distributions were collected as 100 independent categorical judgments per item from different crowd-workers; this showcase config demonstrates Potato's soft_label scheme as a direct-elicitation alternative that captures the same distributional signal per annotator.
About this dataset
ChaosNLI (Collective HumAn OpinionS for NLI) asks what the full distribution of human judgments — rather than a single majority label — reveals about natural language inference. Nie, Zhou, and Bansal collected 100 fresh annotations for each of 4,645 examples drawn from the SNLI and MNLI-matched development sets (low-agreement subsets) and the entire Abductive-NLI development set, for a total of 464,500 annotations.
With 100 opinions per item, the picture changes substantially: the original majority label fails to match the new prevailing human opinion on 10% to 31% of the data depending on the subset, and large human disagreements persist on a noticeable fraction of examples. The paper argues that models should be evaluated on their ability to predict the distribution over human judgments, not just a single gold label, and shows that state-of-the-art models capture these distributions poorly.
The original collection kept the standard 3-way categorical labeling schema: each Mechanical Turk worker made one single-choice judgment per item under the compressed instructions reproduced in Figure 1 of the paper, with an on-boarding test, a training phase, and continuous performance tracking against a set of unanimous examples for quality control.
This config pairs the original categorical judgment (radio) with Potato's soft_label scheme, in which the annotator allocates 100 points across Entailment, Neutral, and Contradiction with constrained sliders and a live distribution chart. Where ChaosNLI reconstructs a distribution by aggregating 100 one-shot votes, the soft_label scheme elicits each annotator's belief distribution directly — a cheaper way to capture the same distributional signal, at the cost of departing from the paper's exact protocol. The sample items are self-authored SNLI/MNLI-style pairs designed to invite disagreement, not rows from the released dataset.
- Examples
- 4,645 (1,514 SNLI + 1,599 MNLI-m + 1,532 Abductive-NLI)
- Annotations per example
- 100
- Total annotations
- 464,500
- Label schema
- 3-way (Entailment / Neutral / Contradiction); H1/H2 for Abductive-NLI
- Majority label changed
- 10% (alphaNLI), 20% (SNLI), 31% (MNLI-m) of collected data
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# ChaosNLI — Label Distributions for Natural Language Inference
# Based on the ChaosNLI dataset:
# Yixin Nie, Xiang Zhou, and Mohit Bansal (2020), "What Can We Learn from
# Collective Human Opinions on Natural Language Inference Data?" Proceedings of
# the 2020 Conference on Empirical Methods in Natural Language Processing
# (EMNLP), pp. 9131-9143.
# DOI: 10.18653/v1/2020.emnlp-main.734
# Paper: https://aclanthology.org/2020.emnlp-main.734/
# Dataset: https://github.com/easonnie/ChaosNLI
#
# Task: given a context (premise) and a statement (hypothesis), judge whether the
# statement is definitely correct (Entailment), definitely incorrect
# (Contradiction), or neither (Neutral).
#
# FRAMING CAVEAT: ChaosNLI's label distributions were collected as 100
# independent single-choice categorical judgments per item from different
# crowd-workers; no individual annotator ever produced a distribution. This
# showcase config demonstrates Potato's soft_label scheme as a direct-elicitation
# alternative: each annotator first gives the original 3-way categorical judgment
# (radio), then distributes 100 points across the three labels — capturing the
# same distributional signal ChaosNLI aggregates over a crowd, but per annotator.
#
# Annotation instructions reproduced verbatim from Figure 1 (Section 3.2) of the
# paper — the compressed Mechanical Turker instructions for the NLI collections
# (the Abductive-NLI variant is omitted); the trailing note on the point
# allocation is a showcase addition.
annotation_task_name: "ChaosNLI: NLI Label Distributions"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "statement"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
- annotation_type: radio
name: nli_label
description: "Choose the correct category for the given pair of context and statement."
labels:
- "Definitely correct (Entailment)"
- "Neither (Neutral)"
- "Definitely incorrect (Contradiction)"
keyboard_shortcuts:
"Definitely correct (Entailment)": "1"
"Neither (Neutral)": "2"
"Definitely incorrect (Contradiction)": "3"
tooltips:
"Definitely correct (Entailment)": "Given the context, the statement is definitely correct"
"Neither (Neutral)": "The statement is neither definitely correct nor definitely incorrect"
"Definitely incorrect (Contradiction)": "Given the context, the statement is definitely incorrect"
- annotation_type: soft_label
name: nli_label_distribution
description: "Now distribute 100 points across the three categories to reflect how a large group of careful readers would judge this pair."
total: 100
min_per_label: 0
show_distribution_chart: true
labels:
- "Entailment"
- "Neutral"
- "Contradiction"
label_requirement:
required: true
annotation_instructions: |
Given a context, a statement can be either:
- **Definitely correct (Entailment)**; or
- **Definitely incorrect (Contradiction)**; or
- **Neither (Neutral)**.
Your goal is to choose the correct category for a given pair of context and
statement.
An automatic detector will estimate your annotation accuracy on this task. If
your estimated accuracy is too low, you might be **disqualified**.
If you feel **uncertain** about some examples, just choose the best category you
believe the statement should be in.
Examples:
> **Context:** *A guitarist is playing in a band.*
> **Statement:** *Some people are performing.*
> **Answer:** The statement is **definitely correct**.
[Showcase addition: after choosing your single best category, distribute 100
points across Entailment / Neutral / Contradiction to express how plausible each
category is. ChaosNLI collected this distribution by aggregating 100 independent
single-choice judgments per item; here you report your belief distribution
directly.]
html_layout: |
<div style="padding: 15px; max-width: 820px; margin: auto;">
<div style="background: #f1f5f9; border: 1px solid #cbd5e1; border-radius: 8px; padding: 6px 12px; margin-bottom: 8px; font-size: 13px; color: #475569;">
<strong>Source:</strong> {{source}}
</div>
<div style="background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 8px; padding: 16px; margin-bottom: 8px;">
<strong style="color: #1e40af;">Context:</strong>
<p style="font-size: 16px; line-height: 1.6; margin: 8px 0 0 0;">{{context}}</p>
</div>
<div style="background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; padding: 16px;">
<strong style="color: #92400e;">Statement:</strong>
<p style="font-size: 16px; line-height: 1.6; margin: 8px 0 0 0;">{{statement}}</p>
</div>
</div>
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 3
allow_skip: true
Sample Datasample-data.json
[
{
"id": "chaosnli_001",
"source": "SNLI-style",
"context": "A woman in a yellow raincoat is waiting at a bus stop while holding a closed umbrella.",
"statement": "The woman is prepared for rain."
},
{
"id": "chaosnli_002",
"source": "SNLI-style",
"context": "Two children are building a sandcastle near the water's edge as a dog watches them.",
"statement": "The children are on vacation with their parents."
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/natural-language-inference/chaosnli-label-distributions potato start config.yaml
Dataset & paper
Yixin Nie, Xiang Zhou, and Mohit Bansal. 2020. What Can We Learn from Collective Human Opinions on Natural Language Inference Data? In Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 9131-9143.
Citation (BibTeX)
@inproceedings{nie-etal-2020-learn,
title = "What Can We Learn from Collective Human Opinions on Natural Language Inference Data?",
author = "Nie, Yixin and
Zhou, Xiang and
Bansal, Mohit",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP)",
month = nov,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2020.emnlp-main.734/",
doi = "10.18653/v1/2020.emnlp-main.734",
pages = "9131--9143"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
MultiNLI - Multi-Genre Natural Language Inference
Natural language inference across multiple genres of text, based on the Multi-Genre NLI corpus (Williams et al., NAACL 2018). Annotators classify premise-hypothesis relationships with genre-diverse examples from fiction, government, travel, and more.
Safe Biomedical NLI
Safe biomedical natural language inference task requiring annotators to determine entailment or contradiction between statements and clinical trial report sections and provide reasoning. Based on SemEval-2024 Task 2 (NLI4CT: Safe Biomedical Natural Language Inference for Clinical Trials).
SNLI: Stanford Natural Language Inference Corpus
SNLI is a corpus of 570k human-written English sentence pairs labeled entailment, contradiction, or neutral (Bowman et al., EMNLP 2015). This Potato config reproduces the premise-hypothesis judgment task.