Learn, Explore, and Master Artificial Intelligence
Compare and evaluate LLM fine-tuning results. Upload test datasets and model outputs to analyze improvements, regressions, and debug issues.
JSONL or CSV with prompts and expected outputs
JSONL or CSV with model outputs
JSONL or CSV with fine-tuned outputs
Fine-Tune Compare is a client-side evaluation tool that helps you assess the quality of your fine-tuned LLM by comparing its outputs against a base model. The tool operates in four stages:
The tool accepts JSONL (JSON Lines) or CSV formats for all three required files:
Contains the prompts and optionally expected outputs for evaluation.
{
"id": "unique_identifier", // Optional but recommended
"prompt": "Your prompt text here", // Required (or "instruction")
"expected_output": "Expected text", // Optional but recommended
"category": "task_type", // Optional
"tags": ["tag1", "tag2"], // Optional
"metadata": {} // Optional
}
Contains outputs from your base (non-fine-tuned) model.
{
"id": "unique_identifier", // Optional (must match test dataset)
"prompt": "Your prompt text here", // Required if id is missing
"model_output": "Model response" // Required (or "output"/"completion")
}
Contains outputs from your fine-tuned model. Same format as base outputs.
{
"id": "unique_identifier", // Optional (must match test dataset)
"prompt": "Your prompt text here", // Required if id is missing
"model_output": "Model response" // Required (or "output"/"completion")
}
Matching Strategy:
Rows are matched across files using id if present, otherwise by hashing the normalized prompt (trimmed, whitespace collapsed, newlines normalized).
Contains one row per evaluated example with key metrics and flags. Useful for spreadsheet analysis and visualization.
Columns: id, category, prompt, expected, base_output, tuned_output, score_base, score_tuned, delta, status, flags
Contains complete evaluation results including summary statistics and detailed metrics for each example.
Structure: {"summary": {...}, "results": [...]} with full metric breakdowns per example
Contains up to 100 worst-performing examples (lowest delta) in JSONL format, ready to be imported into the JSONL Dataset Editor for dataset correction.
Fields: prompt, expected_output, tuned_output, label, delta, reason_flags
Evaluates whether the output follows expected structural patterns:
Range: 0.0 to 1.0 (normalized)
Measures token overlap between model output and expected output using the Jaccard similarity coefficient:
J(A,B) = |A ∩ B| / |A ∪ B|
Where:
- A = set of tokens in model output (lowercased, whitespace-split)
- B = set of tokens in expected output (lowercased, whitespace-split)
- ∩ = intersection (common tokens)
- ∪ = union (all unique tokens)
Range: 0.0 (no overlap) to 1.0 (identical token sets)
Detects output degradation by identifying repeated 5-word phrases:
min(1.0, max_repeat_count / 5)Range: 0.0 (no repetition) to 1.0 (severe repetition)
Estimates token count using the industry-standard approximation:
estimated_tokens ≈ character_count / 4
This approximation is accurate within ~15% for English text and widely used in LLM cost estimation.
Final score is computed as a weighted average:
If expected_output exists:
score = 0.4 × adherence + 0.3 × structure + 0.3 × similarity
If no expected_output:
score = 0.4 × adherence + 0.3 × structure + 0.3 × (1 - repetition)
Delta Classification:
All processing happens entirely in your browser using JavaScript. No data is sent to any server. Your test datasets, model outputs, and evaluation results remain completely private on your machine. This tool works offline once loaded and can handle datasets up to 50,000 rows efficiently.