Guia para iniciantes do Cloud TPU

Treine modelos de machine learning (ML) de maneira econômica e rápida usando circuitos integrados de aplicação específica (ASICs, na sigla em inglês) personalizados projetados pelo Google.

As unidades de processamento de tensor (TPUs, na sigla em inglês) são dispositivos ASIC projetados especificamente para lidar com as demandas computacionais de aplicativos de machine learning. A família de produtos Cloud TPU oferece os benefícios das TPUs por meio de recursos de computação em nuvem escalonáveis e fáceis de usar para todos os pesquisadores, engenheiros, desenvolvedores e cientistas de dados de ML que executam modelos de ML de ponta no Google Cloud. Com a capacidade de escalonar a partir de um nó da TPU v2 com oito núcleos para um nó da TPU v3 completo com 2.048 núcleos, o Cloud TPU pode fornecer mais de 100 petaflops de desempenho.

Primeiros passos com o Cloud TPU no Compute Engine

Principais recursos

Acelere os aplicativos de machine learning O Cloud TPU é criado com base em chips ASIC personalizados projetados pelo Google, com o objetivo de acelerar os cálculos de aprendizado profundo.
Escalone os aplicativos rapidamente Comece a criar protótipos de forma barata com um único dispositivo Cloud TPU (180 teraflops) e, em seguida, escalone sem alterações de código em nós cada vez maiores do Cloud TPU.
Gerencie de maneira econômica as cargas de trabalho de machine learning O Cloud TPU oferece preços que podem ajudar significativamente a reduzir o custo de treinamento e a execução dos modelos de machine learning.
Comece com modelos de referência de código aberto bem otimizados. Tire proveito de um conjunto cada vez maior de modelos de referência de código aberto que as equipes de pesquisa e engenharia do Google publicam, otimizam e testam continuamente, incluindo Mask R-CNN, AmoebaNet e muitos outros de última geração.

Como funciona?

Para entender melhor como o Cloud TPU pode beneficiar você e seus aplicativos de machine learning, é bom revisar como as redes neurais funcionam em aplicativos de machine learning.

Muitos dos mais impressionantes avanços da inteligência artificial (IA) nos últimos anos foram alcançados com as chamadas redes neurais profundas. O comportamento dessas redes tem inspiração nas descobertas da neurociência, mas o termo rede neural agora é aplicado a uma ampla classe de estruturas matemáticas que não se restringem a descobertas biológicas. Muitas das estruturas de redes neurais mais conhecidas, ou arquiteturas, são organizadas em uma hierarquia de camadas. Os modelos mais precisos e úteis tendem a conter muitas camadas, que é de onde vem o termo profundo. A maioria dessas redes neurais profundas aceita dados de entrada, como imagens, áudio, texto ou dados estruturados, aplica uma série de transformações e produz uma saída que pode ser usada para fazer previsões.

Por exemplo, considere uma rede neural de camada única para reconhecer uma imagem digitada à mão, conforme mostrado no diagrama a seguir:

Representação de uma rede neural para dígitos

Neste exemplo, a imagem de entrada é uma grade de 28 x 28 pixels em escala de cinza. Como primeiro passo, cada imagem é traduzida em uma sequência de 784 valores numéricos, descritos mais formalmente como um vetor com 784 dimensões. Neste exemplo, o neurônio de saída que corresponde ao dígito 8 aceita diretamente os pixels de entrada, multiplica esses pixels por um conjunto de valores de parâmetros conhecidos como pesos e comunica o resultado. Há um peso individual para cada uma das linhas vermelhas no diagrama acima.

Ao combinar os pesos com a entrada que recebe, o neurônio age como um filtro de similaridade, como ilustrado aqui:

Ilustração que representa como os parâmetros funcionam

Esse é um exemplo básico, mas ele ilustra o comportamento central de redes neurais muito mais complexas, contendo diversas camadas que realizam várias transformações intermediárias dos dados de entrada recebidos. Em cada camada, esses dados, que podem ter sido profundamente alterados pelas camadas anteriores, são comparados aos pesos de cada neurônio na rede. Esses neurônios comunicam as respostas como entrada para a próxima camada.

Como esses pesos são calculados para cada conjunto de neurônios? Isso acontece por meio de um processo de treinamento, que geralmente envolve o processamento de enormes conjuntos de dados rotulados repetidas vezes. Esses conjuntos podem conter milhões, ou até bilhões, de exemplos rotulados. O treinamento de modelos de ML de última geração em grandes conjuntos de dados pode levar semanas, mesmo em hardwares potentes. O Google projetou e construiu TPUs para aumentar a produtividade, possibilitando a conclusão de grandes cargas de trabalho computacionais como essas em minutos ou horas, em vez de semanas.

Como funciona uma CPU

