Guía de principiantes de Cloud TPU

Entrena los modelos de aprendizaje automático (AA) de manera rentable y rápida mediante circuitos integrados personalizados específicos de aplicaciones (ASIC) diseñados por Google.

Las Unidades de Procesamiento Tensorial (TPU) son dispositivos ASIC específicamente diseñados para manejar las demandas computacionales de las aplicaciones de aprendizaje automático. La familia de productos Cloud TPU hace que los beneficios de las TPU estén disponibles a través de un recurso de computación en la nube escalable y fácil de usar para todos los investigadores del AA, ingenieros del AA, desarrolladores y científicos de datos que ejecutan modelos de vanguardia en Google Cloud. Con capacidad para escalar desde un nodo TPU v2 con 8 núcleos hasta un nodo completo TPU v3 con 2,048 núcleos, Cloud TPU puede proporcionar más de 100 petaflops de rendimiento.

Comenzar con Cloud TPU en Compute Engine

Funciones clave

Acelera las aplicaciones de aprendizaje automático Las Cloud TPU se basan en chips ASIC personalizados por Google y específicamente diseñados para acelerar los cálculos de aprendizaje profundo.
Escala tu aplicación rápidamente Inicia la creación de prototipos de forma económica con un solo dispositivo Cloud TPU (180 teraflops) y luego escala sin cambios de código a nodos de Cloud TPU más grandes.
Gestiona de forma rentable tus cargas de trabajo de aprendizaje automático Cloud TPU ofrece precios que pueden ayudarte significativamente a reducir el costo de la capacitación y la ejecución de tus modelos de aprendizaje automático.
Comienza con modelos de referencia de código abierto correctamente optimizados. Aprovecha el creciente conjunto de modelos de referencia de código abierto que los equipos de investigación y de ingeniería de Google publican, optimizan y prueban continuamente, incluidos Mask R-CNN, AmoebaNet y muchos otros modelos de vanguardia.

¿Cómo funciona?

Para comprender mejor los beneficios que Cloud TPU puede aportarte a ti y a tus aplicaciones de aprendizaje automático, es útil revisar el funcionamiento de las redes neuronales dentro de las aplicaciones de aprendizaje automático.

Muchos de los avances más impresionantes de inteligencia artificial (IA) en los últimos años se han logrado con las llamadas redes neuronales profundas. El comportamiento de estas redes se inspira en cierta medida en los hallazgos de la neurociencia, pero el término red neuronal se aplica ahora a una amplia clase de estructuras matemáticas que no se limita a coincidencias con hallazgos biológicos. Muchas de las estructuras de redes neuronales más populares, o arquitecturas, se organizan en una jerarquía de capas. Los modelos más precisos y útiles tienden a contener muchas capas, que es de donde viene el término profundo. La mayoría de las redes neuronales profundas aceptan datos de entrada, como imágenes, audio, texto o datos estructurados, aplican una serie de transformaciones y, luego, generan resultados que se pueden usar para hacer predicciones.

Por ejemplo, considera una red neuronal de una sola capa para reconocer una imagen de dígitos escrita a mano, como se muestra en el siguiente diagrama:

Una representación de una red neuronal para dígitos

En este ejemplo, la imagen de entrada es una cuadrícula de 28 x 28 píxeles en escala de grises. Como primer paso, cada imagen se traduce en una string de 784 valores numéricos, descritos de una manera más formal como un vector con 784 dimensiones. En este ejemplo, la neurona de salida que corresponde al dígito 8 acepta directamente los píxeles de entrada, los multiplica por un conjunto de valores de parámetros conocidos como pesos y transmite el resultado. Hay un peso individual para cada una de las líneas rojas en el diagrama de arriba.

Cuando compara sus pesos con la entrada que recibe, la neurona actúa como un filtro de similitud, como se ilustra aquí:

Una ilustración que representa cómo funcionan los parámetros

