Bagikan melalui


Desain Data Grounding untuk Beban Kerja AI di Azure

Untuk aplikasi AI, pendekatan Well-Architected Framework untuk desain data harus memenuhi persyaratan nonfungsi seperti pengoperasian, biaya, dan keamanan dan mematuhi prinsip inti pilar Azure Well-Architected Framework. Ini juga harus mempertimbangkan persyaratan fungsi seperti penyerapan data, persiapan, dan validasi.

Model AI yang Anda pilih memengaruhi keputusan desain data berikutnya. Artikel ini membahas pertimbangan arsitektur utama untuk model fondasi yang memerlukan augmentasi untuk meningkatkan relevansi hasil. Model-model ini biasanya generatif.

Model AI generatif dibuat sebelumnya atau sudah dilatih sebelumnya, yang memungkinkan Anda untuk segera menggunakannya tanpa melakukan modifikasi. Namun, model out-of-the-box sering tidak memenuhi persyaratan beban kerja tertentu. Untuk mengatasi masalah ini, model ditambah dengan data khusus konteks untuk meningkatkan performanya. Misalnya, Anda dapat menggunakan model GPT dalam berbagai kasus penggunaan. Aplikasi ini termasuk mengambil informasi dari dokumen, memberikan dukungan Helpdesk IT, dan meringkas informasi yang kompleks. Untuk menggunakan model fondasi untuk memenuhi kebutuhan spesifik Anda, penting untuk memahami pertimbangan ini.

Penting

Desain data adalah proses berulang yang didasarkan pada eksperimen statistik. Aplikasi AI generatif mengirim kueri ke model yang menyertakan data perintah dan konteks. Untuk menyempurnakan desain data, data perintah dan konteks harus diulang. Proses iteratif harus mencakup praproses, memilih penyematan, dan penggugusan. Langkah-langkah ini membantu membuat data yang cocok untuk indeks. Untuk informasi selengkapnya, lihat Merancang dan mengembangkan solusi retrieval-augmented generation (RAG).

Saat Anda bereksperimen dan melakukan iterasi, ingatlah kasus penggunaan konsumsi. Sesuaikan desain data berdasarkan pola kueri aktual. Tentukan apa yang dapat diterima melalui penyempurnaan dan pengujian.

Dalam solusi, Anda dapat menggunakan kombinasi AI generatif dan model AI diskriminatif untuk memenuhi persyaratan beban kerja. Untuk informasi selengkapnya tentang data pelatihan, lihat Desain data pelatihan.

Rekomendasi

Berikut adalah ringkasan rekomendasi yang disediakan dalam artikel ini.

Rekomendasi Deskripsi
Mengantisipasi kueri pengguna. Pahami jenis pertanyaan yang diharapkan yang terkait dengan data sumber Anda dan harapan kesegarannya. Pemahaman ini membantu Anda merancang alur data dan indeks untuk menyediakan data dasar yang relevan.
Eksternalisasi data ke indeks pencarian. Alih-alih mengkueri langsung dari sistem sumber, gunakan indeks pencarian. Mengevaluasi teknologi indeks yang berbeda berdasarkan persyaratan beban kerja. Buat matriks kemampuan untuk menilai yang paling sesuai dengan kebutuhan Anda. Pertimbangkan teknologi indeks pencarian yang kuat seperti Elasticsearch atau AI Search.

Pengindeksan
Mengembangkan strategi penyerapan. Kembangkan strategi manajemen indeks komprehensif yang mencakup penyerapan dan pra-pemrosesan data. Hapus data yang berisik atau tidak relevan dengan mengatasi inkonsistensi dan duplikat serta menstandarkan ke skema umum. Mengonversi format dan jenis sumber menjadi tipe data yang memfasilitasi kueri dan analisis.

Persiapan data
Cakupan ulang volume data
Desain indeks Anda untuk relevansi maksimum. Aktifkan fitur seperti pemfilteran, pengurutan, dan penanganan metadata pada bidang tertentu untuk meningkatkan efisiensi kueri. Misalnya, beri label bidang sebagai dapat dicari hanya jika Anda ingin mencarinya. Untuk menghindari biaya penyimpanan yang tidak perlu, jangan membuat setiap bidang dapat diambil tanpa kasus penggunaan tertentu.

Desain skema
Kemampuan indeks
Kueri yang efisien
Perbarui indeks Anda untuk mencegah inferensi pada data kedaluarsa. Saat Anda memperbarui indeks, pertimbangkan untuk mengadopsi strategi penyebaran berdampingan untuk pemeliharaan. Membangun kembali indeks memastikan bahwa penghapusan dan pembaruan ditangani karena indeks menjadi himpunan data baru. Pendekatan ini memungkinkan pengujian menyeluruh data sebelum membuat indeks aktif. Saat Anda membuat perubahan pada indeks, koordinasikan modifikasi skema dengan pembaruan kode. Praktik ini memastikan transisi yang mulus.

