Embedding untuk tugas klasifikasi

Pengantar Embeddings dengan OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Tugas klasifikasi

 

Memberi label pada item

  • Kategorisasi
    • Contoh: judul berita ke topik
  • Analisis sentimen

 

Tabel topik yang dapat dipakai untuk mengategorikan artikel.

Pengantar Embeddings dengan OpenAI API

Tugas klasifikasi

 

Memberi label pada item

  • Kategorisasi
    • Contoh: judul berita ke topik
  • Analisis sentimen
    • Contoh: mengklasifikasi ulasan sebagai positif atau negatif

 

Embedding menangkap makna semantik

 

Tabel berisi wajah senyum dan sedih untuk mengategorikan sentimen.

Pengantar Embeddings dengan OpenAI API

Klasifikasi dengan embedding

  • Klasifikasi zero-shot:
    • Tanpa data berlabel

 

Proses:

  1. Embed deskripsi kelas

Deskripsi kelas yang di-embed dalam ruang vektor.

Pengantar Embeddings dengan OpenAI API

Klasifikasi dengan embedding

  • Klasifikasi zero-shot:
    • Tanpa data berlabel

 

Proses:

  1. Embed deskripsi kelas
  2. Embed item yang akan diklasifikasi
  3. Hitung jarak kosinus

Deskripsi kelas yang di-embed dalam ruang vektor, dengan sebuah vektor tidak dikenal.

Pengantar Embeddings dengan OpenAI API

Klasifikasi dengan embedding

  • Klasifikasi zero-shot:
    • Tanpa data berlabel

 

Proses:

  1. Embed deskripsi kelas
  2. Embed item yang akan diklasifikasi
  3. Hitung jarak kosinus
  4. Tetapkan label paling mirip

Deskripsi kelas yang di-embed dalam ruang vektor, dengan vektor tidak dikenal diberi label Tech.

Pengantar Embeddings dengan OpenAI API

Meng-embed deskripsi kelas

topics = [
  {'label': 'Tech'},
  {'label': 'Science'},
  {'label': 'Sport'},
  {'label': 'Business'},
]

class_descriptions = [topic['label'] for topic in topics]
class_embeddings = create_embeddings(class_descriptions)
Pengantar Embeddings dengan OpenAI API

Meng-embed item yang diklasifikasi

article = {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race",
           "keywords": ["ai", "business", "computers"]}

def create_article_text(article): return f"""Headline: {article['headline']} Keywords: {', '.join(article['keywords'])}""" article_text = create_article_text(article)
article_embeddings = create_embeddings(article_text)[0]
Pengantar Embeddings dengan OpenAI API

Hitung jarak kosinus

def find_closest(query_vector, embeddings):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = distance.cosine(query_vector, embedding)
    distances.append({"distance": dist, "index": index})
  return min(distances, key=lambda x: x["distance"])

closest = find_closest(article_embeddings, class_embeddings)
Pengantar Embeddings dengan OpenAI API

Ambil label paling mirip

label = topics[closest['index']]['label']

print(label)
Business
article = {"headline": "How NVIDIA GPUs Could Decide Who Wins the AI Race",
           "keywords": ["ai", "business", "computers"]}

Keterbatasan:

  • Deskripsi kelas kurang detail
Pengantar Embeddings dengan OpenAI API

Deskripsi lebih rinci

topics = [
  {'label': 'Tech', 'description': 'A news article about technology'},
  {'label': 'Science', 'description': 'A news article about science'},
  {'label': 'Sport', 'description': 'A news article about sports'},
  {'label': 'Business', 'description': 'A news article about business'},
]

class_descriptions = [topic['description'] for topic in topics] class_embeddings = create_embeddings(class_descriptions)
[...] label = topics[closest['index']]['label'] print(label)
Tech
Pengantar Embeddings dengan OpenAI API

Ayo berlatih!

Pengantar Embeddings dengan OpenAI API

Preparing Video For Download...