O que são embeddings no aprendizado de máquina?

Os embeddings representam objetos do mundo real, como palavras, imagens ou vídeos, em uma forma que os computadores podem processar. Os embeddings permitem pesquisas de similaridade e são fundamentais para a IA.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir vetores e embeddings
  • Explicar como os vetores permitem pesquisas de similaridade
  • Descrever como os embeddings são criados

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

O que são embeddings?

Incorporações são representações de valores ou objetos, como texto, imagens e áudio, que foram projetados para serem consumidos por modelos de aprendizado de máquina e algoritmos de pesquisa semântica. As incorporações traduzem objetos como esses em uma fórmula matemática, de acordo com os fatores ou características que possam ter ou não e com as categorias às quais pertencem.

Essencialmente, os embeddings permitem que os modelos de aprendizado de máquina encontrem objetos semelhantes. Com uma foto ou um documento, um modelo de aprendizado de máquina que usa embeddings poderia encontrar uma foto ou um documento semelhante. Como os embeddings possibilitam que os computadores entendam as relações entre palavras e outros objetos, eles são fundamentais para a inteligência artificial (IA).

Por exemplo, os documentos no canto superior direito desse espaço bidimensional podem ser relevantes uns para os outros:

Embeddings - Documentos no espaço vetorial agrupados

Tecnicamente, os embeddings são vetores criados por modelos de aprendizado de máquina com a finalidade de capturar dados significativos sobre cada objeto.

O que é um vetor no aprendizado de máquina?

Em matemática, um vetor é uma matriz de números que define um ponto em um espaço dimensional. Em termos mais práticos, um vetor é uma lista de números, como {1989, 22, 9, 180}. Cada número indica onde o objeto está em uma dimensão específica.

No aprendizado de máquina, o uso de vetores possibilita a busca de objetos semelhantes. Um algoritmo de busca de vetores simplesmente precisa encontrar dois vetores que estejam próximos em um banco de dados de vetores.

