AI Engineering Academy · Pelajaran

Apakah Pembenaman Vektor?

Fahami cara rangkaian neural memetakan teks kepada vektor padat dalam ruang berdimensi tinggi, sebab teks yang serupa dari segi makna menghasilkan vektor berdekatan, dan perkara yang diukur oleh kesamaan kosinus.

Pelajaran 1 daripada 413 langkah

Apakah Pembenaman Vektor? ialah pelajaran AI Engineering Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AI Engineering Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AI Engineering Academy merangkumi sejumlah 4 pelajaran.

Makna di Sebalik Nombor

Pembenaman vektor ialah senarai nombor (iaitu vektor) yang mewakili makna sebahagian teks. Daripada menyimpan perkataan sebagai rentetan mentah, rangkaian neural belajar mengekod makna semantik ke dalam tatasusunan berangka padat. Dua teks yang mempunyai makna serupa akan menghasilkan vektor yang berdekatan dalam ruang berdimensi tinggi ini.

Ruang Vektor Berdimensi Tinggi

Pembenaman moden biasanya mempunyai 768 hingga 3072 dimensi. Setiap dimensi menangkap sebahagian ciri terpendam makna — topik, sentimen, gaya dan hubungan — tanpa diprogramkan secara khusus. Hasilnya ialah ruang geometri yang kaya, tempat hubungan semantik boleh diukur melalui jarak.

Contohnya, text-embedding-3-small menghasilkan vektor berdimensi 1536, manakala text-embedding-3-large menghasilkan vektor berdimensi 3072.

Cara Rangkaian Neural Mempelajari Pembenaman

Model pembenaman dilatih menggunakan korpus teks yang sangat besar untuk meramalkan perkataan yang hilang (pemodelan bahasa bertopeng) atau membezakan pasangan yang serupa secara semantik daripada pasangan yang berbeza. Semasa latihan, rangkaian melaraskan berjuta-juta pemberat sehingga teks yang serupa secara semula jadi berkumpul dalam ruang vektor yang dipelajari.

Inilah sebabnya pembenaman dipanggil perwakilan padat — setiap dimensi membawa maklumat, tidak seperti pengekodan satu panas yang jarang, apabila kebanyakan nilainya ialah sifar.

Persamaan Kosinus: Mengukur Kedekatan

Persamaan kosinus mengukur sudut antara dua vektor dan mengembalikan nilai antara -1 hingga 1. Skor 1 bermaksud vektor menunjuk tepat ke arah yang sama (makna yang serupa), 0 bermaksud ortogon (tidak berkaitan), manakala -1 bermaksud menunjuk ke arah yang bertentangan.

Persamaan ini lebih sesuai berbanding jarak Euclid untuk teks kerana ia mengabaikan magnitud vektor dan hanya menumpukan arah, menjadikannya teguh terhadap perbezaan 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 Persamaan Semantik Penting

Carian kata kunci tradisional gagal apabila pengguna membuat parafrasa: carian untuk automobile tidak menemui dokumen tentang cars. Pembenaman vektor menyelesaikan masalah ini kerana teks yang setara secara semantik dipetakan kepada vektor yang berdekatan tanpa mengira perkataan tepat yang digunakan.

Hal ini membolehkan carian semantik, iaitu mencari hasil yang paling relevan berdasarkan makna dan bukannya pertindihan perkataan — keupayaan asas yang diperlukan oleh sistem RAG.

Visualisasi Vektor Pembenaman

Bayangkan anda memplot ayat pada peta 2D (sebagai analogi yang dipermudah). Ayat tentang pembelajaran mesin berkumpul di satu kawasan, ayat tentang memasak berkumpul di kawasan lain, manakala ayat tentang sukan membentuk kelompok ketiga. Pembenaman vektor menghasilkan peta ini dalam ribuan dimensi.

Hubungan terkenal seperti king - man + woman ≈ queen ialah pengiraan aritmetik sebenar dalam ruang ini — operasi vektor mengekod analogi semantik.

Menjana Pembenaman Mudah

API pembenaman OpenAI menerima teks dan mengembalikan senarai nombor titik apung. Satu panggilan API boleh membenamkan satu ayat atau keseluruhan perenggan. Vektor yang dikembalikan mempunyai dimensi tetap tanpa mengira panjang input.

