Unit 15: Bias, representation and accessibility

32 min
DEVELOPMENT REVIEW DEPLOYMENT - NOT READY FOR RELEASE

Video

Media Pending: Unit Video

Intended content: Full narrated video presentation, including visual assets, caption file, and transcript.

Learning purpose: Run the module's method on the least tractable object it treats -- where

Planned form & duration: Video, ~4 minutes.

Accessible text alternative: One controlled comparison establishes something narrow and The written material below covers the same complete learning path.

Watch what changes

A tally with two features down the side and three runs of prompt A and prompt B across. After the first pair both features look like findings: each appears on one side and not the other. As the second and third pairs fill in, the occupation change holds on every run of prompt A and never on B, while the family mention appears once on each side and then not again. The first is marked as holding on every run; the second is marked as the system varying.

Reading time: about 8 minutes. Activity: about 20 minutes.

Checking without an oracle, one more time

Unit 9 ran the module's method on a case with no computable answer, and the reference was what the sources said. This unit runs it on a harder object still, where the reference is not a document at all.

The question is not "is this output biased", which invites a yes-or-no answer to something that does not have one. It is the question this module always asks:

What would I compare this against, and what would that comparison establish?

That has real answers here. They are less comfortable than a value in a table, and they are the same kind of work.

Where the distributions come from

A model's output reflects the statistical patterns of its training data, shaped further by post-training (Unit 3). Two consequences, stated at the level this module can defend.

What is common in the data tends to be common in the output. Ask for "a nurse" and "a surgeon" and the outputs will tend towards whatever was common in the material — in pronouns, in names, in described appearance. "Tends" is doing real work in that sentence: post-training, system instructions and filtering all sit between the training distribution and what you see, and any of them can damp a pattern or introduce one. So the training data is where the tendency comes from and not a formula for the output. Nothing in the system decided this, and describing it as a decision would be the anthropomorphism the module rules out.

What is rare in the data is thin in the output. This is the less-discussed half and often the more consequential. Material about smaller languages, smaller places, minority practices and less-documented conditions is thinner, so output about them is more likely to be generic, out of date, or wrong in ways that are harder to catch, because there is also less to check it against.

Those two are why "bias" is a poor single word for it. One is a skew you can sometimes see in a single output. The other is an absence, and absences do not announce themselves.

Three places it shows up in your work

In summaries. A summary reflects what is prominent in what it summarised. If you ask for "the main criticisms of X" and one strand of criticism is well-represented online and another is not, the shape of the answer is a fact about the corpus rather than about the criticisms.

In examples. Generated examples, names, scenarios and case studies carry the distribution. In teaching material, recruitment material or anything with an audience, that becomes a fact about who sees themselves in your work.

In descriptions of people. Anything that classifies, ranks, or predicts something about people is the highest-consequence case, and Unit 12's escalation row usually applies.

What a check looks like

You cannot compare against ground truth, because there is no table of what the answer should have been. There are three things you can do, and they establish different things.

1. Vary one thing. Produce the same output with a single attribute changed — a name, a pronoun, a place, a language, and compare. This is the closest thing to a controlled comparison available, and it is the one to reach for.

It is worth being exact about what one such pair shows, because the obvious reading of it is wrong. Two fresh conversations differ in two ways, not one: the attribute you changed, and the ordinary run-to-run variation of a system that does not produce the same words twice. So a difference between them is not yet evidence about the attribute. It is one observation with two candidate explanations.

What separates them is repetition. Run the pair several times, in both orders, and look at whether the difference persists. A feature that appears in four runs out of five on one side and once out of five on the other is telling you something; a feature that appears once is telling you the system varies.

What a repeated comparison establishes: that outputs differed in these specific ways, at this frequency, on this system, on this date. What it does not establish: that no difference exists elsewhere, that the size of the difference is stable, or that you have found the mechanism. You have found a pattern in some outputs, which is a real finding and a modest one.

2. Compare against a real distribution. Where a published statistic exists — who actually works in a profession, which languages are spoken in a place — you can compare the output's spread against it.

What it establishes: a specific, citable mismatch. What it does not establish is more subtle: a match is not a licence, because the real distribution may be the thing you were trying not to reproduce. A recruitment description matching current demographics may be exactly the problem.

3. Ask who is missing. Not a comparison but a prompt to yourself. Who is not in this output, and would I notice if they were absent? Absence is the failure mode that no comparison catches, because you cannot compare against something you did not think of.

Accessibility is the checkable part

Some of this is genuinely hard to establish. Accessibility mostly is not, and it is where a check produces a definite answer.

If you use generated material in anything others read, the ordinary requirements apply and are testable:

The point is not that generated material is worse at this. It is that the requirements are checkable and often unchecked, and that unlike most of this unit you can settle them today, with a tool, for free.

This module runs those checks on itself. scripts/check_accessibility.py is in make test, and it fails the build, and its output ends with a list of the things a machine cannot decide, which is the honest shape for this whole subject.

What this unit is not saying

It is not saying generated material is uniquely biased. Human-written material carries distributions too, and the module makes no comparative claim. What is different is scale and invisibility: an output arrives without the provenance a human author's work usually carries.

It is not saying a varied output is a fair one. Varying an output changes the output. Whether the underlying task was appropriate is a separate question, and it is the one worth asking first when the task is about people.

It is not asking you to solve this. It is asking you to notice it, check what can be checked, and escalate what cannot, which is what the module asks everywhere.

Summary

Then answer cp15-what-a-check-shows and cp15-alt-text at the foot of this page.

Timings: video 4 min, reading 8 min, activity 20 min.

Check yourself

This unit has 2 checkpoints, answered here. A wrong answer says which misunderstanding it matches. Nothing is uploaded.

Local progress is available in a supported browser.

Manage or delete this record

Prefer a terminal?

The same questions, from course/lab/:

python3 selfcheck.py run --unit 15

Your progress, and every checkpoint in the module