← TinyGPT · docs · devlog · roadmap · speedup
source: docs/data_inventory.md · view on GitHub ↗

Dataset inventory

This is the working reference for “what dataset should I use for X.” Every entry is in the curated list-datasets registry; this doc adds the practical bits (downloadable today? what’s in the file? known gotchas?) the registry doesn’t cover.

Quick map:

Cache snapshot — 2026-06-02

Verified by pulling each Tier A foundational set. Sizes from du -sh:

DatasetOn-diskCached formReady for training?
yahma/alpaca-cleaned82 MBcorpus.jsonl (51,760 records)
NousResearch/hermes-function-calling-v1113 MBcorpus.jsonl (11,230 records)
Intel/orca_dpo_pairs67 MBcorpus.jsonl
meta-math/MetaMathQA672 MBcorpus.jsonl
google/IndicGenBench_xquad_in45 MBper-language JSON shards✅ (eval)
argilla/ultrafeedback-binarized-preferences-cleaned145 MBparquet (not decoded)⚠️ needs decode
iamtarun/python_code_instructions_18k_alpaca11 MBparquet (not decoded)⚠️ needs decode
Locutusque/function-calling-chatml102 MBparquet (not decoded)⚠️ needs decode
Salesforce/xlam-function-calling-60k0 B🚫 gated; needs HF_TOKEN
ai4bharat/MILU0 B🚫 gated; needs HF_TOKEN

External (git-cloned, not HF Hub)

