Synthetic data is made-up data created specifically for testing purposes that mimics the expected inputs your application can get, and LLMs themselves can generate it. 1:35
1. Generate plausible inputs
- Ask the model to create realistic questions — e.g. for a travel assistant, generate trip planning questions.
1:35 - Run those inputs through your app and review the outputs to build a good dataset.
1:52
2. Generate inputs and outputs (RAG)
- Take a source document, have an LLM extract key points, then generate questions for them.
2:01 - Those questions have known answers because they come literally from the document — giving you a labeled ground truth dataset to compare your app's responses against.
2:17
3. Diversify inputs
- Use an LLM to generate different phrasings of the same intent — e.g. "what's the weather today" → "what's the forecast", "will it rain today" — to verify the app processes all input variants correctly.
2:29
flowchart LR
LLM[LLM as generator] --> A["Plausible inputs<br/>(realistic questions)"]
LLM --> B["Inputs + outputs<br/>(RAG ground truth from documents)"]
LLM --> C["Input diversification<br/>(paraphrases of same intent)"]
A --> D[Evaluation dataset]
B --> D
C --> D