View a markdown version of this page

Pengayaan semantik otomatis untuk Tanpa Server - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pengayaan semantik otomatis untuk Tanpa Server

Gambaran umum

Fitur pengayaan semantik otomatis dapat membantu meningkatkan relevansi pencarian hingga 20% dibandingkan pencarian leksikal. Pengayaan semantik otomatis menghilangkan beban berat yang tidak terdiferensiasi dalam mengelola infrastruktur model ML (pembelajaran mesin) Anda sendiri dan integrasi dengan mesin pencari. Fitur ini tersedia untuk ketiga jenis koleksi tanpa server: Search, Time Series, dan Vector.

Konsep pencarian semantik

Mesin pencari tradisional mengandalkan pencocokan kata ke kata (disebut sebagai pencarian leksikal) untuk menemukan hasil untuk kueri. Meskipun ini bekerja dengan baik untuk kueri tertentu seperti nomor model televisi, mungkin tidak mengembalikan hasil yang relevan untuk pencarian yang lebih abstrak. Misalnya, saat mencari “sepatu untuk pantai,” pencarian leksikal hanya mencocokkan kata-kata individual “sepatu,” “pantai,” “untuk,” dan “the” dalam item katalog, berpotensi kehilangan produk yang relevan seperti “sandal tahan air” atau “sepatu selancar” yang tidak berisi istilah pencarian yang tepat.

Pencarian semantik mengembalikan hasil kueri yang menggabungkan tidak hanya pencocokan kata kunci, tetapi maksud dan makna kontekstual dari pencarian pengguna. Misalnya, jika pengguna mencari “cara mengobati sakit kepala,” sistem pencarian semantik mungkin mengembalikan hasil berikut:

  • Obat migrain

  • Teknik manajemen nyeri

  • Over-the-counter penghilang rasa sakit

Detail model dan tolok ukur kinerja

Meskipun fitur ini menangani kompleksitas teknis di balik layar tanpa mengekspos model yang mendasarinya, deskripsi model dan hasil benchmark berikut membantu Anda membuat keputusan yang tepat tentang adopsi fitur dalam beban kerja penting Anda.

Pengayaan semantik otomatis menggunakan model sparse yang dikelola layanan dan telah dilatih sebelumnya yang bekerja secara efektif tanpa memerlukan penyetelan khusus. Model menganalisis bidang yang Anda tentukan, mengembangkannya menjadi vektor jarang berdasarkan asosiasi yang dipelajari dari beragam data pelatihan. Istilah yang diperluas dan bobot signifikansinya disimpan dalam format indeks Lucene asli untuk pengambilan yang efisien. Kami telah mengoptimalkan proses ini menggunakan mode khusus dokumen, di mana pengkodean hanya terjadi selama konsumsi data. Kueri pencarian diberi token daripada diproses melalui model sparse, membuat solusi hemat biaya dan berkinerja baik.

Validasi kinerja selama pengembangan fitur menggunakan kumpulan data pengam bilan bagian MS MARCO, menampilkan bagian rata-rata 334 karakter. Untuk penilaian relevansi, metrik yang digunakan adalah rata-rata Normalized Discount Cumulative Gain (NDCG) untuk 10 hasil pencarian pertama (ndcg @10) pada tolok ukur BEIR untuk konten bahasa Inggris dan rata-rata ndcg @10 di MIRACL untuk konten multibahasa. Penilaian latensi menggunakan pengukuran sisi klien, persentil ke-90 (p90) dan respons pencarian p90 mengambil nilai. https://github.com/beir-cellar/beir Tolok ukur ini memberikan indikator kinerja dasar untuk relevansi pencarian dan waktu respons. Berikut ini adalah angka benchmark utama:

  • Bahasa Inggris - Peningkatan relevansi 20% dibandingkan pencarian leksikal. Ini juga menurunkan latensi pencarian P90 sebesar 7,7% dibandingkan pencarian leksikal (BM25 adalah 26 ms, dan pengayaan semantik otomatis adalah 24 ms).

  • Multi-lingual - Peningkatan relevansi 105% dibandingkan pencarian leksikal, sedangkan latensi pencarian P90 meningkat 38,4% dibandingkan pencarian leksikal (BM25 adalah 26 ms, dan pengayaan semantik otomatis adalah 36 ms).