Penting: input yang lebih panjang tidak menghasilkan vektor yang lebih besar — input tersebut masih menghasilkan vektor bersaiz tetap yang sama, tetapi teks yang sangat panjang mungkin kehilangan perincian halus kerana model memampatkan semuanya ke dalam ruang tetap itu.

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]}')

Membenamkan Berbilang Teks Sekali Gus

Anda boleh membenamkan berbilang rentetan dalam satu panggilan API dengan menghantar senarai kepada parameter input. Cara ini jauh lebih cekap berbanding membuat satu permintaan bagi setiap teks kerana ia mengurangkan perjalanan pergi balik rangkaian dan membolehkan API mengumpulkan pengiraan secara kelompok.

Respons mengandungi satu objek pembenaman bagi setiap input, dalam susunan yang sama, jadi anda boleh memadankannya dengan teks asal 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 Darab Titik berbanding Persamaan Kosinus

Jika pembenaman anda dinormalisasikan L2 (vektor unit dengan magnitud 1), hasil darab titik adalah sama dengan persamaan kosinus. Model pembenaman OpenAI mengembalikan vektor yang telah dinormalisasikan, jadi anda boleh menggunakan mana-mana metrik — hasil darab titik sedikit lebih pantas untuk dikira.

Walau bagaimanapun, apabila menggabungkan pembenaman daripada model atau sumber yang berbeza dan mungkin tidak dinormalisasikan, sentiasa kira persamaan kosinus secara jelas untuk mengelakkan hasil yang mengelirukan.

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

Pembenaman berbanding Pengekodan Satu Panas

Pengekodan satu panas mewakili setiap perkataan sebagai vektor yang mengandungi tepat satu nilai 1 dan semua nilai lain 0. Perbendaharaan kata yang mengandungi 50,000 perkataan menghasilkan vektor berdimensi 50,000 yang hampir keseluruhannya terdiri daripada sifar — sangat tidak cekap.

Pembenaman padat menggunakan 768 hingga 3072 dimensi, tetapi setiap dimensi membawa maklumat sebenar. Ruang ini 10 hingga 20 kali lebih kecil, namun menangkap lebih banyak nuansa, termasuk sinonim, analogi dan makna gubahan yang langsung tidak dapat ditangkap oleh pengekodan satu panas.

Kes Penggunaan Biasa Pembenaman

Selain carian semantik, pembenaman menggerakkan banyak aplikasi praktikal:

  • Carian semantik — mencari dokumen berdasarkan makna, bukan kata kunci
  • Sistem pengesyoran — mencadangkan item yang serupa dengan item yang disukai pengguna
  • Pengelompokan — mengumpulkan dokumen mengikut topik secara automatik
  • Pengelasan — memberikan pembenaman kepada pengelas linear
  • Penyingkiran pendua — mengesan kandungan yang hampir pendua

Semua sistem RAG bergantung pada pembenaman untuk memadankan pertanyaan pengguna dengan cebisan dokumen yang relevan.

Semakan Pantas

Uji pemahaman anda tentang konsep Kejuruteraan AI daripada pelajaran ini.

Imbas Kembali Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa: pembenaman vektor mengekod makna semantik sebagai tatasusunan berangka padat, persamaan kosinus mengukur kedekatan semantik dengan membandingkan arah vektor, dan API pembenaman OpenAI menukar teks kepada vektor bersaiz tetap dalam satu panggilan. Seterusnya, kita akan meneroka cara menjana dan membandingkan pembenaman menggunakan model OpenAI secara praktikal.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Apakah Pembenaman Vektor?” percuma?

Ya — teks penuh “Apakah Pembenaman Vektor?” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus AI Engineering Academy, tingkat taraf kepada CoddyKit PRO. Kursus AI Engineering Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Apakah Pembenaman Vektor?”?

Fahami cara rangkaian neural memetakan teks kepada vektor padat dalam ruang berdimensi tinggi, sebab teks yang serupa dari segi makna menghasilkan vektor berdekatan, dan perkara yang diukur oleh kesa… Anda berlatih AI Engineering Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan AI Engineering Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran AI Engineering Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Apakah Pembenaman Vektor?” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran AI Engineering Academy ini?

Ya. Setiap pelajaran AI Engineering Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Apakah Pembenaman Vektor?
  2. Menjana Pembenaman dengan OpenAI
  3. Carian Semantik dengan NumPy
  4. Mengelompokkan dan Memvisualisasikan Pembenaman
← Kembali ke AI Engineering Academy