

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de Neptune ML sin utilizar la plantilla de inicio rápido CloudFormation
<a name="machine-learning-manual-setup"></a>

 Esta guía proporciona step-by-step instrucciones para configurar Amazon Neptune ML sin utilizar la plantilla de inicio AWS CloudFormation rápido. Se entiende que ya dispone de un clúster de base de datos de Neptune en funcionamiento y se describe la configuración necesaria, incluida la instalación del servicio Neptune-Export, la creación de roles de IAM personalizados y la configuración del clúster de base de datos para habilitar Neptune ML. La guía también explica cómo crear dos puntos finales de SageMaker IA en su VPC de Neptune para que el motor Neptune acceda a la gestión de IA necesaria. SageMaker APIs Si sigue estas instrucciones, puede configurar Neptune ML en su infraestructura de Neptuno existente sin tener que depender de la plantilla. CloudFormation 

## Comenzar con un clúster de base de datos de Neptune que funcione
<a name="ml-manual-setup-prereq"></a>

Si no utiliza la plantilla de CloudFormation inicio rápido para configurar Neptune ML, necesitará un clúster de base de datos Neptune existente con el que trabajar. Si lo desea, puede usar uno que ya tenga, clonar uno que ya esté utilizando o crear uno nuevo (consulte [Creación de un clúster de Neptune](get-started-create-cluster.md)).

## Instalación del servicio Neptune-Export
<a name="ml-manual-setup-export-svc"></a>

Si aún no lo ha hecho, instale el servicio Neptune-Export, tal y como se explica en [Uso del servicio Neptune-Export para exportar datos de Neptune](export-service.md).

Añada una regla de entrada al grupo de seguridad de `NeptuneExportSecurityGroup` que cree la instalación, con la siguiente configuración:
+ *Tipo:* `Custom TCP`
+ *Protocolo*: `TCP`
+ *Intervalo de puertos*: `80 - 443`
+ *Origen*: *(Neptune DB cluster security group ID)*

## Cree un rol de IAM de S3 personalizado NeptuneLoadFrom
<a name="ml-manual-setup-s3-role"></a>

Si aún no lo ha hecho, cree un rol de IAM de `NeptuneLoadFromS3` personalizado, tal como se explica en [Creación de un rol de IAM para acceder a Amazon S3](bulk-load-tutorial-IAM-CreateRole.md).

## Cree un rol personalizado NeptuneSageMaker IAMRole
<a name="ml-manual-setup-sm-role"></a>