Mengingat sifat unik dari setiap beban kerja, Anda dapat mengevaluasi fitur ini di lingkungan pengembangan Anda menggunakan kriteria benchmarking Anda sendiri sebelum membuat keputusan implementasi.

Bahasa yang didukung

Fitur ini mendukung bahasa Inggris. Selain itu, model ini juga mendukung bahasa Arab, Bengali, China, Finlandia, Prancis, Hindi, Indonesia, Jepang, Korea, Persia, Rusia, Spanyol, Swahili, dan Telugu.

Menyiapkan indeks pengayaan semantik otomatis untuk koleksi tanpa server

Anda dapat mengatur indeks dengan pengayaan semantik otomatis yang diaktifkan untuk bidang teks Anda melalui konsol, API, dan CloudFormation templat selama pembuatan indeks baru. Untuk mengaktifkannya untuk indeks yang ada, Anda harus membuat ulang indeks dengan pengayaan semantik otomatis diaktifkan untuk bidang teks.

Dengan AWS konsol, Anda dapat membuat indeks dengan bidang pengayaan semantik otomatis. Setelah Anda memilih koleksi, Anda dapat menemukan tombol Buat indeks di bagian atas konsol. Setelah Anda memilih Buat indeks, konsol menyediakan opsi untuk menentukan bidang pengayaan semantik otomatis. Dalam satu indeks, Anda dapat memiliki kombinasi pengayaan semantik otomatis untuk bahasa Inggris dan multibahasa, serta bidang leksikal.

Buat halaman indeks yang menampilkan bidang nama indeks, bidang pengayaan semantik, dan bidang pencarian leksikal.

Untuk membuat indeks pengayaan semantik otomatis menggunakan AWS Command Line Interface (AWS CLI), gunakan perintah create-index:

aws opensearchserverless create-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body] \

Dalam contoh skema indeks berikut, title_semantic bidang memiliki tipe bidang yang disetel ke text dan memiliki parameter yang disetel semantic_enrichment ke statusENABLED. Pengaturan semantic_enrichment parameter memungkinkan pengayaan semantik otomatis di title_semantic lapangan. Anda dapat menggunakan language_options bidang untuk menentukan salah satu english ataumulti-lingual.

aws opensearchserverless create-index \ --id XXXXXXXXX \ --index-name 'product-catalog' \ --index-schema '{ "mappings": { "properties": { "product_id": { "type": "keyword" }, "title_semantic": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } }, "title_non_semantic": { "type": "text" } } } }'

Untuk menggambarkan indeks yang dibuat, gunakan perintah berikut:

aws opensearchserverless get-index \ --id [collection_id] \ --index-name [index_name] \

Anda juga dapat menggunakan CloudFormation template (Type:AWS::OpenSearchServerless::CollectionIndex) untuk membuat pencarian semantik selama penyediaan koleksi serta setelah koleksi dibuat.

Memperbarui indeks yang ada

Anda dapat memperbarui indeks yang ada untuk menambahkan bidang pengayaan semantik baru, mengaktifkan atau menonaktifkan pengayaan semantik pada bidang yang ada, atau menambahkan bidang teks non-semantik. Gunakan update-index perintah dan berikan hanya bidang yang ingin Anda ubah diindex-schema. Bidang yang tidak termasuk dalam permintaan dibiarkan tidak berubah.

catatan

Indeks settings tidak dapat diperbarui. Jika Anda menyertakan settings blok dalam permintaan, operasi mengembalikan kesalahan validasi. Untuk mengubah pengaturan indeks, Anda harus menghapus dan membuat ulang indeks.

