La inteligencia artificial y la robótica van de la mano como la mantequilla de maní y el chocolate. Para ser realmente útil, un robot de servicio debe ser lo suficientemente inteligente como para realizar las tareas asignadas, mantenerse fuera de peligro y no atropellar a sus compañeros de trabajo humanos en el proceso. Hace casi una década, NVIDIA reconoció que la tecnología de procesamiento enormemente paralelo en sus procesadores gráficos y la naturaleza más programable de las arquitecturas gráficas podrían usarse para el aprendizaje automático. En 2014, esa visión comenzó a hacerse realidad con el lanzamiento del Jetson TK1, y nació una potencia de IA.
Avance rápido hasta 2022 y NVIDIA no ha dejado escapar el gas. En marzo, la compañía abrió el telón del Jetson AGX Orin, la plataforma más reciente para robótica e inteligencia artificial basada en la tecnología GPU Ampere de la compañía. Si bien los bloqueos relacionados con el COVID en el extranjero retrasaron a la empresa a la hora de poner su hardware en manos de los desarrolladores, esas unidades se están enviando ahora y tenemos uno de los kits para desarrolladores internamente. Entonces, sin más preámbulos, conozcamos al Jetson AGX Orin.
Especificaciones del kit de desarrollo Jetson AGX Orin
Hemos cubierto las especificaciones de los diversos kits Jetson AGX Orin en nuestra cobertura anterior, pero la esencia es que hay aproximadamente una GPU GeForce RTX 3050 para portátiles con CUDA y núcleos tensor para hacer la mayor parte del trabajo pesado. La potencia de la GPU se combina con un par de aceleradores de aprendizaje profundo de NVIDIA y una docena de núcleos Cortex A78AE en un paquete que cuenta con un presupuesto de energía de hasta 60 vatios. Todo eso está respaldado por 32 GB de memoria LPDDR5 unificada con más de 200 GB/s de ancho de banda. Si eso suena muy parecido al M1 Pro o Max de Apple, digamos que Cupertino no inventó las arquitecturas de memoria compartida.
Hay una ranura PCI Express oculta debajo de la trampilla
El kit de producción tiene mucho IO para cámaras, micrófonos y otros sensores, y el kit de desarrollo hace todo lo posible para proporcionarlos todos. Tenemos USB 3.2 de 10 Gbps, DisplayPort, 10 Gigabit Ethernet, una matriz GPIO de 40 pines y encabezados para programadores de automatización, audio y JTAG. La ranura micro SD y las dos ranuras M.2 dejan espacio para toneladas de almacenamiento adicional y conectividad inalámbrica. También hay una ranura PCI Express Gen 4 con ocho carriles de conectividad y un factor de forma x16. Dado que el kit de desarrollo Jetson AGX Orin solo tiene 64 GB de almacenamiento eMMC integrado, este podría ser un buen lugar para guardar algo de almacenamiento adicional, por ejemplo.
El kit de desarrollo Jetson AGX Orin puede ejecutarse conectado a una PC con Linux a través de uno de los puertos USB-C o micro USB o como una caja de Linux independiente. Elegimos ejecutarlo simplemente como su propia PC autónoma; hay muchos recursos de memoria y CPU, y viene con una instalación completa de Ubuntu Linux 20.04 LTS lista para funcionar. Vamos a hablar en profundidad sobre nuestra experiencia con Orin en breve. Ya sea que use el Jetson AGX Orin como un dispositivo conectado a otra PC con Linux o como un entorno de desarrollo independiente, todo lo que necesitábamos para comenzar estaba en la caja.
Trabajar con el kit de desarrollo Jetson AGX Orin
Es divertido leer y escribir sobre todo esto, pero NVIDIA nos envió un kit, por lo que necesitábamos sumergirnos y comprobarlo. Como puede ver en las fotos de arriba, el kit de desarrollo Jetson AGX Orin es pequeño . Tiene aproximadamente 4,3 pulgadas cuadradas y tres pulgadas de alto, aproximadamente del tamaño de uno de los diminutos NUC de Intel, pero un poco más alto. El tamaño se ve favorecido por tener una fuente de alimentación externa, que se conecta al puerto USB-C justo encima del conector de barril, que se puede usar en su lugar para la alimentación con una fuente de alimentación alternativa. Conecte un teclado, un mouse y un monitor DisplayPort (o una pantalla HDMI con un adaptador DP a HDMI) y enciéndalo para comenzar.
Para ayudarnos a probar varias funciones, NVIDIA también incluyó un auricular USB y una cámara web de 720p, aunque normalmente no se incluyen como parte del kit de desarrollador. Sin embargo, estas piezas de hardware eran importantes, ya que una de las demostraciones que mostraremos pronto busca estas identificaciones de hardware específicas.
El Jetson AGX Orin viene con Ubuntu Linux 20.04 preinstalado desde el primer momento, por lo que la secuencia de inicio inicial será familiar para los veteranos de Ubuntu. Después de elegir nuestro idioma, ubicación, nombre de usuario y contraseña, se nos presentó el escritorio Gnome 3 que Ubuntu ha usado desde que retiró su interfaz Unity. NVIDIA incluyó algunos accesos directos útiles en el escritorio que abren enlaces de documentación en el navegador y carpetas de código de ejemplo en el navegador de archivos de Gnome. Pero antes de que pudiéramos comenzar, necesitábamos actualizar a NVIDIA Jetson Jetpack 5, que es una descarga de alrededor de 10 GB por sí solo, y agregar nuestro propio editor de código.
Desde que Microsoft agregó soporte para las distribuciones Arm64 Linux en 2020, se ha convertido en una opción popular entre los desarrolladores de Jetpack, ya sea que prefieran C++ o Python. Esto se puede descargar directamente desde el sitio de Visual Studio Code de Microsoft en la página Otras descargas, o a través de apt-get en la línea de comandos. El Marketplace de VS Code tiene todas las extensiones de compatibilidad de idiomas necesarias para los dos idiomas admitidos.
La primera vez que abrimos un proyecto, Code nos solicitó instalar todo lo que nos faltaba, por lo que fue un proceso de instalación bastante sencillo.
El kit de herramientas de NVIDIA incluye todo lo que necesita para comenzar con Jetson AGX Orin
Después de instalar Jetpack 5 y descargar las herramientas de referencia y los ejemplos de código de NVIDIA, solo terminamos con alrededor de 15 GB utilizados del almacenamiento eMMC integrado de 64 GB. Los desarrolladores que quieran trabajar directamente en el sistema querrán tener eso en cuenta, ya que no deja mucho espacio para datos y proyectos, en particular los datos que se usan para hacer inferencias en modelos visuales de IA. Recuerde que Jetson AGX Orin puede ejecutarse en modo sin cabeza conectado a otra PC con Linux a través de USB, por lo que esa es una forma de evitar esta limitación, o simplemente usar una unidad USB externa para almacenar proyectos. El puerto USB-C de 10 Gbps debería ser lo suficientemente rápido como para que la mayoría de los desarrolladores no noten ninguna ralentización.
Explorando las demostraciones de Jetson AGX Orin
La otra cara de la moneda de la muestra de desarrollo son las demostraciones. Además de las muestras de código que proporciona NVIDIA, hay una gran cantidad de demostraciones completamente funcionales en las que los desarrolladores pueden profundizar para ver cómo reaccionan los modelos de IA capacitados de la empresa a la entrada en vivo. Profundizamos en cada uno para ver cómo funcionaban y explorar casos prácticos de uso. La demostración más grande y potencialmente más impactante que NVIDIA nos proporcionó fue NVIDIA Riva Automatic Speech Recognition (ASR). Este se sirvió mejor capturando el modelo de aprendizaje automático en el trabajo en un video, así que eso es lo que hemos incorporado a continuación.
Como puede ver en el video, la transcripción no fue absolutamente perfecta, pero NVIDIA dice que es suficiente para permitir que un robot de servicio descubra la intención del usuario. El video no tiene guión, y eso es intencional. La mayoría de las conversaciones no están escritas, incluso si ha pensado un poco en lo que quiere decir. Pueden ver que cuando comencé y me detuve, la IA comenzó y se detuvo conmigo y, en ese sentido, la transcripción fue una evaluación bastante justa de lo que tenía que decir. Es divertido ver en el video cómo la IA trata de averiguar a qué me refiero; las palabras entran y salen de la ventana de la terminal a medida que avanzo y comienza a detectar el significado.
Hay muchas soluciones en el mercado, pero esta en particular fue divertida de ver mientras funcionaba. Este es un gran problema porque el reconocimiento de voz automatizado en un bajo presupuesto de energía es una gran parte de lo que hará que los robots sean más fáciles de interactuar. Extraer el significado y el contexto de las oraciones es bastante difícil para los humanos a veces, por lo que entrenar una IA es una tarea bastante monumental. Muchas empresas tienen soluciones, y NVIDIA no es la primera, pero como demuestra nuestro video, que evita intencionalmente hablar de tecnología, todavía no es exactamente un problema resuelto. Sin embargo, está mejorando.
Lo que nos lleva al marco de adaptación del modelo de IA de NVIDIA TAO, o conjunto de herramientas "Entrenar, adaptar, optimizar". Eso significa que los desarrolladores pueden adaptar el modelo para ponerlo en funcionamiento rápidamente. Como ejemplo, NVIDIA proporciona el modelo Action Recognition Net, que ha sido entrenado para identificar ciertas acciones correspondientes a ejercicios específicos, como caminar y correr, además de detectar cuando una persona se cae. Este modelo fue entrenado en unos pocos cientos de videos cortos que representan estas acciones desde diferentes ángulos. NVIDIA ha proporcionado un tutorial sobre cómo ampliar el modelo para identificar acciones adicionales, como hacer una flexión o una dominada.
Seguimos adelante y luego pudimos implementar el modelo en el mismo Jetson AGX Orin o en DeepStream de NVIDIA, que tiene instancias A100 en Azure. Aquí es donde la diferencia entre una instancia de acelerador de centro de datos aún supera incluso al Jetson actualizado. Jetson fue lo suficientemente rápido para ejecutar el modelo y probar que los cambios que hicimos eran correctos, mientras que las instancias de DeepStream son ridículamente rápidas para analizar archivos de video e identificar las acciones realizadas en ellos. Nos dio una idea del flujo de trabajo de mejora del modelo que ofrece TAO y una idea del flujo de trabajo de desarrollo, implementación y prueba proporcionado por Jetson AGX Orin y DeepStream en conjunto.
Jugar con las herramientas es divertido y todo eso, pero estas piezas del kit están hechas para un trabajo serio. A continuación, echemos un vistazo a algunas implicaciones prácticas y veamos qué tipo de conclusiones podemos sacar de nuestro tiempo con el kit.