Pemeliharaan indeks

Tipe-tipe data

Anda dapat menambah model AI generatif dengan menggunakan data konteks selama inferensi, atau mengoptimalkannya lebih lanjut melalui proses penyempurnaan. Kedua pendekatan membutuhkan data tambahan yang menyediakan model dengan konteks yang lebih banyak. Model menggunakan konteks tersebut untuk menjawab kueri pengguna dan membentuk jawaban sesuai dengan harapan. Biasanya, Anda menggunakan jenis data berikut:

  • Data sumber adalah data yang ada dalam produksi. Data ini dapat disusun, seperti data dalam database, atau semi-terstruktur, seperti file JSON. Ini juga dapat tidak terstruktur, seperti dokumen, gambar, dan file audio.

  • Data grounding berasal dari data sumber yang berisi informasi tentang topik yang tidak tercakup dalam data pelatihan awal model. Data grounding dikombinasikan dengan kueri pengguna untuk membentuk perintah yang dikirim ke model bahasa besar dalam konteks panggilan inferensi tertentu. Data lain yang dapat Anda sertakan dalam panggilan inferensi adalah perintah sistem, contoh satu bidikan atau beberapa bidikan, dan data kontekstual seperti interaksi sebelumnya.

    Data ini harus mudah dicari dan dapat diambil dengan cepat. Karena persyaratan ini, Anda harus menyimpan data dalam indeks yang dioptimalkan untuk pencarian. Indeks ini diakses secara real time saat pengguna menunggu jawabannya. Tanpa data ini, model mungkin menghasilkan hasil yang salah atau tidak berlaku untuk apa yang dicari pengguna secara khusus.

  • Menyempurnakan data adalah informasi yang digunakan untuk memengaruhi model sehingga dapat beradaptasi dengan tugas, domain, atau gaya respons tertentu untuk permintaan inferensi di masa mendatang. Misalnya, jika model diharapkan memberikan jawaban dalam gaya tata bahasa tertentu, panduan gaya tersebut akan berfungsi sebagai data penyempurnaan.

  • Data pengguna mencakup informasi yang disediakan oleh pengguna selama interaksi dengan aplikasi. Saat Anda berinteraksi dengan model generatif, interaksi stateful terjadi. Model-model ini tidak memiliki memori yang melekat dan memperlakukan setiap interaksi sebagai atomik.

    Saat Anda mengelola interaksi stateful, juga dikenal sebagai data TURN dalam aplikasi obrolan, penting untuk menyimpan data untuk waktu terpendek yang diperlukan. Idealnya, data ini harus dihancurkan setelah sesi berakhir. Namun, mungkin ada alasan operasional atau kepatuhan yang mengharuskan Anda untuk menyimpan data tertentu, seperti pertanyaan asli atau respons model, di luar durasi sesi. Jika memungkinkan, hindari menyimpan data ini melewati sesi.

Pengindeksan

Inti desain data mencakup penyimpanan dan pengelolaan data dasar secara efisien. Pendekatan ini memastikan bahwa data dapat ditambah untuk mencapai tingkat relevansi tertinggi.

Strategi AI sederhana mungkin melibatkan kueri data sumber untuk setiap interaksi pengguna. Namun, pendekatan ini tidak praktis karena biaya tinggi dan kompleksitas interaksi sumber data langsung. Sebagai gantinya, Anda harus menggunakan kembali data sumber sebagai salinan dalam indeks yang dioptimalkan untuk pencarian dan pengambilan. Tujuan dari pendekatan ini adalah untuk meningkatkan pemahaman model dan kemampuannya untuk menghasilkan respons yang relevan.

Pertimbangkan beban kerja perbankan yang menyimpan detail yang terkait dengan akun dan preferensi bank pengguna dan transaksi keuangan di penyimpanan data. Dalam skenario AI generatif yang menggunakan pola RAG, data grounding dibuat dan diindeks dengan konteks sehingga model dapat memberikan respons yang relevan. Misalnya, dengan memberikan data yang relevan tentang transaksi pengguna untuk konteks selama inferensi, model dapat menjawab pertanyaan yang terkait dengan pola pengeluaran pengguna pada kuartal terakhir.

Teknologi indeks khusus

Pertimbangkan untuk eksternalisasi data grounding ke indeks pencarian. Gunakan pendekatan ini alih-alih mengkueri langsung dari sistem sumber.

