Guía del científico de datos para OCI

Oracle Cloud Infrastructure (OCI) proporciona una familia de servicios de inteligencia artificial (IA) y Machine Learning (AA). Esta guía ofrece a los científicos de datos un recorrido de introducción a esos servicios utilizando el ciclo de vida del AA como marco.

Ciclo de vida del Machine Learning

Crear un modelo de Machine Learning (AA) es un proceso iterativo. Muchos de los pasos necesarios se repiten y modifican hasta que los científicos de datos están satisfechos con el rendimiento del modelo. Este proceso requiere mucha exploración, visualización y experimentación de datos.

El servicio OCI Data Science soporta un científico de datos durante todo el ciclo de vida del AA. Crea, entrena, despliega y gestiona rápidamente modelos de AA. Los usuarios de Ciencia de datos trabajan en una conocida interfaz familiar de bloc de notas de JupyterLab en la que escriben código Python y tienen acceso a las bibliotecas de código abierto.

Consejo

Vea un breve vídeo de presentación del servicio Ciencia de datos.
Preparación de la infraestructura y el espacio de trabajo
Paso 1: configuración de OCI
Consejo

La forma más rápida para configurar su arrendamiento para la ciencia del datos es utilizar Resource Manager de OCI, que gestiona sus requisitos con solo unos clics. Consulte la sección sobre el uso de Resource Manager para configurar su arrendamiento para Data Science.

Antes de empezar a utilizar datos y el modelado, debe asegurarse de que su arrendamiento de OCI está configurado correctamente con los siguientes recursos. Para obtener un tutorial sobre la configuración de un arrendamiento para Data Science, consulte Configuración manual de un arrendamiento de Data Science.

  • Compartimentos: un contenedor lógico para organizar recursos de OCI. Obtenga más información en Aprender las mejores prácticas para configurar el arrendamiento.
  • Grupos de usuarios: un grupo de usuarios, incluidos científicos de datos.
  • Grupos dinámicos: un tipo especial de grupo que contiene recursos (como sesiones de bloc de notas de Ciencia de datos, ejecuciones de trabajos y despliegues de modelos) que coinciden con las reglas que defina. Estas reglas de coincidencia permiten que la pertenencia a un grupo cambie de forma dinámica a medida que se crean o suprimen recursos que coinciden con esas reglas. Estos recursos pueden realizar llamadas de API a servicios según las políticas escritas para el grupo dinámico. Por ejemplo, si utiliza la entidad de recurso de una sesión de bloc de notas de Ciencia de datos, puede llamar a la API de almacenamiento de objetos para leer datos de un cubo.
  • Políticas: define a qué principales, como usuarios y recursos, tiene acceso en OCI. El acceso se otorga en el nivel de grupo y compartimento. Puede escribir una política que proporcione a un grupo un tipo específico de acceso dentro de un compartimento específico.
Paso 2: configuración del entorno de Data Science
  1. Cree un proyecto de ciencias de datos en su compartimento.

    Los proyectos son contenedores que permiten a los equipos de ciencia de datos organizar su trabajo. Representan espacios de trabajo colaborativos para organizar sesiones de bloc de notas y modelos.

    También puede utilizar el método create_project en el SDK de Oracle Accelerated Data Science (ADS).

  2. Cree una sesión de bloc de nota en el proyecto y especifique el compartimento.

    Las sesiones de bloc de notas son interfaces de JupyterLab en las que puede trabajar en un entorno de codificación interactivo para crear y entrenar modelos. Los entornos incluyen bibliotecas de código abierto preinstaladas y la capacidad de agregar otras.

    Las sesiones de bloc de notas se ejecutan en una infraestructura totalmente gestionada. Al crear una sesión de bloc de notas, puede seleccionar las CPU o las GPU, la unidad de computación y la cantidad de almacenamiento sin ningún aprovisionamiento manual. Cada vez que reactiva una sesión de bloc de notas, tiene la oportunidad de modificar estas opciones. También puede dejar que el servicio gestione la red para su sesión de bloc de notas.

    También puede utilizar el método create_notebook_session en el SDK de ADS.

  3. En la sesión de bloc de nota, instale o cree un entorno Conda. Conda es un entorno de código abierto y un sistema de gestión de paquetes que puede utilizar para instalar, ejecutar y actualizar rápidamente paquetes y sus dependencias. Puede aislar diferentes configuraciones de software, cambiar entre entornos y publicar entornos para que la investigación sea reproducible.
    Consejo

    La forma más rápida de comenzar en una sesión del bloc de nota es seleccionar un entorno Conda de Ciencia de datos existente. El equipo de OCI Data Science gestiona estos entornos. Los entornos se centran en proporcionar herramientas específicas y un marco para trabajar con AA o proporcionar un entorno completo para resolver casos de uso empresariales. Cada entorno de Ciencia de datos incluye su propio juego de ejemplos de bloc de notas, que le ayudan a comenzar con las bibliotecas instaladas en el entorno.
  4. Después de instalar un entorno Conda en su sesión de bloc de notas, acceda a sus datos e inicie el ciclo de vida de AA.
