Il meraviglioso mondo degli embeddings!

Introduzione agli Embeddings con l'API di OpenAI

Emmanuel Pire

Senior Software Engineer, DataCamp

Cosa sono gli embeddings?

  • Concetto del Natural Language Processing (NLP)
  • Rappresentazione numerica del testo

Una parola viene data in input a un modello di embedding, che produce una rappresentazione numerica del testo.

Introduzione agli Embeddings con l'API di OpenAI

Cosa sono gli embeddings?

 

  • Il testo è mappato in uno spazio vettoriale multidimensionale
  • I numeri prodotti dal modello sono la posizione del testo nello spazio
  • Le parole simili sono più vicine
  • Le parole diverse sono più lontane

Testo rappresentato numericamente, dove il testo più simile è più vicino.

Introduzione agli Embeddings con l'API di OpenAI

Perché gli embeddings sono utili?

  • Gli embeddings catturano il significato semantico
  • Significato semantico: contesto e intento del testo

 

  • Esempio:
    • "Da che parte è il supermercato?"
    • "Mi dai indicazioni per il negozio?"

Testo rappresentato numericamente, dove il testo più simile è più vicino.

Introduzione agli Embeddings con l'API di OpenAI

Motori di ricerca semantici

 

  • Motori di ricerca tradizionali
    • Usano il matching di parole chiave
    • Possono non cogliere l'intento reale
    • Non rilevano le variazioni delle parole

 

Un motore di ricerca tradizionale che mostra risultati irrilevanti.

Introduzione agli Embeddings con l'API di OpenAI

Motori di ricerca semantici

  • Usano gli embeddings per capire intento e contesto

Il testo "comfortable running shoes" viene convertito in embedding.

Introduzione agli Embeddings con l'API di OpenAI

Motori di ricerca semantici

  • Usano gli embeddings per capire intento e contesto

Il testo embeddato mostrato in uno spazio multidimensionale.

Introduzione agli Embeddings con l'API di OpenAI

Sistemi di raccomandazione

 

  • Esempio: consigli di offerte di lavoro
    • Suggerisce lavori in base alle descrizioni già viste
    • Riduce l'impatto delle variazioni nel titolo

Raccomandazioni di lavoro visualizzate come embeddings.

Introduzione agli Embeddings con l'API di OpenAI

Classificazione

 

Task di classificazione:

  • Classificare il sentiment
  • Raggruppare osservazioni
  • Categorizzare

 

Esempio:

  • Classificare titoli di notizie

 

Un titolo di notizia sconosciuto mostrato come embedding per classificarlo.

Introduzione agli Embeddings con l'API di OpenAI

Creare una richiesta di Embeddings

  • Endpoint degli 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
Introduzione agli Embeddings con l'API di OpenAI

Risposta degli 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
  }
}
Introduzione agli Embeddings con l'API di OpenAI

Estrarre gli embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introduzione agli Embeddings con l'API di OpenAI

Andiamo a praticare!

Introduzione agli Embeddings con l'API di OpenAI

Preparing Video For Download...