SourceOn-diskFormReady for use?
gorilla-llm/gorilla (BFCL v4)223 MBrepo + bfcl_eval/data/*.json (JSONL despite .json ext)✅ — 1,951 router pairs extracted via tinygpt extractor-data --bfcl into ~/.cache/tinygpt/router/bfcl_*.jsonl
sierra-research/tau-bench65 MBpython task files⚠️ — clone done; extractor-data parser doesn’t yet read Python literal tasks

Three of the four ready-for-training sets (alpaca-cleaned, hermes-fc-v1, orca_dpo_pairs, MetaMathQA) are immediately usable with tinygpt sft / tinygpt dpo. Parquet-only sets stage on disk but need a python-side decode pass; see “Known gotchas” §2 below.

GitHub corpus path verified unauthenticated on sindresorhus/is (4 issue→PR records in ~30 s; real corpus build needs GITHUB_TOKEN for the 5,000 req/h limit).

Tool-calling (north-star primary)

DatasetSizeSchemaStatusGotchas
Salesforce/xlam-function-calling-60k~80 MBsft (query + tools + answer)GATEDNeeds HF_TOKEN + accept license at HF
NousResearch/hermes-function-calling-v1~50 MB JSONL{instruction, response} 11,230 records, response wraps tool call in <tool_call>…</tool_call>✅ pulls cleanNone
Locutusque/function-calling-chatml~60 MBsft, ChatML conversationsPARQUETtinygpt’s converter doesn’t decode parquet yet — file lands as .parquet shards; manual decode needed

Verified pull (commit f566023): hermes-function-calling-v1 schema-sniffed as sft (confidence 75%, chat array → conversations), 11,230 records / 8.4M tokens / 6.5M scored tokens. The response format is <tool_call>{"name": ..., "arguments": ...}</tool_call> — not raw JSON. Trainees must learn this XML-wrap to score on BFCL metrics.

Code + debugger

DatasetSizeFormatStatus
princeton-nlp/SWE-bench_Verified~50 MBplain (eval set)Open
princeton-nlp/SWE-bench~3 GBsftOpen (large)
bigcode/the-stack-smol~250 MBplainOpen
iamtarun/python_code_instructions_18k_alpaca~12 MBsft (alpaca-style)Open, small, ideal smoke base
open-r1/codeforces-cots~1.5 GBsftOpen, reasoning trace heavy
bigcode/commitpack~4 TBsftSubset recommended — full set will fill any disk

For the debugger specialist, the natural starting corpus is SWE-bench_Verified + python_code_instructions_18k_alpaca (~62 MB total), with issue→PR pairs from tinygpt fetch-github added on top for repo-specific context. SWE-bench Verified is also the canonical eval target.

Math + reasoning

DatasetSizeFormatNotes
meta-math/MetaMathQA~200 MBsftFoundational math instruction set
AI-MO/NuminaMath-CoT~800 MBsft, chain-of-thoughtHeavier math reasoning
nvidia/OpenMathReasoning~1 GBsftLong-form reasoning traces
open-thoughts/OpenThoughts-114k~3 GBsftReasoning trace corpus
open-thoughts/OpenThoughts2-1M~30 GBsftXL reasoning corpus — use sample

Instruct (general)

DatasetSizeFormatStatus
yahma/alpaca-cleaned~25 MBsft (alpaca)Already cached at ~/.cache/tinygpt/datasets/yahma/
iamtarun/python_code_instructions_18k_alpaca~12 MBsft(also in Code section)
teknium/OpenHermes-2.5~1.6 GBsftLarge general-purpose SFT
HuggingFaceH4/ultrachat_200k~1.2 GBsftMulti-turn chat

Preference (DPO)

DatasetSizeFormatNotes
argilla/ultrafeedback-binarized-preferences-cleaned~200 MBdpoStandard DPO training corpus
HuggingFaceH4/ultrafeedback_binarized~250 MBdpoSame-family alternative
Intel/orca_dpo_pairs~50 MBdpoSmaller, faster smoke option

General pretrain corpora

DatasetSizeFormatNotes
roneneldan/TinyStories~1 GBplainCurriculum-style; great for small from-scratch bases
HuggingFaceFW/fineweb-edu~1.3 TBplainUse sample only

Indic / multilingual evals (not training data)

EvalSizeWhat it scoresWire-up
ai4bharat/MILU~50 MBMMLU-style MCQ, 11 Indic langstinygpt eval-indic --task milu --milu-data <path> (scaffold only — eval CLI works, run on real data is operator step)
google/IndicGenBench (XQuAD subtask)variesExtractive QA, 29 Indic langstinygpt eval-indic --task indicgenbench --subtask xquad

Special pipelines (not HF Datasets)

SourceCLIOutputNotes
GitHub REST API (issue→PR, reviews, commits)tinygpt fetch-github <owner/repo>per-record JSONLRate-limited 60 req/h without GITHUB_TOKEN; 5000 req/h with one
BFCL (Berkeley Function-Calling)tinygpt extractor-data --bfcl <path>{query, tool} JSONL for mini-router trainingWalks the BFCL JSON dump
τ-benchtinygpt extractor-data{query, tool} pairsBest-effort parser; full τ-bench ships Python files needing pre-conversion
Synthetic (Magpie)tinygpt magpie <chat-tuned-base>{instruction, response} JSONLNeeds a chat-tuned base; common bootstrap for low-resource tools
Synthetic (cloud)tinygpt extractor-data --synthaugments small classes via Claude/GPTUses CloudEscalate — needs ANTHROPIC_API_KEY / OPENAI_API_KEY

Known gotchas

  1. Gated datasets need HF_TOKEN. The CLI surfaces the accept-license URL — copy it, click through, then export HF_TOKEN=hf_xxx. xlam-function-calling-60k is the most prominent example.

  2. Parquet shards aren’t decoded yet. Some datasets only ship as .parquet (e.g., Locutusque/function-calling-chatml). The tinygpt download-dataset CLI surfaces this with a clear error and the cache path. Decode manually via Python pandas / pyarrow until upstream support lands.

  3. JSONL vs ChatML wrap is a real footgun. tinygpt sft --template chatml wraps everything in <|im_start|>user\n{instruction}<|im_end|>\n<|im_start|>assistant\n{response}. The hermes records already prefix "system: ..." inline, so all of that ends up in the user turn at training time. Test prompts at inference must match this shape, NOT the proper <|im_start|>system\n...\n<|im_start|>user\n...\n<|im_start|>assistant you might expect. See docs/specialist_v1_findings.md.

  4. macOS reaps /tmp. Long-lived training caches should go to ~/.cache/tinygpt/ or a stable project directory. /tmp gets cleaned aggressively (saw this mid-session on 2026-05-31).

  5. The 22-entry registry isn’t exhaustive. It’s the curated slice that’s been tested with tinygpt download-dataset’s schema sniffer. Other HF datasets work if you pass the field names manually via --map.

GoalPull bundleTotal size
Tool-calling specialist (Wave 3 first run)hermes-function-calling-v1~50 MB
Add tool-calling diversity+ Locutusque/function-calling-chatml (after parquet support), + xlam (after HF_TOKEN)+140 MB
Debugger specialistpython_code_instructions_18k_alpaca + SWE-bench_Verified + fetch-github from 2-3 OSS repos~100 MB + repo data
General SFT smokealpaca-cleaned (already cached)25 MB
DPO smokeIntel/orca_dpo_pairs50 MB
Indic eval baselineMILU + IndicGenBench XQuAD subsetvaries

How to extend this doc

When a new dataset becomes interesting, add a row to the right table