Acceso y recopilación de datos

Todos los modelos de AA comienzan con datos. Los científicos de datos que utilizan OCI Data Science pueden acceder y utilizar orígenes de datos en cualquier entorno en la nube o local, lo que permite que haya más funciones de datos y mejores modelos. Consulte la lista completa de orígenes de datos y formatos soportados por el SDK de ADS.

Al utilizar el servicio Data Science, recomendamos almacenar datos en la sesión de bloc de nota para obtener un acceso rápido. En la sesión de bloc de notas, puede acceder a los datos desde los siguientes orígenes:

Seguridad

Puede usar el servicio OCI Vault para gestionar de forma centralizada las claves de cifrado que protegen los datos y las credenciales que utiliza para acceder de forma segura a los recursos. Puede utilizar el bloc de notas de ejemplo vault.ipynb para aprender a utilizar los almacenes de datos con Ciencia de datos.

Para obtener más información, consulte la documentación de Almacén del SDK de ADS.

Preparación y exploración de datos

Los datos se pueden preparar, transformar y manipular con las funciones incorporadas del SDK de ADS. Un objeto ADSDataset subyacente es un marco de datos de Pandas. Las operaciones que se pueden realizar en un marco de datos de pandas también se pueden aplicar a un juego de datos de ADS.

Nota

Todos los juegos de datos de ADS son invariables y las transformaciones que se aplican dan como resultado un nuevo juego de datos.

Preparación

Los datos pueden estar incompletos, ser incoherentes o contener errores. Puede utilizar el SDK de ADS para realizar las siguientes tareas:

Nota

Puede utilizar tipos de funciones para separar la forma en que se representan físicamente los datos de las medidas de los datos. Puede crear y asignar muchos tipos de funciones a los datos. Lee una publicación de blog en la que se explica de qué modo mejoran el flujo de trabajo los tipos de funciones.

Transformación

Puede utilizar los siguientes métodos del SDK de ADS para transformar automáticamente un juego de datos:

  • suggest_recommendations() muestra las incidencias problemas y recomienda cambios y código para solucionarlas
  • auto_transform() devuelve un juego de datos transformado con todas las recomendaciones y optimizaciones aplicadas automáticamente
  • visualize_transforms() visualiza la transformación que se ha realizado en un conjunto de datos

OCI Data Science también soporta herramientas de manipulación de datos de código abierto como pandas, Dask y NumPy.

Consejo

Una vez finalizadas todas las transformaciones de datos, puede dividir los datos en un juego de entrenamiento y prueba o en un juego de entrenamiento, prueba y validación.

Visualizar y explorar

La visualización es uno de los pasos iniciales utilizados para obtener valor de los datos. Permite a los analistas obtener información de forma eficaz a partir de los datos y guía el análisis exploratorio de datos. El SDK de ADS incluye una herramienta de visualización inteligente que detecta automáticamente el tipo de datos y presenta gráficos que representan de forma óptima las características de los datos. A continuación se muestran algunos métodos de visualización automática:

También puede utilizar el método call() del SDK de ADS para trazar datos mediante las bibliotecas y los paquetes de su preferencia, como seaborn, Matplotlib, Plotly, Bokeh y Geographic Information System (GIS). Consulte los ejemplos de SDK de ADS.

Entrenamiento de un modelo

La generación de modelos crea la mejor representación matemática de la relación entre los puntos de datos. Los modelos son artefactos creados por el proceso de entrenamiento, que captura esta relación o patrón.

Después de entrenar el modelo, debe evaluarlo y, a continuación, desplegarlo.

Puede entrenar un modelo mediante Machine Learning automatizado (AutoML) o desde una biblioteca de código abierto. Puede entrenarlo utilizando los siguientes métodos:

  • Blocs de notas: escriba y ejecute código Python utilizando las bibliotecas de la interfaz de JupyterLab.
  • Entornos Conda: utilice el SDK de ADS, AutoML o el Machine Learning explicable (MLX) para el entrenamiento.
  • Trabajos: ejecute tareas de AA o de ciencia de datos fuera de las sesiones de bloc de notas en JupyterLab

AutoML

Crear un modelo de AA correcto requiere muchas iteraciones y experimentación, y rara vez se logra un modelo utilizando un juego óptimo de hiperparámetros en la primera iteración. AutoML automatiza cuatro pasos en el proceso de modelado de AA:

  1. Selección de algoritmos identifica los mejores algoritmos para los datos y el problema, y es más rápida que una búsqueda exhaustiva.
  2. Muestreo adaptativo identifica el tamaño de muestra correcto y se ajusta para los datos desequilibrados.
  3. Selección de funciones identifica el subjuego de funciones óptimo y reduce el número de funciones.
  4. Ajuste del modelo ajusta automáticamente los hiperparámetros para obtener la mejor precisión del modelo.

Para obtener más información, consulte la documentación del pipeline AutoML del SDK de ADS.

Evaluación y validación de un modelo

Después de entrenar un modelo, puede ver cómo funciona con respecto a una serie de referencias. Utilice funciones de evaluación para convertir la salida de los datos de prueba en una serie de puntuaciones y gráficos interpretables y estandarizados.

Evaluación automatizada mediante el SDK de ADS

La evaluación automatizada genera un conjunto completo de métricas y visualizaciones para medir el rendimiento del modelo con respecto a los nuevos datos y para comparar modelos candidatos. ADS ofrece una colección de herramientas, métricas y gráficos relacionados con la comparación de varios modelos. Los evaluadores son los siguientes:

  • El clasificador binario se utiliza para los modelos en los que la salida es binaria, por ejemplo, Sí o No, Arriba o Abajo, 1 o 0. Estos modelos son un caso especial de clasificación de varias clases, por lo que tienen métricas específicas.
  • El clasificador de varias clases se utiliza para los modelos en los que la salida es discreta. Estos modelos tienen un conjunto especializado de gráficos y métricas para su evaluación.
  • La regresión se utiliza para los modelos en los que la salida es continua; por ejemplo, precio, altura, ventas o longitud. Estos modelos tienen sus propias métricas específicas que ayudan a comparar el modelo.

Validación, explicaciones e interpretación

El Machine Learning explicable (MLX) es el proceso de explicar e interpretar los modelos de aprendizaje profundo y AA. La capacidad de explicación permite explicar los motivos de la predicción de un modelo. La interpretabilidad es el nivel en el que una persona puede comprender esa explicación. El MLX le puede ayudar a realizar las siguientes tareas:

  • Comprender mejor e interpretar el comportamiento del modelo
  • Depurar y mejorar la calidad del modelo
  • Incrementar la confianza en el modelo y en el despliegue del modelo

Obtenga más información sobre la capacidad de explicación de modelos para familiarizarse con los explicadores globales, los explicadores locales y los explicadores WhatIf.

Despliegue de un modelo

Una vez completados los procesos de evaluación y entrenamiento de modelos, se guardan los mejores modelos candidatos para que se puedan desplegar. Lea acerca de los despliegues de modelos y sus componentes clave.

Consejo

El SDK de ADS tiene un juego de clases que transfieren un modelo a producción en unos pocos pasos. Para obtener más información, consulte Serialización de modelos.

Introducción al catálogo de modelos

Para poder desplegar un modelo, antes debe guardarlo en el catálogo de modelos. El catálogo de modelos es un repositorio centralizado y gestionado de artefactos de modelo. Los modelos almacenados en el catálogo se pueden compartir entre los miembros de un equipo y se pueden volver a cargar en una sesión de bloc de notas. Un artefacto de modelo es un archivo de almacenamiento que contiene los siguientes archivos y datos:

  • score.py: script de Python que contiene la lógica personalizada para cargar objetos de modelo serializado en la memoria y define un punto final de inferencia (predict())
  • runtime.yaml: entorno de tiempo de ejecución del modelo que proporciona la referencia de entorno Conda necesaria para fines de despliegue del modelo
  • Cualquier archivo adicional que sea necesario para ejecutar el modelo en el artefacto
    Importante

    Cualquier código que se utilice para la inferencia debe archivarse en el mismo nivel que score.py o en un nivel inferior. Si hay archivos necesarios en niveles de carpeta por encima del archivo score.py, estos se ignorarán, lo cual puede provocar un fallo de despliegue.
  • Metadatos sobre la procedencia del modelo, incluida cualquier información relacionada con Git
  • Script o bloc de notas utilizado para transferir el modelo al catálogo
Consejo

En el repositorio de GitHub se proporcionan varios ejemplos y plantillas del catálogo de modelos, incluidos los archivos score.py.

Preparación de metadatos y documentación del modelo

Los metadatos del modelo son opcionales pero se recomiendan. Consulte Preparación de metadatos de modelo y Trabajar con metadatos. Los metadatos incluyen la siguiente información:

  • Esquemas de entrada y salida del modelo: descripción de las funciones necesarias para realizar una predicción de modelo correcta
  • Procedencia: documentación que le ayuda a mejorar la reproducibilidad y auditabilidad del modelo
  • Taxonomía: descripción del modelo que va a guardar en el catálogo de modelos
  • Pruebas de introspección de modelo: se ejecuta una serie de pruebas y comprobaciones en un artefacto de modelo para probar todos los aspectos del estado operativo del modelo
Consejo

El SDK de ADS rellena automáticamente la procedencia y la taxonomía al guardar un modelo con ADS.

Almacenamiento del modelo en el catálogo

Puede guardar un modelo en el catálogo mediante el API de ADS, el API de Python de OCI o la consola. Para obtener más información, consulte Almacenamiento de modelos en el catálogo de modelos.

Nota

Los artefactos de modelo almacenados en el catálogo son inmutables por diseño para evitar cambios no deseados y garantizar que se pueda realizar un seguimiento de cualquier modelo en producción según el artefacto exacto utilizado. No es posible cambiar un modelo guardado.

Despliegue del modelo

La forma más común de desplegar modelos en producción es como puntos finales HTTP para servir predicciones en tiempo real. El servicio Ciencia de datos gestiona despliegues de modelos como recursos y gestiona todas las operaciones del infraestructura, incluido el aprovisionamiento de los recursos informáticos y el equilibro de carga. Puede desplegar un modelo mediante el SDK deADS o la consola.

Consejo

También puede desplegar modelos como una función. Las funciones son arquitecturas altamente escalables, a demanda y sin servidor en OCI. Para obtener más información, consulte esta publicación de blog.

Llamada al modelo

