Tabla de contenidos

Introducción

Tuve el privilegio de ser seleccionado para el acceso anticipado a Jarvis 1.0 Beta. Y NVIDIA ha lanzado Jarvis, que se describe como un marco de aplicación para la IA conversacional multimodal.

La atención se centra en la baja latencia, menos de 300 milisegundos y las demandas de alto rendimiento. Es una solución de inteligencia artificial conversacional de alto rendimiento que incorpora señales visuales y de voz; a menudo denominado velocidad facial. La velocidad facial incluye detección de mirada, actividad de labios, etc.

Secuencia de eventos que seguiremos para llegar a un prototipo funcional.

El aspecto multimodal de Jarvis se comprende mejor en el contexto de dónde NVIDIA quiere llevar a Jarvis en términos de funcionalidad.

Esto incluye:

  • ASR (reconocimiento automático de voz).
  • STT (voz a texto).
  • NLU (comprensión del lenguaje natural).
  • Reconocimiento de gestos.
  • Detección de actividad labial.
  • Detección de objetos.
  • Detección de mirada.
  • Detección de sentimiento.

Una vez más, lo emocionante de esta colección de funciones es que Jarvis está preparado para convertirse en un verdadero agente conversacional.

El robot meteorológico de demostración Jarvis de NVIDIA

Día a día, como humanos, nos comunicamos no solo con la voz, sino detectando la mirada del hablante, la actividad de los labios, etc.

Otro punto clave de esta aplicación es lo que se conoce como transfer learning. Gracias a este sistema, hay un ahorro de costos significativo cuando se trata de tomar los modelos básicos avanzados de Jarvis y reutilizarlos para usos específicos. La funcionalidad que está disponible actualmente en Jarvis 1.0 Beta incluye:

  • ASR
  • STT
  • NLU.

Aspectos positivos y consideraciones

Los aspectos positivos son abrumadores…

  • Las implementaciones pueden ser en la nube o locales/perimetrales.
  • Jarvis habla de los servicios cognitivos de fuerza industrial, de misión crítica y la inteligencia artificial conversacional.
  • Un nuevo marco para ASR, STT y NLU de alto rendimiento.
  • Los desarrolladores tienen acceso a al transfer learning y al aprovechamiento de la inversión realizada por NVIDIA.
  • El entorno de la GPU NVIDIA aborda los requisitos de misión crítica, donde la latencia se puede negar.
  • Hoja de ruta clara para Jarvis en términos del futuro cercano en características inminentes.
  • Jarvis aborda los requisitos para las interfaces ubicuas ambientales.

Consideraciones…

  • El acceso, el desarrollo y la implementación parecen abrumadores y el marco parece complicado. En este artículo quiero desacreditar las detenciones de acceso. Sin embargo, la implementación de la producción será, sin duda, compleja.
  • Lo más probable es que para un entorno de producción, las consideraciones de hardware específicas sean primordiales; especialmente donde no se puede tolerar la latencia de la nube/conectividad.

Según NVIDIA:

Developers at enterprises can easily fine-tune state-of-art-models on their data to achieve a deeper understanding of their specific context and optimize for inference to offer end-to-end real-time services that run in less than 300 milliseconds (ms) and delivers 7x higher throughput on GPUs compared with CPUs.

The Jarvis framework includes pre-trained conversational AI models, tools in the NVIDIA AI Toolkit, and optimized end-to-end services for speech, vision, and natural language understanding (NLU) tasks.

Empezando

Como se mencionó, NVIDIA Jarvis es ideal para cloud computing o edge computing.

https://en.wikipedia.org/wiki/File:Fibonacci_spiral_34.svg

El edge computing se basa en servidores y dispositivos localizados para facilitar la velocidad y anular la latencia. En lugar de depender completamente de los proveedores de computación en la nube, el edge computingprimero procesa los datos inicialmente a nivel local.

Es fácil sentirse abrumado al comenzar con algo como Jarvis.

