Hasilkan penyematan

Azure AI services
Pencarian Azure AI
Azure OpenAI Service
Azure Machine Learning

Sekarang setelah Anda memecah dokumen Anda menjadi potongan-potongan dan memperkaya gugus, langkah selanjutnya adalah menghasilkan penyematan untuk gugus tersebut dan bidang metadata apa pun yang Anda rencanakan untuk melakukan pencarian vektor. Penyematan adalah representasi matematika objek, seperti teks. Ketika jaringan neural sedang dilatih, banyak representasi objek dibuat dan setiap representasi memiliki koneksi ke objek lain dalam jaringan. Penyematan adalah salah satu representasi objek yang dipilih karena menangkap arti semantik objek.

Karena penyematan adalah representasi matematika dari objek tersebut dan representasi tersebut memiliki koneksi ke representasi objek lain, Anda dapat membandingkan objek secara matematis. Contoh terkenal untuk menunjukkan bagaimana penyematan menangkap arti semantik dan hubungan antara satu sama lain adalah:

embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")

Penyematan dibandingkan satu sama lain menggunakan gagasan kesamaan dan jarak. Diagram berikut menggambarkan bagaimana penyematan dapat dibandingkan.

Diagram memperlihatkan bagaimana vektor dibandingkan.

Gambar 1. Membandingkan penyematan

Dalam solusi Retrieval-Augmented Generation (RAG), Anda sering menyematkan kueri pengguna menggunakan model penyematan yang sama dengan potongan Anda dan mencari vektor yang relevan dari database Anda untuk mengembalikan gugus yang paling relevan secara semantik. Teks asli potongan yang relevan kemudian diteruskan ke model bahasa besar sebagai data grounding.

Catatan

Fitur vektor ini menekankan pentingnya membersihkan gugus sehingga kedekatan matematika dapat dilacak lebih dekat dengan relevansi semantik.

Artikel ini adalah bagian dari beberapa seri. Baca pengantar.

Pentingnya model penyematan

Model penyematan yang Anda pilih dapat memiliki efek signifikan pada relevansi hasil pencarian vektor Anda. Salah satu faktor utama yang harus Anda pertimbangkan saat memilih model penyematan adalah kosakata model. Setiap model penyematan dilatih dengan kosakata tertentu. Misalnya, ukuran kosakata BERT adalah sekitar 30.000 kata.

Kosakata model penyematan penting karena bagaimana model penyematan memperlakukan kata-kata yang tidak ada dalam kosakata mereka. Meskipun kata tidak ada dalam kosakatanya, model masih perlu menghitung vektor untuk itu. Untuk melakukan ini, banyak model memecah kata-kata menjadi subkata, yang mereka perlakukan sebagai token yang berbeda atau mereka menggabungkan vektor untuk subkata untuk membuat satu penyematan.

Diagram yang menunjukkan kata histogram dipecah menjadi subkata berikut: miliknya, ta, dan saya.

Gambar 2. Memecah kata yang tidak diketahui menjadi subkata

Mari kita ambil contoh fiktif di mana kata "histamine" tidak ada dalam kosakata model penyematan. "Histamine" memiliki arti semantik sebagai bahan kimia pelepasan tubuh Anda, yang menyebabkan banyak gejala alergi. Karena model penyematan tidak mengandung "histamine", model tersebut mungkin memecahnya menjadi subkata yang ada dalam kosakatanya seperti "his", "ta", dan "mine". Arti semantik dari subkata ini tidak dekat dengan arti "histamin". Nilai vektor individu atau agregat subword menghasilkan kecocokan vektor yang lebih buruk daripada jika "histamin" berada dalam kosakata model.

Memilih model penyematan

Menentukan model penyematan yang tepat untuk kasus penggunaan Anda adalah aktivitas manusia. Tumpang tindih dengan kosakata model penyematan dengan kata-kata data Anda harus menjadi faktor utama yang Anda pertimbangkan saat memilih model penyematan Anda.

Diagram alur memilih model penyematan.

Gambar 3. Memilih alur model penyematan