Después de desplegar y activar un modelo, su punto final puede recibir correctamente las solicitudes realizadas por los clientes. La llamada a un despliegue de modelo significa que puede transferir vectores de funciones o muestras de datos al punto final de predicción. A continuación, el modelo devuelve predicciones para esas muestras de datos. Para obtener más información, consulte Llamada a un despliegue de modelo y, a continuación, lea acerca de la edición, desactivación y gestión de cualquier otro modo de un modelo desplegado.

Gestión del ciclo de vida de AA (MLOps)

MLOps es la estandarización, la optimización y la automatización de la gestión del ciclo de vida de AA. Los activos de AA se tratan como otros activos de software dentro de un entorno iterativo de integración continua (CI) y despliegue continuo (CD).

En DevOps, la integración continua (CI) hace referencia a la validación y la integración del código actualizado en un repositorio central, y el despliegue continuo (CD) hace referencia al nuevo despliegue de esos cambios en la producción. En MLOps, la integración continua (CI) hace referencia a la validación y la integración de nuevos datos y modelos de AA, y el despliegue continuo (CD) hace referencia a la transferencia de ese modelo a producción.

El entrenamiento continuo es exclusivo de MLOps y hace referencia al reentrenamiento automático de modelos de aprendizaje automático para su nuevo despliegue. Si el modelo no está actualizado, sus predicciones son cada vez menos precisas, pero puede utilizar la automatización para volver a entrenar el modelo con nuevos datos lo más rápido posible.

Trabajos

Los trabajos de Data Science permiten definir y ejecutar una tarea del AA repetible en una infraestructura totalmente gestionada. Mediante los trabajos, puede realizar las siguientes tareas:

  • Ejecute tareas de AA o de ciencia de datos fuera de una sesión de bloc de notas.
  • Ejecutar tareas discretas de ciencia de datos y AA, como las operaciones ejecutables reutilizables.
  • Automatizar MLOps o el pipeline de integración y despliegue continuos
  • Ejecutar trabajos por lotes o cargas de trabajo disparados por eventos o acciones.
  • Realizar una inferencia de trabajo por lotes distribuidos, minilotes o lotes.
  • En una sesión de bloc de notas de JupyterLab, puede crear tareas de larga ejecución o tareas de cálculos intensivos en un trabajo de Data Science para mantener el bloc de notas libre para que pueda seguir trabajando.
Nota

Pruebe un tutorial sobre programación de ejecuciones de trabajos.

Supervisión

La supervisión y el registro son los últimos pasos del ciclo de vida del trabajo. Proporcionan estadísticas sobre el rendimiento y las métricas de un trabajo, además de un registro al que puede hacer referencia posteriormente para cada ejecución de trabajo. Para obtener más información sobre la supervisión, las alarmas y las métricas, consulte Métricas.

  • Monitoring consta de métricas y alarmas, y permite comprobar el estado, la capacidad y el rendimiento de los recursos en la nube. Posteriormente, puede utilizar estos datos para determinar cuándo crear más instancias para gestionar una mayor carga, solucionar incidencias con una instancia o comprender mejor el comportamiento del sistema.
  • Las alarmas se activan cuando una métrica infringe los umbrales establecidos.
  • Las métricas realizan un seguimiento del uso de CPU o GPU, el porcentaje de uso de memoria del contenedor durante la ejecución del trabajo, el tráfico de red del contenedor y el uso del disco del contenedor. Cuando estos números alcanzan un umbral determinado, puede escalar verticalmente los recursos, como el almacenamiento de bloques y la unidad de computación, para adaptarlos a la carga de trabajo.
  • Los eventos le permiten suscribirse a cambios en recursos, como eventos de trabajos y ejecución de trabajos y responder a ellos mediante funciones, notificaciones o flujos. Consulte Creación de automatización con eventos.

Registro

Puede utilizar logs de servicio o logs personalizados con ejecuciones de trabajos. Una ejecución del trabajo emite logs de servicio al servicio OCI Logging. Con los logs personalizados, puede especificar qué eventos de log se recopilan en un contexto determinado y la ubicación en la que se almacenan los logs. Puede utilizar el servicio Registro para activar, gestionar y examinar los logs de ejecución de trabajos para sus trabajos. Para obtener más información, consulte Registro y Acerca de los logs.