Na última seção, você viu uma definição funcional das redes neurais e o tipo de computação que elas envolvem. Para entender a função do TPU nessas redes, é útil entender como outros dispositivos de hardware abordam esses desafios computacionais. Para começar, pense na CPU.

Ela é um processador de propósito geral baseado na arquitetura de von Neumann. Isso significa que uma CPU trabalha com software e memória, assim:

Ilustração de como funciona uma CPU

A flexibilidade é o maior benefício da CPU. Com a arquitetura von Neumann, é possível carregar qualquer tipo de software para milhões de aplicações diferentes. É possível usar uma CPU para processar texto em um PC, controlar motores de foguete, executar transações bancárias ou classificar imagens com uma rede neural.

Mas, como ela é tão flexível, o hardware nem sempre sabe qual é o próximo cálculo até ler a instrução do software. Para cada cálculo, uma CPU precisa armazenar os resultados dentro dos próprios registros ou do cache L1. Esse acesso à memória torna-se a desvantagem dessa arquitetura, chamada gargalo de von Neumann. A enorme escala de cálculos de redes neurais significa que essas etapas futuras são totalmente previsíveis. Cada Unidade Lógica Aritmética (ALU, na sigla em inglês) da CPU, que são os componentes que mantêm e controlam os multiplicadores e somadores, consegue executar apenas um cálculo por vez. Cada uma dessas vezes, a CPU precisa acessar a memória, o que limita a capacidade total e consome bastante energia.

Como funciona uma GPU

Para conseguir maior capacidade que uma CPU, uma GPU usa uma estratégia simples: empregar milhares de ALUs em um único processador. Na verdade, a GPU moderna geralmente tem entre 2.500 e 5.000 ALUs em um único processador. Esse grande número de processadores significa a execução de milhares de multiplicações e adições simultaneamente.

Ilustração de como funciona uma GPU

Essa arquitetura de GPU funciona bem em aplicativos com enorme paralelismo, como a multiplicação de matrizes em uma rede neural. Na verdade, em uma carga de trabalho de treinamento típica para aprendizado profundo, uma GPU fornece uma ordem de grandeza maior do que uma CPU. É por isso que ela é a arquitetura de processador mais usada no aprendizado profundo.

Mas, a GPU ainda é um processador de propósito geral que precisa ser compatível com milhões de aplicativos e softwares diferentes. Isso significa que elas têm o mesmo problema que as CPUs: o gargalo de von Neumann. Para cada cálculo nas milhares de ALUs, uma GPU precisa acessar registros ou memória compartilhada para ler e armazenar os resultados de cálculos intermediários. Como ela realiza mais cálculos paralelos em milhares de ALUs, ela também gasta, proporcionalmente, mais energia acessando a memória. Isso aumenta o impacto da GPU para a fiação complexa.

Como funciona uma TPU

O Google projetou as Cloud TPUs como um processador de matriz especializado em cargas de trabalho de redes neurais. As TPUs não executam processadores de texto ou transações bancárias nem controlam mecanismos de foguete, mas lidam com volumosas multiplicações e adições de redes neurais em velocidades muito rápidas, consumindo muito menos energia e dentro de uma área física menor.

Um benefício das TPUs sobre outros dispositivos é a grande redução do gargalo de von Neumann. Como a tarefa principal desse processador é o processamento de matriz, os desenvolvedores de hardware da TPU conheciam todas as etapas de cálculo para executar essa operação. Então, eles colocaram milhares de multiplicadores e somadores e os conectaram diretamente uns aos outros para formar uma grande matriz física desses operadores. Isso é chamado de arquitetura de matriz sistólica. No caso do Cloud TPU v2, existem duas matrizes sistólicas de 128 x 128, agregando 32.768 ALUs para valores de ponto flutuante de 16 bits em um único processador.

Veja como uma matriz sistólica executa os cálculos da rede neural. Inicialmente, a TPU carrega os parâmetros da memória na matriz de multiplicadores e somadores.

Ilustração de como uma TPU carrega parâmetros da memória

Em seguida, ela carrega dados da memória. À medida que cada multiplicação é executada, o resultado será passado para os próximos multiplicadores ao mesmo tempo que a soma é feita. Assim, a saída será a soma de todos os resultados de multiplicação entre dados e parâmetros. Durante todo o processo de cálculos grandes e passagem de dados, nenhum acesso à memória é necessário.

Ilustração de como uma TPU carrega dados da memória

Como resultado, as TPUs alcançam uma alta capacidade computacional em cálculos de rede neural, com menor ocupação e muito menos consumo de energia.

Caminho de implementação

