2 poin oleh GN⁺ 2025-05-13 | 1 komentar | Bagikan ke WhatsApp
  • Embedding menawarkan potensi kemajuan yang revolusioner di bidang penulisan teknis belakangan ini
  • Embedding memiliki karakteristik mengembalikan array numerik berdimensi tetap terlepas dari ukuran teks masukan
  • Melalui array numerik ini, perbandingan matematis antar teks arbitrer menjadi mungkin
  • Embedding menghitung jarak berdasarkan makna teks dalam ruang multidimensi, dan dapat dimanfaatkan untuk berbagai hal seperti rekomendasi keterkaitan, analisis semantik, dan lainnya
  • Ke depan, dengan situs dokumentasi teknis membuka data embedding mereka, alat baru dan contoh pemanfaatan komunitas diperkirakan akan meluas

Gambaran umum teknologi embedding berbasis machine learning

  • Dalam teknologi machine learning, tidak seperti model pembangkitan teks, embedding memiliki potensi untuk memberi dampak revolusioner pada penulisan teknis
  • Dalam beberapa tahun terakhir, penggunaan embedding telah menjadi jauh lebih mudah diakses
  • Melalui embedding, penulis teknis dapat melakukan perbandingan dan analisis semantik di antara beragam teks

Membangun intuisi tentang embedding

  • Embedding menerima teks sebagai masukan (kata, kalimat, beberapa dokumen, dan sebagainya) lalu mengembalikan array numerik berukuran tetap
  • Terlepas dari panjang teks masukan, selalu dihasilkan data array dengan ukuran yang sama
  • Karena itu, muncul kemungkinan perbandingan matematis bahkan untuk teks arbitrer dengan panjang yang berbeda-beda

Cara membuat embedding

  • Embedding dapat dibuat hanya dengan beberapa baris kode melalui penyedia layanan utama
  • Ukuran array embedding berbeda tergantung model yang digunakan; dalam kasus Gemini dikembalikan 768 angka, sedangkan Voyage AI mengembalikan 1024 angka
  • Karena makna embedding sepenuhnya berbeda menurut penyedia atau model, maka tidak ada kompatibilitas antarmodel

Biaya dan dampak lingkungan

  • Pembuatan embedding sendiri tidak terlalu mahal
  • Proses pembuatannya diperkirakan mengonsumsi sumber daya komputasi lebih rendah dibanding model pembangkitan teks, tetapi dampak lingkungannya masih memerlukan lebih banyak informasi ke depannya

Kriteria memilih model embedding

  • Model yang paling sesuai bergantung pada kemampuan mendukung data masukan berukuran besar
  • voyage-3 dari Voyage AI menyediakan batas input tertinggi per 2024
  • Penting memilih model yang sesuai dengan tujuan penggunaan dan kebutuhan

Konsep ruang multidimensi

  • Setiap nilai dalam array numerik embedding sesuai dengan satu koordinat dalam ruang multidimensi, dan karakteristik teks direpresentasikan sebagai posisi semantik dalam ruang tersebut
  • Sebagai contoh, operasi seperti ‘king’ - ‘man’ + ‘woman’ ≈ ‘queen’ menunjukkan kemungkinan merepresentasikan hubungan semantik
  • Karakteristik setiap dimensi dalam ruang embedding sebagian besar tidak jelas dan abstrak
  • Melalui proses ini, pembelajaran makna oleh mesin dan penalaran makna teks menjadi mungkin

Membandingkan dan menyimpan embedding

  • Embedding yang telah dibuat disimpan untuk setiap teks (misalnya halaman) di database dan sebagainya
  • Dengan perhitungan jarak matematis antara dua embedding (menggunakan aljabar linear), dimungkinkan menilai kemiripan semantik
  • Dengan memanfaatkan pustaka seperti NumPy dan scikit-learn, beban menerapkan rumus yang rumit menjadi kecil

