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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive
Centro de ayuda/ ModelArts/ Prácticas recomendadas/ Inferencia del modelo/ Creación de una aplicación de IA con un motor personalizado

Creación de una aplicación de IA con un motor personalizado

Actualización más reciente 2024-09-20 GMT+08:00

Cuando utiliza un motor personalizado para crear una aplicación de IA, puede seleccionar la imagen almacenada en SWR como motor y especificar un directorio de archivos en OBS como paquete de modelos. De este modo, puede utilizar imágenes propias para satisfacer sus necesidades específicas.

Antes de desplegar una aplicación de IA como servicio, ModelArts descarga la imagen de SWR en el clúster e inicia la imagen como un contenedor como usuario cuyo UID es 1000 y GID es 100. Luego, ModelArts descarga el archivo de OBS en el directorio /home/mind/model del contenedor y ejecuta el comando de arranque preestablecido en la imagen de SWR. El servicio disponible para el puerto 8080 del contenedor se registra automáticamente con APIG. Puede acceder al servicio con el URL APIG.

Especificaciones para utilizar un motor personalizado para crear una aplicación de IA

Para utilizar un motor personalizado a crear una aplicación de IA, asegúrese de que la imagen de SWR, el paquete del modelo de OBS y el tamaño del archivo cumplan con los siguientes requisitos:

  • Especificaciones de imagen de SWR
    • Se debe incorporar un usuario común denominado ma-user en el grupo ma-group en la imagen de SWR. Adicionalmente, el UID y el GID del usuario deben ser 1000 y 100, respectivamente. El siguiente es el comando de dockerfile para el usuario integrado:
      groupadd -g 100 ma-group && useradd -d /home/ma-user -m -u 1000 -g 100 -s /bin/bash ma-user
    • Especifique un comando para iniciar la imagen. Especifique cmd en el dockerfile. A continuación se muestra un ejemplo:
      CMD sh /home/mind/run.sh

      Personalice el archivo de entrada de inicio run.sh. Lo siguiente es un ejemplo.

      #!/bin/bash
      
      # User-defined script content
      ...
      
      # run.sh calls app.py to start the server. For details about app.py, see "HTTPS Example".
      python app.py
    • El servicio debe estar habilitado para HTTPS y está disponible en el puerto 8080. Para obtener más detalles, consulte el ejemplo de HTTPS.
    • (Opcional) En el puerto 8080, active la comprobación de estado con la URL/health. (La dirección URL de comprobación de estado debe ser /health)
  • Especificaciones del paquete del modelo de OBS

    El nombre del paquete de modelos debe ser model. Para obtener más detalles sobre las especificaciones de paquetes de modelo, consulte Introducción a especificaciones de paquetes de modelo.

  • Especificaciones de tamaño de archivo

    Cuando se utiliza un grupo de recursos públicos, el tamaño total de la imagen de SWR (no la imagen comprimida que se muestra en la página de SWR) y el paquete del modelo de OBS no puede exceder los 30 GB.

Ejemplo de HTTPS

Utilice Flask para iniciar HTTPS. A continuación se muestra un ejemplo del código del servidor web:

from flask import Flask, request
import json 

app = Flask(__name__)

@app.route('/greet', methods=['POST'])
def say_hello_func():
    print("----------- in hello func ----------")
    data = json.loads(request.get_data(as_text=True))
    print(data)
    username = data['name']
    rsp_msg = 'Hello, {}!'.format(username)
    return json.dumps({"response":rsp_msg}, indent=4)

@app.route('/goodbye', methods=['GET'])
def say_goodbye_func():
    print("----------- in goodbye func ----------")
    return '\nGoodbye!\n'


@app.route('/', methods=['POST'])
def default_func():
    print("----------- in default func ----------")
    data = json.loads(request.get_data(as_text=True))
    return '\n called default func !\n {} \n'.format(str(data))

@app.route('/health', methods=['GET'])
def healthy():
    return "{\"status\": \"OK\"}"

# host must be "0.0.0.0", port must be 8080
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8080, ssl_context='adhoc')

Depuración en un equipo local

Realice las siguientes operaciones en una computadora local con Docker instalado para verificar si un motor personalizado cumple con las especificaciones:

  1. Descargue la imagen personalizada, por ejemplo, custom_engine:v1 en la computadora local.
  2. Copie la carpeta del paquete de modelo model en el host local.
  3. Ejecute el siguiente comando en el mismo directorio que la carpeta del paquete modelo para iniciar el servicio:
    docker run --user 1000:100 -p 8080:8080 -v model:/home/mind/model    custom_engine:v1
    NOTA:

    Este comando solo se utiliza para simulaciones porque el directorio montado en -v tiene asignado el permiso de root. En el entorno de nube, después de descargar el archivo de modelo desde OBS a /home/mind/model, el propietario del archivo se cambia a ma-user.

  4. Inicie otro terminal en el equipo local y ejecute el siguiente comando para obtener el resultado de inferencia esperado:
    curl https://127.0.0.1:8080/${Request path to the inference service}

Ejemplo de despliegue

En la siguiente sección se describe cómo utilizar un motor personalizado para crear una aplicación de IA.

  1. Cree una aplicación de IA y vea sus detalles.

    Inicie sesión en la consola de ModelArts, seleccione AI Application Management > AI Applications y haga clic en Create. En la página que aparece, configure los siguientes parámetros:

    • Meta Model Source: OBS
    • Meta Model: un paquete de modelo seleccionado de OBS
    • AI Engine: Custom
    • Engine Package: una imagen de SWR

      Mantenga la configuración predeterminada para otros parámetros.

    Haga clic en Create Now. En la lista de aplicaciones de IA que aparece en pantalla, compruebe el estado de la aplicación de IA. Cuando su estado cambia a Normal, se crea la aplicación de IA.

    Figura 1 Creación de una aplicación de IA

    Haga clic en el nombre de la aplicación de IA. En la página que aparece, vea detalles sobre la aplicación de IA.

  2. Despliegue la aplicación de IA como servicio y consulte los detalles del servicio.

    En la página de detalles de la aplicación de IA, seleccione Deploy > Real-Time Services en la esquina superior derecha. En la página Deploy, seleccione una especificación de nodo de cómputo adecuada (por ejemplo, CPU: 2 vCPUs 8 GB), mantenga la configuración por defecto de otros parámetros y haga clic en Next. Cuando el estado del servicio cambia a Running, se despliegue ese servicio.

    Haga clic en el nombre del servicio. En la página que aparece, vea los detalles del servicio. Haga clic en la pestaña Logs para ver los logs de servicio.

    Figura 2 Logs
  3. Utilice el servicio para predicciones.

    En la página de detalles del servicio, haga clic en la ficha Prediction para utilizar el servicio de predicción.

    Figura 3 Predicción

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios