Mesures pour les tâches linguistiques : ROUGE, METEOR, EM

Introduction aux LLM avec Python

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Tâches et mesures pour les LLM

 

Mesures d'évaluation pour les tâches linguistiques

Introduction aux LLM avec Python

Tâches et mesures pour les LLM

 

Mesures d'évaluation pour les tâches linguistiques

Introduction aux LLM avec Python

Tâches et mesures pour les LLM

 

Mesures d'évaluation pour les tâches linguistiques

Introduction aux LLM avec Python

ROUGE

  • ROUGE : similarité entre un résumé généré et des résumés de référence
    • Examine les n-grammes et les recouvrements
    • predictions : sorties du LLM
    • references : résumés fournis par des humains

Comparer the cat sat on the mat et the cat is on the mat

Introduction aux LLM avec Python

ROUGE

rouge = evaluate.load("rouge")
predictions = ["""as we learn more about the frequency and size distribution of 
exoplanets, we are discovering that terrestrial planets are exceedingly common."""]
references = ["""The more we learn about the frequency and size distribution of 
exoplanets, the more confident we are that they are exceedingly common."""]

Scores ROUGE :

  • rouge1 : chevauchement de unigrams
  • rouge2 : chevauchement de bigrams
  • rougeL : longues sous-séquences qui se recouvrent
Introduction aux LLM avec Python

Résultats ROUGE

Scores ROUGE :

  • rouge1 : chevauchement de unigrams
  • rouge2 : chevauchement de bigrams
  • rougeL : longues sous-séquences qui se recouvrent

 

  • Scores entre 0 et 1 : plus c'est élevé, plus la similarité est grande
results = rouge.compute(predictions=predictions,
                         references=references)

print(results)
{'rouge1': 0.7441860465116279, 
'rouge2': 0.4878048780487805, 
'rougeL': 0.6976744186046512, 
'rougeLsum': 0.6976744186046512}
Introduction aux LLM avec Python

METEOR

  • METEOR : plus de traits linguistiques comme les variations de mots, les sens similaires et l'ordre des mots
bleu = evaluate.load("bleu")
meteor = evaluate.load("meteor")


prediction = ["He thought it right and necessary to become a knight-errant, roaming the world in armor, seeking adventures and practicing the deeds he had read about in chivalric tales."] reference = ["He believed it was proper and essential to transform into a knight-errant, traveling the world in armor, pursuing adventures, and enacting the heroic deeds he had encountered in tales of chivalry."]
Introduction aux LLM avec Python

METEOR

results_bleu = bleu.compute(predictions=pred, references=ref)
results_meteor = meteor.compute(predictions=pred, references=ref)
print("Bleu: ", results_bleu['bleu'])
print("Meteor: ", results_meteor['meteor'])
Bleu:  0.19088841781992524
Meteor:  0.5350702240481536
  • Score 0-1 : plus c'est élevé, mieux c'est
Introduction aux LLM avec Python

Questions et réponses

 

Mesures d'évaluation pour les tâches linguistiques

Introduction aux LLM avec Python

Exact Match (EM)

  • Exact Match (EM) : vaut 1 si la sortie du LLM correspond exactement à la réponse de référence

 

  • Utilisé généralement avec le score F1
from evaluate import load
em_metric = load("exact_match")

exact_match = evaluate.load("exact_match")
predictions = ["The cat sat on the mat.",
               "Theaters are great.", 
               "Like comparing oranges and apples."]
references = ["The cat sat on the mat?", 
              "Theaters are great.", 
              "Like comparing apples and oranges."]

results = exact_match.compute(
  references=references, predictions=predictions)
print(results)
{'exact_match': 0.3333333333333333}
Introduction aux LLM avec Python

Passons à la pratique !

Introduction aux LLM avec Python

Preparing Video For Download...