Realice el razonamiento de IA basado en el cálculo de funciones

Introducción a la escena

Cree una plataforma de inferencia de inteligencia artificial sin servidor TensorFlow basada en Alibaba Cloud Function Computing. .

conocimiento de fondo

Function Compute es un servicio informático totalmente administrado impulsado por eventos. Con la computación funcional, no es necesario comprar ni administrar infraestructura como servidores, solo escribir y cargar código. La función informática prepara los recursos informáticos para usted, ejecuta las tareas de forma flexible y fiable y proporciona funciones como consultas de registros, supervisión del rendimiento y alarmas. La función informática le ayuda a crear aplicaciones rápidamente sin la necesidad de administrar el servidor (sin servidor) y solo centrarse en el código de función. Los cálculos de funciones se pueden escalar de manera flexible, solo necesita pagar por lo que usa.
Resumen de ventajas: Las principales ventajas de la inferencia de IA con uso intensivo de CPU basada en cálculos de funciones:
1. Fácil de comenzar, solo se centra en el desarrollo de la lógica empresarial, lo que mejora enormemente la eficiencia del desarrollo de ingeniería.

Las soluciones autoconstruidas tienen demasiados costos de aprendizaje y configuración. Por ejemplo, para diferentes escenarios, ESS necesita realizar varias
actualizaciones y mantenimiento del entorno del sistema de configuración de parámetros .

  1. Operación y mantenimiento gratuitos, monitoreo de granularidad de nivel de ejecución de funciones y alarma.

3. Expansión elástica en milisegundos para garantizar una alta flexibilidad y disponibilidad, al tiempo que cubre los tipos sensibles al retraso y sensibles a los costos.

4. En un escenario de computación con uso intensivo de CPU, al establecer un modelo de facturación combinado razonable, tiene ventajas de costos en los siguientes escenarios:

La solicitud de acceso tiene picos y valles obvios, y no hay solicitud en otros momentos. Hay
una cierta solicitud de carga estable, pero hay cambios repentinos en el volumen de solicitudes durante algunos períodos de tiempo.

Experiencia de escena

El escenario presentará las mejores prácticas de uso de productos de computación de funciones para implementar una plataforma de inferencia de inteligencia artificial de aprendizaje profundo, basada en la computación de funciones.

Permite a los desarrolladores en el campo de la inteligencia artificial centrarse más en el entrenamiento de modelos de algoritmos y el desarrollo de la lógica empresarial, y delegar la operación y el mantenimiento de clústeres informáticos a la informática funcional para mejorar la eficiencia del trabajo.

El resultado final:
al subir una foto de un gato o un perro, se puede reconocer si el animal de la foto es un gato o un perro. Entrada de efecto de ejemplo de DEMO: http://sz.mofangdegisn.cn .

Paso 1: conectarse al servidor ECS

Dirección de recursos de ECS: https://developer.aliyun.com/adc/scenario/35a73acbb9cb477e8a4a5b22021f23a9
Enlace de pasos del artículo de referencia ECS

Paso 2: servicio informático de función abierta

Antes de usar el cálculo de funciones, debe activar el servicio en la página de detalles del producto Alibaba Cloud .

Paso 3: instala la herramienta divertida

Fun es una herramienta que se utiliza para admitir la implementación de aplicaciones sin servidor, que puede ayudarlo a administrar de manera conveniente recursos como la computación de funciones, las puertas de enlace API y los servicios de registro. Utiliza un archivo de configuración de recursos (template.yml) para ayudarlo a desarrollar, construir e implementar operaciones.
1. Descargue el paquete de instalación Fun en el local. Establezca el valor de la variable FUN_VERSION a continuación en el número de versión más reciente. Consulte Releases para obtener el número de versión más reciente. Las siguientes operaciones instalarán y configurarán Fun en el servidor ECS.

