Skip to content

model_card

get_description#

def get_description(model_class)

Returns the model's description from the docstring.

ModelCardInfo#

class ModelCardInfo(FromParams)

to_dict#

class ModelCardInfo(FromParams):
 | ...
 | def to_dict(self)

Only the non-empty attributes are returned, to minimize empty values.

ModelDetails#

class ModelDetails(ModelCardInfo)

This provides the basic information about the model.

description#

class ModelDetails(ModelCardInfo):
 | ...
 | description: Optional[str] = None

developed_by#

class ModelDetails(ModelCardInfo):
 | ...
 | developed_by: Optional[str] = None

contributed_by#

class ModelDetails(ModelCardInfo):
 | ...
 | contributed_by: Optional[str] = None

date#

class ModelDetails(ModelCardInfo):
 | ...
 | date: Optional[str] = None

version#

class ModelDetails(ModelCardInfo):
 | ...
 | version: Optional[str] = None

model_type#

class ModelDetails(ModelCardInfo):
 | ...
 | model_type: Optional[str] = None

paper#

class ModelDetails(ModelCardInfo):
 | ...
 | paper: Optional[str] = None

citation#

class ModelDetails(ModelCardInfo):
 | ...
 | citation: Optional[str] = None

license#

class ModelDetails(ModelCardInfo):
 | ...
 | license: Optional[str] = None

contact#

class ModelDetails(ModelCardInfo):
 | ...
 | contact: Optional[str] = None

IntendedUse#

class IntendedUse(ModelCardInfo)

This determines what the model should and should not be used for.

primary_uses#

class IntendedUse(ModelCardInfo):
 | ...
 | primary_uses: Optional[str] = None

primary_users#

class IntendedUse(ModelCardInfo):
 | ...
 | primary_users: Optional[str] = None

out_of_scope_use_cases#

class IntendedUse(ModelCardInfo):
 | ...
 | out_of_scope_use_cases: Optional[str] = None

Factors#

class Factors(ModelCardInfo)

This provides a summary of relevant factors such as demographics, instrumentation used, etc. for which the model performance may vary.

relevant_factors#

class Factors(ModelCardInfo):
 | ...
 | relevant_factors: Optional[str] = None

evaluation_factors#

class Factors(ModelCardInfo):
 | ...
 | evaluation_factors: Optional[str] = None

Metrics#

class Metrics(ModelCardInfo)

This lists the reported metrics and the reasons for choosing them.

model_performance_measures#

class Metrics(ModelCardInfo):
 | ...
 | model_performance_measures: Optional[str] = None

decision_thresholds#

class Metrics(ModelCardInfo):
 | ...
 | decision_thresholds: Optional[str] = None

variation_approaches#

class Metrics(ModelCardInfo):
 | ...
 | variation_approaches: Optional[str] = None

EvaluationData#

class EvaluationData(ModelCardInfo)

This provides information about the evaluation data.

dataset#

class EvaluationData(ModelCardInfo):
 | ...
 | dataset: Optional[str] = None

motivation#

class EvaluationData(ModelCardInfo):
 | ...
 | motivation: Optional[str] = None

preprocessing#

class EvaluationData(ModelCardInfo):
 | ...
 | preprocessing: Optional[str] = None

to_dict#

class EvaluationData(ModelCardInfo):
 | ...
 | def to_dict(self)

TrainingData#

class TrainingData(ModelCardInfo)

This provides information about the training data.

dataset#

class TrainingData(ModelCardInfo):
 | ...
 | dataset: Optional[str] = None

motivation#

class TrainingData(ModelCardInfo):
 | ...
 | motivation: Optional[str] = None

preprocessing#

class TrainingData(ModelCardInfo):
 | ...
 | preprocessing: Optional[str] = None

to_dict#

class TrainingData(ModelCardInfo):
 | ...
 | def to_dict(self)

QuantitativeAnalyses#

