Somtharu181coder/student_enrolled_in_different_level_by_district_year
Nepali Grounded Education SFT Dataset Nepali-language ShareGPT-format supervised fine-tuning (SFT) dataset generated from a Ministry of Education enrollment dataset, with every question and answer deterministically templatized (no translator, no LLM, no API, no reward model in the generation loop) and separately audited for semantic grounding and correctness. Source Resource: Number of Students Enrolled in Primary and Secondary School By 75 Districts, 2003–2015… See the full description on the dataset page: https://huggingface.co/datasets/Somtharu181coder/student_enrolled_in_different_level_by_district_year.
Nepali Grounded Education SFT Dataset
Nepali-language ShareGPT-format supervised fine-tuning (SFT) dataset generated from a Ministry of Education enrollment dataset, with every question and answer deterministically templatized (no translator, no LLM, no API, no reward model in the generation loop) and separately audited for semantic grounding and correctness.
Source
- Resource: Number of Students Enrolled in Primary and Secondary School By 75 Districts, 2003–2015 BS
- Domain: Ministry of Education
- Original raw rows: 962 (74 district labels × 13 years, plus 13 national-total rows)
Contents
Record format (ShareGPT)
{
"id": "grounded_education_achham_2003_000001_v01",
"conversations": [
{"from": "human", "value": "वि.सं. २००३ मा अछाम जिल्लाका प्राथमिक विद्यालयमा कति विद्यार्थी भर्ना भएका थिए?"},
{"from": "gpt", "value": "वि.सं. २००३ मा अछाम जिल्लाका प्राथमिक विद्यालयमा ४०५७८ विद्यार्थी भर्ना भएका थिए।"}
],
"District": "Achham",
"Year": "2003",
"Primary": "40578",
"Secondary": "2590",
...
}Year-wise (all-district) records additionally carry aggregation_scope, aggregation_year, and district_count.
Composition
- 7,592 district-level records — 73 real districts × 13 years × 8 question variants (primary fact, secondary fact, both-level total, difference, higher-enrollment level, lower-enrollment level, primary-vs-secondary comparison, direct combined calculation).
- 130 year-wise records — 13 years × 10 question variants (highest/lowest district by primary, by secondary, and by combined total; national totals by primary, by secondary, and combined; primary-vs-secondary national difference).
- All numerals are Devanagari (०-९); no ASCII digits remain in any conversation turn.
Data-quality corrections applied during generation
The raw file contained two defects that would have corrupted the dataset if left untouched. Both were fixed in the generator, not patched after the fact:
- A national-total row mislabeled as a 75th district (
"District": "Nepal", whose Primary/Secondary are the countrywide totals). Excluded from both per-district templatization and year-wise aggregation — leaving it in would have (a) generated a false claim calling Nepal itself a "जिल्ला," and (b) made "Nepal" trivially win every highest-enrollment question and double-count every national total. - A corrupted Year value (
Myagdi,"Year": "200"instead of"2008", the only break in an otherwise unbroken 2003–2015 sequence for that district). Corrected before templatization so it did not create a spurious one-record "year 200" bucket.
Real districts still absent from this source file (not corrected, since there is no ground truth to correct them with): Baitadi, Dang.
Audit methodology
audit_nepali_sft.py re-derives every answer independently of the generator and checks it against ground truth:
- District-level records: ground truth is the record's own
Primary/Secondaryfields; the answer's Devanagari numerals are extracted and compared to the correct primary/secondary/total/difference, and (for comparison-type questions) the claimed "which level is higher/ lower" direction is checked against the actual values. - Year-wise records: ground truth is recomputed from scratch from all district-level rows for that year present in the file itself (independent of whatever the generator computed) — totals, and the highest/lowest district by primary, secondary, and combined total, with the same tie-break rule (value, then district name) as the generator.
- Structural checks: conversation shape, non-empty turns, correct
fromroles, no duplicate/missing IDs, no stray ASCII digits, correct Nepali district name usage.
This is a deterministic, rule-based auditor — no LLM judge, no reward model, no network calls — every score is traceable to a named failed check. The auditor was validated against a deliberately corrupted test batch (wrong numeric value, stray ASCII digit, duplicate ID, wrong winning district) and correctly flagged all four before being run on the real file.
Reward scoring
Each record gets a reward in [0.0, 1.0]: 1.0 minus the sum of penalty weights for every failed check (floored at 0.0). Factual/grounding mismatches and structural defects are weighted at 1.0 (a single one is enough to fail the record); digit-formatting and district-name-usage issues are weighted lower (0.3–0.4) as cosmetic-but-real defects.
Audit results (this file)
Every question type (all 8 district-level + all 10 year-wise variants) scored a 100% pass rate. See audit_report.md for the full per-type breakdown and issue-frequency table (empty, since no issues were found).
Known limitations
- Source coverage is 73 of Nepal's 75 districts for this period — Baitadi and Dang are absent from the raw Ministry data itself.
- Enrollment figures are as published by the source; no independent verification against a second source was performed (that is out of scope for a grounding audit, which checks generator-to-source consistency, not source-to-reality accuracy).
