Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Content writing assistance 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 - Content writing assistance
Problem:You want to build a simple AI model that helps generate short, clear content suggestions based on a given topic.
Current Metrics:Training loss: 0.15, Validation loss: 0.45, Training accuracy: 92%, Validation accuracy: 70%
Issue:The model is overfitting: it performs well on training data but poorly on validation data, meaning it does not generalize well to new topics.
Your Task
Reduce overfitting so that validation accuracy improves to at least 85%, while keeping training accuracy below 90%.
You can only modify the model architecture and training parameters.
You cannot change the dataset or add more data.
Hint 1
Hint 2
Hint 3
Solution
Prompt Engineering / GenAI
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
from tensorflow.keras.callbacks import EarlyStopping

# Sample data placeholders (replace with actual data)
X_train, y_train = ...  # training features and labels
X_val, y_val = ...      # validation features and labels

model = Sequential([
    Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
    Dropout(0.3),
    Dense(32, activation='relu'),
    Dropout(0.3),
    Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

early_stop = 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]
)
Added Dropout layers with 30% rate after dense layers to reduce overfitting.
Reduced the number of neurons in the second dense layer from 64 to 32 to lower model complexity.
Added EarlyStopping callback to stop training when validation loss stops improving.
Results Interpretation

Before: Training accuracy 92%, Validation accuracy 70% (overfitting)

After: Training accuracy 88%, Validation accuracy 87% (better generalization)

Adding dropout and early stopping helps the model generalize better by preventing it from memorizing training data, reducing overfitting.
Bonus Experiment
Try using L2 regularization instead of dropout to reduce overfitting and compare results.
💡 Hint
Add kernel_regularizer=tf.keras.regularizers.l2(0.01) to Dense layers and remove dropout layers.

Practice

(1/5)
1. What is the main purpose of content writing assistance using AI?
easy
A. To replace human writers completely
B. To only check spelling mistakes
C. To help create and improve text like emails and articles
D. To generate images for articles

Solution

  1. Step 1: Understand content writing assistance

    Content writing assistance uses AI to help users write better text by suggesting improvements and generating content.
  2. Step 2: Identify the main purpose

    The main goal is to assist in creating and improving text such as emails, articles, and summaries, not to replace humans or only fix spelling.
  3. Final Answer:

    To help create and improve text like emails and articles -> Option C
  4. Quick Check:

    Content writing assistance = help create and improve text [OK]
Hint: Focus on AI helping text, not replacing humans [OK]
Common Mistakes:
  • Thinking AI replaces all human writers
  • Believing it only fixes spelling
  • Confusing text help with image generation
2. Which of the following is the correct way to call an AI model for content writing assistance in Python?
easy
A. response = ai_model.generate_text(prompt='Write an email')
B. response = ai_model.generateText(prompt='Write an email')
C. response = ai_model.generate-text(prompt='Write an email')
D. response = ai_model.generate text(prompt='Write an email')

Solution

  1. Step 1: Check method naming conventions in Python

    Python methods use underscores and lowercase letters, so generate_text is correct.
  2. Step 2: Identify syntax errors in other options

    generateText uses camelCase (not typical in Python), generate-text and generate text have invalid characters or spaces.
  3. Final Answer:

    response = ai_model.generate_text(prompt='Write an email') -> Option A
  4. Quick Check:

    Python method syntax = generate_text [OK]
Hint: Python methods use underscores, no spaces or hyphens [OK]
Common Mistakes:
  • Using camelCase instead of snake_case
  • Including spaces or hyphens in method names
  • Misplacing parentheses or quotes
3. What will be the output of this Python code snippet using a content writing AI model?
prompt = 'Summarize the benefits of AI'
response = ai_model.generate_text(prompt=prompt)
print(response)
medium
A. Empty output with no text
B. An error because prompt is not defined
C. The exact prompt string printed
D. A summary text explaining AI benefits

Solution

  1. Step 1: Understand the code flow

    The code sends a prompt to the AI model to generate text summarizing AI benefits.
  2. Step 2: Predict the output

    The print statement outputs the AI-generated summary text, not the prompt or an error.
  3. Final Answer:

    A summary text explaining AI benefits -> Option D
  4. Quick Check:

    AI model generates summary text = output [OK]
Hint: AI generates text from prompt, not just echoing it [OK]
Common Mistakes:
  • Thinking prompt variable is undefined
  • Expecting the prompt string printed
  • Assuming no output is returned
4. Identify the error in this code snippet for content writing assistance:
response = ai_model.generate_text(prompt='Write a summary')
print(response.text)
medium
A. The attribute 'text' does not exist on response
B. The prompt string is missing
C. The method generate_text is misspelled
D. print() function is used incorrectly

Solution

  1. Step 1: Check the response object structure

    Usually, the response from generate_text is a string, not an object with a 'text' attribute.
  2. Step 2: Identify the error cause

    Accessing response.text causes an error because response is already the text output.
  3. Final Answer:

    The attribute 'text' does not exist on response -> Option A
  4. Quick Check:

    response is string, no .text attribute [OK]
Hint: Check if response is string before using .text [OK]
Common Mistakes:
  • Assuming response is an object with attributes
  • Misspelling method names
  • Misusing print function syntax
5. You want to use AI content writing assistance to generate a polite email reply that includes a summary of the original message. Which approach combines content generation and summarization correctly?
hard
A. Generate the polite reply directly without summarizing the original message
B. First generate a summary of the original message, then use it as context to generate the polite reply
C. Summarize the polite reply after generating it
D. Generate a summary and a reply separately without linking them

Solution

  1. Step 1: Understand the task requirements

    You need a polite reply that includes a summary of the original message, so summarization must happen first.
  2. Step 2: Combine summarization and generation logically

    Summarize the original message, then feed that summary as context to generate a polite reply that includes it.
  3. Final Answer:

    First generate a summary of the original message, then use it as context to generate the polite reply -> Option B
  4. Quick Check:

    Summarize first, then generate reply [OK]
Hint: Summarize original first, then generate reply using summary [OK]
Common Mistakes:
  • Generating reply without summary context
  • Summarizing reply instead of original message
  • Treating summary and reply as unrelated