Skip to main content
Vous pouvez journaliser les scores NLP à l’échelle du corpus (BLEU, ROUGE, perplexité) avec wandb.log() et les sorties pour chaque exemple avec wandb.Table. Pour les approches générales de journalisation, voir Journaliser des objets et des médias et Journaliser des tableaux. L’exemple suivant montre comment journaliser spécifiquement BLEU, ROUGE, la perplexité et d’autres scores scalaires, de la même manière que la perte :
import wandb
from sacrebleu.metrics import BLEU
from rouge_score import rouge_scorer

with wandb.init(project="nmt-project") as run:
    bleu = BLEU()
    scorer = rouge_scorer.RougeScorer(["rouge1", "rouge2", "rougeL"])

    for epoch in range(num_epochs):
        train(model)
        hypotheses, references = evaluate(model, val_set)

        bleu_score = bleu.corpus_score(hypotheses, [references])
        rouge_scores = [scorer.score(ref, hyp) for ref, hyp in zip(references, hypotheses)]

        run.log({
            "epoch": epoch,
            "val/bleu": bleu_score.score,
            "val/rouge1": sum(s["rouge1"].fmeasure for s in rouge_scores) / len(rouge_scores),
            "val/rougeL": sum(s["rougeL"].fmeasure for s in rouge_scores) / len(rouge_scores),
            "val/perplexity": compute_perplexity(model, val_loader),
        })

Experiments Métriques Exécutions