Utvärderingsmått för textgenerering

Djupinlärning för text med PyTorch

Shubham Jain

Instructor

Utvärdera textgenerering

  • Textgenerering skapar mänskligt text
  • Standardmått som accuracy och F1 räcker inte för dessa uppgifter
  • Vi behöver mått som utvärderar kvaliteten på genererad text
  • BLEU och ROUGE

Dalle chatbot för textgenerering

Djupinlärning för text med PyTorch

BLEU (Bilingual Evaluation Understudy)

  • Jämför genererad text med referenstext
  • Kontrollerar förekomsten av n-gram
  • I meningen "The cat is on the mat"
    • 1-gram (unigramm): [the, cat, is, on, the, mat]
    • 2-gram (bigram): ["the cat", "cat is", "is on", "on the", och "the mat"]
    • och så vidare för n-gram
  • Perfekt matchning: poäng 1,0
    • 0 innebär ingen matchning
Djupinlärning för text med PyTorch

Beräkna BLEU-poäng med PyTorch

from torchmetrics.text import BLEUScore

generated_text = ['the cat is on the mat'] real_text = [['there is a cat on the mat', 'a cat is on the mat']]
bleu = BLEUScore() bleu_metric = bleu(generated_text, real_text) print("BLEU Score: ", bleu_metric.item())
BLEU Score: tensor(0.7598)
Djupinlärning för text med PyTorch

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

  • Jämför genererad text med referenstext på två sätt
  • ROUGE-N: Beaktar överlappande n-gram (N=1 för unigramm, 2 för bigram osv.) i båda texterna
  • ROUGE-L: Tittar på den längsta gemensamma delsekvensen (LCS) mellan texterna
  • ROUGE-mått:
    • F-mått: Harmoniskt medelvärde av precision och recall
    • Precision: n-gramsmatchningar i genererad text mot referenstexten
    • Recall: n-gramsmatchningar i referenstext mot den genererade texten
  • Prefixen rouge1, rouge2 och rougeL avser 1-gram, 2-gram respektive LCS
Djupinlärning för text med PyTorch

Beräkna ROUGE-poäng med PyTorch

from torchmetrics.text import  ROUGEScore

generated_text='Hello, how are you doing?' real_text= "Hello, how are you?"
rouge = ROUGEScore()
rouge_score = rouge([generated_text], [[real_text]]) print("ROUGE Score:", rouge_score)
Djupinlärning för text med PyTorch

ROUGE-poäng: utdata

ROUGE Score: {'rouge1_fmeasure': tensor(0.8889), 
              'rouge1_precision': tensor(0.8000), 
              'rouge1_recall': tensor(1.),

'rouge2_fmeasure': tensor(0.8571), 'rouge2_precision': tensor(0.7500), 'rouge2_recall': tensor(1.),
'rougeL_fmeasure': tensor(0.8889), 'rougeL_precision': tensor(0.8000), 'rougeL_recall': tensor(1.),
'rougeLsum_fmeasure': tensor(0.8889), 'rougeLsum_precision': tensor(0.8000), 'rougeLsum_recall': tensor(1.)}
Djupinlärning för text med PyTorch

Överväganden och begränsningar

  • Utvärderar ordförekomst, inte semantisk förståelse
  • Känsliga för längden på den genererade texten
  • Referenstextens kvalitet påverkar poängen
Djupinlärning för text med PyTorch

Nu kör vi en övning!

Djupinlärning för text med PyTorch

Preparing Video For Download...