Adversarial Examples and Model Robustness
Data coverage is about whether the training data spans the kinds of inputs and behaviors a model will meet, not only how much data exists.
Why a Model Only Knows What It Has Seen
Imagine a support-chat classifier that was trained mostly on messages of ordinary length. It may perform well on typical messages. The moment a customer sends a single word, or a long and winding complaint, its behavior becomes much harder to predict. The problem is not that the training data is wrong. The problem is that the data does not cover the ground the model will need to walk.
Data coverage is about whether the training data spans the kinds of inputs and behaviors a model will meet, not only how much data exists.
A model learns from the examples it is given. If a whole kind of input never appears in its training data, the model has no direct experience with that kind of input, and its behavior on it is hard to predict. This article asks a practical question: when the data you already have does not cover an area well enough, can you create new data that does? The source answers yes, and the rest of this article explains how that works and where it has limits.
Finding Gaps in a Message Dataset
Coverage gaps are easiest to see when you sort the data along a characteristic. Consider a team that has collected 1,000 customer messages. When they sort the messages by length, they find that almost all of them fall in the middle range, a few are very short, and none are very long. The model has therefore learned about middle-length messages. The very short and very long regions of the input space are effectively empty.
Diagnosing the Length Coverage of 1,000 Messages
A team has 1,000 customer messages for a support-chat model. They want to know which kinds of input the model has learned from, and which it has not.
- 1Choose a characteristic
Sort the messages by length, since length is the characteristic the team suspects may matter.
- 2Count examples in each region
Almost all messages fall in the middle range, a few are very short, and none are very long.
- 3Name the empty regions
The very short and very long regions are the gaps. The model's experience in those regions is effectively nonexistent.
- 4Note what the total count hides
A dataset of 1,000 examples still has holes. The gap is defined by the characteristics of the inputs, not by the number of examples.
The model has learned about middle-length messages. Improving coverage means finding the specific missing characteristics and adding data that has them.
What do you think happens?
Given that almost all messages are middle-length, a few are very short, and none are very long, which kind of message is the model most likely to handle poorly?
Reveal answer
Very short or very long messages
The model has little or no direct experience with those regions, so its behavior there is hard to predict, even though the dataset is large.
Filling Gaps by Targeting a Characteristic
Once a gap is named, the fix follows directly. Data synthesis generates data with targeted characteristics. The source gives two illustrations. In the first, you generate very short texts or very long texts, which fills the length gap from the previous walkthrough. In the second, you create conversations that contain toxic phrases for a toxic detection model, so that the detector sees the kind of content it must recognize. The principle is the same in both cases: choose the characteristic first, then generate data that carries it.
Targeting also works in the opposite direction. The source notes that if real-world data is toxic, you can synthesize safe data instead. Here the goal is not more examples of a problem but examples of the desired behavior that the real data lacks. Whether you want more of a characteristic or less of it, the underlying move is the same: you decide what the data should look like and generate toward that description.
Two Purposes for Synthetic Data
Synthetic data can be used for two different purposes that are easy to confuse. In one, the synthetic data is used to express a behavior, so that a model learns or is tested on that behavior. In the other, the synthetic data is used to challenge the model. Both start from generated data, but they differ in what the generated data is for and in what it reveals about the model.
The first use appears in the source as broad behavior testing. In work titled Discovering Language Model Behaviors with Model-Written Evaluations (Perez et al., 2022), Anthropic discussed data synthesis techniques for generating specific datasets that can test 154 different AI behaviors. These behaviors included personality traits, political views, ethical stances, and social biases. The authors reported that in head-to-head comparisons, language-model-generated datasets approached the quality of human-written ones, and sometimes exceeded them.
Adversarial Examples as Robustness Tests
A concrete case from the source makes the adversarial idea clearer. Gekhman et al. (2022), in their work on TrueTeacher, used large language models to generate factually inconsistent summaries. They then used those generated summaries to train models to detect factual inconsistency. The synthetic data is deliberately wrong in a specific way, and that deliberate wrongness is exactly what the detector needs to learn to notice.
The before and after panels show the logic of a robustness test. An ordinary input tells you how the model handles typical data. A designed input is chosen because it is difficult, so the model's response to it reveals where its behavior is fragile. The source does not describe the mechanics of any particular attack, so the useful lesson here is the purpose: adversarial examples are a way of testing how robust a model is.
Rebalancing Classes with Generated Examples
Coverage problems are not only about the shape of the inputs. They can also be about how labels are distributed. Class imbalance describes the situation where classes in the data are unequally distributed: one class has many examples and another has very few. A model trained on such data sees the common class constantly and the rare class seldom, so the rare class is the one it is most likely to be underprepared for.
The source states that it is possible to generate data for the rare class to address the challenges of class imbalance. The rare class gains examples so that the classes are represented more evenly. The source does not prescribe a particular target ratio, so the right amount of generated data depends on the task. Adding generated examples changes the distribution, but deciding how far to push it remains a judgment for the specific problem.
Mistakes When Generating Data
Common mistake Judging coverage only by dataset size
What it looks likeA team with 1,000 messages assumes the model has seen enough kinds of input.
Why it failsCoverage is about whether the data spans the kinds of inputs the model will meet. The 1,000 messages in the walkthrough still left the very short and very long regions empty.
Do this insteadSort the data by the characteristics that matter and look for empty regions.
Common mistake Generating data without naming the gap
What it looks likeA team produces many more generic messages and hopes coverage improves.
Why it failsTargeted generation starts from a characteristic. Generic data may simply add more of the regions that are already covered.
Do this insteadState the missing characteristic first, then generate data that carries it.
Common mistake Confusing a behavior test with an adversarial test
Why it failsExpressing a behavior and challenging a model are different purposes, with different inputs and different things revealed.
Do this insteadDecide whether the goal is to show a behavior or to expose a weakness, and design the data for that goal.
Common mistake Assuming a fixed target ratio for rare classes
Why it failsThe source does not prescribe a particular ratio, so the right amount of generated data depends on the task.
Do this insteadChoose the amount of rare-class data by considering what the task needs, not by copying a number.
Common mistake Assuming generated data is always as good as human-written data
Practice: Diagnosing a Dataset
A sentiment model was trained on reviews that are nearly all between two and three sentences long. Users now send single-word reviews and very long multi-paragraph reviews. Identify the coverage gap, name the characteristic you would target, and describe the data you would generate to fill it.
Hints
- Start by naming the characteristic that the training data does not vary across, such as length.
- Ask which regions of that characteristic have no examples.
- Describe generated examples in terms of the characteristic, not just the topic.
Key Takeaways
- Data coverage concerns whether training data spans the kinds of inputs and behaviors a model will meet, not only how much data exists.
- Gaps are found by sorting data along a characteristic such as length and looking for empty regions, then filled by generating data that carries that characteristic.
- Synthetic data can express a behavior, or it can challenge a model as an adversarial example, and the two uses reveal different things about the model.
- Generating extra examples of a rare class can help with class imbalance, though the source does not prescribe a target ratio, so the amount depends on the task.