Úžasný svět embeddingů!

Introduction to Embeddings with the OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Co jsou embeddingy?

  • Pojem z Natural Language Processing (NLP)
  • Číselná reprezentace textu

Slovo vstupující do embedding modelu, který vrací číselnou reprezentaci textu.

Introduction to Embeddings with the OpenAI API

Co jsou embeddingy?

 

  • Text se mapuje do vícerozměrného vektorového prostoru
  • Čísla z modelu určují pozici textu v prostoru
  • Podobná slova jsou blíž u sebe
  • Nepodobná slova jsou dál od sebe

Text reprezentovaný číselně, kde podobnější text je blíž u sebe.

Introduction to Embeddings with the OpenAI API

Proč jsou embeddingy užitečné?

  • Embeddingy zachycují sémantický význam
  • Sémantický význam: kontext a záměr za textem

 

  • Příklad:
    • "Kudy se dostanu do supermarketu?"
    • "Mohl bys mi poradit cestu do obchodu?"

Text reprezentovaný číselně, kde podobnější text je blíž u sebe.

Introduction to Embeddings with the OpenAI API

Sémantické vyhledávače

 

  • Klasické vyhledávače
    • Používají porovnávání podle klíčových slov
    • Můžou minout skutečný záměr
    • Minou variace slov

 

Klasický vyhledávač zobrazující nerelevantní výsledky.

Introduction to Embeddings with the OpenAI API

Sémantické vyhledávače

  • Pomocí embeddingů rozumí záměru a kontextu

Text "comfortable running shoes" převedený na embedding.

Introduction to Embeddings with the OpenAI API

Sémantické vyhledávače

  • Pomocí embeddingů rozumí záměru a kontextu

Embedovaný text zobrazený ve vícerozměrném prostoru.

Introduction to Embeddings with the OpenAI API

Doporučovací systémy

 

  • Příklad: doporučování pracovních pozic
    • Doporučí pozice podle už prohlédnutých popisů
    • Zmírní rozdíly v názvech pozic

Doporučení pracovních pozic zobrazená jako embeddingy.

Introduction to Embeddings with the OpenAI API

Klasifikace

 

Klasifikační úlohy:

  • Klasifikace sentimentu
  • Shlukování pozorování
  • Kategorizace

 

Příklad:

  • Klasifikace novinových titulků

 

Neznámý novinový titulek zobrazený jako embedding pro účely klasifikace.

Introduction to Embeddings with the OpenAI API

Vytvoření požadavku na embeddingy

  • Endpoint pro embeddingy
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
Introduction to Embeddings with the OpenAI API

Odpověď s embeddingy

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Introduction to Embeddings with the OpenAI API

Vytažení embeddingů

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introduction to Embeddings with the OpenAI API

Pojďme cvičit!

Introduction to Embeddings with the OpenAI API

Preparing Video For Download...