Untuk memperbarui indeks menggunakan AWS CLI, gunakan update-index perintah:

aws opensearchserverless update-index \ --id [collection_id] \ --index-name [index_name] \ --index-schema [index_body]

Tambahkan bidang pengayaan semantik baru

Anda dapat menambahkan text bidang baru dengan pengayaan semantik diaktifkan ke indeks yang ada. Layanan secara otomatis mengatur model ML yang diperlukan, saluran cerna, dan saluran pencarian. Dokumen baru yang diindeks setelah pembaruan diperkaya secara otomatis.

penting

Dokumen yang ada tidak diisi ulang. Untuk mengisi bidang pengayaan semantik pada dokumen yang ada, Anda harus menelannya kembali setelah pembaruan. Sampai dicerna kembali, dokumen yang ada tidak akan mendapat manfaat dari pencarian semantik di bidang baru.

aws opensearchserverless update-index \ --id my-collection-id \ --index-name product-catalog \ --index-schema '{ "mappings": { "properties": { "description": { "type": "text", "semantic_enrichment": { "status": "ENABLED", "language_options": "english" } } } } }'

Nonaktifkan pengayaan semantik pada bidang

Untuk menonaktifkan pengayaan semantik pada bidang yang saat ini telah diaktifkan, setel status keDISABLED. Bidang dihapus dari saluran cerna dan pencarian. Bidang teks yang mendasarinya dan bidang penyematannya tetap berada di indeks tetapi tidak lagi diperkaya.

aws opensearchserverless update-index \ --id my-collection-id \ --index-name product-catalog \ --index-schema '{ "mappings": { "properties": { "title_semantic": { "type": "text", "semantic_enrichment": { "status": "DISABLED" } } } } }'

Batasan perbarui

Operasi berikut tidak didukung oleh update-index dan mengharuskan Anda untuk menghapus dan membuat ulang indeks:

  • Meng language_options ubah bidang yang saat ini mengaktifkan pengayaan semantik. Nonaktifkan bidang terlebih dahulu, lalu aktifkan kembali dengan opsi bahasa baru.

  • Memperbarui bidang bersarang. Pengayaan semantik hanya didukung pada text bidang tingkat atas.

  • Memperbarui indekssettings.

catatan

Jika indeks memiliki saluran penelusuran atau pencarian khusus yang tidak dibuat oleh pengayaan semantik otomatis, operasi pembaruan diblokir. Hapus pipeline khusus sebelum menambahkan bidang pengayaan semantik.

Penyerapan dan pencarian data

Setelah Anda membuat indeks dengan pengayaan semantik otomatis diaktifkan, fitur bekerja secara otomatis selama proses penyerapan data, tidak diperlukan konfigurasi tambahan.

Penyerapan data: Saat Anda menambahkan dokumen ke indeks Anda, sistem secara otomatis:

  • Menganalisis bidang teks yang Anda tetapkan untuk pengayaan semantik

  • Menghasilkan pengkodean semantik menggunakan model spar OpenSearch se yang dikelola Layanan

  • Menyimpan representasi yang diperkaya ini bersama data asli Anda

Proses ini menggunakan OpenSearch konektor ML bawaan dan saluran cerna, yang dibuat dan dikelola secara otomatis di belakang layar.

Pencarian: Data pengayaan semantik sudah diindeks, sehingga kueri berjalan secara efisien tanpa memanggil model ML lagi. Ini berarti Anda mendapatkan relevansi pencarian yang lebih baik tanpa overhead latensi pencarian tambahan.

Mengkonfigurasi izin untuk pengayaan semantik otomatis

Sebelum membuat indeks pengayaan semantik otomatis, Anda harus mengonfigurasi izin yang diperlukan. Bagian ini menjelaskan izin yang diperlukan dan cara mengaturnya.

