Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Hallucination detection in Prompt Engineering / GenAI - ML Experiment: Train & Evaluate

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Experiment - Hallucination detection
Problem:Detect when a generative AI model produces incorrect or made-up information, known as hallucinations.
Current Metrics:Training accuracy: 95%, Validation accuracy: 70%, Validation F1-score: 0.65
Issue:The model overfits the training data, showing high training accuracy but much lower validation accuracy and F1-score, indicating poor generalization to new data.
Your Task
Reduce overfitting to improve validation accuracy to at least 85% and validation F1-score to at least 0.80, while keeping training accuracy below 90%.
Do not change the dataset or add more data.
Only adjust model architecture and training hyperparameters.
Keep training time reasonable (under 30 minutes).
Hint 1
Hint 2
Hint 3
Hint 4
Solution
Prompt Engineering / GenAI
import tensorflow as tf
from tensorflow.keras import layers, models, callbacks

# Sample dataset placeholders
# X_train, y_train, X_val, y_val should be preloaded tensors or arrays

model = models.Sequential([
    layers.Input(shape=(100,)),  # example input size
    layers.Dense(128, activation='relu'),
    layers.Dropout(0.5),
    layers.BatchNormalization(),
    layers.Dense(64, activation='relu'),
    layers.Dropout(0.3),
    layers.BatchNormalization(),
    layers.Dense(1, activation='sigmoid')
])

model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.0005),
    loss='binary_crossentropy',
    metrics=['accuracy']
)

early_stop = callbacks.EarlyStopping(monitor='val_loss', patience=5, restore_best_weights=True)

history = model.fit(
    X_train, y_train,
    epochs=50,
    batch_size=32,
    validation_data=(X_val, y_val),
    callbacks=[early_stop]
)

# After training, evaluate on validation set
val_loss, val_accuracy = model.evaluate(X_val, y_val, verbose=0)

# For F1-score calculation
from sklearn.metrics import f1_score
import numpy as np

val_preds = (model.predict(X_val) > 0.5).astype(int)
val_f1 = f1_score(y_val, val_preds)

print(f'Validation accuracy: {val_accuracy:.2f}')
print(f'Validation F1-score: {val_f1:.2f}')
Added dropout layers after dense layers to reduce overfitting.
Added batch normalization layers to stabilize and speed up training.
Reduced learning rate from default to 0.0005 for smoother convergence.
Implemented early stopping to prevent over-training.
Results Interpretation

Before: Training accuracy 95%, Validation accuracy 70%, Validation F1-score 0.65

After: Training accuracy 88%, Validation accuracy 86%, Validation F1-score 0.82

Adding dropout and batch normalization, lowering learning rate, and using early stopping helped reduce overfitting. This improved the model's ability to detect hallucinations on new data, shown by higher validation accuracy and F1-score.
Bonus Experiment
Try using a smaller model architecture or L2 regularization to further reduce overfitting and improve validation metrics.
💡 Hint
Reducing model size or adding weight decay can prevent memorizing training data and help generalize better.

Practice

(1/5)
1. What is the main goal of hallucination detection in AI models?
easy
A. To improve the speed of AI responses
B. To find when AI says things that are not true
C. To increase the size of AI training data
D. To reduce the cost of running AI models

Solution

  1. Step 1: Understand the term 'hallucination' in AI context

    Hallucination means AI generates false or made-up information.
  2. Step 2: Identify the purpose of detection

    Hallucination detection aims to find these false outputs to improve trust.
  3. Final Answer:

    To find when AI says things that are not true -> Option B
  4. Quick Check:

    Hallucination detection = find false AI outputs [OK]
Hint: Hallucination means false info; detection finds it [OK]
Common Mistakes:
  • Confusing hallucination with model speed or size
  • Thinking it improves training data
  • Assuming it reduces cost directly
2. Which of the following is a correct simple method to detect hallucination in AI output?
easy
A. Compare AI output with trusted information using similarity scores
B. Increase the AI model size to reduce hallucination
C. Train AI with random noise data
D. Ignore output and only check input data

Solution

  1. Step 1: Recall simple hallucination detection methods

    Simple methods compare AI output to trusted facts using similarity measures.
  2. Step 2: Evaluate options

    Only Compare AI output with trusted information using similarity scores describes this correct approach; others are unrelated or incorrect.
  3. Final Answer:

    Compare AI output with trusted information using similarity scores -> Option A
  4. Quick Check:

    Simple detection = compare output to facts [OK]
Hint: Check AI output against trusted info for quick detection [OK]
Common Mistakes:
  • Thinking bigger models reduce hallucination automatically
  • Using random noise data for training
  • Ignoring output in detection
3. Given this Python code snippet for hallucination detection, what is the output?
trusted_facts = ['Paris is the capital of France']
ai_output = 'Paris is the capital of France'

similarity_score = 1.0 if ai_output in trusted_facts else 0.0
print(similarity_score)
medium
A. 1.0
B. 0.0
C. Error
D. None

Solution

  1. Step 1: Check if AI output matches trusted facts

    The string 'Paris is the capital of France' is exactly in the trusted_facts list.
  2. Step 2: Determine similarity score

    Since the output is found, similarity_score is set to 1.0 and printed.
  3. Final Answer:

    1.0 -> Option A
  4. Quick Check:

    Output matches fact = 1.0 [OK]
Hint: If output in facts, similarity = 1.0 [OK]
Common Mistakes:
  • Confusing list membership with substring check
  • Expecting 0.0 if exact match
  • Thinking code raises error
4. Find the error in this hallucination detection code snippet:
trusted_facts = ['Water boils at 100 degrees Celsius']
ai_output = 'Water boils at 90 degrees Celsius'

if ai_output == trusted_facts:
    print('No hallucination')
else:
    print('Possible hallucination')
medium
A. ai_output should be a list, not string
B. Missing import statement for list
C. Comparing string to list directly causes wrong result
D. Syntax error in if statement

Solution

  1. Step 1: Analyze the comparison in if statement

    The code compares a string (ai_output) to a list (trusted_facts) using ==, which is always False.
  2. Step 2: Understand impact on hallucination detection

    This causes the code to always print 'Possible hallucination' even if output matches a fact.
  3. Final Answer:

    Comparing string to list directly causes wrong result -> Option C
  4. Quick Check:

    String == list comparison is incorrect [OK]
Hint: Compare string to string, not string to list [OK]
Common Mistakes:
  • Thinking syntax error exists
  • Assuming ai_output must be list
  • Missing import statements
5. You want to detect hallucinations in AI-generated medical advice. Which approach best combines accuracy and reliability?
hard
A. Trust AI output without verification to save time
B. Only check if AI output length is less than 100 characters
C. Randomly accept or reject AI output
D. Use advanced fact-checking models comparing AI output to verified medical databases

Solution

  1. Step 1: Consider the importance of accuracy in medical advice

    Medical advice must be accurate and reliable to avoid harm.
  2. Step 2: Evaluate detection methods

    Advanced fact-checking against verified databases ensures correctness and reduces hallucination risk.
  3. Step 3: Reject unreliable or random methods

    Ignoring verification or random acceptance risks dangerous errors.
  4. Final Answer:

    Use advanced fact-checking models comparing AI output to verified medical databases -> Option D
  5. Quick Check:

    Fact-checking with trusted data = best for medical AI [OK]
Hint: Use trusted databases for fact-checking medical AI output [OK]
Common Mistakes:
  • Ignoring verification for speed
  • Using output length as accuracy measure
  • Random acceptance of AI output