{UT02}

Aplicaciones de IA en la nube y servicios API.

2024-25

IES AL-ÁNDALUS

0. Introducción

# UT02

A lo largo de esta unidad veremos productos SaaS disponibles en el mercado relacionados con el desarrollo de inteligencia artificial

El auge de la inteligencia artificial ha llevado a la creación de herramientas y servicios que permiten a las organizaciones implementar soluciones sin comenzar desde cero, utilizando modelos preentrenados o ajustables, gestionados a través de interfaces online en la nube.

Estos servicios se acceden mediante API, facilitando la comunicación entre servidores y aplicaciones, y cada plataforma cloud ofrece herramientas y documentación para su integración.

0. Introducción. Debes Conocer

# UT02

El término API es una abreviatura de "Application Programming Interfaces". Básicamente, constituyen una serie de protocolos que permiten la comunicación  entre dos aplicaciones de software basados en un conjunto de reglas. La aplicación que envía la llamada o solicitud, se llama "cliente", y la que envía la respuesta se llama "servidor". Destacan estas formas de funcionamiento para las API:

0. Introducción. Debes Conocer

# UT02
  • SOAP: más clásica y menos flexible. La información intercambiada va en XML.
  • RPC: el cliente ejecuta una función o procedimiento en el servidor y éste devuelve el resultado.
  • WebSocket: creado para la API web, y utiliza objetos JSON para pasar datos. Es bastante eficiente porque se establece una comunicación bidireccional entre servidor y cliente
  • REST: las más utilizadas, debido a su flexibilidad. El cliente envía las solicitudes al servidor como datos. Esta entrada hace que el servidor ejecute funciones internas y devuelva los datos de salida a éste.
# UT02

1. Google Cloud Platform

GCP es un principal proveedor de computación en la nube con un amplio catálogo de servicios, incluidos algunos "llave en mano" como Document AI, que facilita el análisis y extrancción  de información de documentos específicos (Ej: facturas o impresos de hipotecas) sin que el usuario se preocupe por la inteligencia artificial.

Para trabajar con GCP es necesario registrarse y crear una cuenta con datos de facturación. La mayoría de los servicios son gratuitos hasta un cierto volumen de utilización, y para usuarios nuevos hay ofertas y créditos de regalo para poder probar durante los primeros meses. Es importante informarse muy bien de las condiciones de facturación de cada servicio, y es recomendable fijar límites de gasto, para evitar sorpresas.

# UT02

1. Google Cloud Platform

La interfaz de trabajo se denomina "Consola" y cuenta con una pantalla de inicio con tus proyectos recientes

El ecosistema de aplicaciones de la nube de Google es inmenso, y vamos a fijarnos en una pequeñísima parte, pero cada proyecto suele requerir utilizar varios servicios en conjunto. Aquí tienes una hoja resumen con casi todos los servicios, pero te recomendamos ir al mapa interactivo de Google Cloud

1.1. Vertex AI y AutoML.

# UT02

Modelos ya entrenados

Vertex AI integra los servicios de Google Cloud para crear modelos de aprendizaje automático mediante una interfaz con APIs unificadas.

Modelos adaptados a logica de negocio con AutoML

Para acceder a ellos, desde la pantalla inicial en la consola de GCP, pinchando en el menú lateral en la parte superior izquierda de la pantalla, debes bajar hasta llegar a la sección de Inteligencia Artificial.

1.1. Vertex AI y AutoML.

# UT02

En cada apartado del proceso, será necesario fijar los parámetros propios del proyecto. Es muy fluido y sencillo, ya que se va configurando en cada apartado lo que necesita el modelo.

Se desplegará su propio menú, que representa de forma casi ordenada, las fases a seguir en cualquier proceso de preparación y despliegue de un Modelo de aprendizaje automático

Panel Vertex AI

Conjunto de Datos

Desde aquí seleccionaremos las fuentes de datos que van desde Google Storage, BigQuery e incluso por subida directa a través de ficheros .csv

 

Una vez cargados, se pueden analizar y generar estadísticas para una exploración más completa.

1.

2.

Entrenamiento

Aquí configuramos entre otros el tipo de técnica a aplicar.

 

IMPORTANTE:

Si queremos configurar bien el modelo, es necesario entender bien el tipo de problema en el que estamos trabajando.

3.

La naturaleza y etiquetado de los datos determinan si se pueden usar técnicas de aprendizaje automático supervisado, como clasificación o regresión, y las estadísticas de estos datos ayudan a interpretar algunos comportamientos de las predicciones.

# UT02
# UT02

La propia plataforma va a automatizar gran parte de los parámetros y configuración para la creación del modelo y su posterior entrenamiento.

La sección de conjunto de datos nos presentará los tipos de problemas que tienen categorizados para ofrecernos un proceso guidado

# UT02
# UT02

Cuando el entrenamiento ya ha concluido, se pueden ver, en la sección "Modelo" las métricas del desempeño conseguido.

# UT02

Para poder probar e implementar el modelo, es necesario crear un "endpoint" o acceso al modelo en formato API REST. Esta tarea también la resuelve Vertex AI, prácticamente haciendo click en un botón. Tras tenerlo implementado, podemos hacer una prueba por valores, predicción por lotes y utilizar el "endpoint" o "extremo" en una aplicación.

1.2. VisionAI.

# UT02

Reconocimento facial

GCP cuenta con un producto de reconocimiento de imágen genérico, útil cuando no tenemos un conjunto de datos ni experiencia en creación y entrenamiento de modelos.

Reconocimiento de objetos en una imagen

Identificación de etiquetas para una imagen

Extracción de texto de una imagen

Detección de elementos no seguros en imagen (violencia, sexo, racismo, etc)

1.2. VisionAI.

# UT02

En el caso de reconocimiento facial, el modelo detecta los elementos del rostro y según sus posiciones relativas, ha sido entrenado para etiquetar respecto a las principales emociones. También detecta orientación del rostro en la imagen.

# UT02

También se pueden reconocer objetos en una imagen a través de la detección de bordes y formas, ya que el modelo ha sido entrenado con una gran cantidad de imágenes etiquetadas que incluían objetos de todo tipo.

Si necesitamos reconocer en la imagen objetos peculiares o muy originales, ya tendríamos que entrenar nuestro propio modelo, con imágenes bien etiquetadas que contuviesen dichos objetos.

# UT02

En muchas aplicaciones, especialmente si van a tener una calificación por edades que garantice un uso seguro por parte de menores, es necesario implementar filtros que bloqueen o adviertan de imágenes que contengan elementos o situaciones sensibles.

# UT02

Muy extendida es la utilidad de detección de texto en imagen. El modelo reconoce los trazos típicos de caracteres escritos y lo entrega por bloques.

A tener en cuenta: El modelo solo detecta texto, después habría que aplicar un modelo de procesamiento del lenguaje para clasificar la intención o su significado.

1.3. Dialogflow.

# UT02

Dialogflow,  es una plataforma para la comprensión del lenguaje natural, diseñada para interfaces conversacionales e integrable en diversas aplicaciones. Puede colaborar con agentes humanos mediante Agent Assist y realizar llamadas a servicios pre-definidos, como verificar disponibilidad en reservas de restaurantes.

1.3. Dialogflow.

# UT02

Dialogflow procesa entradas de texto o audio, como las provenientes de Google Assistant o llamadas telefónicas, y responde tanto en texto como en voz sintética. Forma parte de la oferta "Conversational AI" de Google Cloud, que ofrece servicios complementarios para desarrollar aplicaciones de negocio.

Crear un asistente conversacional requiere, básicamente, dos cosas:

  • Identificar las intenciones del usuario cuando hace una pregunta o petición
  • Una vez interpretada la pregunta e identificada la intención, recurrir a las respuestas disponibles para entregar la más adecuada al usuario.

Tutorial

Veamos una ejercicio resuelto sobre como crear un chatbot.

¡¡¡Repasemos un poco!!!

# UT02

2. Amazon Web Services

Es una de las más conocidas y utilizadas a nivel mundial. Lanzada oficialmente en 2006 a raíz de una propuesta de C. Pinkham y B. Black, que vieron una oportunidad de negocio en la utilización de recursos sobredimensionados en Amazon.com.

Ofrece una extensa colección de servicios para desarrolladores y organizaciones, integrando toda la gestión en un flujo de trabajo, accesible vía HTTP con protocolos REST y SOAP. Surgió como una de las primeras opciones de pago por uso tras la burbuja de las .com, facilitando el inicio de startups que no serían viables con el hosting tradicional.

Uno de los más valoradores en proyectos emergentes y con escalabilidad, es la arquitectura sin servidor, empleando las llamadas funciones "Lambda" (desde 2014).

# UT02

2. Amazon Web Services

Para IA cuenta con un Servicio Administrado para la creación, entrenamiento y despliegue de Modelos de Aprendizaje Automático: SageMaker

También ofrece servicios más concretos y enfocados en aplicaciones concretas de visión artificial, bots conversacionales, y analítica avanzada. Analizaremos los módulos de Rekognition, para reconocimiento de imagen; Comprehend, para análisis de texto; y SageMaker, como entorno de trabajo con modelos de aprendizaje automático.

2.1. SageMaker.

# UT02

Servicios se gestionan desde un panel de control con IDE propio SageMaker Studio

Dentro de AWS es el entorno integrado para la creación, entrenamiento y despliegue de modelos de Machine Learnig

Interfaz de visualización y presentación llamada Canva

El trabajo de un MLops se hará desde SageMaker Studio, que ofrece la experiencia de programación en formato "notebook" con una serie de herramientas de apoyo extra, y una funcionalidad muy interesante denominada "Autopilot".

2.1. SageMaker.

# UT02

Desde el panel de control se lanzan y gestionan los proyectos, muestra los parámetros del mismo, los usuarios colaboradores y las políticas de acceso entre otras opciones.

2.1. SageMaker.

# UT02

Para cada fase del proceso, hay una sección con los servicios más utilizados, donde se pueden ir dando de alta y lanzando el dataset, arquitectura del modelo, modelo predictivo y despliegue.

Autopilot permite automatizar la parte más técnica del proceso de creación y entrenamiento de un MAA. Analiza el dataset y morfología de los datos objetivo, y automatiza la selección del tipo de modelo y parámetros asociados al entrenamiento. Evidentemente con un coste de servicio mayor que para un proyecto normal.

2.1. SageMaker.

# UT02

 Es necesario registrarse y hay ciertos límites de uso, pero permite utilizar proyectos de prueba de aprendizaje automático dentro de otros proyectos que se tengan desplegados en AWS.

AWS provee de un entorno para pruebas y aprendizaje con las funcionalidades más básicas y recursos de computación de forma gratuita. SageMaker Studio Lab

2.2. Rekognition.

# UT02

Se puede probar a través de una interfaz demostrativa

Servicio de reconocimiento de imagen de AWS ya pre-entrenado y desplegado

Integrable en cualquier proyecto usando su API

Podemos usar distintos modos de reconocimiento como el de "etiquetas", que nos indicará los objetos que se podrían encontrar en la imagen

2.2. Rekognition.

# UT02

Modo Moderación de Imágenes:  detecta el grado de probabilidad de que la imagen contenga contenido sensible que deba desenfocarse o que deba activar algún tipo de acción.

2.2. Rekognition.

# UT02

Modo Reconocimiento Facial: se reconocen con bastante precisión factores como rasgos masculinos o femeninos, si está sonriendo o demostrando alguna emoción concreta detectable, el rango de edad, etc.

2.2. Rekognition.

# UT02

Modo Comparación Facial: para identificar el rostro de determinadas personas dentro de otras imágenes. Veamos un ejemplo donde reconoce aún estando el rostro parcialmente tapado

2.2. Rekognition.

# UT02

Modo Texto en Imagen: identificando letras y números o caracteres especiales, devolviendo la cadena de caracteres reconocida como salida de la función.

# UT02

2.2. Rekognition.

En todos los casos, se puede revisar tanto la llamada como la respuesta del ejemplo, que es un archivo tipo JSON con los parámetros "clave-valor" del reconocimiento. Será necesario conocer estos parámetros a la hora de hacer la implementación en un proyecto o aplicación.

{
    "Image": {
        "S3Object": {
            "Bucket": "rekognition-console-sample-images-prod-cmh",
            "Name": "green_car.jpeg"
        }
    }
}

Esquema Ejemplo de Solicitud

# UT02

2.2. Rekognition.

La respuesta devolverá el texto detectado y los parámetros del polígono que la contiene:

Respuesta