Izin kebijakan IAM

Gunakan kebijakan AWS Identity and Access Management (IAM) berikut untuk memberikan izin yang diperlukan untuk bekerja dengan pengayaan semantik otomatis:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AutomaticSemanticEnrichmentPermissions", "Effect": "Allow", "Action": [ "aoss:CreateIndex", "aoss:GetIndex", "aoss:UpdateIndex", "aoss:DeleteIndex", "aoss:APIAccessAll" ], "Resource": "*" } ] }
Izin kunci
  • Iz aoss:*Index in mengaktifkan manajemen indeks

  • Iz aoss:APIAccessAll in memungkinkan operasi OpenSearch API

  • Untuk membatasi izin ke koleksi tertentu, ganti "Resource": "*" dengan ARN koleksi

Konfigurasikan izin akses data

Untuk menyiapkan indeks untuk pengayaan semantik otomatis, Anda harus memiliki kebijakan akses data yang sesuai yang memberikan izin untuk mengakses sumber daya koleksi indeks, pipeline, dan model. Untuk informasi selengkapnya tentang kebijakan akses data, lihatKontrol akses data untuk Amazon Tanpa OpenSearch Server. Untuk prosedur mengonfigurasi kebijakan akses data, lihatMembuat kebijakan akses data (konsol).

Izin akses data

