CoolFace
Datasetpublic

OysterCoreAI/Orvieto-42k

Orvieto-42k — a small atlas dataset for better Italian conversations Italian is at its best when a reply is not merely correct, but helpful, clear, and pleasant to read. Orvieto-42k is a traceable Italian instruction corpus for building that kind of assistant: 41,873 chat-ready examples, deliberately close to—but not exactly—42k. It packages a consistent SFT representation, per-record provenance, a reproducible heuristic release gate, and an audit trail that can travel with the… See the full description on the dataset page: https://huggingface.co/datasets/OysterCoreAI/Orvieto-42k.

sourceHugging Facecc-by-4.0updated 19h agoView on Hugging Face
0likes85downloads
Dataset Card

[image]

Orvieto-42k — a small atlas dataset for better Italian conversations

Italian is at its best when a reply is not merely correct, but helpful, clear, and pleasant to read. Orvieto-42k is a traceable Italian instruction corpus for building that kind of assistant: 41,873 chat-ready examples, deliberately close to—but not exactly—42k. It packages a consistent SFT representation, per-record provenance, a reproducible heuristic release gate, and an audit trail that can travel with the dataset.

Release at a glance. Every released row meets the programmatic threshold of ≥4.2/5 in each of 12 quality dimensions. This is a transparent automated control, not a human linguistic review, legal opinion, or factual certification.

Dataset summary

PropertyValue
Name / versionOrvieto-42k / 1.0.0
Release date2026-09-15
Rows41,873
Primary languageItalian (it)
FormatUTF-8 JSON Lines (data/train.jsonl)
Conversational formOne user message and one assistant message per row
Text volume34,520,615 characters
Median record length726 characters
LicenseCC BY 4.0
Intended usesItalian instruction tuning, supervised fine-tuning (SFT), conversational fine-tuning, synthetic-data experiments, and data-quality research

Quick start

Load locally with datasets

python
from datasets import load_dataset

ds = load_dataset("json", data_files="data/train.jsonl", split="train")
print(ds[0]["messages"])

Load after publishing to the Hugging Face Hub

python
from datasets import load_dataset

ds = load_dataset("YOUR_ORG/Orvieto-42k", split="train")

Convert rows to chat text

python
def as_messages(example):
    return example["messages"]

messages = ds.map(as_messages, remove_columns=ds.column_names)

Use the Alpaca-compatible fields

python
example = ds[0]
prompt = example["instruction"]
if example["input"]:
    prompt += "\n\nContext:\n" + example["input"]
target = example["output"]

What is inside

Each row has two equivalent training representations:

  1. 1.Chat/SFT representation: messages, ready for a standard user → assistant conversational template.
  2. 2.Alpaca-compatible representation: instruction, optional input, and output, suitable for existing instruction-tuning pipelines.

It also includes provenance and quality metadata. Retain these fields while auditing or filtering; remove them only when a trainer requires a minimal message schema.

Schema

FieldTypeDescription
idstringStable release identifier, e.g. orvieto-00001.
messageslist of objectsExactly two messages: user then assistant.
instructionstringMain Italian request.
inputstringOptional supporting context; may be empty.
outputstringReference assistant response.
task_domainstringHeuristic broad-domain label used for release sampling.
source.datasetstringUpstream dataset identifier.
source.configstringUpstream configuration, it.
source.licensestringUpstream declared license, CC-BY-4.0.
source.record_fingerprint_sha256stringDeterministic content fingerprint for audit and deduplication checks.
quality_scoresobjectTwelve per-record 0–5 heuristic quality scores.
quality_gate_passedbooleantrue only when every score is at least 4.2.

Example shape

json
{
  "id": "orvieto-00001",
  "messages": [
    {"role": "user", "content": "…Italian instruction…"},
    {"role": "assistant", "content": "…Italian response…"}
  ],
  "instruction": "…",
  "input": "",
  "output": "…",
  "task_domain": "lingua",
  "source": {
    "dataset": "DanielSc4/alpaca-cleaned-italian",
    "config": "it",
    "record_fingerprint_sha256": "…",
    "license": "CC-BY-4.0"
  },
  "quality_scores": {"information_density": 4.7},
  "quality_gate_passed": true
}

Composition and domain balance

The release uses deterministic round-robin sampling across six broad heuristic domains. These labels are useful for coarse balancing and analysis, not authoritative subject classifications.

Domain labelInterpretationRowsShare
generaleGeneral-purpose requests not captured by another label11,76528.10%
linguaLanguage, grammar, writing, translation, and summarization11,59927.70%
stemMathematics, science, programming, and technical reasoning9,52222.74%
vitaEveryday life, health, food, travel, work, home, and sport4,1539.92%
societaHistory, culture, economics, politics, law, and society3,4138.15%
creativitaCreative writing, ideas, stories, poetry, and dialogue1,4213.39%
Total41,873100.00%

Quality gate

Release rule

A record is released only if:

  • —its quality_gate_passed value is true;
  • —every one of the twelve quality_scores is at least 4.2/5;
  • —it passes the structural, normalized-deduplication, encoding, direct-PII-pattern, and explicit-high-risk-pattern checks.

The lowest score observed among all released record-dimension pairs is 4.200/5. The score average table below is computed over all 41,873 released records.

Dimension means and scoring criteria

