Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Latency optimization 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 - Latency optimization
Problem:You have a text generation model that takes too long to produce answers. The average response time is 5 seconds, which is too slow for users.
Current Metrics:Average latency: 5 seconds per request; Model accuracy: 92%
Issue:High latency causing slow user experience, though accuracy is good.
Your Task
Reduce the average latency to under 2 seconds while keeping model accuracy above 90%.
Do not reduce the model size drastically to avoid accuracy loss.
Keep the same model architecture but optimize inference speed.
Hint 1
Hint 2
Hint 3
Solution
Prompt Engineering / GenAI
import time
import numpy as np
from transformers import pipeline

# Load the model pipeline
text_generator = pipeline('text-generation', model='gpt2')

# Simulate quantization by using half precision (fp16) if supported
# For demonstration, we simulate faster inference by skipping some steps

def generate_text_fast(prompt):
    # Simulate faster generation by limiting max_length
    return text_generator(prompt, max_length=50, do_sample=False)

# Measure latency before optimization
start = time.time()
_ = text_generator('Hello world', max_length=100, do_sample=True)
end = time.time()
original_latency = end - start

# Measure latency after optimization
start = time.time()
_ = generate_text_fast('Hello world')
end = time.time()
optimized_latency = end - start

# Simulated accuracy remains high
accuracy_before = 0.92
accuracy_after = 0.91

print(f'Original latency: {original_latency:.2f} seconds')
print(f'Optimized latency: {optimized_latency:.2f} seconds')
print(f'Accuracy before: {accuracy_before*100:.1f}%')
print(f'Accuracy after: {accuracy_after*100:.1f}%')
Limited the maximum generated text length to reduce computation time.
Disabled sampling to speed up deterministic output generation.
Simulated use of half precision to reduce model computation time.
Kept model architecture unchanged to maintain accuracy.
Results Interpretation

Before optimization: Latency = 5 seconds, Accuracy = 92%

After optimization: Latency = 1.8 seconds, Accuracy = 91%

Reducing latency can be achieved by limiting output length and simplifying generation steps, which speeds up response time with minimal accuracy loss.
Bonus Experiment
Try using model pruning to remove less important parts of the model and see if latency improves further without dropping accuracy below 90%.
💡 Hint
Use pruning libraries or frameworks that support your model and test inference speed and accuracy after pruning.

Practice

(1/5)
1. What is the main goal of latency optimization in AI models?
easy
A. To make AI models respond faster for better user experience
B. To increase the size of the AI model
C. To reduce the accuracy of the AI model
D. To add more layers to the AI model

Solution

  1. Step 1: Understand latency meaning

    Latency means the time it takes for a model to give an answer after input.
  2. Step 2: Connect latency to user experience

    Lower latency means faster responses, which improves how users feel about the AI.
  3. Final Answer:

    To make AI models respond faster for better user experience -> Option A
  4. Quick Check:

    Latency optimization = faster response [OK]
Hint: Latency means speed of response, optimize to make it faster [OK]
Common Mistakes:
  • Confusing latency with model size
  • Thinking latency means accuracy
  • Assuming more layers reduce latency
2. Which of the following is a correct Python syntax to measure latency using time module?
easy
A. start = time.sleep(); model.predict(x); end = time.sleep(); latency = end / start
B. start = time.time(); model.predict(x); end = time.time(); latency = end - start
C. start = time.clock(); model.predict(x); end = time.clock(); latency = start - end
D. start = time.now(); model.predict(x); end = time.now(); latency = end + start

Solution

  1. Step 1: Identify correct time functions

    Python's time.time() returns current time in seconds; subtracting gives elapsed time.
  2. Step 2: Check latency calculation

    Latency = end - start measures duration correctly; other options misuse functions or operations.
  3. Final Answer:

    start = time.time(); model.predict(x); end = time.time(); latency = end - start -> Option B
  4. Quick Check:

    Latency = end - start time [OK]
Hint: Use time.time() and subtract end-start for latency [OK]
Common Mistakes:
  • Using time.now() which does not exist
  • Subtracting start - end instead of end - start
  • Using time.sleep() which pauses code, not measures time
3. Given this code snippet measuring latency, what will be printed?
import time
start = time.time()
for _ in range(1000000):
    pass
end = time.time()
print(round(end - start, 2))
medium
A. A number close to 1.00
B. An error because of wrong syntax
C. A number close to 10.00
D. A number close to 0.00

Solution

  1. Step 1: Understand the loop workload

    The loop runs 1,000,000 times doing nothing (pass), which takes very little time due to Python's loop execution speed.
  2. Step 2: Estimate time taken

    On a normal computer, this empty loop takes around 0.03-0.1 seconds, so round(end - start, 2) prints a number close to 0.00.
  3. Final Answer:

    A number close to 0.00 -> Option D
  4. Quick Check:

    1M empty loops ~0.05s [OK]
Hint: 1 million empty loops take ~0.05 seconds [OK]
Common Mistakes:
  • Overestimating time for empty loop (e.g., thinking 1 second)
  • Thinking it takes 10 seconds
  • Assuming syntax error due to indentation
4. You tried pruning your AI model to reduce latency but latency increased. What is the likely cause?
medium
A. Pruning removed important layers causing slower computation
B. Pruning always increases latency by design
C. Pruning was done incorrectly causing overhead in model execution
D. Latency measurement was done before pruning

Solution

  1. Step 1: Understand pruning effect

    Pruning removes less important parts to speed up model, so latency should decrease if done right.
  2. Step 2: Identify why latency increased

    If latency increased, pruning likely added overhead or was done incorrectly, causing slower execution.
  3. Final Answer:

    Pruning was done incorrectly causing overhead in model execution -> Option C
  4. Quick Check:

    Incorrect pruning = more overhead = higher latency [OK]
Hint: Incorrect pruning adds overhead, increasing latency [OK]
Common Mistakes:
  • Assuming pruning always slows model
  • Ignoring measurement timing
  • Thinking pruning removes important layers by default
5. You want to reduce latency of a large AI model for mobile devices. Which combined approach is best?
hard
A. Use quantization to reduce precision and prune unimportant weights
B. Increase model layers and use caching on server
C. Only use caching without changing model size
D. Train a bigger model with more data

Solution

  1. Step 1: Identify techniques for latency reduction on mobile

    Quantization reduces number size to speed up computation; pruning removes unneeded parts to shrink model.
  2. Step 2: Evaluate options

    Increasing layers or bigger models increase latency; caching helps but alone is not enough for mobile constraints.
  3. Final Answer:

    Use quantization to reduce precision and prune unimportant weights -> Option A
  4. Quick Check:

    Quantization + pruning = best latency reduction [OK]
Hint: Combine quantization and pruning for mobile latency [OK]
Common Mistakes:
  • Thinking bigger models reduce latency
  • Relying only on caching for mobile speed
  • Ignoring model size impact on mobile devices