πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

AI Ethics and Bias

🟒 Free Lesson

Advertisement

AI Ethics and Bias

Bias Detection PipelineInputModel OutputTest PromptsDemographicsDetectionStereotype CheckToxicity ScanDisparity AnalysisRepresentation CheckMetricsDemographic ParityEqual OpportunityCalibrationCounterfactualMitigationData BalancingAdversarial DebiasingOutput FilteringRegularization

Sources of Bias

  1. Training Data: Biased historical data
  2. Annotation: Annotator biases
  3. Representation: Underrepresented groups
  4. 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

PrincipleDescription
FairnessEqual treatment across groups
TransparencyExplainable decisions
PrivacyData protection
AccountabilityClear 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.

⭐

Premium Content

AI Ethics and Bias

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert Generative AI Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement