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. Ifmodel_class
is not given, this will be used to find any availableModel
registered with this name. - model_class :
type
, optional
If given, theModelCard
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.