Si bien este es un ejemplo básico, ilustra el comportamiento básico de redes neuronales mucho más complejas con muchas capas que realizan muchas transformaciones intermedias de los datos de entrada que reciben. En cada capa, los datos de entrada entrantes, que pueden haber sido muy alterados en las capas anteriores, se comparan con los pesos de cada neurona en la red. A continuación, esas neuronas pasan sus respuestas como entrada a la siguiente capa.

¿Cómo se calculan estos pesos para cada conjunto de neuronas? El cálculo se lleva a cabo a través de un proceso de entrenamiento. Este proceso a menudo implica el procesamiento de conjuntos de datos etiquetados muy grandes una y otra vez. ¡Estos conjuntos de datos pueden contener millones o incluso miles de millones de ejemplos etiquetados! Entrenar los últimos modelos de ML en grandes conjuntos de datos puede requerir semanas, incluso con hardware potente. Google diseñó y compiló TPU para aumentar la productividad para permitir que se completen cargas de trabajo computacionales masivas como estas en minutos u horas en lugar de semanas.

Cómo funciona una CPU

En la última sección se proporcionó una definición de trabajo de redes neuronales y el tipo de cálculos que implican. Para comprender la función de la TPU en estas redes, resulta de ayuda entender cómo abordan estos desafíos computacionales otros dispositivos de hardware. Para empezar, consideremos la CPU.

La CPU es un procesador de propósito general basado en la arquitectura de von Neumann. Eso significa que una CPU funciona con software y memoria, de la siguiente manera:

Una ilustración de cómo funciona una CPU

La mayor ventaja de la CPU es su flexibilidad. Con su arquitectura de von Neumann, puedes cargar cualquier tipo de software para millones de aplicaciones diferentes. Puedes usar una CPU para procesar textos en una computadora de escritorio, controlar motores de cohetes, ejecutar transacciones bancarias o clasificar imágenes con una red neuronal.

Pero, debido a que la CPU es tan flexible, el hardware no siempre sabe cuál es el siguiente cálculo hasta que lee las siguientes instrucciones del software. Una CPU debe almacenar los resultados de los cálculos dentro de los registros de la CPU o la memoria caché L1 para cada cálculo único. Este acceso a la memoria se convierte en el inconveniente de la arquitectura de la CPU denominada cuello de botella de von Neumann. La gran escala de los cálculos de redes neuronales implica que estos pasos futuros son completamente predecibles. Las unidades lógicas aritméticas (ALU) de cada CPU, que son los componentes que contienen y controlan los multiplicadores y sumadores, solo pueden ejecutar un cálculo a la vez. Para cada cálculo, la CPU tiene que acceder a la memoria, lo que limita la capacidad de procesamiento total y consume mucha energía.

Cómo funciona una GPU

Para aumentar la capacidad de procesamiento de una CPU, una GPU utiliza una estrategia simple: emplear miles de ALU en un solo procesador. De hecho, la GPU moderna generalmente tiene entre 2,500–5,000 ALU en un solo procesador. Este gran número de procesadores permite ejecutar miles de multiplicaciones y sumas de manera simultánea.

Una ilustración de cómo funciona una GPU

Esta arquitectura de GPU funciona bien en aplicaciones con paralelismo masivo, como la multiplicación de matrices en una red neuronal. De hecho, en una carga de trabajo de entrenamiento típica para el aprendizaje profundo, una GPU puede proporcionar un pedido de capacidad de procesamiento de magnitud mayor que una CPU. Por esta razón, la GPU es la arquitectura de procesador más popular usada en el aprendizaje profundo.

Sin embargo, la GPU sigue siendo un procesador de propósito general que tiene que prestar servicio a millones de aplicaciones y software diferentes. Por lo tanto, las GPU presentan el mismo problema que las CPU: el cuello de botella de von Neumann. Para cada cálculo único en los miles de ALU, una GPU debe acceder a los registros o a la memoria compartida para leer y almacenar los resultados del cálculo intermedio. Como la GPU realiza más cálculos paralelos en sus miles de ALU, también consume proporcionalmente más energía para acceder a la memoria, lo que aumenta la huella de la GPU del cableado complejo.