FUN_VERSION="v3.6.1" 
curl -o fun-linux.zip https://gosspublic.alicdn.com/fun/fun-$FUN_VERSION-linux.zip

2. Instale la herramienta de descompresión, descomprima y use descomprimir para descomprimir el paquete de instalación Fun descargado en el directorio actual.

yum -y install unzip 
unzip fun-linux.zip

3. Mueva el archivo ejecutable descomprimido a la ruta del sistema.

mv fun-*-linux /usr/local/bin/fun

4. Configure la cuenta de Alibaba Cloud asociada con Fun y el período de tiempo de espera para llamar al SDK.

fun config

Consulte la siguiente información para ingresar su ID de cuenta de Alibaba Cloud, AccessKeyID y la información de la clave de AccessKey.


  • ID de cuenta de Aliyun : la parte después del símbolo @ en el nombre del sub-usuario es el ID de cuenta principal que se le asignó. Por ejemplo , el ID de cuenta contenido en u-zftb79nc @ 105997185439 es 105997185439 .
  • Aliyun Access Key ID y Aliyun Access Key Secret: utilice la subcuenta AK ID y AK
    Secret que le proporcionó la plataforma .
    Inserte la descripción de la imagen aquí
  • El tiempo de espera en segundos para cada cliente de SDK que
    invoca: se recomienda establecer el tiempo de espera más largo (por ejemplo, 10000) para evitar la interrupción del tiempo de espera al cargar el paquete de implementación.
    Los ajustes correctos son los siguientes:
    Inserte la descripción de la imagen aquí

Paso 4: instala Docker

1. Instale las bibliotecas dependientes de Docker.

yum install -y yum-utils device-mapper-persistent-data lvm2

2. Agregue la información de la fuente de software de docker-ce.

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. Instale docker-ce.

yum makecache fast
yum -y install docker-ce

4. Inicie el servicio Docker.

systemctl start docker

Paso 5: Cree el punto de montaje del sistema de archivos NAS

1. Inicie sesión en la consola NAS .
2. Elija Sistema de archivos> Lista de sistemas de archivos.
3. En la esquina superior izquierda, seleccione la ubicación del recurso en la nube.
Inserte la descripción de la imagen aquí
4. Busque el sistema de archivos correspondiente al ID del sistema de archivos NAS en la columna de información de recursos en el lado izquierdo de la página de experiencia y haga clic en Más> Agregar punto de montaje.
5. En la página Agregar punto de montaje, configure los siguientes parámetros.
Inserte la descripción de la imagen aquí
6. Verifique la dirección del punto de montaje, como se muestra a continuación.
Inserte la descripción de la imagen aquí

Paso 6: descarga el código del proyecto

1. Instale la herramienta Git y use Git para clonar el código del proyecto en el local.

yum -y install git
git clone https://github.com/awesome-fc/cat-dog-classify.git

2. Edite el archivo de plantilla de implementación de FUN template.yml en el proyecto, modifique el nombre del proyecto del servicio de registro y la configuración de montaje del almacenamiento NAS.
a. Utilice vim para abrir el archivo de plantilla.

cd cat-dog-classify
vim template.yml

b. Ingrese el siguiente comando para reemplazar el nombre del proyecto del servicio de registro globalmente.

:%s/log-ai-pro/log-ai-test/g

En el comando, log-ai-test es el nombre del proyecto modificado y puede reemplazarlo con el nombre de su proyecto personalizado.

c. Modifique la configuración de montaje del NAS. El método automático predeterminado creará automáticamente el sistema de archivos NAS, aquí modificamos y completamos la información del sistema de archivos NAS creado previamente para la plataforma.

      VpcConfig:
        VpcId: 'vpc-uf6u8*****zf1r4'
        VSwitchIds: [ 'vsw-uf6******038fy' ]
        SecurityGroupId: 'sg-uf6e******w6qz'
      NasConfig:
        UserId: 10003
        GroupId: 10003
        MountPoints:
          - ServerAddr: '33****u83.cn-shanghai.nas.aliyuncs.com:/'
            MountDir: '/mnt/auto'