Nota

La integración de recursos de trabajos con el servicio Logging es opcional, pero se recomienda tanto para depurar posibles incidencias como para supervisar el progreso de la ejecución de los artefactos de trabajo.

Lista completa de servicios de AA e IA

Aunque esta guía se centra en el servicio OCI Data Science, puede utilizar otros servicios de AA e IA con Data Science como una forma de consumir los servicios o como parte de proyectos de AA más amplios.

Servicios de aprendizaje automático de OCI

Los servicios de Machine Learning de OCI los utilizan principalmente científicos de datos para crear, entrenar, desplegar y gestionar modelos de Machine Learning. Ciencia de datos proporciona entornos depurados para que los científicos de datos puedan acceder a las herramientas de código abierto que necesitan para resolver problemas de negocio con más rapidez.

  • Data Science permite crear, entrenar y gestionar modelos de AA mediante Python de código abierto, con capacidades agregadas para el AA automatizado (AutoML), la evaluación de Modelos y la explicación de Modelos.
  • Data Labeling proporciona juegos de datos etiquetados para entrenar con más precisión los modelos de IA y AA. Los usuarios pueden recopilar datos, crear y examinar conjuntos de datos, y aplicar etiquetas a registros de datos a través de interfaces de usuario y API públicas. Los conjuntos de datos etiquetados se pueden exportar y utilizar para el desarrollo de modelos. Cuando crea modelos de AA que para imágenes, texto o voz, necesita datos etiquetados que se puedan utilizar para entrenar los modelos.
  • Data Flow proporciona un entorno escalable para los desarrolladores y científicos de datos para que ejecuten aplicaciones Apache Spark en la ejecución por lotes a escala. Puede ejecutar aplicaciones escritas en cualquier lenguaje de Spark para realizar varias tareas de preparación de datos.
  • Machine learning in Oracle Database soporta la exploración y la preparación de datos, así como la creación y el despliegue de modelos de AA mediante SQL, R, Python, REST, AutoML e interfaces sin código. Incluye más de 30 algoritmos en la base de datos que producen modelos en Oracle Database para su uso inmediato en aplicaciones. Cree modelos rápidamente simplificando y automatizando elementos clave del proceso de AA.
Servicios de IA de OCI

Los servicios de IA de OCI contienen modelos de AA predefinidos para usos específicos. Algunos de los servicios de inteligencia artificial están entrenados previamente, y otros pueden entrenarse con sus propios datos. Para utilizarlos, solo tiene que llamar a la API del servicio y transferir los datos que se van a procesar; el servicio devolverá un resultado. No hay ninguna infraestructura que gestionar.

  • Digital Assistant ofrece capacidades y plantillas predefinidas con el fin de crear experiencias conversacionales para clientes y aplicaciones de negocio a través de interfaces de texto, chat y voz.
  • Language permite realizar análisis de texto sofisticados a escala. El servicio Language incluye modelos entrenados para el análisis de sentimiento, la extracción de frases clave, la clasificación de texto, el reconocimiento de entidades con nombre, etc.
  • Speech utiliza el reconocimiento automático de voz (ASR) para convertir la voz en texto. Basados en los mismos modelos de inteligencia artificial que se utilizan para Asistente digital, los desarrolladores pueden utilizar modelos de lenguaje y acústicos de eficacia probada para proporcionar una transcripción muy precisa para archivos de audio o vídeo en muchos idiomas.
  • Vision aplica la visión informática para analizar el contenido basado en imágenes. Los desarrolladores pueden integrar fácilmente modelos entrenados previamente en sus aplicaciones con API o modelos entrenamiento personalizado para satisfacer sus casos de uso específicos. Estos modelos se pueden utilizar para detectar anomalías visuales en los procesos de fabricación, extraer texto de documentos para automatizar los flujos de trabajo de negocio y etiquetar elementos en imágenes para contabilizar productos o envíos.