Ada manfaat menggunakan indeks pencarian. Anda dapat memodelkan dan mengubah salinan data sesuai dengan kueri yang diharapkan. Kueri langsung ke sumber utama bermasalah karena ada kemungkinan bahwa data sumber tidak dapat diakses. Indeks memastikan bahwa data tetap tersedia selama Anda dianggap relevan dengan aplikasi. Anda juga menghindari stres pada sistem data sumber. Strategi ini memastikan bahwa kueri terkait AI tidak memengaruhi kasus penggunaan utamanya.

Beberapa opsi teknologi memiliki kemampuan pengindeksan mandiri. Indeks dapat menjangkau sumber data dan menggabungkan data mereka. Untuk opsi ini, pertimbangan jaringan adalah kunci. Jika indeks perlu tersambung ke database, ada potensi masalah, seperti latensi dan keandalan jaringan.

Ada biaya awal untuk mengimpor data. Setelah data berada dalam indeks Anda, Anda tidak perlu memindahkannya lagi kecuali ada perubahan atau pembaruan. Manajemen data dari waktu ke waktu adalah aspek penting dari desain indeks. Untuk informasi selengkapnya, lihat Pemeliharaan indeks.

Indeks default atau kustom

Teknologi tertentu mendukung pembuatan indeks default secara otomatis untuk data Anda. Indeks ini dihasilkan pada penyerapan data dengan input minimal. Indeks memiliki kemampuan out-of-the-box. Indeks default mungkin dapat diterima untuk bukti konsep dan beberapa skenario produksi.

Beberapa skenario mungkin mengharuskan Anda memiliki skema indeks kustom untuk meningkatkan relevansi berdasarkan persyaratan beban kerja tertentu. Persyaratan tersebut menentukan cara Anda merancang skema, mengaktifkan kemampuan indeks, dan menyertakan metadata yang relevan.

Desain skema

Anda dapat menganggap indeks sebagai struktur yang mengatur dan mengoptimalkan data untuk pengambilan. Lebih khusus lagi, mereka mengatur data dalam dokumen dan bidang tabel. Pertimbangkan poin-poin berikut:

  • Topologi indeks. Mengevaluasi apakah akan mengalokasikan semua data dalam satu indeks atau mendistribusikan di beberapa indeks. Keputusan ini secara signifikan memengaruhi performa kueri, pemeliharaan indeks, kesederhanaan kueri, dan konfigurasi bidang yang berbeda (atau skema) di antara dokumen.

    Misalnya, pertimbangkan kueri pengguna yang meminta konten dalam bahasa tertentu. Pilihan desain data paling sederhana mungkin menerjemahkan semua bahasa ke dalam satu bahasa dan menyimpannya dalam satu indeks. Atau, data dapat disimpan dalam semua bahasa dalam satu indeks. Pilihan ini menghasilkan beberapa dokumen untuk setiap bahasa. Kemampuan pemfilteran indeks dapat digunakan untuk membatasi hasil ke bahasa yang diinginkan. Atau, setiap indeks dapat berisi versi yang diterjemahkan untuk bahasa tertentu seperti yang diharapkan dalam kueri.

    Dalam beberapa situasi, Anda mungkin memerlukan beberapa indeks pencarian. Pendekatan ini memungkinkan Anda mengoptimalkan setiap indeks secara independen untuk relevansi maksimum dari kueri pencarian Anda. Misalnya, buku pegangan karyawan SDM dan manual pemeliharaan produk melayani tujuan dan audiens yang berbeda. Dengan mengindeksnya secara terpisah, Anda dapat menyesuaikan skema dan kueri pencarian untuk masing-masing kueri, yang meningkatkan pengalaman pengguna. Pendekatan ini dapat menjadi kompleks untuk diimplementasikan dan memerlukan orkestrator untuk memfasilitasi panggilan ke setiap indeks. Komponen orkestrasi dijelaskan dalam Desain aplikasi untuk beban kerja AI di Azure.

Catatan

Pilihan antara dua topologi dan strategi segmentasi data tergantung pada persyaratan beban kerja, kasus penggunaan, dan harapan pengguna.

Melakukan kueri lintas indeks dapat menjadi tantangan dan dapat memengaruhi relevansi pencarian. Dalam skenario terburuk, mungkin ada penyaringan manual melalui hasil, memutuskan mana yang sesuai dengan kriteria. Proses ini memperkenalkan latensi dan menambah kompleksitas. Sebaliknya, pendekatan indeks tunggal lebih sederhana dan lebih mudah. Relevansi dapat ditingkatkan dengan menggunakan kemampuan indeks seperti pemfilteran.