Escolha um serviço de TPU. Selecione um serviço do Google Cloud Platform para iniciar e gerenciar as Cloud TPUs. É possível selecionar o Compute Engine, o Google Kubernetes Engine ou o AI Platform.
Escolha um tipo de TPU. O Cloud TPU vêm com vários tipos diferentes de TPU. Escolha o que tiver a melhor combinação de potência e custo-benefício.
Configure as ferramentas. Use a ctpu, uma ferramenta de linha de comando potente para gerenciar o mecanismo de computação e as TPUs simultaneamente. Também é possível usar ferramentas mais familiares como o TensorBoard.
Armazene os dados. Armazene dados facilmente usando o Cloud Storage.
Execute o modelo. Use um dos vários tutoriais criados para selecionar um modelo de machine learning que melhor se adapte ao aplicativo.

Como procurar por outros serviços de machine learning?

O Cloud TPU é um dos muitos serviços de machine learning disponíveis no Google Cloud Platform. Outros recursos úteis incluem:

Cloud Video Intelligence O Cloud Video Intelligence possibilita a descoberta e pesquisa de vídeos ao extrair metadados, identificar os principais substantivos e anotar o conteúdo do vídeo. Agora é possível pesquisar todos os momentos de qualquer arquivo de vídeo no catálogo e encontrar todas as ocorrências e significados dos principais substantivos. Basta chamar uma API REST fácil de usar. Para separar o sinal do ruído, recupere informações relevantes por vídeo, cena ou quadro.
Cloud AutoML Vision O Cloud AutoML Vision possibilita insights das imagens com os poderosos modelos de API pré-treinados. Outra opção é treinar facilmente modelos de visão personalizados com o Cloud AutoML Vision Beta. Essa API classifica rapidamente as imagens em milhares de categorias (como "veleiro" ou "Torre Eiffel"), detecta objetos individuais e rostos dentro de imagens, e identifica e lê palavras impressas contidas nas imagens. O AutoML Vision possibilita a criação e o treinamento de modelos personalizados de ML com pouco conhecimento sobre o assunto para atender às necessidades empresariais específicas do domínio.
Cloud Speech-to-Text Com o Cloud Speech-to-Text, os desenvolvedores convertem áudio em texto ao aplicar modelos de rede neural em uma API fácil de usar. Ela reconhece 120 idiomas e variantes para dar suporte à sua base de usuários global. É possível ativar comando e controle de voz, transcrever áudios de call centers e muito mais. Além disso, essa API processa streaming em tempo real ou áudio pré-gravado usando a tecnologia de machine learning do Google.
Cloud Text-to-Speech Com o Cloud Text-to-Speech, os desenvolvedores sintetizam a fala natural com 32 vozes, disponíveis em vários idiomas e variantes. Ele aplica a pesquisa revolucionária da DeepMind no WaveNet e nas redes neurais do Google para ser o mais fiel possível. Com essa API, crie interações realistas com os usuários em diversos aplicativos e dispositivos.
Cloud Natural Language O Cloud Natural Language revela a estrutura e o significado do texto, oferecendo modelos avançados de machine learning em uma API REST fácil de usar. Com o AutoML Natural Language Beta, é possível criar e treinar modelos de ML com facilidade, sem precisar de muito conhecimento sobre o assunto. Use o Cloud Natural Language para extrair informações sobre pessoas, lugares, eventos e outros elementos mencionados em documentos de texto, notícias ou publicações de blog. Além disso, é possível utilizá-la para entender o sentimento sobre o produto nas mídias sociais ou analisar a intenção das conversas com o cliente em um call center ou em um aplicativo de mensagens.
Cloud Translation A Cloud Translation oferece uma interface programática simples para traduzir strings arbitrárias para qualquer idioma compatível. A API Cloud Translation é altamente responsiva. Assim, ao integrar sites e aplicativos a ela, consiga traduções rápidas e dinâmicas de textos de um idioma de origem para um de chegada. Por exemplo, do francês para o inglês. Além da API, é possível usar o AutoML Translation Beta para criar e treinar com rapidez e facilidade modelos de alta qualidade específicos para seu projeto ou domínio.

Para ainda mais opções, confira a página de produtos de IA do Cloud.

A seguir

Quer saber mais sobre o Cloud TPU? Os recursos a seguir podem ajudar.

Guia de início rápido usando o Compute Engine Reserve alguns minutos para aprender a configurar e usar o Cloud TPU usando o Google Cloud Platform.
Colabs TPU Teste o Cloud TPU usando uma variedade de Colabs gratuitos.
Tutoriais de Cloud TPU Teste o Cloud TPU usando vários modelos ML.
Preço Saiba como o Cloud TPU pode processar as cargas de trabalho de machine learning de maneira econômica.
Entre em contato com a equipe de vendas Tem uma implementação ou um aplicativo específico para discutir? Entre em contato com nosso departamento de vendas.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…