skip to content

Search

Ethics, Bias, and Responsible AI

Less than one minute read Updated:

Why responsible AI is a PM responsibility: where bias enters the stack, how to audit and govern it, and what guardrails, transparency, and risk management look like in practice.

When an AI feature hurts someone, the reporter does not ask which engineer wrote the loss function. They ask who shipped it.

That question lands on product, every time. I own the system of record under a DSP and an ad exchange at InMobi that processes 200M+ devices’ worth of ad events a day, and before that I led the AI creative platform at Pixis that took AdRoom from $0 to $10M ARR in five months. Neither job let me hand the ethics of the feature to someone else’s team. The guardrail, the human review step, the number a user saw on screen, those were product calls, mine to make.

So that’s today’s post.

Today’s Post

The five decisions that determine whether an AI feature stays safe as it scales, in order.

  • Where bias enters before the model ever sees your roadmap
  • Why an audit has to be a release habit, not a report
  • Ship criteria you can test, written down before launch
  • Guardrails, governance, and human review, built from a real product
  • Privacy and legal risk, which are the same job as content policy
  • Why narrowing a launch is the safest bet you have

1. Bias enters before the model sees your roadmap

Bias does not start in the model. It starts in decisions your team made months earlier, and it compounds across five stages before a user ever sees the output.

Training data reflects whatever happened before. If the history behind the data was unjust or incomplete, the model repeats it. A hiring tool trained on ten years of one kind of hire keeps recommending that kind of hire.

Labeling encodes a person’s judgment, and people disagree. Annotators drift under quota pressure, rubrics get reinterpreted late at night, and the “ground truth” you train against is really one team’s best guess on a Tuesday.

Feature selection decides what the model is allowed to notice. Drop a variable to avoid discrimination and the model often finds a proxy for it anyway, a zip code standing in for the thing you tried to hide.

Evaluation hides the same bias when your test set looks like your majority users and the metric never breaks out by subgroup. A 96% accuracy score can still be a 60% score for the group nobody sliced out.

Deployment is where whatever you missed finally shows up. A model that looked fair in a notebook can skew the moment it gets routed by geography, language, or which support tier the account sits in.

Bias compounds across five stages Nothing at deployment invented the gap, each earlier stage widened it before a user ever saw the output. Grey monospace text names the concrete failure at each stage. Scroll slowly, this plays once. Training data reflects whatever happened before 10 years, one kind of hire Labeling encodes one team's judgment call rubric drift under quota Feature selection decides what the model may notice zip code as a proxy Evaluation hides the gap in an aggregate score 96% overall, 60% one group Deployment is where the missed gap finally shows up routed by geography, tier The gap between the outcome you meant and the outcome a user got, stage by stage. data labels features eval deploy a user feels it here
Five stages, one gap, compounding. Nothing at deployment invented the bias, it only made it visible. (animates as you scroll to it) PNG ↓

Your job across all five stages is the same. Name where a decision embeds a value, and make sure someone besides you can point to it later.


2. An audit is a release habit, not a report

An audit is not a document you write once before launch. It has to run every time you ship, the same way a security scan runs on every deploy.

Start with the subgroups that matter for your product and your market, not every slice a spreadsheet can produce.

Measure disparity on the outcomes people actually feel: error rates, approval rates, how often a ranking buries one group below another, how often a case escalates to a human. Aggregate accuracy hides all of that.

Stress-test with red-team scenarios before a stranger runs them for you, for free. Log every override, every appeal, every human correction. Disagreement between what the model said and what a human decided is the highest-signal data you own, and most teams throw it away.

If you cannot measure how the system behaves on a subgroup, you cannot claim you checked for bias. “We mean well” is not an audit.


3. Ship criteria you can test

Fairness, safety, and privacy deserve the same treatment as any other release requirement: a short list of things that must be true before you widen exposure, each one testable, each one signed by a name.

A criterion that says the model should be fair is not a criterion. A criterion that says the false positive rate for a named subgroup does not exceed a stated ceiling on the held-out set is one you can pass or fail. If you cannot write it in that shape, you are still discovering the risk, not managing it.

A vague goal and a testable gate look nothing alike Same intent, "the model should be fair", written two ways. Only one of them can fail a build. Grey monospace text is the concrete number each version does or doesn't carry. VAGUE ASPIRATION TESTABLE CRITERION "THE MODEL SHOULD BE FAIR" FALSE-POSITIVE RATE ≤ CEILING, NAMED GROUP No named subgroup Named subgroup, stated in the memo No number to check against A stated ceiling on the held-out set No owner signed to it Signed by a name in the ship memo Discovered as a bug post-launch Checked before exposure widens Still discovering the risk Managing the risk, pass or fail example: "false positive rate for group X on the held-out set stays under 4%, owner: PM name"
Same intent, one version you can argue with data, the other only with opinions. PNG ↓

The PM mistake is handing this list to ML and legal separately and finding out on launch week that nobody agreed on the same bar. You convene that conversation early, write the memo people argue with, and put the residual risk in the ship decision where everyone can see it.

Sometimes raising fairness for one group lowers a headline accuracy number, or moves errors somewhere a stakeholder dislikes. That is not proof the fairness fix was wrong. It is proof the objective was never written down as a choice, just left as a default nobody chose. Decide which errors you can least afford, set the floor you will enforce for the group with the least power in the room, and write down what triggers a stop-ship before the metric ever crosses it.


4. Guardrails, governance, and human review, built from a real product

Guardrails stop being an abstraction once you have shipped one. At Pixis, AdRoom generates on-brand ads inside a system that enforces fonts, color, logo rules, and voice at generation time, not after the fact. That one decision let the team retire the manual QA gate that used to sit between a marketer and a live ad, and designer workload dropped 80% because the constraint moved earlier in the pipeline instead of disappearing.

Prism, the AI co-pilot I later led at Pixis, drew a harder line: the AI proposes and explains, the human commits. One-click campaign changes were the whole value of that product and the whole risk of it, so the team never let the model execute a spend change on its own.

Five layers around one AI feature Widest at the outside, so a name is always attached to the outermost catch. Grey monospace text names the concrete example from Pixis's AdRoom and Prism. Governance one name approves policy, one name gets paged ambiguity here is a delay with a title Human review the AI proposes and explains, the human commits Prism: no model executes a spend change Red-teaming stress-test scenarios before a stranger runs them free catches what QA scripts don't try Safety testing SLAs and automated validation on the data platform 99.6% sync reliability, 400+ customers Guardrails, around one AI feature AdRoom: fonts, color, logo, voice enforced at generation time Each layer catches what the one inside it missed. Governance is the only layer with a name attached.
Each layer catches what the one inside it missed. Governance is the only layer with a name attached to it. PNG ↓

Underneath both products, the data platform I built first ran on SLAs and automated validation, catching failures before a downstream feature acted on bad data. That platform held 99.6% end-to-end sync reliability across 400+ enterprise customers, and it is the reason a recommendation on top of it was worth trusting with real budget.

None of this works without governance in the plain sense: one name for who approves a policy change, one name for who gets paged when an incident spikes. Ambiguity here is not neutral. It is a delay with a title.


Users ask three questions about anything you build with their data. What did you do with my input. Will it train a future model. Who can see it. Answer all three in plain language, inside the product, not in paragraph 47 of a policy page.

Minimize what you collect, set a retention window, and default to deleting what you no longer need. Enterprise buyers will ask about data isolation and zero-retention options directly, so know your vendor story to the sentence, because overclaiming here turns into a legal problem fast.

Legal risk lands on your brand even when a vendor’s contract says otherwise. Public memory does not read contracts. A biased output becomes a discrimination claim, unsafe advice becomes a negligence argument, and a deceptive generation becomes a regulatory inquiry, regardless of whose model produced it.

Content policy is not a PR document, it is a product surface. What your assistant refuses, and how it refuses, is the experience for the person who hit that wall. An inconsistent refusal feels arbitrary. An over-broad one frustrates a legitimate use. An under-broad one becomes a headline.