class QuantitativeAnalyses(ModelCardInfo)

This provides disaggregated evaluation of how the model performed based on chosen metrics.

unitary_results#

class QuantitativeAnalyses(ModelCardInfo):
 | ...
 | unitary_results: Optional[str] = None

intersectional_results#

class QuantitativeAnalyses(ModelCardInfo):
 | ...
 | intersectional_results: Optional[str] = None

EthicalConsiderations#

class EthicalConsiderations(ModelCardInfo)

This highlights any ethical considerations to keep in mind when using the model. Eg. Is the model intended to be used for informing decisions on human life? Does it use sensitive data? What kind of risks are possible, and what mitigation strategies were used to address them?

ethical_considerations#

class EthicalConsiderations(ModelCardInfo):
 | ...
 | ethical_considerations: Optional[str] = None

CaveatsAndRecommendations#

class CaveatsAndRecommendations(ModelCardInfo)

This lists any additional concerns. Eg. were any relevant groups not present in the evaluation data?

caveats_and_recommendations#

class CaveatsAndRecommendations(ModelCardInfo):
 | ...
 | caveats_and_recommendations: Optional[str] = None

ModelCard#

class ModelCard(ModelCardInfo):
 | def __init__(
 |     self,
 |     id: str,
 |     registered_model_name: Optional[str] = None,
 |     model_class: Optional[type] = None,
 |     registered_predictor_name: Optional[str] = None,
 |     display_name: Optional[str] = None,
 |     archive_file: Optional[str] = None,
 |     overrides: Optional[Dict] = None,
 |     model_details: Optional[Union[str, ModelDetails]] = None,
 |     intended_use: Optional[Union[str, IntendedUse]] = None,
 |     factors: Optional[Union[str, Factors]] = None,
 |     metrics: Optional[Union[str, Metrics]] = None,
 |     evaluation_data: Optional[Union[str, EvaluationData]] = None,
 |     training_data: Optional[Union[str, TrainingData]] = None,
 |     quantitative_analyses: Optional[Union[str, QuantitativeAnalyses]] = None,
 |     ethical_considerations: Optional[Union[str, EthicalConsiderations]] = None,
 |     caveats_and_recommendations: Optional[Union[str, CaveatsAndRecommendations]] = None
 | )

The model card stores the recommended attributes for model reporting as described in the paper Model Cards for Model Reporting (Mitchell et al, 2019).

Parameters

  • id : str
    Model's id, following the convention of task-model-relevant-details. Example: rc-bidaf-elmo for a reading comprehension BiDAF model using ELMo embeddings.
  • registered_model_name : str, optional
    The model's registered name. If model_class is not given, this will be used to find any available Model registered with this name.
  • model_class : type, optional
    If given, the ModelCard will pull some default information from the class.
  • registered_predictor_name : str, optional
    The registered name of the corresponding predictor.
  • display_name : str, optional
    The pretrained model's display name.
  • archive_file : str, optional
    The location of model's pretrained weights.
  • overrides : Dict, optional
    Optional overrides for the model's architecture.
  • model_details : Union[ModelDetails, str], optional
  • intended_use : Union[IntendedUse, str], optional
  • factors : Union[Factors, str], optional
  • metrics : Union[Metrics, str], optional
  • evaluation_data : Union[EvaluationData, str], optional
  • quantitative_analyses : Union[QuantitativeAnalyses, str], optional
  • ethical_considerations : Union[EthicalConsiderations, str], optional
  • caveats_and_recommendations : Union[CaveatsAndRecommendations, str], optional

Note

For all the fields that are Union[ModelCardInfo, str], a str input will be treated as the first argument of the relevant constructor.

to_dict#

class ModelCard(ModelCardInfo):
 | ...
 | def to_dict(self) -> Dict[str, Any]

Converts the ModelCard to a flat dictionary object. This can be converted to json and passed to any front-end.