AI Engineering Academy · Pelajaran

Apa Itu Penyematan Vektor?

Pahami cara jaringan saraf memetakan teks ke vektor padat dalam ruang berdimensi tinggi, alasan teks yang serupa secara semantik menghasilkan vektor yang berdekatan, serta hal yang diukur oleh kesamaan kosinus.

Pelajaran 1 dari 413 langkah

Apa Itu Penyematan Vektor? adalah pelajaran AI Engineering Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Engineering Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Engineering Academy mencakup 4 pelajaran total.

Makna di Balik Angka

Embedding vektor adalah daftar angka (sebuah vektor) yang merepresentasikan makna dari suatu bagian teks. Alih-alih menyimpan kata sebagai string mentah, jaringan saraf belajar mengodekan makna semantik ke dalam larik numerik yang padat. Dua teks dengan makna serupa akan menghasilkan vektor yang berdekatan dalam ruang berdimensi tinggi ini.

Ruang Vektor Berdimensi Tinggi

Embedding modern biasanya memiliki 768 hingga 3072 dimensi. Setiap dimensi menangkap fitur laten tertentu dari makna — topik, sentimen, gaya, dan hubungan — tanpa diprogram secara eksplisit. Hasilnya adalah ruang geometris yang kaya, tempat hubungan semantik dapat diukur sebagai jarak.

Misalnya, text-embedding-3-small menghasilkan vektor berdimensi 1536, sedangkan text-embedding-3-large menghasilkan vektor berdimensi 3072.

Cara Jaringan Saraf Mempelajari Embedding

Model embedding dilatih menggunakan korpus teks berukuran sangat besar untuk memprediksi kata yang hilang (pemodelan bahasa bertopeng) atau membedakan pasangan yang serupa secara semantik dari pasangan yang tidak serupa. Selama pelatihan, jaringan menyesuaikan jutaan bobot hingga teks yang serupa secara alami mengelompok dalam ruang vektor yang dipelajari.

Itulah sebabnya embedding disebut representasi padat — setiap dimensi membawa informasi, tidak seperti pengodean one-hot yang jarang, ketika sebagian besar nilainya adalah nol.

Kesamaan Kosinus: Mengukur Kedekatan

Kesamaan kosinus mengukur sudut antara dua vektor dan menghasilkan nilai antara -1 dan 1. Skor 1 berarti vektor menunjuk ke arah yang persis sama (makna identik), 0 berarti ortogonal (tidak berhubungan), dan -1 berarti menunjuk ke arah yang berlawanan.

Metode ini lebih disukai daripada jarak Euclidean untuk teks karena mengabaikan besar vektor dan berfokus sepenuhnya pada arah, sehingga tahan terhadap perbedaan panjang teks.

import numpy as np

def cosine_similarity(vec_a, vec_b):
    dot_product = np.dot(vec_a, vec_b)
    norm_a = np.linalg.norm(vec_a)
    norm_b = np.linalg.norm(vec_b)
    return dot_product / (norm_a * norm_b)

# Example with tiny 3D vectors
v1 = np.array([0.8, 0.2, 0.5])
v2 = np.array([0.9, 0.1, 0.4])
print(cosine_similarity(v1, v2))  # Close to 1.0

Mengapa Kesamaan Semantik Penting

Pencarian kata kunci tradisional gagal ketika pengguna memparafrasakan sesuatu: pencarian automobile dapat melewatkan dokumen tentang cars. Embedding vektor mengatasi hal ini karena teks yang setara secara semantik dipetakan ke vektor yang berdekatan, terlepas dari kata persis yang digunakan.

Hal ini memungkinkan pencarian semantik, yaitu menemukan hasil yang paling relevan berdasarkan makna, bukan kemiripan kata — kemampuan mendasar yang diperlukan oleh sistem RAG.

Visualisasi Vektor Embedding

Bayangkan Anda memplot kalimat pada peta 2D (sebagai analogi yang disederhanakan). Kalimat tentang pembelajaran mesin mengelompok di satu wilayah, kalimat tentang memasak mengelompok di wilayah lain, dan kalimat tentang olahraga membentuk kelompok ketiga. Embedding vektor membuat peta ini dalam ribuan dimensi.

Hubungan terkenal seperti king - man + woman ≈ queen merupakan operasi aritmetika nyata dalam ruang ini — operasi vektor mengodekan analogi semantik.

Membuat Embedding Sederhana

API embedding OpenAI menerima teks dan mengembalikan daftar float. Satu panggilan API dapat membuat embedding untuk satu kalimat atau seluruh paragraf. Vektor yang dikembalikan memiliki dimensi tetap, terlepas dari panjang input.

Penting: input yang lebih panjang tidak menghasilkan vektor yang lebih besar — input tersebut tetap menghasilkan vektor dengan ukuran tetap, tetapi teks yang sangat panjang dapat kehilangan detail yang lebih halus karena model memadatkan semuanya ke dalam ruang berukuran tetap tersebut.

from openai import OpenAI

client = OpenAI()  # uses OPENAI_API_KEY from environment

