Pemotongan dan penyematan data terintegrasi di Azure AI Search

Penting

Fitur ini berada di pratinjau publik dalam Ketentuan Penggunaan Tambahan. REST API Pratinjau 10-10-2023 mendukung fitur ini.

Vektorisasi terintegrasi menambahkan penggugusan data dan penyematan teks ke vektor ke keterampilan dalam pengindeksan berbasis pengindeksan. Ini juga menambahkan konversi teks ke vektor ke kueri.

Kemampuan ini hanya pratinjau. Dalam versi pencarian vektor yang tersedia secara umum dan dalam versi pratinjau sebelumnya, potongan data dan vektorisasi mengandalkan komponen eksternal untuk penggugusan dan vektor, dan kode aplikasi Anda harus menangani dan mengoordinasikan setiap langkah. Dalam pratinjau ini, penggugusan dan vektorisasi dibangun ke dalam pengindeksan melalui keterampilan dan pengindeks. Anda dapat menyiapkan set keterampilan yang memotong data menggunakan keterampilan Pemisahan Teks, lalu memanggil model penyematan menggunakan keterampilan AzureOpenAIEmbedding atau keterampilan kustom. Setiap vektorizer yang digunakan selama pengindeksan juga dapat dipanggil pada kueri untuk mengonversi teks ke vektor.

Untuk pengindeksan, vektorisasi terintegrasi memerlukan:

Untuk kueri:

  • Vektorizer yang ditentukan dalam skema indeks, ditetapkan ke bidang vektor, dan digunakan secara otomatis pada waktu kueri untuk mengonversi kueri teks ke vektor.

Konversi vektor adalah satu arah: teks ke vektor. Tidak ada konversi vektor ke teks untuk kueri atau hasil (misalnya, Anda tidak dapat mengonversi hasil vektor menjadi string yang dapat dibaca manusia).

Diagram komponen

Diagram berikut menunjukkan komponen vektorisasi terintegrasi.

Diagram komponen dalam alur kerja vektorisasi terintegrasi.

Berikut adalah daftar periksa komponen yang bertanggung jawab atas vektorisasi terintegrasi:

  • Sumber data yang didukung untuk pengindeksan berbasis pengindeks.
  • Indeks yang menentukan bidang vektor, dan definisi vektorizer yang ditetapkan ke bidang vektor.
  • Set keterampilan yang menyediakan keterampilan Pemisahan Teks untuk pemotongan data, dan keterampilan untuk vektorisasi (baik keterampilan AzureOpenAiEmbedding atau keterampilan kustom yang menunjuk ke model penyematan eksternal).
  • Secara opsional, proyeksi indeks (juga didefinisikan dalam set keterampilan) untuk mendorong data yang dipotong ke indeks sekunder
  • Model penyematan, disebarkan di Azure OpenAI atau tersedia melalui titik akhir HTTP.
  • Pengindeks untuk mendorong proses secara end-to-end. Pengindeks juga menentukan jadwal, pemetaan bidang, dan properti untuk deteksi perubahan.

Daftar periksa ini berfokus pada vektorisasi terintegrasi, tetapi solusi Anda tidak terbatas pada daftar ini. Anda dapat menambahkan lebih banyak keterampilan untuk pengayaan AI, membuat penyimpanan pengetahuan, menambahkan peringkat semantik, menambahkan penyetelan relevansi, dan fitur kueri lainnya.

Availabilitas dan harga

Ketersediaan vektorisasi terintegrasi didasarkan pada model penyematan. Jika Anda menggunakan Azure OpenAI, periksa ketersediaan regional.

Jika Anda menggunakan keterampilan kustom dan mekanisme hosting Azure (seperti aplikasi fungsi Azure, Azure Web App, dan Azure Kubernetes), periksa halaman produk menurut wilayah untuk ketersediaan fitur.

Pemotongan data (keterampilan Pemisahan Teks) gratis dan tersedia di semua layanan Azure AI di semua wilayah.

Catatan

Beberapa layanan pencarian lama yang dibuat sebelum 1 Januari 2019 disebarkan pada infrastruktur yang tidak mendukung beban kerja vektor. Jika Anda mencoba menambahkan bidang vektor ke skema dan mendapatkan kesalahan, itu adalah hasil dari layanan yang kedaluarsa. Dalam situasi ini, Anda harus membuat layanan pencarian baru untuk mencoba fitur vektor.

Skenario apa yang dapat mengintegrasikan dukungan vektorisasi?

  • Membagi dokumen besar menjadi potongan, berguna untuk skenario vektor dan non-vektor. Untuk vektor, gugus membantu Anda memenuhi batasan input model penyematan. Untuk skenario non-vektor, Anda mungkin memiliki aplikasi pencarian gaya obrolan di mana GPT merakit respons dari gugus terindeks. Anda dapat menggunakan potongan vektorisasi atau non-vektorisasi untuk pencarian gaya obrolan.

  • Bangun penyimpanan vektor di mana semua bidang adalah bidang vektor, dan ID dokumen (diperlukan untuk indeks pencarian) adalah satu-satunya bidang string. Kueri penyimpanan vektor untuk mengambil ID dokumen, lalu mengirim bidang vektor dokumen ke model lain.

  • Gabungkan bidang vektor dan teks untuk pencarian hibrid, dengan atau tanpa peringkat semantik. Vektorisasi terintegrasi menyederhanakan semua skenario yang didukung oleh pencarian vektor.

