Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

Pre-training and fine-tuning concept in Prompt Engineering / GenAI - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load a pre-trained model.

Prompt Engineering / GenAI
model = load_model('[1]')
Drag options to blanks, or click blank then click option'
Arandom_weights
Bpretrained_weights
Cuntrained_model
Dempty_model
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing random or empty weights which means no prior learning.
2fill in blank
medium

Complete the code to fine-tune the model on new data.

Prompt Engineering / GenAI
model.train(new_data, epochs=[1])
Drag options to blanks, or click blank then click option'
A1000
B0
C-1
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using zero epochs means no training.
Using very large epochs may overfit the model.
3fill in blank
hard

Fix the error in the code to freeze pre-trained layers before fine-tuning.

Prompt Engineering / GenAI
for layer in model.layers:
    layer.[1] = False
Drag options to blanks, or click blank then click option'
Atrainable
Bfrozen
Clocked
Dfixed
Attempts:
3 left
💡 Hint
Common Mistakes
Using non-existent properties like 'frozen' or 'locked'.
4fill in blank
hard

Fill both blanks to create a fine-tuning loop that updates only unfrozen layers.

Prompt Engineering / GenAI
for layer in model.layers:
    if layer.[1] == [2]:
        update(layer)
Drag options to blanks, or click blank then click option'
Atrainable
BTrue
CFalse
Dfrozen
Attempts:
3 left
💡 Hint
Common Mistakes
Checking for 'frozen' property which does not exist.
Using False instead of True to update layers.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that stores layer names and their trainable status.

Prompt Engineering / GenAI
layer_status = {layer.[1]: layer.[2] for layer in model.[3]
Drag options to blanks, or click blank then click option'
Aname
Btrainable
Clayers
Dweights
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'weights' instead of 'layers' to iterate.
Mixing up 'name' and 'trainable' properties.

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