Dalam beberapa kasus, pertimbangan kepatuhan menyebabkan kebutuhan akan indeks terpisah. Misalnya, jika persyaratan bisnis menuntut agar data terisolasi antara Eropa dan Amerika, beberapa indeks mungkin tidak dapat dihindari.

  • Desain dokumen. Sejajarkan desain data Anda dengan kueri pengguna yang diharapkan untuk mengoptimalkan relevansi. Pertimbangkan bagaimana setiap dokumen harus melayani kueri. Untuk indeks pencarian, prioritaskan dokumen yang relevan dan persingkat hasilnya ke set ringkas yang padat dikemas dengan informasi yang relevan.

  • Desain bidang. Konfigurasikan bidang indeks Anda untuk mendukung performa dan relevansi pencarian. Bidang indeks Anda harus memetakan ke atribut dokumen yang ingin Anda buat dapat dicari, diambil, dapat difilter, dan dapat diurutkan. Mereka termasuk penyematan, ID, atau data lain yang dapat meningkatkan pencarian.

Kemampuan indeks

Konfigurasikan bidang indeks pencarian untuk mengembalikan kumpulan dokumen yang paling relevan. Keputusan tergantung pada kemampuan yang didukung oleh teknologi indeks pencarian dan persyaratan beban kerja.

  • Opsi filter, pencarian, dan pengurutan. Pertimbangkan opsi ini karena terkait langsung dengan kasus penggunaan untuk augmentasi. Misalnya, dapat difilter menentukan true atau false terhadap nilai yang disediakan dalam kueri dan mengembalikan dokumen yang relevan. Untuk kemampuan pencarian, atribut menunjukkan apakah kueri pencarian dapat mereferensikan bidang . Misalnya, Anda dapat memeriksa apakah bidang teks berisi teks tertentu atau apakah bidang tersebut terkait secara matematis dengan vektor lain. Anda dapat secara opsional menetapkan bobot relatif ke bidang tersebut sebagai bagian dari kueri pencarian. Anda juga dapat membuat kumpulan hasil dapat diurutkan, yang mencantumkan hasilnya berdasarkan relevansi.

    Tradeoff. Mengaktifkan kemampuan untuk mengindeks bidang meningkatkan persyaratan ruang, memengaruhi biaya. Hanya tambahkan kemampuan yang ingin Anda gunakan.

  • Metadata. Indeks biasanya memiliki metadata yang terkait dengan bidang indeks. Metadata membantu kami memahami dan mengelola data dengan memberikan detail yang relevan tentang hal tersebut. Saat merancang indeks, pertimbangkan apakah metadata dapat diambil atau hanya digunakan untuk penentuan relevansi. Keputusan memengaruhi biaya komputasi karena proses pengindeksan yang mendasar berbeda. Metadata yang berlebihan tidak perlu meningkatkan ukuran indeks.

Ada banyak pilihan teknologi untuk pengindeksan. Banyak yang berbagi karakteristik serupa, seperti yang tercantum sebelumnya. Beberapa indeks mungkin memiliki fitur tambahan, seperti memproses analisis teks dan bahasa selama pengindeksan. Untuk membuat teks lebih cocok untuk pengindeksan dan pencarian, pecahkan teks menjadi token, konversikan ke huruf kecil, atau hapus kata berhenti.

Kueri yang efisien

Data grounding digunakan dalam aplikasi AI generatif untuk meningkatkan akurasi dan relevansi respons terhadap kueri pengguna. Pertimbangkan kueri pengguna di muka. Pahami pertanyaan apa yang dapat diajukan, siapa yang menanyakannya, dan seberapa sering mereka diajukan. Informasi ini membantu konteks formulir aplikasi dan memahami hasil apa yang mungkin relevan.

Jenis pencarian yang khas adalah:

  • Kueri vektor mencari item serupa berdasarkan representasi vektor atau titik data mereka dalam ruang dimensi tinggi.

  • Pencarian kata kunci dalam seluruh konten dokumen tekstual. Ini mengindeks dan mengkueri data teks dalam volume besar dan umumnya digunakan dalam mesin pencari, database, dan sistem manajemen dokumen.

  • Peringkat semantik meningkatkan relevansi hasil pencarian dengan menyusun ulang berdasarkan relevansi semantik mereka dengan kueri, mempromosikan kecocokan yang paling relevan secara semantik ke bagian atas daftar.

  • Pencarian hibrid menggabungkan berbagai jenis pencarian, seperti pencarian vektor, pencarian teks lengkap, dan peringkat semantik, untuk lebih meningkatkan relevansi hasil pencarian.

Untuk lebih meningkatkan performa model, gabungkan jenis pencarian.

