Para crear una tarjeta de modelo
importante
Las políticas de IAM personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear recursos de Amazon SageMaker también deben conceder permisos para añadir etiquetas a dichos recursos. El permiso para añadir etiquetas a los recursos es necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores AccessDenied al intentar crear recursos. Para obtener más información, consulte Concesión de permisos para etiquetar recursos de SageMaker AI.
Las Políticas administradas por AWS para Amazon SageMaker AI que conceden permisos para crear recursos de SageMaker ya incluyen permisos para añadir etiquetas al crear esos recursos.
Puede crear una tarjeta de modelo de Amazon SageMaker AI mediante la consola de SageMaker AI o el SageMaker AI Python SDK. También puede utilizar operaciones de la API directamente. Para obtener más información sobre las operaciones de la API, consulte API de SageMaker de bajo nivel para tarjetas de modelos.
Creación de una tarjeta del modelo desde la consola de SageMaker AI
Vaya a la consola de Amazon SageMaker AI. En el panel de navegación, en Gobernanza, elija Tarjetas de modelos. En la esquina superior derecha, seleccione Crear tarjeta de modelo.
Siga los cuatro pasos que aparecen en el mensaje de Crear tarjeta de modelo para documentar los detalles de su modelo.
Paso 1: Ingresar los detalles del modelo y el uso previsto
Si su modelo es un recurso de AWS, especifique el nombre exacto del modelo en este campo para rellenar automáticamente los detalles del modelo. Para buscar los nombres de los modelos existentes, consulte Modelos en la consola de Amazon SageMaker AI. Cada nombre de modelo único solo puede tener una tarjeta de modelo asociada.
Si su modelo no es un recurso de AWS, proporcione un nombre único para el modelo. Para agregar un modelo como un recurso de AWS, consulte Crear un modelo en la Guía para desarrolladores de Amazon SageMaker AI. Como alternativa, puede agregar el modelo como paquete de modelos desde Marketplace de SageMaker AI o Registro de modelos de SageMaker AI.
Para obtener más información sobre los usos previstos, consulte Usos previstos de un modelo. Para obtener más información sobre las clasificaciones de riesgo, consulte Clasificaciones de riesgo.
Paso 2: Ingresar detalles de entrenamiento
Agregue los detalles del entrenamiento, las observaciones del entrenamiento, los conjuntos de datos, los hiperparámetros y los detalles sobre la función objetivo del modelo a la tarjeta de modelo.
La función objetivo de una tarjeta de modelo puede ser cualquier función que se optimice durante el entrenamiento. Esto puede incluir, entre otras cosas, funciones de costos, funciones de pérdida o métricas objetivas. En esta sección, documente la función objetivo que es más importante para entrenar su modelo.
Se recomienda catalogar los siguientes atributos de la función objetivo:
-
Dirección de optimización
-
Métrica
-
Descripción
Por ejemplo, puede minimizar (dirección de optimización) la pérdida de entropía cruzada (métrica) para un problema de clasificación binaria (descripción) o maximizar la probabilidad de una regresión logística. Además, puede proporcionar notas sobre por qué eligió esta función objetivo en lugar de otras.
Paso 3: Ingresar los detalles de la evaluación
Si ya tiene informes de evaluación generados por SageMaker Clarify o el monitor de modelos, proporcione un URI de S3 para esos informes o cárguelos manualmente para agregarlos a la tarjeta de modelo.
Para obtener más información sobre SageMaker Clarify, consulte Ejecutar trabajos de procesamiento de SageMaker Clarify para obtener análisis del sesgo y explicabilidad.
Para obtener más información sobre la supervisión de la desviación en las métricas de calidad del modelo mediante el monitor de modelos, consulte Supervisión de la calidad del modelo.
Para agregar su propio informe de evaluación, elija una Evaluación de tarjeta de modelo genérica. Todos los informes de evaluación de las tarjetas de modelos deben estar en el Esquema JSON de la tarjeta de modelo.
Paso 4: Ingresar detalles adicionales
Agregue campos de detalles personalizados de la tarjeta de modelo para cualquier información adicional que desee incluir en su tarjeta de modelo. Por ejemplo, puede incluir el campo personalizado Línea de negocio con un valor de Finanzas personales.
Guardar la tarjeta de modelo
Tras revisar la información de la tarjeta de modelo, seleccione Guardar en la esquina inferior derecha para guardar la tarjeta de modelo.
Creación de una tarjeta de modelo mediante el SageMaker Python SDK
Antes de crear una tarjeta de modelo, primero debe definir el contenido de la tarjeta de modelo. Cuando se utiliza el SageMaker Python SDK, el contenido del modelo consiste en una descripción general del modelo, detalles de entrenamiento, usos previstos, detalles de evaluación e información adicional.
Puede crear tarjetas de modelos para:
-
Modelos alojados en SageMaker AI
-
Paquetes de modelos (modelos) dentro del registro de modelos de SageMaker
-
Modelos alojados o registrados fuera de SageMaker AI
También puede crear tarjetas de modelos sin asociarles ningún modelo.
Se recomienda agregar los modelos que haya entrenado al registro de modelos de SageMaker. El registro de modelos le ayuda a catalogar los modelos y realizar un seguimiento de las versiones de los modelos. Al crear una tarjeta de modelo, la información sobre el modelo del registro de modelos rellena automáticamente la tarjeta de modelo. Puede editar la tarjeta de modelo o agregarle información después de crearla.
Para obtener más información sobre el uso del registro de modelos, consulte Implementación del registro de modelos con el registro de modelos. Para obtener información sobre la creación de una tarjeta de modelo a partir de un registro de modelos, consulte Creación de una tarjeta de modelo para su modelo en el registro de modelos de SageMaker.
nota
Para utilizar tarjetas de modelo con el SageMaker Python SDK, primero debe establecer una sesión de SageMaker AI. Para obtener más información, consulte Sesión
Para crear una tarjeta de modelo para modelos que no están en el registro de modelos de SageMaker, consulte Creación de un modelo que no esté en el registro de modelos.
Creación de un modelo que no esté en el registro de modelos
Utilice la información de las siguientes secciones para crear una tarjeta de modelo para un modelo que no haya agregado al registro de modelos.
Paso 1: Definir la descripción general del modelo
Defina una visión general de su modelo.
model_overview = ModelOverview.from_model_name( model_name=model_name, sagemaker_session=sagemaker_session, model_description="A-description-of-your-model", problem_type="Problem-type", # For example, "Binary Classification" algorithm_type="Algorithm-type", # For example, "Logistic Regression" model_creator="Name-of-model-creator", model_owner="Name-of-model-owner", )
Si su modelo es un recurso de AWS, la información general, como el ARN del modelo, el URI del contenedor de inferencias y la ubicación en S3 de los artefactos del modelo, se puede recuperar automáticamente. Imprima los metadatos de AWS asociados con los siguientes comandos:
print(model_overview.model_id) print(model_overview.inference_environment.container_image) print(model_overview.model_artifact)
Paso 2: Definir detalles de entrenamiento
Para definir los detalles de entrenamiento de su modelo, primero debe definir su función objetivo.
objective_function = ObjectiveFunction( function=Function( function=ObjectiveFunctionEnum.MINIMIZE, facet=FacetEnum.LOSS, ), notes="An-explanation-about-objective-function", )
A continuación, puede definir los detalles del entrenamiento utilizando la descripción general, la sesión y la función objetivo del modelo existente. Agregue aquí cualquier observación de entrenamiento.
training_details = TrainingDetails.from_model_overview( model_overview=model_overview, sagemaker_session=sagemaker_session, objective_function=objective_function, training_observations="Model-training-observations", )
Una vez más, si el modelo es un recurso de AWS, algunos detalles del entrenamiento se rellenan automáticamente. Imprima el ARN del trabajo de entrenamiento, el URI del contenedor de entrenamiento y las métricas de entrenamiento con los siguientes comandos:
print(training_details.training_job_details.training_arn) print(training_details.training_job_details.training_environment.container_image) print([{"name": i.name, "value": i.value} for i in training_details.training_job_details.training_metrics])
Definir los detalles de la evaluación
Para definir los detalles de la evaluación del modelo, primero debe definir uno o más grupos de métricas para describir las métricas utilizadas en cualquier trabajo de evaluación.
my_metric_group = MetricGroup( name="binary classification metrics", metric_data=[Metric(name="accuracy", type=MetricTypeEnum.NUMBER, value=0.5)] )
A continuación, puede definir los detalles de la evaluación mediante métricas de evaluación y conjuntos de datos para cada trabajo de evaluación. Agregue aquí cualquier observación de evaluación y asigne un nombre único a su trabajo de evaluación.
evaluation_details = [ EvaluationJob( name="Example-evaluation-job", evaluation_observation="Evaluation-observations", datasets=["s3://path/to/evaluation/data"], metric_groups=[my_metric_group], ) ]
Si ya tiene informes de evaluación generados por SageMaker AI Clarify o Monitor de modelos de SageMaker AI, cárguelos en Amazon S3 y proporcione un URI de S3 para analizar automáticamente las métricas de evaluación. Para agregar su propio informe de evaluación genérico de tarjeta de modelo, proporcione un informe en formato JSON de los resultados de la evaluación.
report_type ="clarify_bias.json"example_evaluation_job.add_metric_group_from_json( f"example_metrics/{report_type}", EvaluationMetricTypeEnum.CLARIFY_BIAS )
Paso 3: Definir los usos previstos
Defina los usos previstos del modelo, incluidos el propósito general del modelo y los casos de uso para los que fue diseñado. También se recomienda incluir cualquier factor que pueda afectar a la eficacia de este modelo en un caso de uso concreto y la clasificación de riesgo del modelo por parte de su organización. Para obtener más información, consulte Usos previstos de un modelo y Clasificaciones de riesgo.
intended_uses = IntendedUses( purpose_of_model="Purpose-of-the-model", intended_uses="The-intended-uses-of-this-model", factors_affecting_model_efficiency="Any-factors-effecting-model-efficacy", risk_rating=RiskRatingEnum.LOW, explanations_for_risk_rating="Explanation-for-low-risk-rating", )
Definir información adicional
Por último, puede agregar información personalizada adicional a la tarjeta de modelo. Puede documentar cualquier consideración ética, advertencia y recomendación sobre el modelo. También puede agregar cualquier detalle personalizado que desee en forma de pares clave-valor.
additional_information = AdditionalInformation( ethical_considerations="Any-ethical-considerations", caveats_and_recommendations="Any-caveats-and-recommendations", custom_details={"custom details1":"details-value"}, )
Paso 4: Crear la tarjeta de modelo
Asigne un nombre a la tarjeta de modelo, defina una tarjeta de modelo y, a continuación, utilice esa definición para crear una tarjeta de modelo con el SageMaker Python SDK.
model_card_name ="my-model-card"my_card= ModelCard( name=model_card_name, status=ModelCardStatusEnum.DRAFT, model_overview=model_overview, training_details=training_details, intended_uses=intended_uses, evaluation_details=evaluation_details, additional_information=additional_information, sagemaker_session=sagemaker_session, )my_card.create()
Creación de una tarjeta de modelo para su modelo en el registro de modelos de SageMaker
Antes de empezar a crear una tarjeta de modelo, asegúrese de haber creado un grupo de paquetes de modelos y un paquete de modelos. Para obtener más información sobre el uso del registro de modelos, consulte Implementación del registro de modelos con el registro de modelos.
importante
Debe tener permisos para utilizar las operaciones del registro de modelos de SageMaker. Se recomienda utilizar la política administrada por AWS, AmazonSageMakerModelRegistryFullAccess. Para obtener más información sobre la política administrada, consulte Políticas administradas por AWS para el registro de modelos.
Utilice el SageMaker Python SDK para crear una tarjeta de modelo para un paquete de modelos dentro del registro de modelos de SageMaker. Un paquete de modelos es un modelo que ha entrenado. Al crear una tarjeta de modelo, las tarjetas de modelos de Amazon SageMaker importan automáticamente los datos del paquete de modelos a la tarjeta de modelo.
Al crear una tarjeta de modelo para un paquete de modelos, la tarjeta de modelo de Amazon SageMaker utiliza la operación DescribeModelPackage para agregar los datos del paquete de modelos a la tarjeta de modelo. Los siguientes son ejemplos de los campos que se pueden importar de un paquete de modelos a una tarjeta de modelo:
Utilice el siguiente código para definir el paquete de modelos y crear una tarjeta de modelo a partir de él:
mp_details = ModelPackage.from_model_package_arn( model_package_arn="example_model_package_arn", sagemaker_session=sagemaker_session, ) model_card_name = "example-model-card" my_card = ModelCard( name=model_card_name, status=ModelCardStatusEnum.status, model_package_details=mp_details, sagemaker_session=sagemaker_session, ) my_card.create()
Para , especificará el estado de aprobación de la tarjeta de modelo. Si no especifica un estado, las tarjetas de modelos de SageMaker utilizan el valor predeterminado de statusDRAFT. Si no especifica ninguna sesión de SageMaker AI, las tarjetas de modelos de SageMaker utilizarán la sesión de SageMaker AI predeterminada.
Debe especificar un nombre para el modelo y el nombre de recurso de Amazon (ARN) del paquete de modelos. Para obtener información acerca de cómo obtener el nombre de recurso de Amazon (ARN) para el paquete de modelos, consulte Visualización y actualización de los detalles de una versión del modelo (Boto3).
La tarjeta de modelo que ha creado a partir del paquete de modelos puede que no contenga información o que la información sea inexacta. Puede agregar información a la tarjeta del modelo o editarla. Para obtener más información sobre la administración de tarjetas de modelos, consulte Acciones de las tarjetas de modelos.
El registro de modelos de SageMaker admite el control de versiones de sus paquetes de modelos. Puede versionar su paquete de modelos y crear una tarjeta de modelo para cada versión. La información de las tarjetas de modelos de las versiones anteriores se transfiere a las tarjetas de modelos creadas a partir de versiones posteriores. Por ejemplo, puede tener la versión 1, la versión 2 y la versión 3 de un paquete de modelos. Suponga que ya ha creado una tarjeta de modelo para la versión 1, pero no ha creado ninguna para la versión 2. Si crea una tarjeta de modelo para la versión 3, las tarjetas de modelos de Amazon SageMaker transfieren automáticamente la información de la tarjeta de modelo de la versión 1 a la tarjeta de modelo de la versión 3.
nota
También puede crear tarjetas de modelo para paquetes de modelos que no utilizan el control de versiones. Sin embargo, la mayoría de los flujos de trabajo de machine learning incluyen varias versiones del mismo modelo, por lo que se recomienda hacer lo siguiente:
-
Crear una versión para cada paquete de modelos
-
Crear una tarjeta de modelo para cada versión del paquete de modelos