response = client.embeddings.create(
    model='text-embedding-3-small',
    input='Vector embeddings capture semantic meaning.'
)

embedding = response.data[0].embedding
print(f'Dimensions: {len(embedding)}')  # 1536
print(f'First 5 values: {embedding[:5]}')

Membuat Embedding untuk Beberapa Teks Sekaligus

Anda dapat membuat embedding untuk beberapa string dalam satu panggilan API dengan meneruskan daftar ke parameter input. Cara ini jauh lebih efisien daripada membuat satu permintaan untuk setiap teks karena mengurangi perjalanan bolak-balik jaringan dan memungkinkan API mengelompokkan perhitungannya.

Respons berisi satu objek embedding untuk setiap input, dalam urutan yang sama, sehingga Anda dapat memasangkannya dengan teks asli menggunakan zip.

from openai import OpenAI

client = OpenAI()

texts = [
    'Python is a programming language.',
    'Snakes are reptiles.',
    'Machine learning requires data.'
]

response = client.embeddings.create(
    model='text-embedding-3-small',
    input=texts
)

for text, result in zip(texts, response.data):
    print(f'{text[:30]}... -> {len(result.embedding)}D vector')

Hasil Kali Titik vs Kesamaan Kosinus

Jika embedding Anda telah dinormalisasi L2 (vektor satuan dengan besar 1), hasil kali titik sama dengan kesamaan kosinus. Model embedding OpenAI mengembalikan vektor yang telah dinormalisasi, sehingga Anda dapat menggunakan metrik mana pun — hasil kali titik sedikit lebih cepat untuk dihitung.

Namun, saat menggabungkan embedding dari model atau sumber berbeda yang mungkin belum dinormalisasi, selalu hitung kesamaan kosinus secara eksplisit untuk menghindari hasil yang menyesatkan.

import numpy as np

def normalize(vec):
    return vec / np.linalg.norm(vec)

v1 = normalize(np.array([3.0, 4.0, 0.0]))
v2 = normalize(np.array([4.0, 3.0, 0.0]))

# For unit vectors: dot product == cosine similarity
dot = np.dot(v1, v2)
print(f'Dot product: {dot:.4f}')  # same as cosine sim

Embedding vs Pengodean One-Hot

Pengodean one-hot merepresentasikan setiap kata sebagai vektor yang tepat memiliki satu nilai 1 dan semua nilai lainnya 0. Kosakata yang terdiri dari 50.000 kata menghasilkan vektor berdimensi 50.000 yang hampir seluruhnya berisi nol — sangat tidak efisien.

Embedding padat menggunakan 768–3072 dimensi, tetapi setiap dimensi membawa informasi nyata. Ruangnya 10–20 kali lebih kecil, namun menangkap jauh lebih banyak nuansa, termasuk sinonim, analogi, dan makna komposisional yang sama sekali tidak dapat ditangkap oleh pengodean one-hot.

Kasus Penggunaan Umum Embedding

Selain pencarian semantik, embedding mendukung banyak aplikasi praktis:

  • Pencarian semantik — menemukan dokumen berdasarkan makna, bukan kata kunci
  • Sistem rekomendasi — menyarankan item yang mirip dengan item yang disukai pengguna
  • Pengelompokan — mengelompokkan dokumen berdasarkan topik secara otomatis
  • Klasifikasi — memasukkan embedding ke pengklasifikasi linear
  • Deduplikasi — mendeteksi konten yang hampir duplikat

Semua sistem RAG bergantung pada embedding untuk mencocokkan kueri pengguna dengan potongan dokumen yang relevan.

Pemeriksaan Cepat

Ujilah pemahaman Anda tentang konsep Rekayasa AI dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa: embedding vektor mengodekan makna semantik sebagai larik numerik yang padat, kesamaan kosinus mengukur kedekatan semantik dengan membandingkan arah vektor, dan API embedding OpenAI mengubah teks menjadi vektor berukuran tetap dalam satu panggilan. Selanjutnya, kita akan membahas cara membuat dan membandingkan embedding menggunakan model OpenAI dalam praktik.

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Apa Itu Penyematan Vektor?” gratis?

Ya — teks lengkap “Apa Itu Penyematan Vektor?” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Engineering Academy, upgrade ke CoddyKit PRO. Kursus AI Engineering Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Apa Itu Penyematan Vektor?”?

Pahami cara jaringan saraf memetakan teks ke vektor padat dalam ruang berdimensi tinggi, alasan teks yang serupa secara semantik menghasilkan vektor yang berdekatan, serta hal yang diukur oleh kesama… Kamu berlatih AI Engineering Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Engineering Academy?

Tidak diperlukan pengalaman sebelumnya. AI Engineering Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Apa Itu Penyematan Vektor?” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Engineering Academy ini?

Ya. Setiap pelajaran AI Engineering Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu Penyematan Vektor?
  2. Membuat Penyematan dengan OpenAI
  3. Pencarian Semantik dengan NumPy
  4. Mengelompokkan dan Memvisualisasikan Penyematan
← Kembali ke AI Engineering Academy