DimensionMean / 5What the automated criterion measures
Information density4.591A substantive response with useful content rather than a short or empty answer.
Structure and readability4.472Clear instruction/response separation and, when appropriate, readable paragraphs or lists.
Length fit4.651A response length appropriate to the task, avoiding empty or extreme-length items.
Language naturalness4.600Italian lexical signals and absence of encoding corruption.
Safety and compliance4.700Absence of detected direct PII and explicitly harmful-request patterns.
Grammar and expression4.580Intact Unicode, conventional punctuation, and basic expression hygiene.
Domain diversity4.466Representation in the deterministic broad-domain stratification.
Training-signal clarity4.596A clear request paired with a sufficiently self-contained response.
Knowledge value and novelty4.600Exact and normalized duplicate prevention inside this release.
Reasoning value4.474Explanatory language, causal connections, or step structure; no private chain-of-thought is required or inferred.
Factual reliability4.293Traceable upstream source plus conservative gating; not a human fact-check.
Instruction value4.646A clear, answerable instruction suited to supervised learning.

How scores should be interpreted

Scores are deterministic, explainable release controls, not ground-truth annotations. In particular:

  • —A high factual-reliability score does not prove that every statement is current or correct.
  • —A high safety score does not prove that the data is safe for every deployment context.
  • —The reasoning score rewards visible explanations or steps; it does not expose, create, or require private model reasoning traces.
  • —The task_domain score is a sampling/balance signal, not a claim that a single example covers an entire domain.

The exact short-form definitions are available in audit/quality-rubric.json, while aggregate measurements, rejection counts, and release metadata are in audit/metrics.json.

Collection, filtering, and reproducibility

Upstream source and license chain

This version intentionally uses one audited upstream source: DanielSc4/alpaca-cleaned-italian, Italian configuration it. Its dataset card declares CC BY 4.0. This package is released under CC BY 4.0 and retains upstream attribution in SOURCES.md.

Sources with a CC BY-SA or otherwise incompatible chain for a declared CC BY release were excluded rather than mixed into the corpus.

Input-to-release funnel

StageRows
Audited source records examined51,760
Removed by quality or safety gate6,183
Exact normalized duplicates removed5
Released in Orvieto-42k41,873

Automated checks performed

  • —required instruction and response presence;
  • —UTF-8/Unicode hygiene and encoding-artifact rejection;
  • —exact and normalized full-record deduplication;
  • —direct email-address and phone-number pattern rejection;
  • —conservative blocklist for explicitly dangerous requests and direct sensitive identifiers;
  • —Italian lexical-signal check;
  • —response-length and content-density checks;
  • —deterministic SHA-256 source fingerprints;
  • —deterministic, hash-ordered round-robin sampling across the six broad domains;
  • —per-record twelve-dimension scoring and release-threshold enforcement.

The release process rejects questionable records; it does not rewrite source text, synthesize missing answers, make a legal determination, or substitute automated checks for expert review.

Recommended training use

Best fit: SFT / instruction tuning

The dataset is most directly suited to Italian supervised fine-tuning and conversational response-format training. Train on messages with the chat template required by your base model, masking loss on the user portion according to your framework.

Useful auxiliary roles

Training stageRecommended useImportant caveat
Data inspection / curationFilter by task_domain, length, or quality_scores; check fingerprints before merging.Metadata is heuristic and should not replace manual review.
Continued pretraining experimentsExtract text only when the experiment is designed for instruction-style text.This is not a broad web-scale pretraining corpus.
SFT / instruction tuningUse messages or Alpaca fields.Primary intended use.
Preference or reward-model preparationUse as a source for externally reviewed prompt-response seeds.It contains no preference pairs or human rankings.
EvaluationCreate a held-out split before training.Do not evaluate on training rows.

Create reproducible splits

The release ships as one train file. For a reproducible evaluation split, split by the stable id, not by row order.

python
from datasets import load_dataset

ds = load_dataset("json", data_files="data/train.jsonl", split="train")
splits = ds.train_test_split(test_size=0.02, seed=42)
train_ds = splits["train"]
eval_ds = splits["test"]

For stronger contamination controls, keep related upstream material out of your benchmark and deduplicate against any corpora you merge with this dataset.

Minimal SFT formatting example

python
def format_example(example, tokenizer):
    return tokenizer.apply_chat_template(
        example["messages"],
        tokenize=False,
        add_generation_prompt=False,
    )

formatted = ds.map(lambda row: {"text": format_example(row, tokenizer)})

After creating an empty Hugging Face dataset repository, upload the directory contents. The YAML metadata at the beginning of this README enables common discovery filters for Italian, SFT, conversational, question-answering, and text-generation datasets.

Safety, limitations, and responsible use

The release filter removes direct PII patterns, encoding artifacts, normalized duplicates, and explicitly dangerous requests. It cannot prove the absence of every sensitive item, outdated statement, factual error, or implicit bias. Before high-impact, regulated, or public-facing use, conduct human sampling, targeted fact checks, bias/safety testing, and legal review for your jurisdiction and deployment.

Do not represent the automated scores as a safety, accuracy, or legal certification.

Attribution

When reusing or redistributing this dataset, attribute:

text
Orvieto-42k (v1.0.0), CC BY 4.0.
Derived from DanielSc4/alpaca-cleaned-italian (Italian configuration),
whose dataset card declares CC BY 4.0.

See SOURCES.md for links and the retained source-license record, and the CC BY 4.0 legal code for license terms.