1. Pengenalan tentang Embeddings
1.1. Apa itu Embeddings
Embeddings, dalam bidang pembelajaran mesin, terutama dalam menangani masalah pemrosesan bahasa alami (NLP), adalah suatu teknik untuk mentransformasi data teks menjadi vektor numerik. Dalam bahasa manusia, makna kata dan frasa ditentukan oleh konteks dan penggunaannya. Tujuan dari embeddings adalah untuk menangkap semantik dari unit-unit linguistik ini, memungkinkan komputer untuk memahami dan memprosesnya.
Idea inti dari embeddings adalah untuk memetakan kata-kata dengan makna yang mirip ke titik-titik terdekat dalam ruang matematika, merepresentasikan kata-kata sebagai titik-titik dalam ruang dimensi tinggi. Dengan cara ini, kata-kata dengan makna semantis yang dekat (misalnya, "raja" dan "ratu") akan berdekatan dalam ruang tersebut. Embeddings biasanya terdiri dari array floating-point, memungkinkan fragmen teks yang sangat berbeda (seperti "anjing" dan "canine") memiliki representasi embedding yang mirip.
Tips: Sebagai pengembang aplikasi, Anda dapat dengan mudah memahami bahwa untuk dua kalimat teks dengan makna yang mirip, kemiripan vektor embedding mereka tinggi.
1.2. Aplikasi Embeddings
Embeddings banyak digunakan dalam berbagai skenario, berikut beberapa contoh penggunaan utama:
- Pencarian: Menggunakan fitur embedding untuk memeringkat hasil pencarian berdasarkan relevansi dengan teks kueri.
- Pengelompokan: Embeddings dapat membantu mengidentifikasi dan mengkategorikan fragmen teks yang semantisnya mirip.
- Sistem Rekomendasi: Merekomendasikan item berdasarkan kesamaannya dapat membantu menemukan dan merekomendasikan item lain yang mirip dengan yang diketahui.
- Deteksi Anomali: Embeddings dapat digunakan untuk mengidentifikasi titik data yang signifikan berbeda dari kumpulan data utama.
- Pengukuran Keberagaman: Embeddings juga dapat digunakan untuk menganalisis distribusi kemiripan antara teks yang berbeda.
- Klasifikasi: Membandingkan teks dengan sekumpulan embedding label yang diketahui untuk mengklasifikasikannya ke dalam kategori paling mirip.
2. Pengenalan tentang Embeddings OpenAI
2.1. Gambaran tentang Model Embeddings OpenAI
OpenAI menyediakan model embedding generasi ketiga, termasuk text-embedding-3-small
dan text-embedding-3-large
. Model-model ini dibangun dengan teknologi pembelajaran mendalam unik dari OpenAI, bertujuan untuk memberikan kinerja multibahasa yang sangat baik sambil juga berupaya untuk mengurangi biaya.
Model-model ini memiliki karakteristik unik dalam pemrosesan embeddings. Misalnya, text-embedding-3-small
menawarkan vektor embedding 1536 dimensi, sedangkan text-embedding-3-large
menyediakan vektor embedding 3072 dimensi untuk mencakup fitur teks yang lebih kompleks. Dengan mengatur parameter, dimensionalitas embeddings dapat dikendalikan untuk memenuhi kebutuhan spesifik dari skenario aplikasi.
2.2. Pemilihan dan Penggunaan Model
Memilih model embedding yang sesuai bergantung pada kebutuhan spesifik dari aplikasi. Berikut adalah cara untuk membuat pemilihan dalam berbagai skenario aplikasi:
-
Dalam skenario yang fokus pada kinerja: Jika Anda perlu menangkap informasi semantik yang lebih detail, seperti dalam sistem rekomendasi yang halus atau klasifikasi teks dengan presisi tinggi, biasanya disarankan untuk menggunakan
text-embedding-3-large
. Meskipun lebih mahal daripada model-model yang lebih kecil, model ini dapat memberikan representasi fitur teks yang lebih kaya. -
Dalam aplikasi yang sensitif terhadap biaya: Untuk aplikasi yang membutuhkan pemrosesan sejumlah besar data namun tidak memiliki persyaratan presisi yang sangat tinggi, seperti eksplorasi data awal atau prototyping cepat,
text-embedding-3-small
adalah pilihan yang lebih ekonomis. Ini mempertahankan kinerja yang relatif tinggi sambil mengurangi biaya secara signifikan. -
Lingkungan multibahasa: Model-model embedding ini memiliki kinerja multibahasa yang tinggi, menjadikannya sangat berguna dalam skenario lintas bahasa atau multibahasa, membuatnya menjadi pilihan yang ideal untuk aplikasi global.
Pemilihan model embedding yang tepat akan bergantung pada persyaratan spesifik, kompleksitas data, dan titik keseimbangan yang diinginkan antara kinerja dan biaya.
3. Cara Menggunakan Embeddings
3.1 Menggunakan curl
untuk Memanggil API Embedding
curl
adalah alat baris perintah yang umum digunakan untuk mengirim permintaan HTTP. Contoh berikut ini menunjukkan cara menggunakan curl
untuk mendapatkan representasi embedding dari teks:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Machine learning adalah cabang dari kecerdasan buatan.",
"model": "text-embedding-3-small"
}'
Pada perintah di atas, variabel $OPENAI_API_KEY
berisi kunci API OpenAI pengguna, yang seharusnya diganti dengan kunci valid untuk penggunaan sesungguhnya.
Setelah menjalankan perintah ini, OpenAI Embeddings API akan mengembalikan respons yang berisi representasi embedding teks. Berikut adalah contoh hasil panggilan API:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // Berikut adalah vektor fitur
-0.006929283495992422,
-0.005336422007530928,
... // Angka-angka tersisa dihilangkan untuk tampilan
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Menggunakan Python Client untuk Memanggil API Embedding
Selain menggunakan curl
untuk langsung memanggil API dari baris perintah, Anda juga dapat menggunakan klien Python. Hal ini memerlukan instalasi pustaka resmi openai
terlebih dahulu. Berikut adalah contoh penggunaan Python untuk mendapatkan embedding teks:
import openai
openai.api_key = 'YOUR_OPENAI_API_KEY' # Ganti dengan kunci API OpenAI Anda
response = openai.Embedding.create(
input="Kecerdasan buatan sedang mengubah dunia.",
model="text-embedding-3-small"
)
vektor_embedding = response['data'][0]['embedding']
print(vektor_embedding)
Dengan menjalankan skrip Python ini, Anda akan mendapatkan vektor embedding yang mirip dengan menggunakan curl
. Vektor ini adalah daftar angka desimal, yang mewakili representasi numerik dari teks masukan dalam ruang embedding.
Hasil panggilannya adalah sebagai berikut:
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Mengoperasikan Vektor Embedding
OpenAI hanya menyediakan model komputasi vektorisasi teks Embeddings. Jika Anda ingin menggunakan Embeddings untuk mengimplementasikan fungsi seperti pencarian kesamaan teks, Anda perlu mempelajari tentang basis data vektor, seperti Qdrant, Chroma, dan Milvus.
Silakan merujuk kepada tutorial basis data vektor berikut: