Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Pre-training and fine-tuning concept in Prompt Engineering / GenAI - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Pre-training and Fine-tuning Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding the role of pre-training

Which statement best describes the purpose of pre-training in machine learning models?

APre-training initializes a model by learning general patterns from a large dataset before adapting to a specific task.
BPre-training involves manually labeling data to improve model performance.
CPre-training is the final step where the model is tested on unseen data to check accuracy.
DPre-training is used to reduce the size of the dataset by removing irrelevant samples.
Attempts:
2 left
💡 Hint

Think about how a model learns general knowledge before focusing on a specific problem.

Model Choice
intermediate
2:00remaining
Choosing a model for fine-tuning

You want to build a sentiment analysis tool using a large language model. Which model type is best suited for fine-tuning on your specific dataset?

AA simple linear regression model trained from scratch
BA pre-trained transformer model like BERT or GPT
CA random forest model without any pre-training
DA clustering algorithm like K-means
Attempts:
2 left
💡 Hint

Consider models that have already learned language patterns and can be adapted.

Predict Output
advanced
2:00remaining
Output of fine-tuning training metrics

What will be the output of the training accuracy after fine-tuning this simple model for 3 epochs?

Prompt Engineering / GenAI
import torch
import torch.nn as nn
import torch.optim as optim

class SimpleModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.linear = nn.Linear(2, 2)

    def forward(self, x):
        return self.linear(x)

model = SimpleModel()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)

# Dummy data: inputs and labels
inputs = torch.tensor([[1.0, 2.0], [2.0, 1.0], [1.5, 1.5], [3.0, 3.0]])
labels = torch.tensor([0, 1, 0, 1])

for epoch in range(3):
    optimizer.zero_grad()
    outputs = model(inputs)
    loss = criterion(outputs, labels)
    loss.backward()
    optimizer.step()

_, predicted = torch.max(outputs, 1)
correct = (predicted == labels).sum().item()
accuracy = correct / labels.size(0)
print(f"Accuracy after 3 epochs: {accuracy:.2f}")
AAccuracy after 3 epochs: 0.50
BAccuracy after 3 epochs: 1.00
CAccuracy after 3 epochs: 0.25
DAccuracy after 3 epochs: 0.75
Attempts:
2 left
💡 Hint

Check the model output and compare predicted labels to true labels after training.

Hyperparameter
advanced
2:00remaining
Effect of learning rate during fine-tuning

During fine-tuning a pre-trained model, what is the typical effect of using a learning rate that is too high?

AThe model will ignore the pre-trained weights and start training from scratch.
BThe model will always converge faster and achieve better accuracy.
CThe model will reduce overfitting by stopping training early.
DThe model may fail to converge and training loss can fluctuate or increase.
Attempts:
2 left
💡 Hint

Think about how big steps in learning affect the model's ability to settle on good solutions.

🔧 Debug
expert
3:00remaining
Identifying the cause of poor fine-tuning results

You fine-tuned a large pre-trained model on a small dataset but the validation accuracy is very low and training loss does not improve. Which issue is most likely causing this?

AThe model architecture is too simple for the task.
BThe dataset is too large, causing overfitting.
CThe learning rate is too high, causing unstable training.
DThe pre-training was done on a similar domain.
Attempts:
2 left
💡 Hint

Consider what happens when training a complex model on limited data with aggressive settings.

Practice

(1/5)
1. What is the main purpose of pre-training in machine learning models?
easy
A. To delete unnecessary data from the model
B. To adjust the model for a specific task
C. To evaluate the model's performance
D. To teach the model general knowledge from large data

Solution

  1. Step 1: Understand pre-training role

    Pre-training is done on large datasets to help the model learn general patterns and knowledge.
  2. Step 2: Differentiate from fine-tuning

    Fine-tuning is the step where the model is adapted to a specific task, not the initial general learning.
  3. Final Answer:

    To teach the model general knowledge from large data -> Option D
  4. Quick Check:

    Pre-training = General knowledge learning [OK]