Cómo funciona una TPU

Google diseñó Cloud TPU como un procesador matricial especializado para cargas de trabajo de redes neuronales. Las TPU no pueden ejecutar procesadores de texto, controlar motores de cohetes ni ejecutar transacciones bancarias, pero pueden manejar multiplicaciones y sumas masivas para redes neuronales a velocidades muy rápidas, al mismo tiempo que consumen mucha menos energía y ocupan un espacio físico más reducido.

Una ventaja que ofrecen las TPU con respecto a otros dispositivos es una importante reducción del cuello de botella de von Neumann. Debido a que la tarea principal de este procesador es el procesamiento matricial, los diseñadores de hardware de TPU conocían cada paso de cálculo para realizar esa operación. Por lo tanto, pudieron colocar miles de multiplicadores y sumadores, y conectarlos entre sí directamente para formar una gran matriz física de operadores. Esto se conoce como arquitectura de arreglo sistólico. En el caso de Cloud TPU v2, hay dos arreglos sistólicos de 128 x 128, que agregan 32,768 ALU para valores de punto flotante de 16 bits en un solo procesador.

Veamos cómo ejecuta un arreglo sistólico los cálculos de la red neuronal. Al principio, la TPU carga los parámetros de la memoria en la matriz de multiplicadores y sumadores.

Una ilustración de cómo carga parámetros desde la memoria una TPU

Luego, la TPU carga datos de la memoria. A medida que se ejecuta cada multiplicación, el resultado se pasa a los siguientes multiplicadores mientras se toma la suma al mismo tiempo. Por lo tanto, el resultado será la suma de todos los resultados de multiplicación entre datos y parámetros. Durante todo el proceso de cálculos masivos y paso de datos, no se requiere ningún acceso a la memoria.

Una ilustración de cómo carga datos desde la memoria una TPU

Como resultado, las TPU pueden lograr una alta capacidad de procesamiento computacional en los cálculos de redes neuronales con mucho menos consumo de energía y una huella más pequeña.

Requisitos previos de Cloud TPU

Configura una cuenta de GCP Antes de que puedas usar los recursos de Cloud TPU para entrenar modelos, debes tener una cuenta de Google Cloud (GCP) y un proyecto configurado.
Activa las API de Cloud TPU Para entrenar un modelo, debes activar las API de Compute Engine y Cloud TPU.
Otorga acceso a Cloud TPU a tus depósitos de Cloud Storage Los depósitos de Cloud Storage te permiten almacenar tus conjuntos de datos.
Elige un servicio de TPU. Selecciona el servicio de Google Cloud que deseas usar para iniciar y administrar las Cloud TPU. Puedes elegir entre Compute Engine, Google Kubernetes Engine o AI Platform.
Elige un tipo de TPU. Las Cloud TPU vienen en varios tipos diferentes. Elige el que tenga la mejor combinación de potencia y rentabilidad. Puedes ahorrar dinero si usas TPU interrumpibles. Para obtener más información, consulta Cómo usar TPU interrumpibles.
Crea y borrar Cloud TPU La ejecución de un modelo de aprendizaje automático (AA) en Cloud TPU requiere una VM de Compute Engine y recursos de Cloud TPU.
Configura tus herramientas. Usa ctpu, una poderosa herramienta de línea de comandos para administrar Compute Engine y TPU de manera simultánea. También puedes usar herramientas con las que ya estés familiarizado, como TensorBoard.
Ejecuta tu modelo. Usa uno de los numerosos instructivos que hemos creado para seleccionar el modelo de aprendizaje automático que mejor se adapte a tu aplicación.

¿Buscas otros servicios de aprendizaje automático?

Cloud TPU es uno de los numerosos servicios de aprendizaje automático disponibles en Google Cloud. Otros recursos que podrían ser útiles incluyen lo siguiente:

API de Video Intelligence La API de Video Intelligence permite buscar y descubrir videos mediante la extracción de metadatos, la identificación de sustantivos clave y la anotación de su contenido. Ahora puedes llamar a una API de REST fácil de usar para buscar cada momento de cada archivo de video en tu catálogo y encontrar todos los casos en que aparecen los sustantivos clave, junto con su significado. Separa la señal del ruido mediante la recuperación de la información relevante por video, toma o cuadro.
Cloud Vision Cloud Vision te permite obtener estadísticas de tus imágenes con nuestros potentes modelos de API previamente entrenados o entrenar con facilidad modelos de visión personalizados con AutoML Vision Beta. La API clasifica con rapidez las imágenes en miles de categorías (como “velero” o “Torre Eiffel”), detecta objetos individuales y caras dentro de las imágenes, y encuentra y lee palabras impresas contenidas en las imágenes. AutoML Vision te permite compilar y entrenar modelos de AA sin que tengas mucha experiencia en AA, a fin de satisfacer las necesidades de la empresa específicas del dominio.
Speech-to-Text Speech-to-Text permite que los desarrolladores conviertan audio en texto mediante la aplicación de potentes modelos de redes neuronales en una API fácil de usar. La API reconoce 120 idiomas y variantes para respaldar su base de usuarios global. Puedes habilitar el control y comando por voz, transcribir audio de centros de llamados y mucho más. Gracias a la tecnología de aprendizaje automático de Google, puedes procesar transmisiones en tiempo real o audio grabado previamente.
Texto a voz Text-to-Speech permite que los desarrolladores sinteticen una pronunciación con sonido natural a través de 32 voces disponibles en varios lenguajes y variantes. Aplica la investigación revolucionaria de DeepMind en las redes neuronales de WaveNet y Google para entregar la mayor fidelidad posible. Con esta API fácil de usar, puedes crear interacciones realistas con tus usuarios, en varias aplicaciones y dispositivos.
API de Cloud Natural Language La API de Cloud Natural Language revela la estructura y el significado del texto ya que ofrece potentes modelos de aprendizaje automático en una API de REST fácil de usar. Y con AutoML Natural Language Beta, puedes crear y entrenar modelos de AA con facilidad, sin necesidad de ser experto en AA. Puedes usar la API de Cloud Natural Language para extraer información sobre personas, lugares, eventos y demás que se mencionan en documentos de texto, artículos de noticias o entradas de blog. También puedes usarla para comprender las opiniones sobre tus productos expresadas en las redes sociales o analizar la intención en las conversaciones de los clientes que tengan lugar en un centro de llamadas o una app de mensajería.
Cloud Translation La API de Cloud Translation proporciona una interfaz programática simple para traducir una string arbitraria a cualquier lenguaje compatible. La API de Cloud Translation tiene una capacidad de respuesta alta, por lo que los sitios web y las aplicaciones pueden integrarse a la API de Cloud Translation para una traducción rápida y dinámica del texto fuente del idioma de origen al idioma meta (p. ej., del francés al inglés). Además de la API, también puedes usar AutoML Translation Beta a fin de compilar y entrenar con rapidez y facilidad modelos de alta calidad, que son específicos para tu proyecto o dominio.

Para obtener aún más opciones, consulta la página Productos de IA y aprendizaje automático.

Pasos siguientes

¿Deseas aprender más sobre Cloud TPU? Los siguientes recursos pueden ayudar.

Guía de inicio rápido de Compute Engine Dedica unos minutos a aprender cómo configurar y usar Cloud TPU con Google Cloud.
Colabs TPU Experimenta con Cloud TPU con una variedad de Colabs gratis.
Instructivos de Cloud TPU Prueba Cloud TPU con una variedad de modelos de AA.
Precios Hazte una idea de cómo puede Cloud TPU procesar tus cargas de trabajo de aprendizaje automático de una manera rentable.
Comunícate con Ventas ¿Tienes una implementación o aplicación específica que quieras discutir? Comunícate con nuestro departamento de ventas.