Bird
Raised Fist0
NLPml~10 mins

T5 for text-to-text tasks in NLP - 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 the T5 tokenizer.

NLP
from transformers import T5Tokenizer
tokenizer = T5Tokenizer.from_pretrained('[1]')
Drag options to blanks, or click blank then click option'
Abert-base-uncased
Bgpt2
Ct5-small
Droberta-base
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using tokenizer names from other models like 'bert-base-uncased' causes errors.
Misspelling the model name.
2fill in blank
medium

Complete the code to prepare input text for the T5 model.

NLP
input_text = "translate English to German: The house is wonderful."
inputs = tokenizer('[1]', return_tensors='pt')
Drag options to blanks, or click blank then click option'
Aoutput_text
Binput_text
CThe house is wonderful.
Dtranslate English to German
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Passing raw strings instead of the variable.
Using output text instead of input text.
3fill in blank
hard

Fix the error in generating output tokens from the model.

NLP
outputs = model.generate([1].input_ids)
Drag options to blanks, or click blank then click option'
Ainputs
Binput_text
Ctokenizer
Doutputs
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Passing raw text instead of token IDs.
Using the tokenizer object instead of inputs.
4fill in blank
hard

Fill both blanks to decode the output tokens into text.

NLP
decoded_output = tokenizer.[1](outputs[0], skip_special_tokens=[2])
Drag options to blanks, or click blank then click option'
Adecode
Bencode
CTrue
DFalse
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Using 'encode' instead of 'decode'.
Setting 'skip_special_tokens' to False causing extra tokens in output.
5fill in blank
hard

Fill all three blanks to complete the T5 translation pipeline.

NLP
from transformers import T5ForConditionalGeneration, T5Tokenizer

tokenizer = T5Tokenizer.from_pretrained('[1]')
model = T5ForConditionalGeneration.from_pretrained('[2]')
input_text = "translate English to French: I love machine learning."
inputs = tokenizer(input_text, return_tensors='pt')
outputs = model.generate([3].input_ids)
translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
Drag options to blanks, or click blank then click option'
At5-small
Bbert-base-uncased
Cinputs
Dgpt2
Attempts:
3 left
πŸ’‘ Hint
Common Mistakes
Mixing model names like 'bert-base-uncased' or 'gpt2' with T5 code.
Passing raw text instead of token IDs to model.generate.

Practice

(1/5)
1. What is the main idea behind the T5 model in NLP?
easy
A. It treats all language tasks as text input and text output.
B. It uses images as input and text as output.
C. It only works for translation tasks.
D. It requires separate models for each task.

Solution

  1. Step 1: Understand T5's approach to tasks

    T5 converts every language task into a text-to-text format, meaning both input and output are text.
  2. Step 2: Compare options with this approach

    Only It treats all language tasks as text input and text output. correctly states this main idea; others describe different or incorrect approaches.
  3. Final Answer:

    It treats all language tasks as text input and text output. -> Option A
  4. Quick Check:

    T5 text-to-text = text input and text output [OK]
Hint: Remember: T5 always uses text input and output [OK]
Common Mistakes:
  • Thinking T5 uses images as input
  • Believing T5 only does translation
  • Assuming T5 needs multiple models
2. Which of the following is the correct way to tell T5 to perform a summarization task?
easy
A. Add the prefix generate image: before the input text.
B. Add the prefix translate English to French: before the input text.
C. Add the prefix classify sentiment: before the input text.
D. Add the prefix summarize: before the input text.

Solution

  1. Step 1: Identify the task prefix for summarization

    T5 uses specific prefixes to indicate tasks; for summarization, the prefix is "summarize:".
  2. Step 2: Match prefixes to tasks

    Add the prefix summarize: before the input text. correctly uses "summarize:"; others are for different tasks or invalid.
  3. Final Answer:

    Add the prefix summarize: before the input text. -> Option D
  4. Quick Check:

    Summarization prefix = summarize: [OK]
Hint: Use task name as prefix, e.g., summarize: for summaries [OK]
Common Mistakes:
  • Using wrong prefixes like translate for summarization
  • Confusing classification prefix with summarization
  • Adding unrelated prefixes like generate image
3. Given the input to T5: translate English to German: The cat is on the mat. What is the expected output?
medium
A. Die Katze liegt auf der Matte.
B. Le chat est sur le tapis.
C. The cat is on the mat.
D. El gato estΓ‘ en la alfombra.

Solution

  1. Step 1: Identify the task from the prefix

    The prefix "translate English to German:" tells T5 to translate the English sentence into German.
  2. Step 2: Match the correct German translation

    Die Katze liegt auf der Matte. is the correct German translation of "The cat is on the mat." Others are French, English, and Spanish translations.
  3. Final Answer:

    Die Katze liegt auf der Matte. -> Option A
  4. Quick Check:

    English to German translation = Die Katze liegt auf der Matte. [OK]
Hint: Match prefix language to output language translation [OK]
Common Mistakes:
  • Choosing output in wrong language
  • Ignoring the prefix and returning input
  • Confusing similar languages like French and German
4. You wrote this input for T5: summarize The quick brown fox jumps over the lazy dog. but the output is not a summary. What is the likely error?
medium
A. The input text is too short for summarization.
B. You forgot to add a colon after the prefix 'summarize'.
C. T5 cannot summarize sentences with animals.
D. You need to add 'translate:' prefix instead.

Solution

  1. Step 1: Check the prefix syntax

    T5 requires the task prefix to end with a colon, e.g., "summarize:" not "summarize".
  2. Step 2: Understand impact of missing colon

    Without the colon, T5 treats the whole input as text, not as a task instruction, so it won't summarize.
  3. Final Answer:

    You forgot to add a colon after the prefix 'summarize'. -> Option B
  4. Quick Check:

    Prefix colon missing = You forgot to add a colon after the prefix 'summarize'. [OK]
Hint: Always end task prefix with a colon ':' [OK]
Common Mistakes:
  • Ignoring colon after prefix
  • Thinking T5 can't summarize short text
  • Using wrong prefix like translate for summarization
5. You want T5 to answer questions based on a paragraph. Which input format correctly uses T5's text-to-text approach?
hard
A. What is the capital of France? Paris is the capital city of France.
B. translate English to French: What is the capital of France?
C. answer question: What is the capital of France? Context: Paris is the capital city of France.
D. summarize: Paris is the capital city of France.

Solution

  1. Step 1: Identify the task prefix for question answering

    T5 uses prefixes like "answer question:" to specify question answering tasks.
  2. Step 2: Check input format includes question and context

    answer question: What is the capital of France? Context: Paris is the capital city of France. correctly includes the question and context with the proper prefix. Others either miss the prefix or use wrong tasks.
  3. Final Answer:

    answer question: What is the capital of France? Context: Paris is the capital city of France. -> Option C
  4. Quick Check:

    QA prefix with context = answer question: What is the capital of France? Context: Paris is the capital city of France. [OK]
Hint: Use 'answer question:' prefix plus context for QA tasks [OK]
Common Mistakes:
  • Omitting task prefix for question answering
  • Using translation or summarization prefix wrongly
  • Not providing context with the question