Hal pertama yang harus Anda tentukan adalah apakah konten Anda khusus domain. Misalnya, apakah dokumen Anda khusus untuk kasus penggunaan, organisasi Anda, atau industri? Cara yang baik untuk menentukan kekhususan domain adalah dengan melihat apakah entitas dan kata kunci dalam konten Anda umumnya tersedia atau dapat ditemukan di internet. Jika ya, kemungkinan model penyematan umum melakukannya.

Konten umum atau non-domain khusus

Saat Anda memilih model penyematan umum, tempat yang baik untuk memulai adalah papan peringkat Hugging Face. Situs ini menyediakan peringkat model penyematan terbaru. Evaluasi cara kerja model dengan data Anda, dimulai dengan model peringkat teratas.

Konten khusus domain

Untuk konten yang khusus untuk domain, langkah pertama adalah menentukan apakah ada model khusus domain yang tersedia yang dapat Anda gunakan. Bayangkan, misalnya, bahwa data Anda berada di domain biomedis. Anda harus mempertimbangkan untuk menggunakan model BioGPT, yang merupakan model bahasa yang telah dilatih sebelumnya pada korpus besar literatur biomedis. Model ini ditujukan untuk penambangan dan pembuatan teks biomedis. Jika model domain tersedia, mulailah dengan mengevaluasi cara kerja model ini dengan data Anda.

Jika tidak ada model khusus domain yang tersedia, atau model khusus domain tidak berkinerja baik, opsi berikutnya adalah menyempurnakan model penyematan umum dengan kosakata khusus domain Anda.

Penting

Untuk model apa pun yang Anda pilih, Anda perlu memverifikasi bahwa lisensi cocok untuk kebutuhan Anda dan model menyediakan dukungan bahasa yang diperlukan.

Mengevaluasi model penyematan

Dua cara efektif untuk mengevaluasi model penyematan adalah memvisualisasikan penyematan dan mengevaluasi jarak antara vektor pertanyaan dan gugus.

Memvisualisasikan penyematan

Anda dapat menggunakan pustaka seperti t-SNE untuk memplot vektor untuk gugus dan pertanyaan Anda pada grafik X-Y. Anda kemudian dapat menentukan seberapa jauh potongan-potongan tersebut satu sama lain dan pertanyaannya. Gambar menunjukkan vektor gugus yang diplot. Dua panah di dekat satu sama lain mewakili dua vektor gugus sementara panah lainnya mewakili vektor pertanyaan. Anda dapat menggunakan visualisasi ini untuk memahami seberapa jauh pertanyaannya dari gugus.

Visualisasi penyematan. Gambar menunjukkan sekelompok titik biru yang diplot pada skala X-Y.

Gambar 4. Merencanakan penyematan

Menghitung jarak penyematan

Cara terprogram untuk mengevaluasi seberapa baik model penyematan Anda bekerja dengan pertanyaan dan gugus Anda adalah dengan menghitung jarak antara vektor pertanyaan dan vektor gugus. Anda dapat menggunakan jarak Euclidean atau jarak Manhattan.

Menyematkan ekonomi

Saat memilih model penyematan, ada trade-off antara performa dan biaya. Model penyematan yang lebih besar biasanya memiliki performa yang lebih baik pada tolok ukur himpunan data. Namun, peningkatan performa dikenakan biaya. Vektor yang lebih besar membutuhkan lebih banyak ruang untuk disimpan dalam database vektor, dan memerlukan lebih banyak sumber daya dan waktu komputasi saat membandingkan penyematan. Model penyematan yang lebih kecil biasanya memiliki performa yang lebih rendah pada tolok ukur yang sama. Mereka membutuhkan lebih sedikit ruang dalam database vektor Anda, dan membutuhkan lebih sedikit komputasi dan waktu saat membandingkan penyematan.

Saat merancang sistem, Anda harus memperhitungkan biaya penyematan dalam hal penyimpanan, komputasi, dan persyaratan performa. Memvalidasi performa model melalui eksperimen sangat penting. Tolok ukur yang tersedia untuk umum terutama merupakan himpunan data akademik. Sebagian besar hasil tidak dapat langsung ditransposisikan ke data bisnis dan kasus penggunaan. Tergantung pada persyaratannya, Anda dapat mendukung performa dibandingkan biaya, atau menerima trade-off dari performa yang cukup baik dengan imbalan biaya yang lebih rendah.

Langkah berikutnya