Embeddingars fantastiska värld!

Introduktion till inbäddningar med OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Vad är embeddings?

  • Koncept från Natural Language Processing (NLP)
  • Numerisk representation av text

Ett ord matas in i en embeddingmodell som producerar en numerisk representation av texten.

Introduktion till inbäddningar med OpenAI API

Vad är embeddings?

 

  • Text mappas till ett flerdimensionellt vektorrum
  • Talen som modellen returnerar är textens position i rummet
  • Liknande ord hamnar närmare varandra
  • Olika ord hamnar längre ifrån varandra

Text representerad numeriskt, där mer likartad text placeras närmre varandra.

Introduktion till inbäddningar med OpenAI API

Varför är embeddings användbara?

  • Embeddings fångar semantisk betydelse
  • Semantisk betydelse: kontext och avsikt bakom text

 

  • Exempel:
    • "Hur tar jag mig till snabbköpet?"
    • "Kan du visa mig vägen till butiken?"

Text representerad numeriskt, där mer likartad text placeras närmre varandra.

Introduktion till inbäddningar med OpenAI API

Semantiska sökmotorer

 

  • Traditionella sökmotorer
    • Använder nyckelordsmatchning
    • Kan missa den verkliga avsikten
    • Missar ordvariationer

 

En traditionell sökmotor som visar irrelevanta resultat.

Introduktion till inbäddningar med OpenAI API

Semantiska sökmotorer

  • Använder embeddings för att förstå avsikt och kontext

Texten "comfortable running shoes" omvandlas till embeddings.

Introduktion till inbäddningar med OpenAI API

Semantiska sökmotorer

  • Använder embeddings för att förstå avsikt och kontext

Den inbäddade texten visad i det flerdimensionella rummet.

Introduktion till inbäddningar med OpenAI API

Rekommendationssystem

 

  • Exempel: Jobbannonsrekommendationer
    • Rekommenderar jobb baserat på redan visade beskrivningar
    • Hanterar variationer i jobbtitlar

Jobbrekommendationer visade som embeddings.

Introduktion till inbäddningar med OpenAI API

Klassificering

 

Klassificeringsuppgifter:

  • Klassificera sentiment
  • Klustra observationer
  • Kategorisering

 

Exempel:

  • Klassificera nyhetsrubriker

 

En okänd nyhetsrubrik visad som embeddings för att klassificeras.

Introduktion till inbäddningar med OpenAI API

Skapa en embeddings-förfrågan

  • 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
Introduktion till inbäddningar med OpenAI API

Embeddings-svar

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Introduktion till inbäddningar med OpenAI API

Extrahera embeddings

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Introduktion till inbäddningar med OpenAI API

Nu kör vi en övning!

Introduktion till inbäddningar med OpenAI API

Preparing Video For Download...