Transparency is not a model card nobody reads. It is telling a user what they need to decide how much to trust an answer: sources, how current the data is, how to report a bad result. My own Pixis case study on this site marks the vendor’s product numbers as vendor-reported and my own outcomes as mine, every time, in the text itself rather than a footnote. That is the same habit at a much smaller scale: say which numbers are yours and which ones are not.


6. Narrow launches are the ethical move

When you are not sure a feature is safe at scale, the safer move is to shrink the launch, not the ambition.

Prism did not launch to every account. My team ran 15+ voice-of-customer interviews before the GTM push, and the discipline was saying no to forty of those requests to ship exactly five roadmap features. Declining the other forty is what kept the co-pilot’s one-click actions trustworthy instead of a wide, unproven bet.

A rollout widens only on evidence Three gates checked at every stage, expansion costs evidence, never calendar time. Grey monospace text is the concrete gate from Prism's rollout. Stage 1 five features, narrow accounts from 15+ VoC interviews Subgroup metrics hold? Stage 2 wider account list incident rates checked weekly yes Incidents fall, queues staffed? Stage 3 general availability only after both gates hold yes not yet: stay narrow, gather evidence not yet: hold at stage 1 rollout stage, widening exposure evidence gate, checked before the next stage
Three gates, checked at every stage. The rollout widens on evidence, never on a date. PNG ↓

Expansion should cost you evidence, not calendar time. Subgroup metrics hold, incident rates fall, review queues stay staffed, before you widen who can use the feature.

If leadership pushes to go wide before that evidence exists, translate the risk into terms a budget owner feels: brand exposure, support load, and the cost of walking back a bad public moment. That sentence has moved more roadmaps than any ethics deck I have written.


Takeaways

Responsible AI is a product decision Five habits that keep an AI feature safe as it scales, from Pixis's AdRoom and Prism Hoshank Ailani · hoshank.vercel.app 1. Bias compounds, 5 stages 1 Training data: repeats what happened before 2 Labeling: one team's judgment, not ground truth 3 Feature selection: a proxy replaces what you hid 4 Evaluation: aggregate accuracy hides one group 5 Deployment: where the missed gap finally shows grade: a 96% overall score can be 60% for one group your job: name where each stage embeds a value 2. Audit is a release habit Runs on every ship, like a security scan Measures disparity on outcomes people feel Logs every override, every appeal Red-teams before a stranger does it free "We mean well" is not an audit. disagreement between model and human: your highest-signal data, and most teams throw it away 3. Ship criteria you can test VAGUE TESTABLE "the model should be fair" FP rate under a stated ceiling no owner, no number named subgroup, signed by a name a bug discovered in week 3 checked before exposure widens Decide the fairness / accuracy tradeoff on purpose, before it looks like a bug. write down what triggers a stop-ship 4. Guardrails, built from a real product AdRoom enforces brand rules at generation time Prism: the AI proposes, the human commits One name approves, one name gets paged 99.6% data platform sync reliability, 400+ customers designer workload dropped 80% once the constraint moved before generation, not after 5. Narrowing a launch is the ethical move 1 15+ interviews voice of customer, before the GTM push → 2 5 features shipped forty requests declined on purpose → 3 Widen on evidence subgroup metrics hold, incidents fall expansion costs evidence, never calendar time a stalled metric means the launch stays narrow Reply and tell me which acceptance criterion your next AI feature is missing. Responsible AI is not a virtue, it is a set of product decisions you either make on purpose or default into. Full post: hoshank.vercel.app/posts/ai-track-ethics-and-responsible-ai Takeaways
The whole post on one card. Save it, share it, argue with it. PNG ↓

Six sections, one habit each. The test to run on the next AI feature your team ships: which of these six do you already have written down, and which one only lives in your head.

Final Words

Responsible AI is not a virtue. It is a set of product decisions you either make on purpose or default into, the same way you decide reliability and cost. Pick the AI feature closest to shipping right now, and write the one acceptance criterion it is missing.

Reply and tell me which one it was. I am collecting the gaps for a follow-up.

Cheers, Hoshank