

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
<a name="serverless-semantic-enrichment"></a>

## Ikhtisar
<a name="serverless-semantic-enrichment-intro"></a>

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 (machine learning) Anda sendiri dan integrasi dengan mesin pencari. Fitur ini tersedia untuk ketiga jenis koleksi tanpa server: Pencarian, Seri Waktu, dan Vektor.

## Konsep pencarian semantik
<a name="serverless-semantic-enrichment-whats-is"></a>

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

 Pencarian semantik mengembalikan hasil kueri yang menggabungkan tidak hanya pencocokan kata kunci, tetapi maksud dan arti 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 pereda nyeri 

## Detail model dan tolok ukur kinerja
<a name="serverless-semantic-enrichment-model-detail"></a>

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

 Pengayaan semantik otomatis menggunakan model sparse pra-terlatih yang dikelola layanan yang bekerja secara efektif tanpa memerlukan penyesuaian khusus. Model menganalisis bidang yang Anda tentukan, memperluasnya 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](https://docs.opensearch.org/docs/latest/vector-search/ai-search/neural-sparse-with-pipelines/#step-1a-choose-the-search-mode) terjadi selama konsumsi data. Kueri penelusuran diberi token daripada diproses melalui model yang jarang, membuat solusi ini hemat biaya dan berkinerja. 

 Validasi kinerja selama pengembangan fitur menggunakan kumpulan data pengambilan bagian [MS MARCO](https://huggingface.co/datasets/BeIR/msmarco), menampilkan bagian rata-rata 334 karakter. Untuk penilaian relevansi, metrik yang digunakan adalah rata-rata Normalized Discounted Cumulative Gain (NDCG) untuk 10 hasil pencarian pertama (ndcg @10) pada tolok ukur [BEIR](https://github.com/beir-cellar/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 nomor tolok ukur 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
<a name="serverless-semantic-enrichment-languages"></a>

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.

## Siapkan indeks pengayaan semantik otomatis untuk koleksi tanpa server
<a name="serverless-semantic-enrichment-index-setup"></a>

Anda dapat menyiapkan indeks dengan pengayaan semantik otomatis yang diaktifkan untuk bidang teks 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.](http://docs.aws.amazon.com/id_id/opensearch-service/latest/developerguide/images/ase-console-exp-serverless.png)


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, bidang memiliki jenis `title_semantic` bidang yang disetel ke `text` dan memiliki parameter `semantic_enrichment` yang disetel ke status. `ENABLED` Mengatur `semantic_enrichment` parameter memungkinkan pengayaan semantik otomatis di lapangan. `title_semantic` Anda dapat menggunakan `language_options` bidang untuk menentukan salah satu `english` atau`multi-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.

## Perbarui indeks yang ada
<a name="serverless-semantic-enrichment-update-index"></a>

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 di`index-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
<a name="serverless-semantic-enrichment-update-add-field"></a>

Anda dapat menambahkan `text` bidang baru dengan pengayaan semantik diaktifkan ke indeks yang ada. Layanan ini secara otomatis menyiapkan model ML yang diperlukan, pipa konsumsi, dan pipa pencarian. Dokumen baru yang diindeks setelah pembaruan diperkaya secara otomatis.

**penting**  
Dokumen yang ada tidak diisi kembali. 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 di lapangan
<a name="serverless-semantic-enrichment-update-disable-field"></a>

Untuk menonaktifkan pengayaan semantik pada bidang yang saat ini mengaktifkannya, setel ke. `status` `DISABLED` Bidang dihapus dari pipa menelan dan mencari. Bidang teks yang mendasari dan bidang penyematannya tetap berada dalam 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"
                }
            }
        }
    }
}'
```

### Perbarui batasan
<a name="serverless-semantic-enrichment-update-limitations"></a>

Operasi berikut tidak didukung oleh `update-index` dan mengharuskan Anda untuk menghapus dan membuat ulang indeks:
+ **`language_options`Mengubah** 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 di bidang tingkat atas. `text`
+ **Memperbarui indeks`settings`.**

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

## Konsumsi dan pencarian data
<a name="serverless-semantic-enrichment-data-ingest"></a>

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

Penyerapan data: Saat Anda menambahkan dokumen ke indeks Anda, sistem secara otomatis:
+ Menganalisis bidang teks yang Anda tentukan untuk pengayaan semantik
+ Menghasilkan pengkodean semantik menggunakan OpenSearch model sparse yang dikelola Layanan
+ Menyimpan representasi yang diperkaya ini bersama data asli Anda

Proses ini menggunakan OpenSearch konektor HTML bawaan dan saluran pipa tertelan, yang dibuat dan dikelola secara otomatis di belakang layar.

Penelusuran: Data pengayaan semantik sudah diindeks, sehingga kueri berjalan secara efisien tanpa menjalankan model ML lagi. Ini berarti Anda mendapatkan relevansi penelusuran yang ditingkatkan tanpa overhead latensi penelusuran tambahan.

## Mengkonfigurasi izin untuk pengayaan semantik otomatis
<a name="serverless-semantic-enrichment-permissions"></a>

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

### Izin kebijakan IAM
<a name="iam-policy-permissions"></a>

Gunakan kebijakan AWS Identity and Access Management (IAM) berikut ini 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**  
+ `aoss:*Index`Izin mengaktifkan manajemen indeks
+ `aoss:APIAccessAll`Izin memungkinkan operasi OpenSearch API
+ Untuk membatasi izin ke koleksi tertentu, ganti `"Resource": "*"` dengan ARN koleksi

### Konfigurasikan izin akses data
<a name="serverless-collection-permissions-data-network"></a>

Untuk menyiapkan indeks untuk pengayaan semantik otomatis, Anda harus memiliki kebijakan akses data yang sesuai yang memberikan izin untuk mengakses sumber daya indeks, pipeline, dan pengumpulan model. Untuk informasi selengkapnya tentang kebijakan akses data, lihat[Kontrol akses data untuk Amazon Tanpa OpenSearch Server](serverless-data-access.md). Untuk prosedur mengonfigurasi kebijakan akses data, lihat[Membuat kebijakan akses data (konsol)](serverless-data-access.md#serverless-data-access-console).

#### Izin akses data
<a name="serverless-collection-data-access-permissions"></a>

```
[
    {
        "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
<a name="serverless-collection-network-access-permissions"></a>

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 Tanpa OpenSearch Server](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html).

```
[
   {
      "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](https://console.aws.amazon.com/aos/home).

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

1. Di area **tipe Access**, pilih **Private (recommended)**, lalu pilih **AWS Service Private Access**.

1. Di kolom pencarian, pilih **Layanan**, lalu pilih **aoss.amazonaws.com**.

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

1. Untuk **koleksi Penelusuran, atau masukan istilah awalan tertentu**, di kolom pencarian, pilih **Nama Koleksi**. Kemudian masukkan atau pilih nama koleksi untuk dikaitkan dengan kebijakan jaringan.

1. Pilih **Buat** untuk kebijakan jaringan baru atau **Perbarui** untuk kebijakan jaringan yang ada.

## Penulisan ulang kueri
<a name="serverless-collection-query-rewrite"></a>

Pengayaan semantik otomatis secara otomatis mengonversi kueri “kecocokan” yang ada menjadi kueri penelusuran semantik tanpa memerlukan modifikasi kueri. Jika kueri pencocokan adalah bagian dari kueri gabungan, sistem akan melintasi struktur kueri Anda, menemukan kueri kecocokan, dan menggantinya dengan kueri jarang saraf. Saat ini, fitur tersebut hanya mendukung penggantian kueri “match”, apakah itu kueri mandiri atau bagian dari kueri gabungan. “multi\_match” tidak didukung. Selain itu, fitur ini mendukung semua kueri gabungan untuk menggantikan kueri pencocokan bersarang mereka. Kueri majemuk meliputi: bool, boosting, constant\_score, dis\_max, function\_score, dan hybrid. 

## Keterbatasan pengayaan semantik otomatis
<a name="serverless-collection-ase-limitation"></a>

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, itu 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 potongan 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 yang cukup untuk membenarkan peningkatan persyaratan penyimpanan. 
+ Pengayaan semantik otomatis tidak kompatibel dengan fitur Sumber Derived. 

## Harga
<a name="serverless-collection-ase-pricing"></a>

Amazon OpenSearch Service menagih pengayaan semantik otomatis berdasarkan OpenSearch Compute Units (OCU) yang dikonsumsi selama pembuatan vektor jarang pada waktu pengindeksan. Anda dikenakan biaya hanya 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 membutuhkan 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 x $0. OCU-hours 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 Amazon`SemanticSearchOCU`. Untuk detail spesifik tentang batas token model, throughput volume per OCU, dan contoh perhitungan sampel, kunjungi Harga [OpenSearch Layanan](https://aws.amazon.com/opensearch-service/pricing/).