Titik Awal yang Baik untuk Pengembang Aplikasi yang Penasaran dengan AI: Embeddings
(bawolf.substack.com)Panduan penggunaan embedding untuk pengembang aplikasi
- Embedding vektor cocok untuk fitur pencarian dan rekomendasi karena efektif dalam mengukur kemiripan pada berbagai jenis input. Ini juga bekerja dengan baik untuk bahasa lain seperti Prancis atau Jepang.
- Pgvector adalah ekstensi Postgres untuk menyimpan dan melakukan kueri embedding, sehingga kuat karena dapat menggabungkan logika SQL dan operasi embedding tanpa menambahkan layanan baru.
- Berbeda dengan LLM, penggunaan embedding terasa mirip dengan kode deterministik pada umumnya.
Mengembangkan proyek pencarian dan rekomendasi ikon
- Setelah menyiapkan Pgvector, dibuat strategi untuk mengodekan data ikon menjadi vektor embedding.
- Menggunakan model
text-embedding-3-smalldari OpenAI. - Mengukur kemiripan antara kata kunci pencarian dan embedding setiap ikon dengan cosine similarity.
- Menggabungkan logika bisnis seperti pemfilteran set ikon ke dalam pencarian embedding.
- Menunjukkan contoh algoritma peringkat yang memanfaatkan data klik ikon untuk kata kunci pencarian.
- Memanfaatkan perbandingan embedding untuk merekomendasikan ikon yang mirip dengan ikon yang dipilih.
Ringkasan pendekatan implementasi
- Memilih pgvector/Postgres sebagai DB vektor. Ada juga opsi lain seperti MongoDB.
- Dikembangkan dengan Typescript dan menggunakan drizzle-orm. Tersedia juga banyak pustaka untuk bahasa/framework lain.
- Aplikasi di-host di Neon. Bisa juga memanfaatkan layanan hosting DB terkelola seperti fly.io atau Supabase.
- Menggunakan model embedding
text-embedding-3-smalldari OpenAI. Model lain juga bisa dipilih dari leaderboard Huggingface. - Meng-embedding atribut ikon yang paling relevan untuk pencarian sebagai pasangan key-value.
- Menggunakan cosine similarity sebagai fungsi jarak. Pgvector juga mendukung l2 distance dan inner product.
- Hasil pencarian dibatasi pada 50 teratas. Saat menggunakan rentang jarak, disarankan memakai rentang yang lebar dan menggabungkannya dengan
limit.
Opini GN⁺
- Untuk sebagian besar proyek, pendekatan menambahkan kemampuan vektor ke DB yang sudah ada seperti pgvector kemungkinan sudah cukup. Penerapan DB vektor terpisah tampaknya hanya diperlukan untuk layanan berskala besar.
- Keunggulan besarnya adalah logika bisnis dapat digabungkan secara alami dengan pencarian embedding. Kekuatan SQL bisa dimanfaatkan sepenuhnya.
- Ide memasukkan data umpan balik pengguna ke dalam algoritma peringkat sangat bagus. Ini tampaknya bisa terus meningkatkan akurasi pencarian.
- Dibandingkan LLM, layanan berbasis embedding memiliki perilaku yang lebih jelas dan lebih mudah di-debug, sehingga tampaknya jauh lebih mudah diterapkan ke layanan nyata.
- Berbagai model embedding open source telah tersedia, sehingga embedding berkualitas tinggi bisa dimanfaatkan dengan mudah bahkan ketika sulit mengembangkan model sendiri.
1 komentar
Komentar Hacker News
Ringkasan komentar Hacker News
Kemudahan embedding dokumen dan pencarian kemiripan dengan memanfaatkan model RAG
sentence-transformersdanfaiss, embedding dokumen dan pencarian kemiripan bisa diimplementasikan dengan mudahMemahami konsep dasar embedding
Kurangnya penjelasan rinci tentang proses pembuatan embedding
They're a bit of a black boxtanpa penjelasan lebih lanjutSulitnya menangani homonim
Embedding tetap bisa dimanfaatkan tanpa vector store
@di NumpyCara menjalankan logika embedding di lingkungan lokal
Potensi penggunaan embedding saat menulis dokumentasi teknis
Cara menyimpan dan memanfaatkan embedding
Kurangnya penjelasan pengetahuan latar belakang bagi developer pemula di AI