AI Ethics and Bias
Sources of Bias
- Training Data: Biased historical data
- Annotation: Annotator biases
- Representation: Underrepresented groups
- Feedback Loops: Reinforcement of biases
Bias Detection
class BiasDetector:
def __init__(self, model, tokenizer):
self.model = model
self.tokenizer = tokenizer
def measure_sentiment_disparity(self, templates, demographics):
"""Measure sentiment differences across demographics."""
results = {}
for template in templates:
for demo in demographics:
prompt = template.format(demographic=demo)
sentiment = self.get_sentiment(prompt)
if template not in results:
results[template] = {}
results[template][demo] = sentiment
return self.calculate_disparity(results)
def get_sentiment(self, text):
inputs = self.tokenizer(text, return_tensors="pt")
outputs = self.model(**inputs)
# Extract sentiment score
return extract_sentiment(outputs)
def calculate_disparity(self, results):
disparities = {}
for template, demo_scores in results.items():
scores = list(demo_scores.values())
disparities[template] = max(scores) - min(scores)
return disparities
Fairness Metrics
def demographic_parity(predictions, sensitive_attrs):
"""Equal positive prediction rates across groups."""
groups = {}
for pred, attr in zip(predictions, sensitive_attrs):
if attr not in groups:
groups[attr] = []
groups[attr].append(pred)
rates = {g: sum(s)/len(s) for g, s in groups.items()}
return max(rates.values()) - min(rates.values())
def equal_opportunity(predictions, labels, sensitive_attrs):
"""Equal true positive rates across groups."""
groups = {}
for pred, label, attr in zip(predictions, labels, sensitive_attrs):
if attr not in groups:
groups[attr] = {'tp': 0, 'pos': 0}
if label == 1:
groups[attr]['pos'] += 1
if pred == 1:
groups[attr]['tp'] += 1
rates = {g: v['tp']/v['pos'] if v['pos'] > 0 else 0
for g, v in groups.items()}
return max(rates.values()) - min(rates.values())
Ethical Guidelines
| Principle | Description |
|---|---|
| Fairness | Equal treatment across groups |
| Transparency | Explainable decisions |
| Privacy | Data protection |
| Accountability | Clear responsibility |
Summary
Addressing bias and ethics in AI requires systematic detection, measurement, and mitigation throughout the development lifecycle.
Next: We'll explore the future of generative AI.