Cara data disimpan dan diproses memengaruhi efisiensi kueri. Setiap kali data ditambahkan ke indeks, siklus komputasi diperlukan untuk pengindeksan. Jika pengindeksan dan respons terhadap kueri dilakukan pada sumber daya komputasi yang sama, mungkin ada ketidakcocokan. Idealnya, indeks harus berfokus pada tujuan utama menjawab kueri secara efisien dan menemukan dokumen yang relevan daripada pengindeksan yang berlebihan.

Biaya dan performa adalah pendorong utama desain indeks. Teknik seperti membuat salinan bayangan dapat mempercepat kueri. Namun, duplikasi data terjadi melalui indeks, yang menimbulkan biaya.

Tradeoff. Desain indeks harus mempertimbangkan biaya dan performa. Seimbangkan dengan mengoptimalkan penyimpanan dan memprioritaskan jawaban kueri yang efisien dan pengambilan dokumen yang relevan atas pengindeksan yang berlebihan.

Untuk pilihan teknologi untuk penyimpanan data, indeks pencarian, seperti Elasticsearch atau AI Search, menyediakan kemampuan pencarian yang kuat, termasuk pencarian berbasis vektorisasi dan relevansi. Atau, pertimbangkan opsi database yang mendukung jenis data yang Anda miliki dan jenis kueri yang Anda butuhkan karena dioptimalkan untuk kueri. Pada akhirnya, ini tentang kemampuan yang ditawarkan oleh opsi dan investasi membangun set keterampilan baru di tim.

Penyiapan data

Data grounding didasarkan pada data yang ada, yang perlu dibuat cocok untuk kueri semantik. Beberapa kueri untuk menemukan dokumen yang relevan dalam indeks dapat dicocokkan secara harfiah. Kueri lain memerlukan pencocokan fuzzy.

Sebelum data kontekstual siap mendukung permintaan inferensi ke model, ada langkah pra-pemrosesan di muka yang bertujuan membersihkan, mengubah, dan menyusun data. Tujuannya adalah untuk mengurangi kebisingan dan bias, mencari secara efisien, dan memaksimalkan relevansi pencarian indeks. Alat atau logika pilihan untuk pra-pemrosesan tergantung pada tim beban kerja, tetapi ada beberapa pertimbangan luas.

Cakupan ulang volume data

Cakupan ulang volume data melibatkan penyesuaian cakupan data dengan memperluas atau mempersempitnya untuk membuat indeks yang ketat sehingga relevansi meningkat. Efisiensi kueri adalah perhatian signifikan lainnya. Menyimpan data yang tidak perlu secara negatif memengaruhi kedua tujuan tersebut. Misalnya, pertimbangkan data lokasi untuk pengguna. Jika hanya bagian kota yang relevan, optimalkan dengan menyimpan hanya teks kota alih-alih teks lengkap yang mewakili alamat.