Kapan menggunakan vektorisasi terintegrasi

Sebaiknya gunakan dukungan vektorisasi bawaan Azure AI Studio. Jika pendekatan ini tidak memenuhi kebutuhan Anda, Anda dapat membuat pengindeks dan set keterampilan yang memanggil vektorisasi terintegrasi menggunakan antarmuka terprogram Azure AI Search.

Cara menggunakan vektorisasi terintegrasi

Untuk vektorisasi khusus kueri:

  1. Tambahkan vektorizer ke indeks. Ini harus menjadi model penyematan yang sama yang digunakan untuk menghasilkan vektor dalam indeks.
  2. Tetapkan vektorizer ke profil vektor, lalu tetapkan profil vektor ke bidang vektor.
  3. Merumuskan kueri vektor yang menentukan string teks untuk di-vektorisasi.

Skenario yang lebih umum - pemotongan dan vektorisasi data selama pengindeksan:

  1. Buat koneksi sumber data ke sumber data yang didukung untuk pengindeksan berbasis pengindeks.
  2. Buat set keterampilan yang memanggil keterampilan Pemisahan Teks untuk pemotongan dan AzureOpenAIEmbeddingModel atau keterampilan kustom untuk mem-vektorisasi gugus.
  3. Buat indeks yang menentukan vektorizer untuk waktu kueri, dan tetapkan ke bidang vektor.
  4. Buat pengindeks untuk mendorong semuanya, mulai dari pengambilan data, hingga eksekusi set keterampilan, melalui pengindeksan.

Secara opsional, buat indeks sekunder untuk skenario tingkat lanjut di mana konten yang dipotong berada dalam satu indeks, dan tidak dipotong dalam indeks lain. Indeks terpotong (atau indeks sekunder) berguna untuk aplikasi RAG.

Tip

Coba wizard Impor dan vektorisasi data baru di portal Azure untuk menjelajahi vektorisasi terintegrasi sebelum menulis kode apa pun.

Atau, konfigurasikan buku catatan Jupyter untuk menjalankan alur kerja yang sama, sel demi sel, untuk melihat cara kerja setiap langkah.

Batasan

Pastikan Anda mengetahui kuota dan batasan Azure OpenAI untuk menyematkan model. Azure AI Search memiliki kebijakan coba lagi, tetapi jika kuota habis, coba lagi gagal.

Batas token per menit Azure OpenAI adalah per model, per langganan. Ingatlah hal ini jika Anda menggunakan model penyematan untuk beban kerja kueri dan pengindeksan. Jika memungkinkan, ikuti praktik terbaik. Memiliki model penyematan untuk setiap beban kerja, dan coba sebarkan dalam langganan yang berbeda.

Di Azure AI Search, ingatlah bahwa ada batas layanan berdasarkan tingkat dan beban kerja.

Terakhir, fitur berikut saat ini tidak didukung:

Manfaat vektorisasi terintegrasi

Berikut adalah beberapa manfaat utama dari vektorisasi terintegrasi:

  • Tidak ada potongan data terpisah dan alur vektorisasi. Kode lebih mudah ditulis dan dikelola.

  • Mengotomatiskan pengindeksan end-to-end. Saat data berubah dalam sumber (seperti di Azure Storage, Azure SQL, atau Cosmos DB), pengindeks dapat memindahkan pembaruan tersebut melalui seluruh alur, dari pengambilan, hingga pemecahan dokumen, melalui pengayaan AI opsional, potongan data, vektorisasi, dan pengindeksan.

  • Memproyeksikan konten yang dipotong ke indeks sekunder. Indeks sekunder dibuat seperti yang Anda lakukan pada indeks pencarian apa pun (skema dengan bidang dan konstruksi lainnya), tetapi diisi bersama dengan indeks utama oleh pengindeks. Konten dari setiap dokumen sumber mengalir ke bidang dalam indeks primer dan sekunder selama eksekusi pengindeksan yang sama.

    Indeks sekunder ditujukan untuk pemotongan data dan aplikasi Retrieval Augmented Generation (RAG). Dengan asumsi PDF besar sebagai dokumen sumber, indeks utama mungkin memiliki informasi dasar (judul, tanggal, penulis, deskripsi), dan indeks sekunder memiliki potongan konten. Vektorisasi pada tingkat potongan data memudahkan untuk menemukan informasi yang relevan (setiap gugus dapat dicari) dan mengembalikan respons yang relevan, terutama dalam aplikasi pencarian gaya obrolan.

Indeks yang dipotong

Pemotongan adalah proses membagi konten menjadi bagian (gugus) yang lebih kecil yang dapat dikelola yang dapat diproses secara independen. Pemotongan diperlukan jika dokumen sumber terlalu besar untuk ukuran input maksimum penyematan atau model bahasa besar, tetapi Anda mungkin menemukannya memberi Anda struktur indeks yang lebih baik untuk pola RAG dan pencarian gaya obrolan.

Diagram berikut menunjukkan komponen pengindeksan yang dipotong.

Diagram alur kerja pemotongan dan vektorisasi.

Langkah berikutnya