Utilice la [consola de IAM](https://console.aws.amazon.com/iam/) para crear un `NeptuneSageMakerIAMRole` personalizado mediante la siguiente política:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:CreateVpcEndpoint",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/*"
      ],
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": [
            "sagemaker.amazonaws.com"
          ]
        }
      },
      "Effect": "Allow"
    },
    {
      "Action": [
        "kms:CreateGrant",
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": "arn:aws:kms:*:*:key/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:GetLogEvents"
      ],
      "Resource": [
        "arn:aws:logs:*:*:log-group:/aws/sagemaker/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "sagemaker:AddTags",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateEndpointConfig",
        "sagemaker:CreateHyperParameterTuningJob",
        "sagemaker:CreateModel",
        "sagemaker:CreateProcessingJob",
        "sagemaker:CreateTrainingJob",
        "sagemaker:CreateTransformJob",
        "sagemaker:DeleteEndpoint",
        "sagemaker:DeleteEndpointConfig",
        "sagemaker:DeleteModel",
        "sagemaker:DescribeEndpoint",
        "sagemaker:DescribeEndpointConfig",
        "sagemaker:DescribeHyperParameterTuningJob",
        "sagemaker:DescribeModel",
        "sagemaker:DescribeProcessingJob",
        "sagemaker:DescribeTrainingJob",
        "sagemaker:DescribeTransformJob",
        "sagemaker:InvokeEndpoint",
        "sagemaker:ListTags",
        "sagemaker:ListTrainingJobsForHyperParameterTuningJob",
        "sagemaker:StopHyperParameterTuningJob",
        "sagemaker:StopProcessingJob",
        "sagemaker:StopTrainingJob",
        "sagemaker:StopTransformJob",
        "sagemaker:UpdateEndpoint",
        "sagemaker:UpdateEndpointWeightsAndCapacities"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "sagemaker:ListEndpointConfigs",
        "sagemaker:ListEndpoints",
        "sagemaker:ListHyperParameterTuningJobs",
        "sagemaker:ListModels",
        "sagemaker:ListProcessingJobs",
        "sagemaker:ListTrainingJobs",
        "sagemaker:ListTransformJobs"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:AbortMultipartUpload",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

Al crear este rol, edite la relación de confianza para que quede como se indica a continuación:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ec2.amazonaws.com",
          "rds.amazonaws.com",
          "sagemaker.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Por último, copie el ARN asignado a este nuevo rol de `NeptuneSageMakerIAMRole`.

**importante**  
Asegúrese de que los permisos de Amazon S3 del `NeptuneSageMakerIAMRole` coincidan con los anteriores.
El ARN universal, `arn:aws:s3:::*`, se utiliza para el recurso de Amazon S3 en la política anterior. Si por algún motivo no se puede utilizar el ARN universal, se deben añadir a la sección de recursos `arn:aws:s3:::graphlytics*` y el ARN de cualquier otro recurso de Amazon S3 del cliente que utilicen los comandos de Neptune ML.

## Configuración de un clúster de base de datos para habilitar Neptune ML
<a name="ml-manual-setup-cluster-config"></a>

**Para configurar un clúster de base de datos para Neptune ML**

1. En la [consola de Neptune](https://console.aws.amazon.com/neptune), vaya a **Grupos de parámetros** y, a continuación, al grupo de parámetros del clúster de base de datos asociado al clúster de base de datos que utilizará. Establezca el parámetro `neptune_ml_iam_role` en el ARN asignado al rol de `NeptuneSageMakerIAMRole` que acaba de crear.

1. Vaya a Bases de datos y, a continuación, seleccione el clúster de base de datos que utilizará para Neptune ML. Seleccione **Acciones** y, a continuación, **Administrar roles de IAM**.

1. En la página **Administrar roles de IAM**, seleccione **Añadir rol** y añada `NeptuneSageMakerIAMRole`. A continuación, añada el rol de `NeptuneLoadFromS3`. 

1. Reinicie la instancia de escritor del clúster de base de datos. 

## Cree dos puntos finales de SageMaker IA en su VPC de Neptune
<a name="ml-manual-setup-endpoints"></a>

Por último, para que el motor Neptune acceda a la gestión de SageMaker IA necesaria APIs, debe crear dos puntos finales de SageMaker IA en su VPC de Neptune, como se explica en. [Cree dos puntos de conexión para la SageMaker IA en su VPC de Neptune](machine-learning-cluster-setup.md#machine-learning-sm-endpoints)

# Configuración manual de un cuaderno de Neptune para Neptune ML
<a name="ml-manual-setup-notebooks"></a>

Los cuadernos Neptune SageMaker AI vienen precargados con una variedad de cuadernos de muestra para Neptune ML. [Puede obtener una vista previa de estos ejemplos en el repositorio de cuadernos gráficos de código abierto. GitHub ](https://github.com/aws/graph-notebook/tree/main/src/graph_notebook/notebooks/04-Machine-Learning)

Puede utilizar uno de los cuadernos de Neptune existentes o, si lo desea, puede crear uno propio siguiendo las instrucciones que se indican en [Uso del entorno de trabajo de Neptune para alojar los cuadernos de Neptune](graph-notebooks.md#graph-notebooks-workbench).

También puede configurar un cuaderno de Neptune predeterminado para usarlo con Neptune ML. Para ello, siga estos pasos:

**Modificación de un cuaderno para Neptune ML**

1. Abre la consola Amazon SageMaker AI en [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. En el panel de navegación de la izquierda, seleccione **Cuaderno** y, a continuación, **Instancias de cuaderno**. Busque el nombre del cuaderno de Neptune que desee utilizar para Neptune ML y selecciónelo para ir a su página de detalles.

1. Si la instancia del cuaderno se está ejecutando, seleccione el botón **Detener**, situado en la parte superior derecha de la página de detalles del cuaderno.

1. En **Configuración de instancias de cuaderno**, en **Configuración del ciclo de vida**, seleccione el enlace para abrir la página del ciclo de vida del cuaderno.

1. Seleccione **Editar** en la parte superior derecha y, a continuación, **Continuar**.

1. En la pestaña **Iniciar cuaderno**, modifique el script para incluir comandos de exportación adicionales y para rellenar los campos del rol de IAM de Neptune ML y del URI del servicio de exportación, algo parecido a lo siguiente en función del intérprete de comandos:

   ```
   echo "export NEPTUNE_ML_ROLE_ARN=(your Neptune ML IAM role ARN)" >> ~/.bashrc
   echo "export NEPTUNE_EXPORT_API_URI=(your export service URI)" >> ~/.bashrc
   ```

1. Seleccione **Update (Actualizar)**.

1. Vuelva a la página de instancias del cuaderno. En **Permisos y cifrado** hay un campo para el **ARN del rol de IAM**. Seleccione el enlace de este campo para ir al rol de IAM con el que se ejecuta esta instancia de cuaderno.

1. Cree una nueva política insertada como esta:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "cloudwatch:PutMetricData"
         ],
         "Resource": "arn:aws:cloudwatch:us-east-1:111122223333:*",
         "Sid": "AllowPutMetrics",
         "Effect": "Allow"
       },
       {
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:DescribeLogStreams",
           "logs:PutLogEvents",
           "logs:GetLogEvents"
         ],
         "Resource": "arn:aws:logs:us-east-1:111122223333:*",
         "Sid": "AllowCreateLogs",
         "Effect": "Allow"
       },
       {
         "Action": [
           "s3:Put*",
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": "arn:aws:s3:::*",
         "Sid": "AllowS3Actions",
         "Effect": "Allow"
       },
       {
         "Action": "execute-api:Invoke",
         "Resource": "arn:aws:execute-api:us-east-1:111122223333:*/*",
         "Sid": "AllowExecute",
         "Effect": "Allow"
       },
       {
         "Action": [
           "sagemaker:CreateModel",
           "sagemaker:CreateEndpointConfig",
           "sagemaker:CreateEndpoint",
           "sagemaker:DescribeModel",
           "sagemaker:DescribeEndpointConfig",
           "sagemaker:DescribeEndpoint",
           "sagemaker:DeleteModel",
           "sagemaker:DeleteEndpointConfig",
           "sagemaker:DeleteEndpoint"
         ],
         "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
         "Sid": "AllowApiActions",
         "Effect": "Allow"
       },
       {
         "Action": [
           "iam:PassRole"
         ],
         "Resource": "arn:aws:iam::111122223333:role/role-name",
         "Sid": "AllowPassRole",
         "Effect": "Allow"
       }
     ]
   }
   ```

------

1. Guarde esta nueva política y asóciela al rol de IAM del paso 8.

1. Seleccione **Iniciar** en la parte superior derecha de la página de detalles de la instancia de bloc de notas de SageMaker IA para iniciar la instancia de bloc de notas.