¡El maravilloso mundo de los embeddings!

Introducción a las incrustaciones con la OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

¿Qué son los embeddings?

  • Concepto de Natural Language Processing (NLP)
  • Representación numérica del texto

Una palabra entra en un modelo de embeddings, que produce una representación numérica del texto.

Introducción a las incrustaciones con la OpenAI API

¿Qué son los embeddings?

 

  • El texto se mapea en un espacio vectorial multidimensional
  • Los números de salida son su ubicación en ese espacio
  • Palabras similares aparecen más cerca
  • Palabras distintas aparecen más lejos

Texto representado numéricamente, donde el texto más similar está más cerca.

Introducción a las incrustaciones con la OpenAI API

¿Por qué son útiles los embeddings?

  • Los embeddings capturan el sentido semántico
  • Sentido semántico: contexto e intención del texto

 

  • Ejemplo:
    • «¿Cómo se va al supermercado?»
    • «¿Me das indicaciones para la tienda?»

Texto representado numéricamente, donde el texto más similar está más cerca.

Introducción a las incrustaciones con la OpenAI API

Motores de búsqueda semántica

 

  • Buscadores tradicionales
    • Usan coincidencia de patrones por palabras clave
    • Pueden no captar la intención real
    • No cubren variaciones de palabras

 

Un buscador tradicional mostrando resultados irrelevantes.

Introducción a las incrustaciones con la OpenAI API

Motores de búsqueda semántica

  • Usan embeddings para entender la intención y el contexto

El texto «comfortable running shoes» siendo convertido en embeddings.

Introducción a las incrustaciones con la OpenAI API

Motores de búsqueda semántica

  • Usan embeddings para entender la intención y el contexto

El texto embebido mostrado en el espacio multidimensional.

Introducción a las incrustaciones con la OpenAI API

Sistemas de recomendación

 

  • Ejemplo: recomendaciones de ofertas de empleo
    • Recomienda según descripciones ya vistas
    • Mitiga variaciones en el título del puesto

Recomendaciones de empleo mostradas como embeddings.

Introducción a las incrustaciones con la OpenAI API

Clasificación

 

Tareas de clasificación:

  • Clasificar sentimiento
  • Agrupar observaciones
  • Categorización

 

Ejemplo:

  • Clasificación de titulares de noticias

 

Un titular desconocido representado como embeddings para clasificarlo.

Introducción a las incrustaciones con la OpenAI API

Crear una solicitud 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
Introducción a las incrustaciones con la OpenAI API

Respuesta 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
  }
}
Introducción a las incrustaciones con la OpenAI API

Extraer los embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introducción a las incrustaciones con la OpenAI API

¡Vamos a practicar!

Introducción a las incrustaciones con la OpenAI API

Preparing Video For Download...