Berikut adalah beberapa pertimbangan luas.

  • Eliminasi data. Pertahankan hanya apa yang penting untuk fungsionalitas produk, membuang detail yang tidak perlu. Berikut ini adalah beberapa contoh umum.

    • Eliminasi kualitatif. Salah satu cara untuk beralih dari cakupan luas ke yang lebih sempit lebih relatif adalah dengan menghilangkan data berkualitas rendah dengan memilih untuk mengindeks data sumber yang relevan secara selektif. Tantangannya terletak pada identifikasi konten yang tidak relevan secara terprogram untuk skenario AI. Meskipun konten mungkin berguna untuk niat lain, seperti audit atau kelengkapan, termasuk dalam beban kerja AI berisiko mengurangi relevansi. Salah satu cara untuk menandai konten tersebut adalah dengan menggunakan metadata yang dapat digunakan pada waktu populasi indeks jika konten harus ditambahkan ke indeks.

    • Data sensitif. Menyalin data dari data sumber ke indeks mungkin juga membawa informasi sensitif. Hormati label klasifikasi data yang diterapkan di sumber dan pertahankan tingkat sensitivitas yang sama dengan himpunan data ini. Saat Anda berurusan dengan data yang memiliki informasi pribadi, jangan simpan data pribadi kecuali Anda memerlukannya untuk menanggapi kueri. Misalnya, terapkan klasifikasi data saat mengindeks email. Jika email ditandai sebagai sensitif, hindari menyimpannya di penyimpanan data sensitivitas umum.

    • Menormalkan dan menstandarkan teks. Mengatasi kesalahan ketik dan menstandarkan teks sangat penting untuk indeks berbasis kata kunci. Kasus penggunaan potensial adalah terjemahan, terutama saat berhadapan dengan konten multibahasa.

      Jenis pra-pemrosesan ini juga diperlukan untuk penyematan, yang memungkinkan Anda membandingkan kata-kata berdasarkan konteks dan signifikansinya. Namun, satu tantangan terjadi dari sensitivitas kasus kata-kata. Konteks penting, dan bisa ada nuansa, seperti perbedaan semantik antara kata sifat "civic" dan kata benda yang tepat "(Honda) Civic."

  • Penambahan data. Konteks penambahan sering bergantung pada metadata, yang biasanya tidak ada dalam data sumber. Misalnya, pertimbangkan cuplikan teks. Manusia dalam perulangan atau AI membuat pertanyaan relevan yang dapat dijawab menggunakan konteks cuplikan. Saat Anda menyimpan pertanyaan ini bersama data dasar, kueri pengguna dapat dibandingkan dengan kueri yang dihasilkan untuk mengevaluasi relevansi dokumen. Kolokasi data baru ini dengan data grounding adalah cara yang ampuh untuk memperkaya data yang dipotong.

    Kasus penggunaan lain adalah entitas penambahan yang ditemukan saat menganalisis data yang tidak terstruktur. Entitas ini dapat ditambahkan ke indeks dan digunakan untuk mencari dan memfilter sistem eksternal atau digunakan untuk melakukan perhitungan kompleks. Misalnya, jika kami mengidentifikasi nama perusahaan, kami mungkin mencari industrinya atau informasi relevan lainnya dari database eksternal dan menambahkannya ke indeks kami.

    Pertimbangkan untuk mempertahankan silsilah data. Penting bagi beban kerja AI untuk melacak sumber data karena informasi tersebut dapat hilang ketika sistem menggabungkan berbagai komponen ke dalam satu indeks. Informasi ini mungkin tidak pernah diekspos ke pengguna, tetapi informasi tentang asal data sangat penting untuk tim tata kelola data internal. Metadata ini belum tentu untuk model. Ini membantu menjaga transparansi dan akuntabilitas.

    Tradeoff. Di satu sisi, menambahkan data baru meningkatkan kemungkinan menemukan relevansi dalam himpunan data. Namun, manfaat ini dikenakan biaya. Secara khusus, sumber daya komputasi yang diperlukan untuk memproses dan mengelola bidang tersebut. Waktu yang dihabiskan untuk mengumpulkan dan menyimpan data bisa menjadi substansial. Ketahuilah bahwa kelebihan beban dengan bidang yang tidak perlu dapat membatasi sumber daya.

  • Memproses data teks. Pertimbangkan teknik seperti sinonim, stemming, dan kedekatan semantik untuk meningkatkan relevansi. Delegasikan teknik ini ke alat jika memungkinkan. Beberapa teknologi, seperti pencarian Elasticsearch atau AI, menawarkan fitur tersebut untuk data pra-pemrosesan selama pembuatan indeks.

Morfing jenis data

Bidang indeks di datastore ditik data untuk melayani tujuan tertentu. Bidang numerik memfasilitasi kueri yang efisien, bidang teks memungkinkan pencarian berbasis teks, dan bidang Boolean menangani informasi biner.

Data sumber biasanya ada di berbagai jenis data, seperti teks, gambar, dan tabel, dan pemrosesan bahwa data mungkin kompleks. Anda mungkin harus mengekstrak pasangan kunci-nilai, mengidentifikasi judul bagian untuk potongan semantik, mengenali pengidentifikasi tertentu, dan sebagainya.

Misalnya, jika data sumber Anda berisi gambar, data tersebut tidak dapat dicari secara inheren. Mereka perlu dikonversi menjadi representasi vektor untuk memungkinkan pencarian dan perbandingan semantik yang efisien. Jika relevansi terkait dengan data di balik format ini, investasikan ekstraksi data. Mengubah jenis data sumber menjadi jenis data fungsi yang membantu dalam kueri dan analisis.

Memotong dan menyematkan

Data grounding sering berisi informasi dalam jumlah besar, tetapi model hanya dapat melakukan tokenisasi dalam jumlah tertentu. Pemotongan adalah strategi desain data penting karena melibatkan pembagian dokumen menjadi bagian yang lebih kecil yang dapat diproses dan diindeks secara individual. Strategi ini memungkinkan pencarian dan pengambilan yang efisien meskipun ada keterbatasan token. Periksa jumlah maksimum token yang dapat ditangani model bahasa besar pilihan Anda. Potongan Anda tidak boleh melebihi batas itu.

Ada banyak teknik untuk menerapkan pemotongan. Untuk informasi selengkapnya, lihat Pendekatan penggugusan.

