Pemotongan dan penyematan data terintegrasi di Azure AI Search

Penting

Pemotongan dan vektorisasi data terintegrasi berada dalam pratinjau publik di bawah Ketentuan Penggunaan Tambahan. REST API Pratinjau 10-10-2023 menyediakan fitur ini.

Vektorisasi terintegrasi adalah ekstensi dari pengindeksan dan alur kueri di Azure AI Search. Ini menambahkan kemampuan berikut:

  • Pemotongan data selama pengindeksan
  • Konversi teks ke vektor selama pengindeksan
  • Konversi teks ke vektor selama kueri

Pemotongan data bukan persyaratan yang sulit, tetapi kecuali dokumen mentah Anda kecil, potongan diperlukan untuk memenuhi persyaratan input token model penyematan.

Manfaat utamanya adalah vektorisasi terintegrasi mempercepat pengembangan dan meminimalkan tugas pemeliharaan selama penyerapan data dan waktu kueri karena ada lebih sedikit komponen eksternal untuk dikonfigurasi dan dikelola.

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).

Menggunakan vektorisasi terintegrasi selama pengindeksan

Untuk pemotongan data dan konversi teks ke vektor, Anda mengambil dependensi pada komponen berikut:

  • Pengindeks, yang mengambil data mentah dari sumber data yang didukung dan berfungsi sebagai mesin alur.

  • Set keterampilan yang dikonfigurasi untuk:

    • Keterampilan Pemisahan Teks, digunakan untuk memotong data.
    • Keterampilan AzureOpenAIEmbedding, dilampirkan ke text-embedding-ada-002 di Azure OpenAI.
    • Atau, Anda dapat menggunakan keterampilan kustom sebagai pengganti AzureOpenAIEmbdding yang menunjuk ke model penyematan lain di Azure atau di sisi lain.
  • Indeks vektor untuk menerima konten yang dipotong dan di-vektorisasi.

Menggunakan vektorisasi terintegrasi dalam kueri

Untuk konversi teks ke vektor selama kueri, Anda mengambil dependensi pada komponen-komponen ini:

  • Vektorizer, yang ditentukan dalam skema indeks, ditetapkan ke bidang vektor, dan digunakan secara otomatis pada waktu kueri untuk mengonversi kueri teks ke vektor.
  • Kueri yang menentukan satu atau beberapa bidang vektor.
  • String teks yang dikonversi ke vektor pada waktu kueri.

Diagram komponen

Diagram berikut menunjukkan komponen vektorisasi terintegrasi.

Diagram komponen dalam alur kerja vektorisasi terintegrasi.

Alur kerja adalah alur pengindeks. Pengindeks mengambil data dari sumber data yang didukung dan memulai pengayaan data (atau AI yang diterapkan) dengan memanggil layanan Azure OpenAI atau Azure AI atau kode kustom untuk konversi teks ke vektor atau pemrosesan lainnya.

Diagram 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

Vektorisasi terintegrasi tersedia di semua wilayah dan tingkatan. Namun, jika Anda menggunakan Azure OpenAI dan keterampilan AzureOpenAIEmbedding, periksa ketersediaan regional layanan tersebut.

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 nonvektor. Untuk vektor, gugus membantu Anda memenuhi batasan input model penyematan. Untuk skenario nonvektor, Anda mungkin memiliki aplikasi pencarian gaya obrolan di mana GPT merakit respons dari gugus terindeks. Anda dapat menggunakan potongan vektorisasi atau nonvektorisasi 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 dinonchunked 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.

Mengamankan koneksi ke vektorizer dan model

Jika arsitektur Anda memerlukan koneksi privat yang melewati internet, Anda dapat membuat koneksi tautan privat bersama ke model penyematan yang digunakan oleh keterampilan selama pengindeksan dan vektorizer pada waktu kueri.

Tautan privat bersama hanya berfungsi untuk koneksi Azure-ke-Azure. Jika Anda tersambung ke OpenAI atau model eksternal lainnya, koneksi harus melalui internet publik.

Untuk skenario vektorisasi, Anda akan menggunakan:

  • openai_account untuk menyematkan model yang dihosting pada sumber daya Azure OpenAI.

  • sites untuk menyematkan model yang diakses sebagai keterampilan kustom atau vektorizer kustom. sites ID grup adalah untuk layanan Aplikasi dan fungsi Azure, yang dapat Anda gunakan untuk menghosting model penyematan yang bukan salah satu model penyematan Azure OpenAI.

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 aplikasi gaya pertanyaan dan jawaban atau obrolan. Indeks sekunder berisi informasi terperinci untuk kecocokan yang lebih spesifik, tetapi indeks induk memiliki informasi lebih lanjut dan sering kali dapat menghasilkan jawaban yang lebih lengkap. Saat kecocokan ditemukan di indeks sekunder, kueri mengembalikan dokumen induk dari indeks utama. Misalnya, dengan asumsi PDF besar sebagai dokumen sumber, indeks utama mungkin memiliki informasi dasar (judul, tanggal, penulis, deskripsi), sementara indeks sekunder memiliki potongan konten yang dapat dicari.

Langkah berikutnya