Los parámetros modificados se describen a continuación:

  • Para obtener información sobre VpcId, VSwitchId y SecurityGroupId en VpcConfig, consulte la página de detalles de la instancia de la consola de ECS.
  • Modifique el valor de ServerAddr a la dirección del punto de montaje en el paso 3.
    Después de la modificación, se muestra en la siguiente figura:
    Inserte la descripción de la imagen aquí

Paso 7: Cargue los archivos dependientes al NAS

1. Ejecute el siguiente comando para inicializar el NAS.

fun nas init

2. Vea la ubicación del directorio del NAS local.

fun nas info

La salida del comando es la siguiente:
Inserte la descripción de la imagen aquí

3. Ejecute los siguientes comandos para instalar dependencias relacionadas.

fun install -v

El resultado de la ejecución exitosa del comando se muestra a continuación.

Inserte la descripción de la imagen aquí
El comando se basará en la definición del archivo Funfile:

  • Descargue las dependencias en el directorio .fun / nas / auto-default / classify / python.
  • Copie los archivos del modelo en el modelo en el directorio .fun / nas / auto-default / classify / model /.
    4. Sincronice el directorio NAS local con el almacenamiento NAS de Alibaba Cloud.
fun nas sync

El resultado de la ejecución del comando se muestra a continuación.
Inserte la descripción de la imagen aquí
Tenga en cuenta que los archivos sincronizados son aproximadamente 700M, con mucho contenido, y el tiempo de sincronización es de aproximadamente 40 minutos, tenga paciencia.

5. Compruebe si el archivo está cargado en el directorio NAS remoto.

fun nas ls nas://classify:/mnt/auto/

Paso 9: Implementar en la plataforma informática funcional

Haga lo siguiente para implementar la función en la plataforma informática de funciones:

fun deploy -y

El resultado de la ejecución se muestra en la siguiente figura, en la figura, 19176540-18576685985 *****. Test.functioncompute.com es el nombre de dominio temporal asignado por la plataforma informática de la función, es válido por 10 días y tiene un límite de 1000 llamadas por día.
Inserte la descripción de la imagen aquí
Si aparece el siguiente mensaje de error durante la implementación.
Inserte la descripción de la imagen aquí
La causa del problema: el nombre del elemento de registro definido en el archivo de configuración de la plantilla ya existe.
Solución: modifique el nombre del elemento de registro en el archivo template.yml.

Paso 9: prueba el servicio de predicción

1. Una vez completada la implementación, espere unos 30 segundos y abra el nombre de dominio temporal en el navegador, como se muestra en la figura siguiente.
Inserte la descripción de la imagen aquí
Si se introduce un error de módulo similar al siguiente al acceder a la página.
Inserte la descripción de la imagen aquí
Causa del problema: debido a problemas de red, el contenido de sincronización del NAS está incompleto.
Solución: vuelva a ejecutar el comando fun nas sync.

2. Sube una foto de un gato o un perro.
Inserte la descripción de la imagen aquí
3. Haga clic en el botón Predecir para ver los resultados de reconocimiento previstos.
Inserte la descripción de la imagen aquí
La función informática tiene las características de escalado dinámico, según la cantidad de solicitudes concurrentes, el entorno de ejecución se expande de forma automática y elástica para ejecutar el entorno. Cuando la instancia reservada no puede satisfacer la solicitud para llamar a la función, el cálculo de la función expandirá automáticamente la instancia a pedido para la ejecución de la función, y la llamada en este momento tendrá un proceso de inicio en frío. El uso del modo reservado puede eliminar los fallos de arranque en frío. Para obtener más información, consulte Instancias reservadas.

Supongo que te gusta

Origin blog.51cto.com/14981263/2545051
Recomendado
Clasificación