Para entender isso melhor, pense em latitude e longitude. Essas duas dimensões, norte-sul e leste-oeste, respectivamente, podem indicar a localização de qualquer lugar na Terra. A cidade de Vancouver, Colúmbia Britânica, Canadá, pode ser representada pelas coordenadas de latitude e longitude {49°15'40"N, 123°06'50"W}. Essa lista de dois valores é um vetor simples.

Agora, imagine tentar encontrar uma cidade que seja muito próxima de Vancouver. Uma pessoa simplesmente olharia para um mapa, enquanto um modelo de aprendizado de máquina poderia olhar para a latitude e a longitude (ou vetor) e encontrar um local com latitude e longitude semelhantes. A cidade de Burnaby fica em {49°16'N, 122°58'W}, muito próxima de {49°15'40"N, 123°06'50"W}. Portanto, o modelo pode concluir, corretamente, que Burnaby está localizada perto de Vancouver.

Adição de mais dimensões aos vetores

Agora, imagine tentar encontrar uma cidade que não seja apenas próxima a Vancouver, mas de tamanho semelhante. A esse modelo de locais, vamos acrescentar uma terceira "dimensão" à latitude e à longitude: o tamanho da população. A população pode ser adicionada ao vetor de cada cidade, e o tamanho da população pode ser tratado como um eixo Z, com a latitude e a longitude como eixos Y e X.

O vetor de Vancouver agora é {49°15'40"N, 123°06'50"W, 662,248*}. Com essa terceira dimensão adicionada, Burnaby não está mais particularmente próxima de Vancouver, pois sua população é de apenas 249.125*. Em vez disso, o modelo pode encontrar a cidade de Seattle, Washington, EUA, que tem um vetor de {47°36'35"N 122°19'59"W, 749,256**}.

*Em 2021.
**Em 2022.

Esse é um exemplo bastante simples de como os vetores e a pesquisa de similaridade funcionam. No entanto, para serem úteis, os modelos de aprendizado de máquina podem desejar gerar mais do que três dimensões, resultando em vetores muito mais complexos.

Muitos mais vetores multidimensionais

Por exemplo, como um modelo pode saber quais programas de TV são semelhantes entre si e, portanto, provavelmente serão assistidos pelas mesmas pessoas? Há vários fatores a serem considerados: duração do episódio, número de episódios, classificação de gênero, número de espectadores em comum, atores em cada programa, ano de estreia de cada programa e assim por diante. Todos eles podem ser “dimensões”, e cada programa é representado como um ponto ao longo de cada uma dessas dimensões.

Os vetores multidimensionais podem nos ajudar a determinar se o sitcom Seinfeld é semelhante ao programa de terror Vandinha (Wednesday). Seinfeld estreou em 1989, uma quarta-feira (Wednesday) em 2022. Os dois programas têm episódios com diferentes durações, em Seinfeld têm entre 22 e 24 minutos e em Vandinha têm entre 46 e 57 minutos. E assim por diante. Observando seus vetores, podemos ver que esses programas provavelmente ocupam pontos muito diferentes em uma representação dimensional de programas de TV.

Programa de TV Gênero Ano de estreia Duração do episódio Temporadas (até 2023) Episódios (até 2023)
Seinfeld Sitcom 1989 22-24 9 180
QUARTA-FEIRA Horror 2022 46-57 1 8

Podemos expressá-los como vetores, assim como fizemos com a latitude e a longitude, mas com mais valores:

Vetor Seinfeld: {[Sitcom], 1989, 22-24, 9, 180}
Vetor Vandinha: {[Horror], 2022, 46-57, 1, 8}

Um modelo de aprendizado de máquina pode identificar o sitcom Cheers como sendo muito mais semelhante a Seinfeld. É do mesmo gênero, estreou em 1982, tem duração de 21 a 25 minutos, 11 temporadas e 275 episódios.

Vetor Seinfeld: {[Sitcom], 1989, 22-24, 9, 180}
Vetor Cheers: {[Sitcom], 1982, 21-25, 11, 275}

Em nossos exemplos acima, uma cidade era um ponto ao longo das duas dimensões de latitude e longitude; em seguida, adicionamos uma terceira dimensão de população. Também analisamos a localização desses programas de TV em cinco dimensões.

Em vez de duas, três ou cinco dimensões, um programa de TV dentro de um modelo de aprendizado de máquina é um ponto com talvez cem ou mil dimensões, quantas o modelo quiser incluir.

Como funcionam os embeddings?

Embedding é o processo de criar vetores usando o aprendizado profundo. Um "embedding" é o resultado desse processo — em outras palavras, o vetor que é criado por um modelo de aprendizado profundo para fins de pesquisas de similaridade por esse modelo.

Embeddings - Documento à esquerda convertido em vetor com três dimensões à direita pela API de embeddings

Os embeddings que ficam próximos uns dos outros, assim como Seattle e Vancouver têm valores de latitude e longitude próximos e populações comparáveis, podem ser considerados semelhantes. Usando embeddings, um algoritmo pode sugerir um programa de TV relevante, encontrar locais semelhantes ou identificar quais palavras provavelmente serão usadas juntas ou que são semelhantes umas às outras, como nos modelos de linguagem.

Como as redes neurais criam embeddings

Redes neurais são modelos de aprendizado profundo que imitam a arquitetura do cérebro humano. Assim como o cérebro é composto de neurônios que disparam impulsos elétricos trocados entre si, as redes neurais são compostas de nós virtuais que se comunicam entre si quando suas inserções ultrapassam um determinado limite.

As redes neurais são formadas por várias camadas: uma camada de entrada, uma camada de saída e qualquer número de camadas "ocultas" entre elas. As camadas ocultas podem transformar as entradas de várias maneiras, independentemente da definição do modelo.

A criação de embeddings é uma camada oculta. Geralmente, isso ocorre antes que as camadas adicionais processem a entrada. Assim, por exemplo, um ser humano não precisaria definir onde cada programa de TV se enquadra em uma centena de dimensões diferentes. Em vez disso, uma camada oculta na rede neural faria isso automaticamente. O programa de TV poderia então ser analisado posteriormente pelas outras camadas ocultas usando esse embedding para encontrar programas de TV semelhantes. Ao final, a camada de saída pode produzir sugestões de outros programas que os espectadores possam querer assistir.

A criação dessa camada de embedding requer algum esforço manual no início. Um programador pode alimentar a rede neural com exemplos de como criar um embedding, quais dimensões incluir e assim por diante. Eventualmente, a camada de embedding pode operar por conta própria, embora o programador possa continuar a ajustar o modelo para produzir melhores recomendações.

Como os embeddings são usados em modelos de linguagem de ampla (LLMs)?

Para modelos de linguagem ampla (LLMs), como os modelos usados para ferramentas de IA como o ChatGPT, o embedding é levado um passo adiante. O contexto de cada palavra se torna um embedding, além da própria palavra. Os significados de frases, parágrafos e artigos inteiros podem ser pesquisados e analisados. Embora isso exija bastante capacidade de computação, o contexto das consultas pode ser armazenado como embeddings, economizando tempo e capacidade de computação para consultas futuras.

Como a Cloudflare facilita o uso de embeddings?

Para os desenvolvedores que desejam criar aplicativos com tecnologia de IA com o Cloudflare Workers, a Cloudflare oferece o Workers AI. Em conjunto, a Cloudflare também oferece o Vectorize, um banco de dados de vetores distribuído globalmente. Juntos, esses serviços tornam mais rápida, fácil e econômica a geração e a consulta de embeddings. Isso permite que os desenvolvedores criem aplicativos de IA sem precisar de uma infraestrutura de back-end. Saiba mais sobre o Vectorize e o Workers AI.