Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ ModelArts/ Prácticas recomendadas/ Inferencia del modelo/ Acceso de alta velocidad a servicios de inferencia por interconexión de las VPC
Actualización más reciente 2024-09-20 GMT+08:00

Acceso de alta velocidad a servicios de inferencia por interconexión de las VPC

Contexto

Al acceder a un servicio en tiempo real, es posible que necesite:

  • Alto throughput y baja latencia
  • Solicitudes de TCP o de RPC

Para cumplir con estos requisitos, ModelArts permite el acceso de alta velocidad por la interconexión de las VPC.

En el acceso de alta velocidad por la interconexión de las VPC, sus solicitudes de servicio se envían directamente a las instancias por la interconexión de las VPC, pero no con la plataforma de inferencia. Esto acelera el acceso al servicio.

Las siguientes funciones disponibles con la plataforma de inferencia no estarán disponibles si utiliza el acceso de alta velocidad:

  • Autenticación
  • Distribución del tráfico por configuración
  • Equilibrio de carga
  • Alarma, monitoreo y estadísticas
Figura 1 Acceso de alta velocidad con interconexión de las VPC

Preparaciones

Despliegue un servicio en tiempo real en un grupo de recursos dedicado y asegúrese de que el servicio se está ejecutando.

  • Para obtener más detalles sobre cómo desplegar servicios en grupos de recursos dedicados de nueva versión, consulte Actualizaciones amplias de funciones de gestión de grupos de recursos de ModelArts.
  • Solo los servicios desplegados en un grupo de recursos dedicado soportan acceso de alta velocidad por la interconexión de las VPC.
  • El acceso de alta velocidad por interconexión de las VPC solo está disponible para los servicios en tiempo real.
  • Debido al control del tráfico, existe un límite en la frecuencia con la que se puede obtener la dirección IP y el número de puerto de un servicio en tiempo real. La cantidad de llamadas de cada cuenta de tenant no puede superar las 2000 por minuto y la de cada cuenta de usuario de IAM no puede superar las 20 por minuto.
  • El acceso de alta velocidad por interconexión de VPC solo está disponible para los servicios desplegados con las aplicaciones de IA importadas desde las imágenes personalizadas.

Procedimiento

Para habilitar el acceso de alta velocidad a un servicio en tiempo real por interconexión de las VPC, realice las siguientes operaciones:

  1. Interconecte el grupo de recursos dedicados a la VPC.
  2. Cree un ECS en la VPC.
  3. Obtenga la dirección IP y el número de puerto del servicio en tiempo real.
  4. Acceda al servicio con la dirección IP y el número de puerto.
  1. Interconecte el grupo de recursos dedicados a la VPC.

    Inicie sesión en la consola de gestión de ModelArts, seleccione Dedicated Resource Pools > Elastic Cluster, localice el grupo de recursos dedicado utilizado para el despliegue de servicio y haga clic en su nombre/ID para ir a la página de detalles del grupo de recursos. Obtenga la configuración de red. Vuelva a la lista del grupo de recursos dedicados, haga clic en la pestaña Network, localice la red asociada al grupo de recursos dedicados e interconéctela con la VPC. Después de acceder a la VPC, esta VPC aparecerá en las páginas de detalles de lista de redes y del grupo de recursos. Haga clic en la VPC para ir a la página de detalles.

    Figura 2 Localización del grupo de recursos dedicados de destino
    Figura 3 Obtención de la configuración de red
    Figura 4 Interconexión de las VPC

  2. Cree un ECS en la VPC.

    Inicie sesión en la consola de gestión de ECS y haga clic en Buy ECS en la esquina superior derecha. En la página Buy ECS, configure los ajustes básicos y haga clic en Next: Configure Network. En la página Configure Network, seleccione la VPC conectada en 1, configure otros parámetros, confirme los ajustes y haga clic en Submit. Cuando el estado del ECS cambia a Running, se crea el ECS. Haga clic en su nombre o ID para ir a la página de detalles del servidor y ver la configuración de VPC.

    Figura 5 Selección de una VPC al comprar un ECS

  3. Obtenga la dirección IP y el número de puerto del servicio en tiempo real.

    Se puede utilizar el software de GUI, por ejemplo, con Postman puede obtener la dirección IP y el número de puerto. De forma alternativa, inicie sesión en el ECS, cree un entorno de Python y ejecute el código para obtener la dirección IP del servicio y el número de puerto.

    API:

    GET /v1/{project_id}/services/{service_id}/predict/endpoints?type=host_endpoints
    • Método 1: Obtenga la dirección IP y el número de puerto utilizando el software de GUI.
      Figura 6 Ejemplo de la respuesta
    • Método 2: Obtenga la dirección IP y el número de puerto usando Python.

      Es necesario modificar los siguientes parámetros en el código Python que aparece a continuación:

      def get_app_info(project_id, service_id):
          list_host_endpoints_url = "{}/v1/{}/services/{}/predict/endpoints?type=host_endpoints"
          url = list_host_endpoints_url.format(REGION_ENDPOINT, project_id, service_id)
          headers = {'X-Auth-Token': X_Auth_Token}
          response = requests.get(url, headers=headers)
          print(response.content)

  4. Acceda al servicio con la dirección IP y el número de puerto.

    Inicie sesión en el ECS y acceda al servicio en tiempo real ejecutando comandos de Linux o creando un entorno de Python y ejecutando código de Python. Obtenga los valores de schema, ip y port de 3.
    • Ejecute el siguiente comando para acceder al servicio en tiempo real:
      curl --location --request POST 'http://192.168.205.58:31997' \
      --header 'Content-Type:  application/json' \
      --data-raw '{"a":"a"}'
      Figura 7 Acceso a un servicio en tiempo real
    • Cree un entorno de Python y ejecute el código de Python para acceder al servicio en tiempo real.
      def vpc_infer(schema, ip, port, body):
          infer_url = "{}://{}:{}"
          url = infer_url.format(schema, ip, port)
          response = requests.post(url, data=body)
          print(response.content)

    El acceso de alta velocidad no admite el balanceo de carga. Debe personalizar las políticas de equilibrio de carga cuando desplegar varias instancias.