O mundo incrível dos embeddings!

Introdução aos embeddings com o OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

O que são embeddings?

  • Conceito de Natural Language Processing (NLP)
  • Representação numérica de texto

Uma palavra sendo inserida em um modelo de embedding, que gera uma representação numérica do texto.

Introdução aos embeddings com o OpenAI API

O que são embeddings?

 

  • Texto mapeado em um espaço vetorial multidimensional
  • Os números de saída são a posição do texto nesse espaço
  • Palavras semelhantes ficam mais próximas
  • Palavras diferentes ficam mais distantes

Texto representado numericamente, onde textos mais semelhantes ficam mais próximos.

Introdução aos embeddings com o OpenAI API

Por que embeddings são úteis?

  • Embeddings capturam o significado semântico
  • Significado semântico: contexto e intenção do texto

 

  • Exemplo:
    • "Como eu chego ao supermercado?"
    • "Pode me dar direções para a loja?"

Texto representado numericamente, onde textos mais semelhantes ficam mais próximos.

Introdução aos embeddings com o OpenAI API

Buscadores semânticos

 

  • Buscadores tradicionais
    • Usam correspondência por palavra-chave
    • Podem não captar a intenção real
    • Ignoram variações de palavras

 

Um buscador tradicional mostrando resultados irrelevantes.

Introdução aos embeddings com o OpenAI API

Buscadores semânticos

  • Usam embeddings para entender intenção e contexto

O texto "comfortable running shoes" sendo convertido em embedding.

Introdução aos embeddings com o OpenAI API

Buscadores semânticos

  • Usam embeddings para entender intenção e contexto

O texto embedado exibido no espaço multidimensional.

Introdução aos embeddings com o OpenAI API

Sistemas de recomendação

 

  • Exemplo: recomendações de vagas
    • Sugerir vagas com base nas descrições já vistas
    • Atenua variações no título da vaga

Recomendações de vagas exibidas como embeddings.

Introdução aos embeddings com o OpenAI API

Classificação

 

Tarefas de classificação:

  • Classificar sentimento
  • Agrupar observações
  • Categorização

 

Exemplo:

  • Classificar manchetes de notícias

 

Uma manchete de notícia desconhecida exibida como embeddings para classificá-la.

Introdução aos embeddings com o OpenAI API

Criando uma requisição de Embeddings

  • Endpoint de embeddings
from openai import OpenAI


client = OpenAI(api_key="<OPENAI_API_KEY>")
response = client.embeddings.create(
model="text-embedding-3-small",
input="Embeddings are a numerical representation of text that can be used to measure the relatedness between two pieces of text."
)
response_dict = response.model_dump() print(response_dict)
1 https://platform.openai.com/docs/api-reference/embeddings
Introdução aos embeddings com o OpenAI API

Resposta de embeddings

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Introdução aos embeddings com o OpenAI API

Extraindo os embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introdução aos embeddings com o OpenAI API

Vamos praticar!

Introdução aos embeddings com o OpenAI API

Preparing Video For Download...