{
    "Image": {
        "S3Object": {
            "Bucket": "rekognition-console-sample-images-prod-cmh",
            "Name": "green_car.jpeg"
        }
    }
}{
    "TextDetections": [
        {
            "DetectedText": "J389 NLT",
            "Type": "LINE",
            "Id": 1,
            "Confidence": 99.13363647460938,
            "Geometry": {
                "BoundingBox": {
                    "Width": 0.1763957142829895,
                    "Height": 0.073918916285038,
                    "Left": 0.4644404947757721,
                    "Top": 0.7082650661468506
                },
                "Polygon": [
                    {
                        "X": 0.46971258521080017,
                        "Y": 0.7082650661468506
                    },
                    {
                        "X": 0.6408361792564392,
                        "Y": 0.723688006401062
                    },
                    {
                        "X": 0.6355640888214111,
                        "Y": 0.7821840047836304
                    },
                    {
                        "X": 0.4644404947757721,
                        "Y": 0.766761064529419
                    }
                ]
            }
    ],
    "TextModelVersion": "3.0"
}

2.3. Comprehend.

# UT02

Trabaja bien los "tokens" o palabras clave, es necesario configurar el tipo de problema para que el modelo pueda trabajar.

Otro módulo también preparado para integrar en aplicaciones para procesamiento de lenguaje natural.

El procesamiento de lenguaje natural (NLP) utiliza técnicas de aprendizaje automático para identificar y clasificar intenciones en expresiones escritas o habladas convertidas a texto, como determinar si una valoración de película es positiva o negativa.

2.3. Comprehend.

# UT02

El modelo divide el texto en unidades con sentido y lo analiza

 Por ejemplo, frente a un mensaje como el siguiente, la herramienta puede identificar expresiones clave que puedan contribuir a la ejecución de tareas posteriores:

2.3. Comprehend.

# UT02

Y también encuentra unidades de información como fechas, cantidades, etc:

2.3. Comprehend.

# UT02

Una función muy utilizada es el análisis de sentimiento.

Nos puede dar un valor aproximado del grado de positividad o negatividad que hay en un texto. En este ejemplo, vemos como asigna un 99% de negatividad a un comentario negativo en una web de tienda online:

2.3. Comprehend.

# UT02

En la documentación de AWS Comprehend, se pueden consultar las especificaciones para el uso de la API y la integración en una aplicación.

Documentación Oficial:

¡¡¡Repasemos un poco!!!

# UT02

La plataforma en la nube de IBM fue de las primeras en ofrecer servicio de inteligencia artificial como servicio, a través de su producto estrella "Watson". Poco a poco han ido creando todo un catálogo de productos para diferentes usos y tipos de aplicaciones.

3. IBM Cloud

# UT02

3. IBM Cloud

Encontraremos módulos pre-entrenados y listos para integrar, vía API en una App o proyecto. También hay MAA para trabajar a bajo nivel.

# UT02

3. IBM Cloud

La herramienta básica de trabajo para Aprendizaje Automático es Watson Studio. Entorno gráfico con Node.js pero permite uso de Notebooks

# UT02

3. IBM Cloud

IBM Watson natural Language Understanding, en su extensión de análisis de texto, logra un resultado muy completo, tanto en la fase de extracción y clasificación de entidades y expresiones clave, como en la fase de interpretación de emociones para cada expresión clave.

Por ejemplo, probando con una valoración de un usuario que ha visto la película "Doctor Strange in the Multiverse of Madness", vemos una extracción de las palabras clave muy acertada.

# UT02

3. IBM Cloud

# UT02

Si recurrimos a las funciones de análisis de sentimiento, obtenemos una evaluación con información muy completa en cuanto a qué palabras o expresiones clave han tenido mayor peso en categorizar este comentario como negativo.

# UT02

Por último, cabe destacar el análisis de las categorías semánticas de las distintas expresiones clave, que son una de las principales fuentes para la parametrización del texto.

¡¡¡Repasemos un poco!!!

# UT02

 Sus últimos esfuerzos por abrir su comunidad y ofrecer servicios que puedan competir con otras nubes, han dotado a Azure de algunas propuestas muy interesantes.

4. Microsoft Azure

# UT02

Es la suite de modelos listos para usar de Microsoft. Funciona a través de llamada API e implementa servicios de reconocimiento de voz, texto, comprensión de lenguaje natural, reconocimiento de imagen y analítica avanzada de datos para toma de decisiones. Permite utilizar, en un proyecto, funcionalidades de inteligencia artificial, sin necesidad de desarrollo concreto de machine learning.

4.1. Congnitive Services.

# UT02

4.1. Congnitive Services.

  • Speech to Text: transcripción de voz en texto legible.
  • Text to Speech: conversión de texto en una locución audible
  • Speech Translation: traducción simultánea de Voz
  • Speaker recognition: identificación de un interlocutor concreto en audio.

1. Servicios de Voz

  • Reconocimiento de entidades.
  • Análisis de opiniones.
  • Respuesta a preguntas.
  • Language Understanding.
  • Translator Text.

 

2. Servicios de Lenguaje

# UT02

4.1. Congnitive Services.

  • API de reconocimiento facial.
  • Computer Vision.
  • Custom Vision.

3. Servicios de Visión

  • Detector de Anomalías: permite hacer una identificación temprana de posibles problemas.
  • Moderador de contenido: detecta contenido potencialmente ofensivo o no deseado.
  • Personalizador.

 

4. Toma de decisiones.

# UT02

Azure ofrece un itinerario formativo para llegar a dominar el uso de estas herramientas, con videos y tutoriales prácticos:

4. Microsoft Azure

# UT02

Es el servicio para crear y entrenar modelos de cero, con la facilidad de conectarlos al resto de servicios necesarios en un proyecto de forma eficiente e integrada. Cuenta con un escritorio específico de trabajo, denominado Studio, en el que se puede iniciar y gestionar los modelos, sus implementaciones, métricas e historiales de ejecución.

4.2. AzureML.

# UT02

4.2. AzureML.

# UT02

La interfaz permite trabajar con  cuadernos Jupyter Notebook, utilizar librerías para aprendizaje automático y la flexibilidad de configurar los hiperparámetros en el código. Cuenta con una herramienta de depurado y permite la integración con el entorno de programación Visual Studio Code, con lo que se integra con relativa facilidad en proyectos que ya están desplegados en la nube.

4.2. AzureML.

# UT02

4.2. AzureML.

# UT02

La plataforma Open AI y su "gimnasio" en la nube son recientes, pero su API basada en GPT-4-mini ha ganado rápida popularidad, convirtiéndose en una opción destacada para proyectos de inteligencia artificial enfocados en texto e interacción humana.

5. Open AI.

Funcionamiento: se le pasa un "prompt" que puede ser una pregunta, una instrucción o el inicio de una frase, y el modelo trata de predecir qué es lo más probable que deba aparecer a continuación. De esta manera, emula las respuestas que daría un agente, no como una respuesta realmente, sino como una forma de presentar un texto completo (pregunta + respuesta) tal y como sería si estuviesen hablando dos humanos.

# UT02

Parámetros de Entrada  en la API

5. Open AI.

  • Es el más importante. Es la instrucción a partir de la cual se configura el completado o respuesta

1. Prompt

  • es el margen de "riesgo" o libertad que se le da al modelo para ser más creativo o más riguroso. Es un valor entre 0 y 1 en el que el valor de 0 representa ningún margen de libertad. Con la temperatura a 0, el modelo responde de forma muy determinista y nos dará la misma respuesta para la misma entrada.

 

2. Temperatura

# UT02

Se puede probar el comportamiento del modelo según lo que se necesita para una aplicación concreta, en la interfaz de prueba que tiene la web, denominada "playground"

5. Open AI.

# UT02

Para que se pueda apreciar todo el alcance del modelo, hay un catálogo de ejemplos muy variado, y que se recomienda revisar y probar.

5. Open AI.

# UT02

En la documentación se puede consultar cómo hacer las llamadas a la API desde una app o backend, pasando como parámetros principales:

  • model: el modelo que se quiere usar. Davinci 2 es el más potente, pero también el más caro. lo recomendable es empezar con él y tras ver de lo que es capaz, ir probando con los otros modelos más especializados si logramos más o menos un buen desempeño para nuestra aplicación. Los otros modelos para NLG son Curie, Babbage y Ada. Sus características se pueden consultar aquí.
  • prompt: la instrucción de entrada.
  • temperature: como hemos comentado antes, el valor entre 0 y 1 de la flexibilidad creativa que le permitimos al modelo.
  • max_tokens: el número máximo de tokens que queremos que se generen. Los tokens son conjuntos de caracteres consecutivos que constituyen la unidad de trabajo del modelo. La relación entre tokens y palabras es de 3 a 4 (100 tokens equivalen a unas 75 palabras).

5. Open AI.

# UT02

5. Open AI.

# UT02

Un ejemplo de llamada a la API:

5. Open AI.

curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"model": "text-davinci-002", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 6}'
# UT02

Respuesta:

5. Open AI.

{
    "id": "cmpl-GERzeJQ4lvqPk8SkZu4XMIuR",
    "object": "text_completion",
    "created": 1586839808,
    "model": "text-davinci:002",
    "choices": [
        {
            "text": "\n\nThis is a test",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ]
}

¡¡¡Fin de la UT02!!!

CE-IABD-UT02-Aplicaciones de IA en la nube y servicios API.

By Manuel Jesús Rodríguez Arabi

CE-IABD-UT02-Aplicaciones de IA en la nube y servicios API.

  • 248