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.
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
Quick start
Load locally with datasets
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
from datasets import load_dataset
ds = load_dataset("YOUR_ORG/Orvieto-42k", split="train")Convert rows to chat text
def as_messages(example):
return example["messages"]
messages = ds.map(as_messages, remove_columns=ds.column_names)Use the Alpaca-compatible fields
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:
- Chat/SFT representation:
messages, ready for a standarduser→assistantconversational template. - Alpaca-compatible representation:
instruction, optionalinput, andoutput, 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
Example shape
{
"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.
Quality gate
Release rule
A record is released only if:
- its
quality_gate_passedvalue istrue; - every one of the twelve
quality_scoresis 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
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_domainscore 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
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
Create reproducible splits
The release ships as one train file. For a reproducible evaluation split, split by the stable id, not by row order.
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
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:
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.
