De wondere wereld van embeddings!

Introductie tot Embeddings met de OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Wat zijn embeddings?

  • Begrip uit Natural Language Processing (NLP)
  • Numerieke representatie van tekst

Een woord gaat een embeddingmodel in en levert een numerieke representatie van tekst op.

Introductie tot Embeddings met de OpenAI API

Wat zijn embeddings?

 

  • Tekst wordt geprojecteerd in een multidimensionale vectorruimte
  • De door het model uitgegeven getallen zijn de locatie van de tekst in die ruimte
  • Soortgelijke woorden liggen dichter bij elkaar
  • Ongelijksoortige woorden liggen verder uit elkaar

Tekst numeriek weergegeven: vergelijkbare tekst ligt dichter bij elkaar.

Introductie tot Embeddings met de OpenAI API

Waarom zijn embeddings nuttig?

  • Met embeddings kun je semantische betekenis vastleggen
  • Semantische betekenis: context en intentie achter tekst

 

  • Voorbeeld:
    • "Welke kant is het naar de supermarkt?"
    • "Kan ik de route naar de winkel krijgen?"

Tekst numeriek weergegeven: vergelijkbare tekst ligt dichter bij elkaar.

Introductie tot Embeddings met de OpenAI API

Semantische zoekmachines

 

  • Traditionele zoekmachines
    • Gebruiken trefwoord-patroonmatching
    • Missen vaak de echte intentie
    • Missen woordvarianten

 

Een traditionele zoekmachine met irrelevante resultaten.

Introductie tot Embeddings met de OpenAI API

Semantische zoekmachines

  • Gebruiken embeddings om intentie en context te begrijpen

De tekst "comfortable running shoes" die wordt ge-embed.

Introductie tot Embeddings met de OpenAI API

Semantische zoekmachines

  • Gebruiken embeddings om intentie en context te begrijpen

De ge-embedde tekst weergegeven in de multidimensionale ruimte.

Introductie tot Embeddings met de OpenAI API

Aanbevelingssystemen

 

  • Voorbeeld: baan-aanbevelingen
    • Raad banen aan op basis van eerder bekeken beschrijvingen
    • Ondervangt variaties in functietitel

Baan-aanbevelingen weergegeven als embeddings.

Introductie tot Embeddings met de OpenAI API

Classificatie

 

Classificatietaken:

  • Classificeer sentiment
  • Cluster observaties
  • Categoriseer

 

Voorbeeld:

  • Nieuws­koppen classificeren

 

Een onbekende nieuwskop weergegeven als embeddings om die te classificeren.

Introductie tot Embeddings met de OpenAI API

Een Embeddings-verzoek maken

  • Embeddings-endpoint
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
Introductie tot Embeddings met de OpenAI API

Embeddings-respons

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Introductie tot Embeddings met de OpenAI API

De embeddings extraheren

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introductie tot Embeddings met de OpenAI API

Laten we oefenen!

Introductie tot Embeddings met de OpenAI API

Preparing Video For Download...