Удивительный мир эмбеддингов!

Введение в эмбеддинги с OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Что такое эмбеддинги?

  • Концепция из обработки естественного языка (NLP)
  • Числовое представление текста

Слово подаётся на вход модели эмбеддингов, которая возвращает числовое представление текста.

Введение в эмбеддинги с OpenAI API

Что такое эмбеддинги?

 

  • Текст отображается в многомерное векторное пространство
  • Числа на выходе модели — это координаты текста в этом пространстве
  • Похожие слова расположены ближе друг к другу
  • Непохожие слова расположены дальше друг от друга

Текст, представленный в числовом виде: более похожие тексты расположены ближе друг к другу.

Введение в эмбеддинги с OpenAI API

Зачем нужны эмбеддинги?

  • Эмбеддинги позволяют передавать семантический смысл
  • Семантический смысл: контекст и намерение, заложенные в тексте

 

  • Пример:
    • «Как пройти до супермаркета?»
    • «Подскажите дорогу до магазина?»

Текст, представленный в числовом виде: более похожие тексты расположены ближе друг к другу.

Введение в эмбеддинги с OpenAI API

Семантические поисковые системы

 

  • Традиционные поисковые системы
    • Используют сопоставление по ключевым словам
    • Могут не уловить истинное намерение
    • Не учитывают вариации слов

 

Традиционная поисковая система с нерелевантными результатами.

Введение в эмбеддинги с OpenAI API

Семантические поисковые системы

  • Используют эмбеддинги для понимания намерения и контекста

Текст «comfortable running shoes» преобразуется в эмбеддинг.

Введение в эмбеддинги с OpenAI API

Семантические поисковые системы

  • Используют эмбеддинги для понимания намерения и контекста

Эмбеддинг текста в многомерном пространстве.

Введение в эмбеддинги с OpenAI API

Рекомендательные системы

 

  • Пример: рекомендации вакансий
    • Рекомендуют вакансии на основе уже просмотренных описаний
    • Учитывают вариации в названиях должностей

Рекомендации вакансий, представленные в виде эмбеддингов.

Введение в эмбеддинги с OpenAI API

Классификация

 

Задачи классификации:

  • Классификация тональности
  • Кластеризация наблюдений
  • Категоризация

 

Пример:

  • Классификация новостных заголовков

 

Неизвестный новостной заголовок в виде эмбеддинга для его классификации.

Введение в эмбеддинги с OpenAI API

Создание запроса на получение эмбеддингов

  • Эндпоинт эмбеддингов
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
Введение в эмбеддинги с OpenAI API

Ответ с эмбеддингами

{'object': 'list',
 'data': [
    {
      "embedding": [0.0023064255, ..., -0.0028842222],
      "index": 0,
      "object": "embedding"
    }
  ],
 'model': 'text-embedding-3-small',
 'usage': {
  "prompt_tokens": 24,
  "total_tokens": 24
  }
}
Введение в эмбеддинги с OpenAI API

Извлечение эмбеддингов

print(response_dict['data'][0]['embedding'])
[0.0023064255, ...., -0.0028842222]
Введение в эмбеддинги с OpenAI API

Давайте потренируемся!

Введение в эмбеддинги с OpenAI API

Preparing Video For Download...