Hint: Pre-training = general learning, fine-tuning = task-specific [OK]
Common Mistakes:
  • Confusing pre-training with fine-tuning
  • Thinking pre-training is for evaluation
  • Assuming pre-training deletes data
2. Which of the following is the correct way to describe fine-tuning?
easy
A. Adjusting a pre-trained model to perform a specific task
B. Removing layers from a neural network
C. Training a model from scratch on a small dataset
D. Collecting data for training

Solution

  1. Step 1: Define fine-tuning

    Fine-tuning means taking a model already trained on general data and adjusting it for a specific task.
  2. Step 2: Eliminate incorrect options

    Training from scratch is not fine-tuning; removing layers or collecting data are unrelated to fine-tuning.
  3. Final Answer:

    Adjusting a pre-trained model to perform a specific task -> Option A
  4. Quick Check:

    Fine-tuning = adapt pre-trained model [OK]
Hint: Fine-tuning = adapt model, not train from scratch [OK]
Common Mistakes:
  • Confusing fine-tuning with training from scratch
  • Thinking fine-tuning means changing model structure
  • Mixing data collection with fine-tuning
3. Consider this Python-like pseudocode for fine-tuning a pre-trained model:
model = load_pretrained_model()
model.train(specific_task_data)
predictions = model.predict(test_data)
print(predictions)

What is the expected output of print(predictions)?
medium
A. Random values unrelated to the task
B. Predictions based on the specific task after fine-tuning
C. Error because model is not trained
D. Predictions from the original pre-trained model without changes

Solution

  1. Step 1: Understand the code flow

    The model is loaded pre-trained, then trained on specific task data (fine-tuning), then used to predict.
  2. Step 2: Predict output meaning

    After fine-tuning, predictions reflect the model adapted to the specific task, not random or original outputs.
  3. Final Answer:

    Predictions based on the specific task after fine-tuning -> Option B
  4. Quick Check:

    Fine-tuned model predicts task data [OK]
Hint: Fine-tuned model predicts task-specific outputs [OK]
Common Mistakes:
  • Assuming predictions are random
  • Thinking model is untrained
  • Ignoring fine-tuning effect on predictions
4. You try to fine-tune a pre-trained model but get an error: AttributeError: 'NoneType' object has no attribute 'train'. What is the most likely cause?
medium
A. The pre-trained model failed to load, returning None
B. The training data is empty
C. The model is already fine-tuned
D. The prediction method is called before training

Solution

  1. Step 1: Analyze the error message

    The error says 'NoneType' has no attribute 'train', meaning the model variable is None, not a model object.
  2. Step 2: Identify cause of None

    This usually happens if loading the pre-trained model failed and returned None instead of a model.
  3. Final Answer:

    The pre-trained model failed to load, returning None -> Option A
  4. Quick Check:

    None model means load failure [OK]
Hint: Check if model loaded correctly before training [OK]
Common Mistakes:
  • Blaming empty training data for this error
  • Assuming model is already fine-tuned
  • Confusing training and prediction order
5. You have a large language model pre-trained on general text. You want to create a chatbot for medical advice. Which approach best uses pre-training and fine-tuning?
hard
A. Use the pre-trained model without any changes
B. Train a new model from scratch only on medical texts
C. Fine-tune the pre-trained model on medical conversation data
D. Pre-train the model again on medical texts before fine-tuning

Solution

  1. Step 1: Understand the goal

    The goal is to adapt a general language model to a specific medical chatbot task.
  2. Step 2: Evaluate options

    Training from scratch is costly and slow; using the model without changes lacks medical knowledge; re-pre-training is unnecessary and expensive.
  3. Step 3: Choose best approach

    Fine-tuning the pre-trained model on medical conversation data efficiently adapts it to the task.
  4. Final Answer:

    Fine-tune the pre-trained model on medical conversation data -> Option C
  5. Quick Check:

    Fine-tuning adapts general model to specific task [OK]
Hint: Fine-tune pre-trained model for specific tasks [OK]
Common Mistakes:
  • Training from scratch wastes resources
  • Using pre-trained model without fine-tuning misses task needs
  • Re-pre-training is redundant and costly