Este artículo no es un tutorial, sino una guía sobre cómo:

  • Empieza de la forma más pequeña y sencilla posible.
  • Familiarízate con el medio ambiente, al menos hasta cierto punto.
  • Y tu prototipo en espiral hacia afuera con iteraciones medidas de este prototipo inicial con mayor funcionalidad y complejidad.

Unidad de procesamiento gráfico

Un requisito para experimentar y construir con Jarvis es el acceso a una GPU. Y concretamente en el caso de Jarvis, GPU NVIDIA basada en la arquitectura Turing o Volta.

Este es el gran impedimento para la experimentación… en este artículo, estoy viendo una de las opciones rentables que puede utilizar para acceder a Jarvis y comenzar a crear experiencias increíbles de IA conversacional.

Los siguientes son requisitos para una instalación exitosa de Jarvis:

  • Acceso a la GPU NVIDIA basada en la arquitectura Turing o Volta.
  • Accede y conéctate a NVIDIA GPU Cloud (NGC).

Requisitos de hardware

Primero, solucionemos el problema de acceso a la GPU. Opté por utilizar una AMI de aprendizaje profundo de NVIDIA (imagen de máquina de Amazon). Está disponible en AWS EC2 y se puede crear en unos minutos.

Elección de la AMI de aprendizaje profundo de NVIDIA

Una vez que se estés ejecutando la instancia EC2 (computación en la nube elástica), asegúrate de detenerla cuando no esté en uso. El cargo es por hora mientras la instancia se está ejecutando, para la creación de prototipos y la experimentación no es necesario ejecutarla las 24 horas del día, los 7 días de la semana.

También vale la pena comparar el costo de diferentes regiones; descubrí que el precio difiere significativamente de una región a otra.

Agregar espacio en disco a la instancia EC2.

A medida que se ejecuta la instalación (que veremos más adelante), encontrarás que el almacenamiento estándar de 32 GB no es suficiente. En mi caso, lo aumenté a 256 GB. El almacenamiento se puede aumentar fácilmente a través del portal EC2 en AWS; como se ve en la imagen de arriba.

Acceso a su hardware

Una vez que tu instancia EC2 de Ubuntu está en funcionamiento, obviamente debes conectarse a ella. La forma más sencilla es a través de PuTTY. Instala PuTTY en tu ordenador…

PuTTY launch screen

Al crear la instancia EC2, se te presenta una opción para descargar una clave PEM. Descarga este archivo de certificado y guárdalo en algún lugar de tu sistema.

Lo necesitarás para crear una clave privada utilizando el generador de claves PuTTY.

Una vez que se genera la clave privada (* .ppk), debes hacer clic dentro de PuTTY en SSH y Auth, y seleccionar este archivo.

Esta es una forma efectiva y liviana de conectarte a tu Ubuntu. En esta etapa, tu máquina AWS está en funcionamiento y tienes acceso a ella a través de la línea de comandos.

PuTTY Pantalla de inicio después de iniciar sesión.

A continuación, analizamos los requisitos de software…

Requisitos de Software

Ahora que tenemos nuestro hardware en funcionamiento con acceso, debemos comenzar a instalar Jarvis y lanzar algunas de las aplicaciones de prueba y demostración.

Tu punto de partida es acceder al sitio web de NVIDIA NGC.

NVIDIA NGC

Edit description

ngc.nvidia.com

NVIDIA GPU Cloud (NGC) es una plataforma en la nube acelerada por GPU optimizada para el aprendizaje profundo y la informática científica.

Crea un perfil de usuario en NGC, esto es gratis y rápido de realizar. Después de haber creado tu perfil, asegúrate de revisar tu correo electrónico para el que puedas recibir correctamente el correo electrónico de confirmación y haz clic en confirmar.

Genera una clave API dentro de NVIDIA NGC y guárdala.

Asegúrate de guardar la clave API como se ve en la imagen de arriba; lo usaremos para la autenticación en nuestra AMI.

Obviamente, este proceso se puede realizar en tu máquina, en esta etapa no tenemos ninguna GUI o acceso de escritorio a nuestra máquina virtual.

Instalación de NGC en la AMI

De vuelta en tu máquina virtual en AWS, desde la línea de comando de la aplicación PuTTY, puedes ejecutar todas las instalaciones y acciones.

Antes de instalar Jarvis, debes instalar la herramienta de línea de comandos NGC (NGC CLI) con estos comandos:

wget -O ngccli_cat_linux.zip https://ngc.nvidia.com/downloads/ngccli_cat_linux.zip && unzip -o ngccli_cat_linux.zip && chmod u+x ngcmd5sum -c ngc.md5echo "export PATH=\"\$PATH:$(pwd)\"" >> ~/.bash_profile && source ~/.bash_profilengc config set

Durante este proceso de instalación, se te pedirá una clave API, a la que accediste mientras se registraba en NGC.

El procedimiento de instalación de NGC CLI para Ubuntu.

Implementación de Jarvis en la AMI

La implementación de Jarvis lleva un tiempo, es aquí donde la instalación podría detenerse debido a los requisitos de espacio en disco.

La opción que se muestra a continuación es el enfoque de scripts de inicio rápido para configurar una estación de trabajo local e implementar los servicios Jarvis mediante Docker.

Descarga el script.

ngc registry resource download-version nvidia/jarvis/jarvis_quickstart:1.0.0-b.1

Inicia y comienza a usar Jarvis. El paso de inicialización descarga y prepara imágenes y modelos de Docker. Este paso lleva bastante tiempo.

cd jarvis_quickstart_v1.0.0-b.1   bash jarvis_init.sh   bash jarvis_start.sh

Inicia una instancia de Jupyter Notebook y accede a ella desde tu máquina local.

jupyter notebook — ip=0.0.0.0 — allow-root — notebook-dir=/work/notebooks

Desde el interior del contenedor del cliente, prueba los diferentes servicios utilizando los Jupyter Notebooks proporcionados ejecutando este comando.

Copia el token para usar en el navegador.

Túneles SSH

Para acceder a Jupyter Notebook en tu sistema… deberás crear un túnel SSH a la AMI. Esto suena más desalentador de lo que es.

La opción PuTTY a la izquierda para configurar un túnel SSH entre tu estación de trabajo y la AMI.

La utilidad PuTTY facilita la configuración de los túneles. Una vez que hayas hecho clic en el botón Abrir para conectarte al servidor a través de SSH y tunelizar los puertos deseados.

Navega a http: // localhost: 8000 (o al puerto que elija) en un navegador web en tu local machine para conectarte a Jupyter Notebook que se ejecuta en el servidor AMI.

Para continuar más allá de este punto, copia y pega el token de tu sesión de PuTTY desde donde lanzaste la instancia del Notebook.

Para continuar, ingresa el token que se presentó desde el último comando enviado.

Esta vista debería resultarte familiar y, al abrir las carpetas, obtendrás una buena presentación de cómo podrías interactuar con los servicios de Jarvis.

Aplicaciones de demostración que se pueden ejecutar dentro de Jupyter Notebook.

Conclusión

Los servicios disponibles ahora a través de JARVIS son:

  • Reconocimiento de voz entrenado en 7000 horas de datos de voz con modo de flujo o por lotes.
  • Síntesis de voz disponible en modo por lotes y de transmisión.
  • API de NLU con una gran cantidad de servicios.

La llegada de Jarvis seguramente será una sacudida para el mercado actual, especialmente con las soluciones de inteligencia artificial conversacional integradas. La libertad de instalación y la arquitectura abierta le servirán a NVIDIA. Como se señaló, la arquitectura de producción y la implementación exigirán una consideración cuidadosa.

Por Cobus Greyling

Rasa Hero. NLP / NLU, Chatbots, Voz, UI / UX conversacional, Diseñador CX, Desarrollador, Interfaces de usuario ubicuas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *