Despliegues de modelo
Descubra cómo trabajar con los despliegues de modelo de Data Science.
Los despliegue de modelos son un recurso gestionado en el servicio OCI Data Science que se utiliza para desplegar modelos de aprendizaje automático como puntos finales HTTP en OCI. El despliegue de modelos de aprendizaje automático como aplicaciones web (puntos finales de API de HTTP) que sirven predicciones en tiempo real es la forma más común de producción de modelos. Los puntos finales HTTP son flexibles y pueden servir solicitudes de predicciones de modelos.
Los despliegues de modelos ahora pueden activar el acceso a Internet público gestionado por servicios. Con esta opción, las instancias pueden acceder a repositorios públicos y otros servicios de Oracle Cloud a través de un gateway de NAT gestionado por OCI.
Puede seguir utilizando redes gestionadas por servicios sin acceso a Internet o especificar una subred gestionada por el cliente si esas opciones cumplen mejor sus requisitos de gobernanza.
Data Science soporta la firma de contenedores como control de seguridad para despliegues de modelos. El servicio valida las firmas cargadas en las claves de OCI Vault especificadas antes de activar el despliegue. Para obtener más información sobre la configuración del acceso necesario, consulte los requisitos para Visión general de Vault y políticas de IAM.
Entrenamiento
El entrenamiento de un modelo es el primer paso para desplegar un modelo. Utilice sesiones de bloc de notas y trabajos para entrenar modelos de código abierto y de Oracle AutoML.
Guardado y almacenamiento
A continuación, almacene el modelo entrenado en el catálogo de modelos. Tiene las siguientes opciones para guardar un modelo en el catálogo de modelos:
- El SDK de ADS proporciona una interfaz para especificar un modelo de código abierto, preparar su artefacto de modelo y guardar ese artefacto en el catálogo de modelos.
-
Puede utilizar la consola, los SDK y las CLI de OCI para guardar el artefacto del modelo en el catálogo de modelos.
-
Utilice diferentes marcos como scikit-learn, TensorFlow o Keras.
El despliegue del modelo requiere que especifique un entorno conda de inferencia en el archivo de artefacto de modelo runtime.yaml. Este entorno conda de inferencia contiene todas las dependencias de modelos y se instala en el contenedor de servidores de modelos. Puede especificar uno de los entornos conda de Data Science o un entorno publicado que haya creado.
Despliegue de modelo
Una vez guardado un modelo en el catálogo de modelos, estará disponible para su despliegue como recurso de despliegue de modelo. El servicio soporta modelos que se ejecutan en un entorno de tiempo de ejecución de Python, y sus dependencias se pueden empaquetar en un entorno conda.
Puede desplegar y llamar a un modelo mediante la consola de OCI, los SDK de OCI, la CLI de OCI y el SDK de ADS en sesiones de bloc de notas.
Los despliegues de modelos se basan en estos componentes clave para desplegar un modelo como punto final HTTP:
- Load Balancer.
-
Cuando se crea un despliegue de modelo, se debe configurar un equilibrador de cargas. El equilibrador de carga proporciona una forma automatizada para distribuir el tráfico de uno a muchos servidores modelo que se ejecutan en un pool de máquinas virtuales (VM). El ancho de banda del equilibrio de carga se debe especificar en Mbps y es un valor estático. Puede cambiar el ancho editando el despliegue del modelo del equilibrador de carga.
- Pool de instancias de VM que alojan el servidor de modelos, el entorno conda y el propio modelo.
-
Se realiza una copia del servidor de modelos en cada instancia informática en el pool de máquinas virtuales.
Una copia del entorno conda de inferencia y el artefacto de modelo seleccionado también se copian en cada instancia del pool. Se cargan dos copias del modelo en la memoria para cada OCPU de cada instancia de VM del pool. Por ejemplo, si selecciona una instancia VM.Standard2.4 para ejecutar el servidor de modelos, se cargan en la memoria 4 OCPU x 2 = 8 copias del modelo. Varias copias del modelo ayudan a gestionar solicitudes simultáneas que se realizan al punto final del modelo mediante la distribución de esas solicitudes entre las réplicas del modelo en la memoria de VM. Asegúrese de seleccionar una unidad de VM con un espacio de memoria lo suficientemente grande como para tener en cuenta esas réplicas de modelos en la memoria. Para la mayoría de los modelos de Machine Learning con tamaños en MB o un número bajo de GB, es probable que la memoria no sea un problema.
El equilibrador de carga distribuye las solicitudes realizadas al punto final del modelo entre las instancias del pool. Recomendamos que utilice unidades de VM más pequeñas para alojar el modelo con un mayor número de instancias en lugar de seleccionar menos VM aunque de mayor tamaño.
- Artefactos de modelo en el catálogo de modelos.
-
El despliegue del modelo requiere un artefacto de modelo que se almacene en el catálogo de modelo y que el modelo esté en estado activo. El despliegue del modelo expone la función
predict()definida en el archivo score.py del artefacto de modelo. - Entorno Conda con dependencias de tiempo de ejecución de modelo.
-
Un entorno conda encapsula todas las dependencias Python de terceros (como Numpy, Dask o XGBoost) que requiere su modelo. Los entornos conda de Python soportan las versiones
3.10,3.11y3.12de Python. La versión de Python que especifique conINFERENCE_PYTHON_VERSIONdebe coincidir de forma simultánea con la versión utilizada al crear el paquete conda.El despliegue del modelo extrae una copia del entorno conda de inferencia definido en el archivo runtime.yaml del artefacto de modelo para desplegar el modelo y sus dependencias. La información relevante sobre el entorno de despliegue de modelo se encuentra en el parámetro
MODEL_DEPLOYMENTdel archivoruntime.yaml. Los parámetrosMODEL_DEPLOYMENTse capturan automáticamente cuando se guarda un modelo mediante ADS en una sesión de bloc de notas. Para guardar un modelo en el catálogo y desplegarlo mediante el SDK, la CLI o la consola de OCI, debe proporcionar un archivoruntime.yamlcomo parte del artefacto del modelo que incluya esos parámetros.Nota
Para todos los artefactos del modelo guardados en el catálogo de modelo sin un archivo
runtime.yamlo cuando falte el parámetroMODEL_DEPLOYMENTen el archivoruntime.yaml, se instala un entorno conda por defecto en el servidor de modelo y se utiliza para cargar un modelo. El entorno conda por defecto que se utiliza es el Machine Learning general con Python versión 3.12.Utilice estos entornos conda:
- entornos conda de Data Science
-
Puede consultar una lista de los entornos conda en Visualización de entornos conda.
En el siguiente ejemplo, el archivo
runtime.yamlindica al despliegue de modelo que recupere el entorno conda publicado de la ruta de Object Storage definida porINFERENCE_ENV_PATH.MODEL_ARTIFACT_VERSION: '3.0' MODEL_DEPLOYMENT: INFERENCE_CONDA_ENV: INFERENCE_ENV_SLUG: generalml_p312_cpu_x86_64_v1 INFERENCE_ENV_TYPE: data_science INFERENCE_ENV_PATH: oci://service-conda-packs@id19sfcrra6z/service_pack/cpu/General_Machine_Learning_for_CPUs_on_Python_3.12/1.0/generalml_p312_cpu_x86_64_v1 INFERENCE_PYTHON_VERSION: '3.12' - Sus entornos conda publicados
-
Puede crear y publicar entornos conda para utilizarlos en los despliegues de modelo.
En el siguiente ejemplo, el archivo
runtime.yamlindica al despliegue del modelo que recupere el entorno conda publicado de la ruta de Object Storage definida portensorflow220_p312_gpu_x86_64_v1. A continuación, lo instala en todas las instancias del pool que alojan el servidor de modelos y el propio modelo.MODEL_ARTIFACT_VERSION: '3.0' MODEL_DEPLOYMENT: INFERENCE_CONDA_ENV: INFERENCE_ENV_SLUG: envslug INFERENCE_ENV_TYPE: published INFERENCE_ENV_PATH: oci://<bucket-name>@<namespace>/<prefix>/<env> INFERENCE_PYTHON_VERSION: '3.12'
Para todos los artefactos del modelo guardados en el catálogo sin un archivo
runtime.yaml, los despliegues de modelo también utilizan el entorno conde por defecto para el despliegue de modelo. Un despliegue de modelo también puede recuperar un ambiente conda de Data Science o un ambiente conda que cree o cambie y, a continuación, publique. - Operaciones sin tiempo de inactividad
-
Las operaciones sin tiempo de inactividad para despliegues de modelos significan que el punto final de inferencia del modelo (predicción) puede servir continuamente solicitudes sin interrupción ni inestabilidad.
Los despliegues de modelo soportan una serie de operaciones que se pueden realizar sin tiempo de inactividad. Esta función es fundamental para cualquier aplicación que consuma el punto final del modelo. Puede aplicar operaciones de tiempo de inactividad cero cuando el modelo esté en un estado activo sirviendo solicitudes. Utilice estas operaciones sin tiempo de inactividad para intercambiar el modelo para otro, cambiar la unidad del VM y la configuración del registro, al mismo tiempo que se evita el tiempo de inactividad.
- Integración de Logging para capturar logs emitidos desde el despliegue de modelo
-
Puede integrar despliegues de modelo con el servicio Logging. Utilice esta integración opcional para emitir logs desde un modelo y, a continuación, inspeccionar estos logs.
- Contenedor personalizado con dependencias de tiempo de ejecución de modelo
-
Un contenedor personalizado encapsula todas las dependencias de terceros necesarias que un modelo requiere para la inferencia. También incluye un servidor de inferencia preferido, como el servidor de inferencia Triton, el servicio TensorFlow, el servicio de tiempo de ejecución ONNX, etc.
- Inferencia de GPU
-
La inferencia de unidad de procesamiento gráfico se utiliza ampliamente para modelos con uso intensivo de recursos informáticos, como LLaMa o transformadores preentrenados generativos.
- Salida personalizada
- Puede seleccionar entre redes gestionadas por servicios o redes gestionadas por el cliente, de forma similar a la salida personalizada con trabajos y blocs de notas.
- Punto final privado
-
Para mejorar la seguridad y el control, puede acceder a los despliegues de modelos a través de una red privada (despliegue de modelos privados). Con soporte para puntos finales privados, el tráfico de inferencia se mantiene de forma segura dentro de la red privada. Para obtener más información, consulte la sección Creación de un punto final privado y Creación de un despliegue de modelo para configurar un despliegue de modelo con un punto final privado.
- Salida pública
- Los administradores de arrendamiento pueden desactivar el acceso a Internet público gestionado por servicios aplicando la política de zona de seguridad
deny model_deploy_public_networkde Data Science. Cuando se aplica esta política, los intentos de crear o actualizar despliegues de modelo fallan con un errorNotAuthorizedOrNotFoundy el conmutador de la consola para el acceso público a Internet no está disponible.Nota
El acceso público a Internet no está disponible para despliegues que utilizan redes privadas o puntos finales privados.
Detalles de despliegue de modelo
Después de seleccionar un proyecto, se muestra la página de detalles del Proyecto con una lista de sesiones del Notebook y otros recursos, como despliegues de modelo.
Seleccione Despliegues de modelo para ir a la página de detalles de despliegue de modelo para el compartimento seleccionado, donde puede:
-
Cree despliegues de modelo.
-
Seleccione un despliegue de modelo para ver sus detalles y trabajar con él.
-
Utilice el menú para ver detalles, editar, mover un despliegue de modelo o suprimir un despliegue de modelo.
-
OCID: OCID de un recurso. Se muestra una versión abreviada del OCID, aunque puede utilizar Mostrar y ocultar para cambiar la visualización del OCID. Utilice el enlace Copiar para guardar todo el OCID en el portapapeles para pegarlo en otro lugar. Por ejemplo, podría pegarlo en un archivo y guardarlo y, a continuación, utilizarlo en scripts de modelos.
-
Utilizar el filtro Alcance de lista para ver despliegues de modelo asociados al proyecto seleccionado en otro compartimento.
-
Filtre despliegues de modelo por estado utilizando la lista Estado. El valor por defecto es ver todos los tipos de estado.
-
Cuando las etiquetas se aplican a despliegues de modelos, puede filtrar aún más los despliegues de modelos haciendo clic en Agregar o Borrar junto a Filtros de etiquetas.
-
Seleccione otros recursos de Data Science, como modelos, despliegues de modelos y sesiones de Notebook.