(eval_preds)
| 610 | return preds, labels |
| 611 | |
| 612 | def compute_metrics(eval_preds): |
| 613 | preds, labels = eval_preds |
| 614 | if isinstance(preds, tuple): |
| 615 | preds = preds[0] |
| 616 | decoded_preds = tokenizer.batch_decode( |
| 617 | preds, skip_special_tokens=False) |
| 618 | if data_args.ignore_pad_token_for_loss: |
| 619 | # Replace -100 in the labels as we can't decode them. |
| 620 | labels = np.where(labels != -100, labels, tokenizer.pad_token_id) |
| 621 | decoded_labels = tokenizer.batch_decode( |
| 622 | labels, skip_special_tokens=False) |
| 623 | |
| 624 | def clean_str(x_str): |
| 625 | for to_remove_token in to_remove_token_list: |
| 626 | x_str = x_str.replace(to_remove_token, '') |
| 627 | return x_str.strip() |
| 628 | |
| 629 | decoded_preds = [clean_str(x) for x in decoded_preds] |
| 630 | decoded_labels = [clean_str(x) for x in decoded_labels] |
| 631 | |
| 632 | # Some simple post-processing |
| 633 | # decoded_preds, decoded_labels = postprocess_text(decoded_preds, decoded_labels) |
| 634 | |
| 635 | # if metric_name == "rouge": |
| 636 | # result = metric.compute(predictions=decoded_preds, references=decoded_labels, use_stemmer=True) |
| 637 | # # Extract a few results from ROUGE |
| 638 | # result = {key: value.mid.fmeasure * 100 for key, value in result.items()} |
| 639 | # else: |
| 640 | # result = metric.compute(predictions=decoded_preds, references=decoded_labels) |
| 641 | # result = {"bleu": result["score"]} |
| 642 | |
| 643 | result = get_extract_metrics( |
| 644 | pred_lns=decoded_preds, |
| 645 | tgt_lns=decoded_labels, |
| 646 | label_constraint=decoding_type_schema, |
| 647 | decoding_format=data_args.decoding_format, |
| 648 | ) |
| 649 | |
| 650 | prediction_lens = [np.count_nonzero( |
| 651 | pred != tokenizer.pad_token_id) for pred in preds] |
| 652 | result["gen_len"] = np.mean(prediction_lens) |
| 653 | result = {k: round(v, 4) for k, v in result.items()} |
| 654 | return result |
| 655 | |
| 656 | # Initialize our Trainer |
| 657 | trainer = ConstraintSeq2SeqTrainer( |
nothing calls this directly
no test coverage detected