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.
Como requisito previo para utilizar Data Science para el ciclo de vida de AA, debe preparar el entorno y el espacio de trabajo de OCI. A continuación, debe realizar las siguientes tareas:
También puede explorar todas nuestras ofertas de aprendizaje automático e inteligencia artificial, así como visitar recursos adicionales. |
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.
- 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). - 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. - 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. - 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.
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:
- Object Storage: para recuperar datos, primero debe configurar una conexión a Object Storage. Después de esta configuración, puede utilizar el SDK de Python de OCI en una sesión de bloc de notas para recuperar los datos. Además, puede usar el SDK de ADS para extraer datos de Almacenamiento de objetos.
- Almacenamiento local: para cargar un marco de datos desde un origen local utilizando el SDK de ADS, utilice las funciones directamente desde pandas.
- Puntos finales HTTP y HTTPS: para cargar un marco de datos desde un origen de servidor web remoto, utilice pandas directamente.
- Bases de datos: puede conectarse a Autonomous Data Warehouse desde una sesión de bloc de notas. El bloc de notas de ejemplo de
autonomous_database.ipynb
muestra de forma interactiva este tipo de conexión. - Orígenes de datos de Streaming: la biblioteca de cliente
kafka-python
está disponible en las sesiones de bloc de notas. La biblioteca de clientes de Python para el sistema de procesamiento de flujo distribuido de Apache Kafka permite a los científicos de datos conectarse al servicio Streaming mediante su API compatible con Kafka. Proporcionamos el ejemplo del bloc de notasstreaming.ipynb
en el entorno de sesión de bloc de notas. - Bibliotecas de referencia: para abrir un juego de datos desde las bibliotecas de referencia, utilice
DatasetBrowser
. Para ver las bibliotecas admitidas, utiliceDatasetBrowser.list()
.
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.
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.
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:
- Combinar y limpiar los datos mediante operaciones de fila y columna.
- Atribuir datos buscando y reemplazando valores nulos.
- Codificar categorías.
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 solucionarlasauto_transform()
devuelve un juego de datos transformado con todas las recomendaciones y optimizaciones aplicadas automáticamentevisualize_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.
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:
show_in_notebook()
proporciona una vista previa completa de la información básica de un conjunto de datosshow_corr()
incluye la relación de correlación, el método de Pearson y el método V de Cramerplot()
utiliza el trazado automático para explorar la relación entre dos columnasfeature_plot()
utiliza trazados y visualizaciones personalizados utilizando tipos de funciones
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.
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:
- 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.
- Muestreo adaptativo identifica el tamaño de muestra correcto y se ajusta para los datos desequilibrados.
- Selección de funciones identifica el subjuego de funciones óptimo y reduce el número de funciones.
- 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.
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.
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.
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 artefactoImportante
Cualquier código que se utilice para la inferencia debe archivarse en el mismo nivel quescore.py
o en un nivel inferior. Si hay archivos necesarios en niveles de carpeta por encima del archivoscore.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
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
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.
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.
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.
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.
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.
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.
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.
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.