[ { "Description": "Create index permission", "Rules": [ { "ResourceType": "index", "Resource": ["index/collection_name/*"], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:UpdateIndex", "aoss:DeleteIndex" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create pipeline permission", "Rules": [ { "ResourceType": "collection", "Resource": ["collection/collection_name"], "Permission": [ "aoss:CreateCollectionItems", "aoss:DescribeCollectionItems" ] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, { "Description": "Create model permission", "Rules": [ { "ResourceType": "model", "Resource": ["model/collection_name/*"], "Permission": ["aoss:CreateMLResource"] } ], "Principal": [ "arn:aws:iam::account_id:role/role_name" ] }, ]

Izin akses jaringan

Untuk mengizinkan API layanan mengakses koleksi pribadi, Anda harus mengonfigurasi kebijakan jaringan yang mengizinkan akses yang diperlukan antara API layanan dan koleksi. Untuk informasi selengkapnya tentang kebijakan jaringan, lihat Akses jaringan untuk Amazon OpenSearch Serverless.

[ { "Description":"Enable automatic semantic enrichment in a private collection", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection_name" ] } ], "AllowFromPublic":false, "SourceServices":[ "aoss.amazonaws.com" ], } ]
Untuk mengonfigurasi izin akses jaringan untuk koleksi pribadi
  1. Masuk ke konsol OpenSearch Layanan di https://console.aws.amazon.com/aos/home.

  2. Di panel navigasi kiri, pilih Kebijakan jaringan. Kemudian lakukan salah satu hal berikut:

    • Pilih nama kebijakan yang ada dan pilih Edit

    • Pilih Buat kebijakan jaringan dan konfigurasikan detail kebijakan

  3. Di area Jenis akses, pilih Pri badi (disarankan), lalu pilih akses pribadi AWS layanan.

  4. Di bidang pencarian, pilih Layanan, lalu pilih aos s.amazonaws.com.

  5. Di area Jenis sumber daya, pilih kotak centang Aktifkan akses OpenSearch ke titik akhir.

  6. Untuk Koleksi Pencarian, atau masukkan istilah awalan tertentu, di bidang pencarian, pilih Nama Koleksi. Kemudian masukkan atau pilih nama koleksi yang akan dikaitkan dengan kebijakan jaringan.

  7. Pilih Buat untuk kebijakan jaringan baru atau Per barui untuk kebijakan jaringan yang ada.

Didukung Wilayah AWS

Pengayaan semantik otomatis untuk OpenSearch Serverless tersedia sebagai berikut: Wilayah AWS

  • Timur AS (N. Virginia)

  • AS Timur (Ohio)

  • AS Barat (Oregon)

  • Asia Pasifik (Mumbai)

  • Asia Pasifik (Singapura)

  • Asia Pasifik (Sydney)

  • Asia Pasifik (Tokyo)

  • Eropa (Frankfurt)

  • Eropa (Irlandia)

  • Eropa (Stockholm)

  • Eropa (Spanyol)

Menulis ulang kueri

Pengayaan semantik otomatis secara otomatis mengubah kueri “kecocokan” Anda yang ada menjadi kueri pencarian semantik tanpa memerlukan modifikasi kueri. Jika kueri kecocokan adalah bagian dari kueri majemuk, sistem akan melintasi struktur kueri Anda, menemukan kueri kecocokan, dan menggantinya dengan kueri neural sparse. Saat ini, fitur ini hanya mendukung penggantian kueri “cocok”, apakah itu kueri mandiri atau bagian dari kueri majemuk. “multi_match” tidak didukung. Selain itu, fitur ini mendukung semua kueri majemuk untuk menggantikan kueri kecocokan bersarang mereka. Kueri majemuk meliputi: bool, boost, constant_score, dis_max, function_score, dan hybrid.

Keterbatasan pengayaan semantik otomatis

Pencarian semantik otomatis paling efektif bila diterapkan pada bidang berukuran kecil hingga menengah yang berisi konten bahasa alami, seperti judul film, deskripsi produk, ulasan, dan ringkasan. Meskipun pencarian semantik meningkatkan relevansi untuk sebagian besar kasus penggunaan, mungkin tidak optimal untuk skenario tertentu. Pertimbangkan batasan berikut saat memutuskan apakah akan menerapkan pengayaan semantik otomatis untuk kasus penggunaan spesifik Anda.

  • Dokumen yang sangat panjang — Model sparse saat ini hanya memproses 8.192 token pertama dari setiap dokumen untuk bahasa Inggris. Untuk dokumen multibahasa, itu 512 token. Untuk artikel yang panjang, pertimbangkan untuk menerapkan pemotongan dokumen untuk memastikan pemrosesan konten lengkap.

  • Beban kerja analisis log — Pengayaan semantik secara signifikan meningkatkan ukuran indeks, yang mungkin tidak diperlukan untuk analisis log di mana pencocokan yang tepat biasanya cukup. Konteks semantik tambahan jarang meningkatkan efektivitas pencarian log cukup untuk membenarkan peningkatan persyaratan penyimpanan.

  • Pengayaan semantik otomatis tidak kompatibel dengan fitur Sumber Turunan.

Harga

OpenSearch Layanan Amazon menagih pengayaan semantik otomatis berdasarkan OpenSearch Compute Units (OCU) yang dikonsumsi selama pembuatan vektor jarang pada waktu pengindeksan. Anda hanya dikenakan biaya untuk penggunaan aktual selama pengindeksan untuk bidang teks tempat Anda mengaktifkan pengayaan semantik otomatis. One Semantic Search OCU dapat memproses 11.1 juta token untuk konten bahasa Inggris. Untuk memproses 2,4 miliar token, Anda memerlukan sekitar 216 Pencarian Semantik OCU-hours (2,4 miliar /11,10 juta). Dengan harga $0,24 per Pencarian Semantik OCU-hour, biaya untuk memproses 10 GB data untuk pencarian semantik otomatis adalah $51 (216 OCU-hours x $0. 24/OCU-jam). Tidak ada biaya OCU Pencarian Semantik tambahan selama operasi pencarian atau untuk penyimpanan data.

Anda dapat memantau konsumsi ini menggunakan CloudWatch metrik AmazonSemanticSearchOCU. Untuk detail spesifik tentang batas token model, throughput volume per OCU, dan contoh perhitungan sampel, kunjungi Harga OpenSearch Layanan.