Penyematan juga merupakan strategi desain lain yang memungkinkan kemampuan pencarian vektor. Penyematan adalah representasi matematika dari objek yang dihasilkan oleh model AI berdasarkan data dasar. Mereka disimpan dalam indeks dan menambahkan lebih banyak konteks yang membantu kueri kompleks menghasilkan hasil dengan relevansi yang lebih baik. Untuk informasi selengkapnya, lihat Membuat penyematan.

Pemeliharaan indeks

Pemeliharaan dari waktu ke waktu adalah aspek penting dari desain indeks. Untuk data statis, di mana dokumen tetap tidak berubah, pemeliharaan indeks mudah dilakukan. Tapi, sebagian besar indeks bersifat dinamis. Seiring waktu mungkin ada data baru yang ditambahkan dan skema indeks mungkin memerlukan bidang baru. Sebaliknya, beberapa data dan bidang mungkin perlu dihapus jika tidak lagi relevan. Opsi teknologi yang umum digunakan untuk pengindeks memiliki fitur untuk menangani pembaruan secara otomatis. Untuk informasi tentang karakteristik indeks yang direkomendasikan, lihat Pertimbangan untuk indeks pencarian.

Kriteria pemeliharaan

  • Pembaruan fungsionalitas. Indeks mungkin perlu diperbarui jika ada perubahan fungsionalitas aplikasi. Situasi ini terjadi ketika pertanyaan baru diajukan. Untuk mengakomodasi perubahan ini, Anda mungkin perlu menambahkan bidang baru ke indeks atau mengubah opsi pemfilteran, pencarian, atau pemrosesan teks pada bidang yang ada.

  • Penghapusan data. Penghapusan data menantang karena Anda perlu menganalisis data yang tersedia dan hilang untuk menentukan apa yang tidak relevan. Untuk mengecualikan konten yang kedaluarsa dari indeks, pertimbangkan penggunaan metadata yang mencegah mesin pencari mengindeks halaman atau konten tertentu. Selain itu, saat Anda memilih opsi penyimpanan, pilih teknologi yang mendukung penghapusan secara efisien. Misalnya, penyimpanan blob mendukung penghapusan sementara. Jika Anda menggunakan pencarian AI dan memuat dokumen dari penyimpanan, penyimpanan blob dapat mendeteksi dokumen yang dihapus dan menghapus entri yang sesuai. Pendekatan ini tidak ideal tetapi perlu ketika pengindeksan ulang mahal karena ukuran indeks yang besar.

    Konsep hak untuk dilupakan mengacu pada hak individu untuk menghapus data pribadi mereka dari platform atau database online. Pastikan Anda memiliki kebijakan untuk menghapus data pribadi jika digunakan untuk pelatihan. Anda dapat mengatasi persyaratan ini dengan mengindeks kembali himpunan data Anda. Jika data dihapus dari database transaksi, pembaruan indeks berikutnya mencerminkan perubahan tersebut.

  • Mempertahankan kompatibilitas. Aplikasi sering memerlukan struktur data tertentu, dan penyimpangan apa pun dapat mengganggu fungsionalitasnya. Misalnya, jika bidang dihapus dan aplikasi meminta bidang tersebut, maka kondisi kegagalan mungkin terjadi. Seperti yang Anda lakukan untuk database tradisional, adopsi pola pikir kompatibilitas ke depan untuk indeks dan pertahankan tingkat ketelitian. Saat Anda membuat perubahan pada indeks, seperti menambahkan atau menghapus bidang, koordinasikan perubahan skema dengan pembaruan kode.

    Tradeoff. Menambahkan, memperbarui, dan menghapus tindakan terhadap indeks mahal. Pertimbangkan frekuensi pembaruan dan biaya untuk performa berdasarkan ukuran dan efisiensi penyimpanan data. Menyimpan dokumen usang dalam indeks menimbulkan biaya penyimpanan, pemeliharaan, dan kueri.

Strategi penyebaran

Strategi penyebaran. Ada dua strategi utama untuk memperbarui indeks.

  • Penyebaran berdampingan. Dalam pendekatan ini, indeks baru yang memiliki pembaruan hidup bersama yang sudah ada. Setelah indeks baru diuji dan beroperasi penuh, kueri dialihkan untuk menggunakan indeks yang diperbarui. Aplikasi tetap tidak menyadari sakelar ini karena hanya berinteraksi dengan indeks baru. Jika Anda menemukan masalah lain setelah indeks baru disebarkan ke penggunaan produksi, Anda dapat kembali ke indeks lama. Pendekatan ini meminimalkan waktu henti dan memastikan ketersediaan berkelanjutan.

    Pembaruan berdampingan berfungsi dengan baik ketika biaya pembangunan ulang indeks wajar dan dapat diselesaikan dalam jangka waktu yang wajar. Secara umum, berusaha untuk menjaga indeks seefisien mungkin karena indeks yang lebih besar menggunakan lebih banyak sumber daya. Pantau dan pertahankan indeks secara teratur untuk menghindari pertumbuhan yang tidak perlu.

