| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | import json |
| | import os |
| | import tempfile |
| | import unittest |
| |
|
| | from transformers.modelcard import ModelCard, TrainingSummary |
| |
|
| |
|
| | class ModelCardTester(unittest.TestCase): |
| | def setUp(self): |
| | self.inputs_dict = { |
| | "model_details": { |
| | "Organization": "testing", |
| | "Model date": "today", |
| | "Model version": "v2.1, Developed by Test Corp in 2019.", |
| | "Architecture": "Convolutional Neural Network.", |
| | }, |
| | "metrics": "BLEU and ROUGE-1", |
| | "evaluation_data": { |
| | "Datasets": {"BLEU": "My-great-dataset-v1", "ROUGE-1": "My-short-dataset-v2.1"}, |
| | "Preprocessing": "See details on https://arxiv.org/pdf/1810.03993.pdf", |
| | }, |
| | "training_data": { |
| | "Dataset": "English Wikipedia dump dated 2018-12-01", |
| | "Preprocessing": ( |
| | "Using SentencePiece vocabulary of size 52k tokens. See details on" |
| | " https://arxiv.org/pdf/1810.03993.pdf" |
| | ), |
| | }, |
| | "quantitative_analyses": {"BLEU": 55.1, "ROUGE-1": 76}, |
| | } |
| |
|
| | def test_model_card_common_properties(self): |
| | modelcard = ModelCard.from_dict(self.inputs_dict) |
| | self.assertTrue(hasattr(modelcard, "model_details")) |
| | self.assertTrue(hasattr(modelcard, "intended_use")) |
| | self.assertTrue(hasattr(modelcard, "factors")) |
| | self.assertTrue(hasattr(modelcard, "metrics")) |
| | self.assertTrue(hasattr(modelcard, "evaluation_data")) |
| | self.assertTrue(hasattr(modelcard, "training_data")) |
| | self.assertTrue(hasattr(modelcard, "quantitative_analyses")) |
| | self.assertTrue(hasattr(modelcard, "ethical_considerations")) |
| | self.assertTrue(hasattr(modelcard, "caveats_and_recommendations")) |
| |
|
| | def test_model_card_to_json_string(self): |
| | modelcard = ModelCard.from_dict(self.inputs_dict) |
| | obj = json.loads(modelcard.to_json_string()) |
| | for key, value in self.inputs_dict.items(): |
| | self.assertEqual(obj[key], value) |
| |
|
| | def test_model_card_to_json_file(self): |
| | model_card_first = ModelCard.from_dict(self.inputs_dict) |
| |
|
| | with tempfile.TemporaryDirectory() as tmpdirname: |
| | filename = os.path.join(tmpdirname, "modelcard.json") |
| | model_card_first.to_json_file(filename) |
| | model_card_second = ModelCard.from_json_file(filename) |
| |
|
| | self.assertEqual(model_card_second.to_dict(), model_card_first.to_dict()) |
| |
|
| | def test_model_card_from_and_save_pretrained(self): |
| | model_card_first = ModelCard.from_dict(self.inputs_dict) |
| |
|
| | with tempfile.TemporaryDirectory() as tmpdirname: |
| | model_card_first.save_pretrained(tmpdirname) |
| | model_card_second = ModelCard.from_pretrained(tmpdirname) |
| |
|
| | self.assertEqual(model_card_second.to_dict(), model_card_first.to_dict()) |
| |
|
| | def test_model_summary_modelcard_base_metadata(self): |
| | metadata = TrainingSummary("Model name").create_metadata() |
| | self.assertTrue("library_name" in metadata) |
| | self.assertTrue(metadata["library_name"] == "transformers") |
| |
|