Contoh penerapan embedding

  • Di situs dokumentasi teknis, embedding dimanfaatkan secara efektif untuk fitur rekomendasi halaman terkait
  • Setelah membuat embedding untuk setiap halaman, dimungkinkan merekomendasikan dokumen yang saling terkait secara semantik di antara halaman-halaman dengan kemiripan numerik tinggi
  • Setiap kali isi halaman diubah, cukup memperbarui embedding-nya saja sehingga sangat efisien
  • Hasil penerapan pada dokumentasi [Sphinx] yang sebenarnya menunjukkan kinerja yang positif

Komunitas dan potensi data terbuka

  • Ke depannya, situs dokumentasi dapat menyediakan data embedding melalui REST API atau well-known URI
  • Melalui hal ini, komunitas dapat mengembangkan beragam alat dan layanan terapan

Penutup

  • Menarik untuk menghubungkan konsep ruang berdimensi ratusan dengan pekerjaan sehari-hari
  • Dengan adopsi embedding, dapat diharapkan potensi kemajuan besar dalam pemeliharaan dokumentasi dan perluasan fitur

1 komentar

 
GN⁺ 2025-05-13
Komentar Hacker News
  • Halo, saya ingin menyampaikan terima kasih karena telah menulis artikel ini
    Saya ingin memberi tahu bahwa ada diskusi serupa juga 6 bulan lalu
    Ungkapan "embedding diremehkan" dimaksudkan untuk menekankan bahwa ini adalah alat yang berguna bagi penulis teknis, bukan hanya bagi praktisi machine learning
    Saya menyadari bahwa artikel ini kurang menjelaskan secara rinci bagaimana tepatnya embedding digunakan dalam penulisan teknis
    Saya sedang menyiapkan proyek dan posting blog tentang penggunaan embedding
    Embedding penting karena dapat membantu menyelesaikan tiga masalah yang sulit dipecahkan dalam penulisan teknis

    • Untuk memungkinkan orang mengalami secara langsung masalah sulitnya menemukan informasi yang diinginkan, saya mencoba menerapkan UX layer berupa "semantic scrolling"
      Alih-alih seperti pencarian, pengguna bisa menjelajahi cluster dalam struktur pohon <details>/<summary>
      [1] adalah titik awal, dan [2] adalah seluruh koleksi (buku, film, musik, anime, dll.)
      Saya juga membagikan tautannya

    • Akan lebih baik jika isi tulisan disusun agar lebih menarik bagi penulis teknis daripada pakar machine learning
      Misalnya, bagian seperti "Anda bisa menemukan keterhubungan antar teks pada skala yang sebelumnya mustahil" sebaiknya dijelaskan lebih rinci
      Jika contoh penerapan ditempatkan lebih awal, pesannya akan tersampaikan lebih efektif kepada pembaca

    • Sebagai contoh penerapan langsung embedding dalam penulisan teknis, saya merekomendasikan sebuah paper terkait
      Saya menyertakan tautannya

    • Setelah membaca ini, saya penasaran seperti apa kualitas hasilnya
      Walaupun tidak sampai ke evaluasi (evals) yang disukai di dunia machine learning, saya ingin tahu apakah secara kasar hasilnya terasa masuk akal

    • Saya sudah membaca artikelnya, tetapi tidak menemukan penjelasan tentang apa itu "embedding"
      Paragraf ketiga memang menjelaskan cara penggunaannya, tetapi definisi embedding sendiri masih kurang di bagian awal

    • Bagi pemula, tulisan ini terasa terlalu mendasar
      Setelah membacanya, saya tidak mendapatkan informasi atau wawasan baru
      Kalau setidaknya ada contoh inti penggunaan embedding sebagai gambaran singkat, saya rasa saya akan lebih menantikan tulisan berikutnya
      Terima kasih sudah membagikannya

  • Keunggulan lain embedding dan pencarian embedding adalah implementasinya bisa dibuat cukup ringan di sisi klien
    Model ONNX dapat dimuat dan dijalankan dengan transformer.js
    Anda juga bisa membuat indeks seperti hnsw dan meng-host-nya secara statis
    Saya sendiri juga membuat demo open source
    Indeksnya dapat direpresentasikan sebagai file parquet yang bisa di-query dan lalu ditanyakan dengan duckdb
    Dengan Github Pages, ini bisa dilakukan gratis atau hampir gratis

    • Fakta bahwa embedding bisa dijalankan di sisi klien dengan JS adalah penemuan baru bagi saya
      Saya antusias karena sepertinya ini membuka aplikasi baru untuk situs dokumentasi
      Saya mulai memperhatikan Parquet dan Polars karena artikel yang pernah saya baca sebelumnya

    • Saya memang punya rasa penasaran soal implementasi seperti ini
      Saya selama ini ragu mengadopsinya karena khawatir dengan latensi pencarian berbasis embedding
      Jika modelnya ditempatkan dan dirender secara lokal, saya penasaran bagaimana kualitasnya dibandingkan OpenAI/Google
      Gratis/instan jelas merupakan kelebihan

    • Akan bagus jika ada penjelasan rinci tentang apa yang terjadi di demo itu
      Saya tidak terlalu memahami hasilnya

  • Bagian yang mengatakan "embedding selalu mengembalikan array angka dengan ukuran yang sama terlepas dari ukuran teks input, sehingga teks apa pun bisa dibandingkan secara matematis satu sama lain" sebaiknya dijelaskan dengan lebih jelas
    Fungsi hash juga menghasilkan keluaran dengan ukuran yang sama terlepas dari ukuran input, tetapi perbandingan matematis di sana sama sekali berbeda dengan perbandingan pada embedding
    Perlu ditekankan bahwa kualitas embedding ditentukan oleh proses pelatihannya
    Tidak ada "embedding umum" yang memungkinkan perbandingan bermakna untuk teks sembarang

    • Terima kasih atas masukannya; saya sedang membaca paper terkait seperti Gecko, NV-Embed, dan Gemini Embedding, dan saya berencana memperbaiki tulisan ini agar lebih akurat ke depannya
      Saya juga membagikan tautannya
  • Embedding memang merepresentasikan input besar secara terkompresi seperti hash, tetapi berbeda dari hash, embedding memiliki makna intrinsik
    Kalau begitu, saya penasaran apakah ada riset tentang "cracking" yang menghasilkan teks dengan makna serupa secara terbalik dari embedding
    Saya juga membayangkan pada output LLM, penilaian token berikutnya mungkin bisa memasukkan kemiripan dengan embedding atau perubahan arah vektornya
    Seperti operasi antar vektor embedding yang disebut penulis, saya membayangkan apakah "aljabar makna" juga dapat diterapkan pada teks berskala besar seperti seluruh paragraf atau buku
    Saya juga penasaran apakah mungkin memvektorkan konsep inti seperti "afinitas" lalu menambahkannya ke teks yang sudah ada

    • "Menghasilkan teks dengan makna serupa secara terbalik dari embedding" disebut embedding inversion atau Universal Zero-shot Embedding Inversion
      Ada paper terkait, dan diffusion yang memanfaatkan embedding CLIP pada gambar juga berhubungan

    • Secara kasar, embedding memiliki peran yang mirip dengan fuzzy hashes

    • Saya bukan pakar di bidang ini, tetapi ada juga riset yang disebut inference-time intervention yang mungkin relevan
      Saya menyertakan tautan papernya

  • Pernyataan "embedding dapat menghasilkan kemajuan kelas atas dalam penulisan teknis" tidak cukup konkret, jadi sebagai pembaca itu tidak terlalu membantu
    Saat membaca atau menulis dokumentasi teknis, saya pada umumnya tidak pernah merasa membutuhkan widget "halaman serupa"

    • Tesisnya ada di paragraf kedua
      Embedding memungkinkan penulis teknis menemukan hubungan antar teks dengan cara yang sebelumnya mustahil ditemukan
      Saya mengakui bahwa posting ini belum benar-benar menunjukkan tesis itu lewat contoh
      Saya rasa embedding dapat menyelesaikan berbagai masalah sulit dalam penulisan teknis, dan saya akan membahas contoh yang lebih langsung nanti

    • Terlepas dari dokumen terkait, dokumentasi teknis sangat terbantu oleh pencarian yang hebat
      Embedding sangat berguna untuk "fuzzy matching" dan dapat menemukan fungsi yang benar-benar diinginkan pengguna bahkan ketika mereka tidak ingat kata yang tepat
      Pendekatan hybrid yang menggabungkan pencarian kata kunci dan pencarian kemiripan vektor cukup efisien
      Saya ingin menemukan lebih banyak contoh penerapan yang konkret

  • Analogi peta 2 dimensi adalah titik awal yang baik untuk membantu pemahaman, tetapi embedding bekerja dalam ratusan hingga ribuan dimensi
    Tidak jelas pula makna tiap dimensi, dan contoh 'king - man + woman = queen' bukan karena ada "dimensi yang memiliki konsep gender", melainkan karena ada "arah tertentu"
    Dalam ruang n-dimensi, ada sangat banyak arah yang hampir ortogonal secara eksponensial
    Itulah alasan miliaran konsep bisa dimuat dalam ruang 1000 dimensi

    • Dalam paper arXiv yang sebenarnya, jika Anda memasukkan 1000 kata laki-laki ke embedding, tidak akan terjadi bahwa 950 kata perempuan ditemukan secara akurat
      Sekitar 20 memang akan tampak berkumpul secara kasatmata, tetapi karena dimensinya banyak, jika diproyeksikan apa pun bisa tampak "benar"
      Ketika N membesar, hasilnya cenderung menjadi tidak jelas
      Embedding berbasis transformer jauh lebih unggul daripada word vector lama karena mempertimbangkan konteks
      Bahkan dalam pencarian teks penuh, embedding yang sadar konteks efektif menyelesaikan masalah di bidang information retrieval yang selama 50 tahun terakhir terus dicoba dipecahkan, seperti penanganan sinonim

    • Terima kasih atas kritik yang rinci; saya mengakui bahwa menjelaskan seolah satu dimensi dipetakan satu lawan satu dengan satu konsep adalah kesalahan konseptual
      Saya akan merevisi posting ini dengan memperhalus konsep tersebut bersama penjelasan tentang cara kerja cosine similarity
      Berkat komentar ini, saya merasa kualitas pemikiran saya meningkat

    • Saya ingin menegaskan bahwa ungkapan yang tepat bukanlah "dimensi yang hampir ortogonal", melainkan "arah yang hampir ortogonal"

    • Saya penasaran tentang informasi terkait Johnson-Lindenstrauss lemma, juga soal dimensi embedding yang dipertahankan dan presisi pelestarian jaraknya
      Untuk mempertahankan jarak dengan galat 10%, tampaknya dibutuhkan sekitar 18 ribu dimensi
      Saya juga mengarahkan ke tautan wiki

    • Lebih tepat lagi, yang dimaksud bukan "dimensi yang hampir ortogonal" tetapi "arah yang hampir ortogonal"

    • Jika dimensi individual benar-benar cocok dengan konsep yang bermakna, misalnya ada dimensi gender, maka akan mudah mengetahui bahwa perbedaan antara "king" dan "queen" hanya ada pada satu dimensi
      Jika setiap konsep memiliki dimensinya sendiri, kita bisa menelusuri konsep itu secara intuitif berdasarkan perbedaannya

    • Saya memperkenalkan artikel yang bagus tentang konsep vektor yang hampir ortogonal
      Saya membagikan tautannya

    • Apakah prinsipnya adalah setiap dimensi diperlakukan seperti bilangan biner sehingga 2^n arah bisa dienkode, atau saya sedang salah paham?

    • Jika gender direpresentasikan dengan dua dimensi, bukankah kita jadi tidak bisa membedakan antara "gendernya berbeda" dan "setiap dimensi memiliki komponen yang berbeda"?

    • Walaupun tidak bisa divisualisasikan, jarak Euclidean tetap bisa dihitung
      Dimensi juga bisa dikurangi dengan alat seperti UMAP

    • Terkait contoh king-man+woman=queen, operasi penjumlahan vektor tidak selalu bekerja sesuai harapan
      Makna bisa dibatasi hanya oleh arah dan besar satu vektor, dan karena jaringan mempelajari perilaku nonlinier, maknanya bisa berubah tergantung titik awal
      Ada batasan dalam menggeneralisasi dengan operasi vektor sederhana tanpa bukti eksperimental

  • Embedding adalah lompatan baru menuju universalitas, seperti alfabet atau angka
    Saya membagikan tautannya

  • Pertanyaan untuk para ahli
    Jika embedding memuat konten, yaitu makna itu sendiri, sebagai vektor, saya penasaran apakah ada vektor terpisah khusus untuk "gaya"
    Saya merasa jika embedding juga mudah digunakan untuk riset yang menganalisis gaya penulisan lewat style, itu akan menjadi kemajuan besar

    • Jika ada dataset dengan gaya yang serupa, kita bisa melatih embedding khusus untuk gaya saja
  • Saya sepenuhnya setuju dengan penggunaan embedding
    Saat mengembangkan sesuatu bernama Recallify, saya jadi bisa dengan cepat menemukan kembali informasi langka yang pernah saya baca secara online
    Bahkan hanya dengan 1024 dimensi, konten bisa dihubungkan secara efektif berdasarkan kemiripan makna, bukan kata kunci
    Ini adalah alat yang revolusioner untuk mengubah konsep yang samar menjadi insight yang bisa ditindaklanjuti
    Saya juga sedang merekrut beta tester untuk aplikasi iOS

  • Saya tidak yakin apakah artikel itu benar-benar memberikan contoh penggunaan langsung untuk penulis teknis
    Embedding memang sangat penting dalam LLM, semantic search, dan sebagainya, tetapi penjelasan tentang kegunaan langsung yang diisyaratkan penulis masih kurang

    • Contoh penerapan langsung memang belum muncul
      Saya tadinya ingin membahas berbagai penggunaan embedding lewat tulisan lanjutan dan proyek, tetapi belakangan ini tertunda karena mengurus bayi usia 3 bulan
      Saya sedang menyiapkan proyek dan tulisan terkait ke depannya, dan embedding membantu menyelesaikan tiga tantangan penting dalam penulisan teknis

    • Penggunaan embedding yang paling praktis adalah semantic search, klasifikasi, dan clustering
      Di bidang pencarian, lompatan besar biasanya terjadi sekali tiap 10 tahun
      Anda bisa membuat embedding lalu memasukkannya ke algoritme ML yang sudah ada untuk klasifikasi yang efektif
      Pendekatan Bag-of-Words sekarang hasilnya kurang memadai, sedangkan embedding + algoritme sederhana saja sudah cukup untuk mendapatkan cluster yang bagus
      Untuk menemukan vektor terdekat pun, ini lebih merupakan soal dot product daripada linear algebra yang rumit

    • Akan sangat berguna untuk mencari paper dan literatur secara semantik dengan embedding
      Namun embedding sendiri tidak memuat informasi sumber, jadi dalam pencarian RAG Anda pada akhirnya hanya bisa ditautkan ke halaman sumber
      Masalah sitasi dan verifikasi tetap ada
      Model sitasi berbasis graf seperti GraphRAG lebih maju dalam hal ini

    • Saya pernah membuat pengklasifikasi feed RSS dengan semantic search berbasis embedding
      Klasifikasi berdasarkan kategori arbitrer juga dimungkinkan
      Saat ini layanannya sudah dihentikan karena saya keluar dari AWS