Tip

Saat Anda melakukan tugas pra-pemrosesan data intensif sumber daya seperti pengenalan entitas, pencarian, dan perhitungan, pertimbangkan untuk menyimpan salinan hasilnya. Pendekatan ini memastikan bahwa ketika Anda perlu membangun kembali indeks, Anda dapat menghindari pengulangan semua komputasi. Beberapa perhitungan mungkin tidak lagi berlaku karena penghapusan atau pembaruan, tetapi banyak yang akan tetap relevan.

  • Penyebaran pembaruan di tempat. Pendekatan ini secara langsung memodifikasi indeks yang ada. Menghemat biaya duplikasi dapat bermanfaat, tetapi juga menimbulkan risiko karena potensi waktu henti dan operasi intensif sumber daya. Jika indeks Anda besar dan membangunnya kembali dari awal melebihi frekuensi pembaruan yang Anda inginkan, Anda dapat mempertimbangkan untuk menggunakan pembaruan di tempat. Namun, pendekatan ini menantang dan membawa risiko melanggar tujuan tingkat layanan (SLO) Anda.

    Tradeoff. Evaluasi biaya untuk melakukan penyebaran indeks berdampingan terhadap melakukan pembaruan di tempat yang menyebarkan penambahan, pembaruan, dan penghapusan. Dalam kebanyakan kasus, Anda harus menggunakan pembaruan berdampingan alih-alih pembaruan di tempat. Saat indeks dibangun kembali, proses secara efektif menangani penghapusan dan pembaruan karena membuat himpunan data yang sama sekali baru. Strategi ini memberikan kesempatan untuk menguji data. Meskipun penyebaran berdampingan untuk sementara menduplikasi data dan dikenakan biaya tambahan, manfaat dalam pengujian dan evaluasi performa sering membenarkan persyaratan penyimpanan ini. Sebelum Anda membuat indeks langsung, periksa data untuk memastikan bahwa indeks selaras dengan harapan Anda.

  • Pembaruan terjadwal. Alih-alih mempertahankan komunikasi real-time berkelanjutan dengan sumber data, Anda dapat me-refresh data grounding secara berkala. Pendekatan ini memastikan bahwa data tetap relevan melalui pembaruan terjadwal, yang menghilangkan kebutuhan akan interaksi konstan.

  • Pembaruan darurat. Situasi tak terduga dapat terjadi, seperti data yang tidak diinginkan secara tidak sengaja bocor ke dalam indeks pencarian. Jika masalah ini terjadi, Anda mungkin perlu segera mengambil tindakan, seperti menghapus dokumen tertentu atau menyesuaikan data dalam indeks. Terlepas dari strategi penyebaran yang Anda pilih, seperti pembaruan berdampingan atau pembaruan di tempat, selalu rencanakan kemungkinan operasi darurat.

  • Memperbarui indeks sendiri. Jika teknologi pengindeksan Anda mendukung pembaruan indeks secara otomatis agar tetap sinkron dengan sumber data eksternal, teknologi tersebut mungkin dapat memproses perubahan data secara otomatis. Perubahan data termasuk penambahan atau penghapusan, tanpa intervensi manual. Perlu diingat bahwa setiap perubahan memicu operasi dalam indeks, yang menggunakan sumber daya. Indeks mungkin tetap responsif terhadap kueri, tetapi kapasitasnya untuk menanganinya dapat dikurangi selama proses pembaruan.

Operasi kesegaran

Ukur jendela waktu antara pembuatan atau modifikasi data sumber dan penambahannya ke indeks sebagai indikator, dan lacak terhadap SLO. Indikator ini mendorong keputusan data seputar memperbarui desain alur data Anda untuk memastikan bahwa data tersedia dalam indeks Anda saat Anda membutuhkannya. Indeks hanya boleh segar seperti yang diperlukan.

Untuk menjaga kesegaran, Anda dapat membangun kembali indeks sepenuhnya, atau memperbaruinya secara bertahap agar tetap disinkronkan dengan sumber data asli. Kedua metode memastikan bahwa indeks tetap terkini dan akurat.

Investasi di muka dalam menyempurnakan model mungkin lebih murah daripada menerapkan pola RAG, rekayasa cepat, dan metode augmentasi data.

Langkah berikutnya