Menggunakan pipa OpenSearch Ingestion dengan inferensi batch offline pembelajaran mesin - OpenSearch Layanan Amazon

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

Menggunakan pipa OpenSearch Ingestion dengan inferensi batch offline pembelajaran mesin

Pipa Amazon OpenSearch Ingestion (OSI) mendukung pemrosesan inferensi batch offline machine learning (ML) untuk memperkaya volume data yang besar secara efisien dengan biaya rendah. Gunakan inferensi batch offline setiap kali Anda memiliki kumpulan data besar yang dapat diproses secara asinkron. Inferensi batch offline berfungsi dengan Amazon Bedrock dan SageMaker model. Fitur ini tersedia di semua Wilayah AWS yang mendukung OpenSearch Ingestion dengan domain OpenSearch Service 2.17+.

catatan

Untuk pemrosesan inferensi waktu nyata, gunakanKonektor Amazon OpenSearch Service MS untuk platform pihak ketiga.

Pemrosesan inferensi batch offline memanfaatkan fitur yang OpenSearch disebut MLCommons. ML Commons menyediakan algoritma ML melalui transport dan panggilan REST API. Panggilan tersebut memilih node dan sumber daya yang tepat untuk setiap permintaan ML dan memantau tugas ML untuk memastikan waktu aktif. Dengan cara ini, ML Commons memungkinkan Anda memanfaatkan algoritme ML open-source yang ada dan mengurangi upaya yang diperlukan untuk mengembangkan fitur ML baru. Untuk informasi selengkapnya tentang ML Commons, lihat Pembelajaran mesin di OpenSearch dokumentasi.org.

Cara kerjanya

Anda dapat membuat pipeline inferensi batch offline di OpenSearch Ingestion dengan menambahkan prosesor inferensi pembelajaran mesin ke pipeline. Prosesor ini memungkinkan pipeline Anda terhubung ke layanan AI seperti SageMaker menjalankan pekerjaan inferensi batch. Anda dapat mengonfigurasi prosesor untuk terhubung ke layanan AI yang Anda inginkan melalui konektor AI (dengan dukungan batch_predict) yang berjalan di domain target Anda.

OpenSearch Ingestion menggunakan ml_inference prosesor dengan MLCommons untuk membuat pekerjaan inferensi batch offline. MLCommons kemudian menggunakan batch_predict API, yang melakukan inferensi pada kumpulan data besar dalam mode asinkron offline menggunakan model yang diterapkan pada server model eksternal di Amazon Bedrock, Amazon, Cohere, dan OpenAI. SageMaker Diagram berikut menunjukkan pipa OpenSearch Ingestion yang mengatur beberapa komponen untuk melakukan proses ini dari ujung ke ujung:

Arsitektur tiga pipa dari pemrosesan inferensi AI batch.

Komponen pipa bekerja sebagai berikut:

Pipeline 1 (Persiapan dan transformasi data) *:

  • Sumber: Data dipindai dari sumber eksternal Anda yang didukung oleh OpenSearch Ingestion.

  • Pemroses data: Data mentah diproses dan diubah ke format yang benar untuk inferensi batch pada layanan AI terintegrasi.

  • S3 (Sink): Data yang diproses dipentaskan dalam bucket Amazon S3 yang siap dijadikan input untuk menjalankan pekerjaan inferensi batch pada layanan AI terintegrasi.

Pipeline 2 (Trigger ML_inference):

  • Sumber: Deteksi peristiwa S3 otomatis dari file baru yang dibuat oleh output Pipeline 1.

  • Prosesor ML_inference: Prosesor yang menghasilkan inferensi ML_inference melalui pekerjaan batch asinkron. Ini terhubung ke layanan AI melalui konektor AI yang dikonfigurasi yang berjalan di domain target Anda.

  • ID Tugas: Setiap pekerjaan batch dikaitkan dengan ID tugas di ml-commons untuk pelacakan dan pengelolaan.

  • OpenSearch ML Commons: ML Commons, yang menjadi tuan rumah model untuk pencarian saraf real-time, mengelola konektor ke server AI jarak jauh, dan melayani inferensi batch dan manajemen pekerjaan. APIs

  • Layanan AI: OpenSearch ML Commons berinteraksi dengan layanan AI seperti Amazon Bedrock dan Amazon SageMaker untuk melakukan inferensi batch pada data, menghasilkan prediksi atau wawasan. Hasilnya disimpan secara asinkron ke file S3 terpisah.

Pipeline 3 (konsumsi massal):

  • S3 (sumber): Hasil pekerjaan batch disimpan di S3, yang merupakan sumber dari pipeline ini.

  • Pemroses transformasi data: Pemrosesan dan transformasi lebih lanjut diterapkan pada output inferensi batch sebelum konsumsi. Ini memastikan data dipetakan dengan benar dalam OpenSearch indeks.

  • OpenSearch index (Sink): Hasil yang diproses diindeks OpenSearch untuk penyimpanan, pencarian, dan analisis lebih lanjut.

catatan

* Proses yang dijelaskan oleh Pipeline 1 adalah opsional. Jika mau, Anda dapat melewati proses itu dan cukup mengunggah data yang Anda siapkan di wastafel S3 untuk membuat pekerjaan batch.

Tentang prosesor ml_inference

OpenSearch Ingestion menggunakan integrasi khusus antara sumber S3 Scan dan prosesor inferensi ML untuk pemrosesan batch. S3 Scan beroperasi dalam mode metadata-only untuk mengumpulkan informasi file S3 secara efisien tanpa membaca konten file yang sebenarnya. ml_inferenceProsesor menggunakan file S3 URLs untuk berkoordinasi dengan MLCommons untuk pemrosesan batch. Desain ini mengoptimalkan alur kerja inferensi batch dengan meminimalkan transfer data yang tidak perlu selama fase pemindaian. Anda menentukan ml_inference prosesor menggunakan parameter. Inilah contohnya:

processor: - ml_inference: # The endpoint URL of your OpenSearch domain host: "https://AWS test-offlinebatch-123456789abcdefg.us-west-2.es.amazonaws.com" # Type of inference operation: # - batch_predict: for batch processing # - predict: for real-time inference action_type: "batch_predict" # Remote ML model service provider (Amazon Bedrock or SageMaker) service_name: "bedrock" # Unique identifier for the ML model model_id: "AWS TestModelID123456789abcde" # S3 path where batch inference results will be stored output_path: "s3://amzn-s3-demo-bucket/" # Supports ISO_8601 notation strings like PT20.345S or PT15M # These settings control how long to keep your inputs in the processor for retry on throttling errors retry_time_window: "PT9M" # AWS configuration settings aws: # Wilayah AWS where the Lambda function is deployed region: "us-west-2" # IAM role ARN for Lambda function execution sts_role_arn: "arn:aws::iam::account_id:role/Admin" # Dead-letter queue settings for storing errors dlq: s3: region: us-west-2 bucket: batch-inference-dlq key_path_prefix: bedrock-dlq sts_role_arn: arn:aws:iam::account_id:role/OSI-invoke-ml # Conditional expression that determines when to trigger the processor # In this case, only process when bucket matches "amzn-s3-demo-bucket" ml_when: /bucket == "amzn-s3-demo-bucket"

Peningkatan kinerja konsumsi menggunakan prosesor ml_inference

ml_inferenceProsesor OpenSearch Ingestion secara signifikan meningkatkan kinerja konsumsi data untuk pencarian berkemampuan ML. Prosesor ini cocok untuk kasus penggunaan yang membutuhkan data yang dihasilkan model pembelajaran mesin, termasuk pencarian semantik, pencarian multimodal, pengayaan dokumen, dan pemahaman kueri. Dalam pencarian semantik, prosesor dapat mempercepat pembuatan dan konsumsi vektor bervolume besar dan berdimensi tinggi dengan urutan besarnya.

Kemampuan inferensi batch offline prosesor menawarkan keunggulan berbeda dibandingkan pemanggilan model waktu nyata. Meskipun pemrosesan real-time memerlukan server model langsung dengan batasan kapasitas, inferensi batch secara dinamis menskalakan sumber daya komputasi sesuai permintaan dan memproses data secara paralel. Misalnya, ketika pipa OpenSearch Ingestion menerima satu miliar permintaan data sumber, ia membuat 100 file S3 untuk input inferensi batch ML. ml_inferenceProsesor kemudian memulai pekerjaan SageMaker batch menggunakan 100 instans ml.m4.xlarge Amazon Elastic Compute Cloud EC2 (Amazon), menyelesaikan vektorisasi satu miliar permintaan dalam 14 jam — tugas yang hampir tidak mungkin diselesaikan dalam mode waktu nyata.

Konfigurasikan prosesor ml_inference untuk menyerap permintaan data untuk pencarian semantik

Prosedur berikut memandu Anda melalui proses pengaturan dan konfigurasi ml_inference prosesor OpenSearch Ingestion untuk menelan satu miliar permintaan data untuk pencarian semantik menggunakan model penyematan teks.

Langkah 1: Buat konektor dan daftarkan model di OpenSearch

Untuk prosedur berikut, gunakan MLCommons batch_inference_sagemaker_connector_blueprint untuk membuat konektor dan model di Amazon. SageMaker Jika Anda lebih suka menggunakan templat OpenSearch CloudFormation integrasi, lihat (Prosedur alternatif) Langkah 1: Buat konektor dan model menggunakan templat CloudFormation integrasi nanti di bagian ini.

Untuk membuat konektor dan mendaftarkan model di OpenSearch
  1. Buat model Deep Java Library (DJL) SageMaker untuk transformasi batch. Untuk melihat model DJL lainnya, lihat Semantic_search_with_cfn_template_for_sagemaker di: GitHub

    POST https://api.sagemaker.us-east-1.amazonaws.com/CreateModel { "ExecutionRoleArn": "arn:aws:iam::123456789012:role/aos_ml_invoke_sagemaker", "ModelName": "DJL-Text-Embedding-Model-imageforjsonlines", "PrimaryContainer": { "Environment": { "SERVING_LOAD_MODELS" : "djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2" }, "Image": "763104351884.dkr.ecr.us-east-1.amazonaws.com/djl-inference:0.29.0-cpu-full" } }
  2. Buat konektor dengan batch_predict sebagai action tipe baru di actions bidang:

    POST /_plugins/_ml/connectors/_create { "name": "DJL Sagemaker Connector: all-MiniLM-L6-v2", "version": "1", "description": "The connector to sagemaker embedding model all-MiniLM-L6-v2", "protocol": "aws_sigv4", "credential": { "roleArn": "arn:aws:iam::111122223333:role/SageMakerRole" }, "parameters": { "region": "us-east-1", "service_name": "sagemaker", "DataProcessing": { "InputFilter": "$.text", "JoinSource": "Input", "OutputFilter": "$" }, "MaxConcurrentTransforms": 100, "ModelName": "DJL-Text-Embedding-Model-imageforjsonlines", "TransformInput": { "ContentType": "application/json", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://offlinebatch/msmarcotests/" } }, "SplitType": "Line" }, "TransformJobName": "djl-batch-transform-1-billion", "TransformOutput": { "AssembleWith": "Line", "Accept": "application/json", "S3OutputPath": "s3://offlinebatch/msmarcotestsoutputs/" }, "TransformResources": { "InstanceCount": 100, "InstanceType": "ml.m4.xlarge" }, "BatchStrategy": "SingleRecord" }, "actions": [ { "action_type": "predict", "method": "POST", "headers": { "content-type": "application/json" }, "url": "https://runtime.sagemaker.us-east-1.amazonaws.com/endpoints/OpenSearch-sagemaker-060124023703/invocations", "request_body": "${parameters.input}", "pre_process_function": "connector.pre_process.default.embedding", "post_process_function": "connector.post_process.default.embedding" }, { "action_type": "batch_predict", "method": "POST", "headers": { "content-type": "application/json" }, "url": "https://api.sagemaker.us-east-1.amazonaws.com/CreateTransformJob", "request_body": """{ "BatchStrategy": "${parameters.BatchStrategy}", "ModelName": "${parameters.ModelName}", "DataProcessing" : ${parameters.DataProcessing}, "MaxConcurrentTransforms": ${parameters.MaxConcurrentTransforms}, "TransformInput": ${parameters.TransformInput}, "TransformJobName" : "${parameters.TransformJobName}", "TransformOutput" : ${parameters.TransformOutput}, "TransformResources" : ${parameters.TransformResources}}""" }, { "action_type": "batch_predict_status", "method": "GET", "headers": { "content-type": "application/json" }, "url": "https://api.sagemaker.us-east-1.amazonaws.com/DescribeTransformJob", "request_body": """{ "TransformJobName" : "${parameters.TransformJobName}"}""" }, { "action_type": "cancel_batch_predict", "method": "POST", "headers": { "content-type": "application/json" }, "url": "https://api.sagemaker.us-east-1.amazonaws.com/StopTransformJob", "request_body": """{ "TransformJobName" : "${parameters.TransformJobName}"}""" } ] }
  3. Gunakan ID konektor yang dikembalikan untuk mendaftarkan SageMaker model:

    POST /_plugins/_ml/models/_register { "name": "SageMaker model for batch", "function_name": "remote", "description": "test model", "connector_id": "example123456789-abcde" }
  4. Panggil model dengan tipe batch_predict tindakan:

    POST /_plugins/_ml/models/teHr3JABBiEvs-eod7sn/_batch_predict { "parameters": { "TransformJobName": "SM-offline-batch-transform" } }

    Respons berisi ID tugas untuk pekerjaan batch:

    { "task_id": "exampleIDabdcefd_1234567", "status": "CREATED" }
  5. Periksa status pekerjaan batch dengan memanggil Get Task API menggunakan ID tugas:

    GET /_plugins/_ml/tasks/exampleIDabdcefd_1234567

    Respons berisi status tugas:

    { "model_id": "nyWbv5EB_tT1A82ZCu-e", "task_type": "BATCH_PREDICTION", "function_name": "REMOTE", "state": "RUNNING", "input_type": "REMOTE", "worker_node": [ "WDZnIMcbTrGtnR4Lq9jPDw" ], "create_time": 1725496527958, "last_update_time": 1725496527958, "is_async": false, "remote_job": { "TransformResources": { "InstanceCount": 1, "InstanceType": "ml.c5.xlarge" }, "ModelName": "DJL-Text-Embedding-Model-imageforjsonlines", "TransformOutput": { "Accept": "application/json", "AssembleWith": "Line", "KmsKeyId": "", "S3OutputPath": "s3://offlinebatch/output" }, "CreationTime": 1725496531.935, "TransformInput": { "CompressionType": "None", "ContentType": "application/json", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://offlinebatch/sagemaker_djl_batch_input.json" } }, "SplitType": "Line" }, "TransformJobArn": "arn:aws:sagemaker:us-east-1:111122223333:transform-job/SM-offline-batch-transform15", "TransformJobStatus": "InProgress", "BatchStrategy": "SingleRecord", "TransformJobName": "SM-offline-batch-transform15", "DataProcessing": { "InputFilter": "$.content", "JoinSource": "Input", "OutputFilter": "$" } } }

(Prosedur alternatif) Langkah 1: Buat konektor dan model menggunakan templat CloudFormation integrasi

Jika mau, Anda dapat menggunakannya AWS CloudFormation untuk secara otomatis membuat semua SageMaker konektor dan model Amazon yang diperlukan untuk inferensi ML. Pendekatan ini menyederhanakan penyiapan dengan menggunakan templat yang telah dikonfigurasi sebelumnya yang tersedia di konsol OpenSearch Layanan Amazon. Untuk informasi selengkapnya, lihat Menggunakan CloudFormation untuk mengatur inferensi jarak jauh untuk pencarian semantik.

Untuk menyebarkan CloudFormation tumpukan yang membuat semua SageMaker konektor dan model yang diperlukan
  1. Buka konsol OpenSearch Layanan Amazon.

  2. Di panel navigasi, pilih Integrasi.

  3. Di bidang Pencarian, masukkanSageMaker, lalu pilih Integrasi dengan model penyematan teks melalui Amazon SageMaker.

  4. Pilih Konfigurasi domain dan kemudian pilih Konfigurasi domain VPC atau Konfigurasikan domain publik.

  5. Masukkan informasi di bidang templat. Untuk Aktifkan Inferensi Batch Offline, pilih true untuk menyediakan sumber daya untuk pemrosesan batch offline.

  6. Pilih Buat untuk membuat CloudFormation tumpukan.

  7. Setelah tumpukan dibuat, buka tab Output di CloudFormation konsol Temukan connector_id dan model_id. Anda akan memerlukan nilai-nilai ini nanti ketika Anda mengkonfigurasi pipeline.

Langkah 2: Buat pipeline OpenSearch Ingestion untuk inferensi batch offline MLL

Gunakan sampel berikut untuk membuat pipeline OpenSearch Ingestion untuk inferensi batch offline MLL. Untuk informasi selengkapnya tentang membuat pipeline untuk OpenSearch Ingestion, lihat. Membuat saluran pipa Amazon OpenSearch Ingestion

Sebelum memulai

Dalam contoh berikut, Anda menentukan peran IAM ARN untuk sts_role_arn parameter. Gunakan prosedur berikut untuk memverifikasi bahwa peran ini dipetakan ke peran backend yang memiliki akses ke ml-commons di. OpenSearch

  1. Arahkan ke plugin OpenSearch Dasbor untuk domain OpenSearch Layanan Anda. Anda dapat menemukan titik akhir dasbor di dasbor domain di konsol OpenSearch Layanan.

  2. Dari menu utama pilih Keamanan, Peran, dan pilih peran ml_full_access.

  3. Pilih Pengguna yang Dipetakan, Kelola pemetaan.

  4. Di bawah peran Backend, masukkan ARN dari peran Lambda yang memerlukan izin untuk memanggil domain Anda. Berikut adalah contoh: arn:aws:iam: ::role/ 111122223333 lambda-role

  5. Pilih Peta dan konfirmasikan pengguna atau peran muncul di bawah Pengguna yang dipetakan.

Sampel untuk membuat pipeline OpenSearch Ingestion untuk inferensi batch offline MLL

version: '2' extension: osis_configuration_metadata: builder_type: visual sagemaker-batch-job-pipeline: source: s3: acknowledgments: true delete_s3_objects_on_read: false scan: buckets: - bucket: name: name data_selection: metadata_only filter: include_prefix: - sagemaker/sagemaker_djl_batch_input exclude_suffix: - .manifest - bucket: name: name data_selection: data_only filter: include_prefix: - sagemaker/output/ scheduling: interval: PT6M aws: region: name default_bucket_owner: account_ID codec: ndjson: include_empty_objects: false compression: none workers: '1' processor: - ml_inference: host: "https://search-AWStest-offlinebatch-123456789abcdef.us-west-2.es.amazonaws.com" aws_sigv4: true action_type: "batch_predict" service_name: "sagemaker" model_id: "model_ID" output_path: "s3://AWStest-offlinebatch/sagemaker/output" aws: region: "us-west-2" sts_role_arn: "arn:aws:iam::account_ID:role/Admin" ml_when: /bucket == "AWStest-offlinebatch" dlq: s3: region: us-west-2 bucket: batch-inference-dlq key_path_prefix: bedrock-dlq sts_role_arn: arn:aws:iam::account_ID:role/OSI-invoke-ml - copy_values: entries: - from_key: /text to_key: chapter - from_key: /SageMakerOutput to_key: chapter_embedding - delete_entries: with_keys: - text - SageMakerOutput sink: - opensearch: hosts: ["https://search-AWStest-offlinebatch-123456789abcdef.us-west-2.es.amazonaws.com"] aws: serverless: false region: us-west-2 routes: - ml-ingest-route index_type: custom index: test-nlp-index routes: - ml-ingest-route: /chapter != null and /title != null

Langkah 3: Siapkan data Anda untuk dikonsumsi

Untuk menyiapkan data Anda untuk pemrosesan inferensi batch offline ML, siapkan data sendiri menggunakan alat atau proses Anda sendiri atau gunakan Persiapan OpenSearch Data. Verifikasi bahwa data diatur ke dalam format yang benar baik dengan menggunakan pipeline untuk mengkonsumsi data dari sumber data Anda atau dengan membuat kumpulan data pembelajaran mesin.

Contoh berikut menggunakan dataset MS MARCO, yang mencakup kumpulan kueri pengguna nyata untuk tugas pemrosesan bahasa alami. Dataset disusun dalam format JSONL, di mana setiap baris mewakili permintaan yang dikirim ke model penyematan ML:

{"_id": "1185869", "text": ")what was the immediate impact of the Paris Peace Treaties of 1947?", "metadata": {"world war 2"}} {"_id": "1185868", "text": "_________ justice is designed to repair the harm to victim, the community and the offender caused by the offender criminal act. question 19 options:", "metadata": {"law"}} {"_id": "597651", "text": "what is amber", "metadata": {"nothing"}} {"_id": "403613", "text": "is autoimmune hepatitis a bile acid synthesis disorder", "metadata": {"self immune"}} ...

Untuk menguji menggunakan dataset MS MARCO, bayangkan skenario di mana Anda membuat satu miliar permintaan input yang didistribusikan di 100 file, masing-masing berisi 10 juta permintaan. File akan disimpan di Amazon S3 dengan awalan s3://_djl_batch_input/. offlinebatch/sagemaker/sagemaker Pipa OpenSearch Ingestion akan memindai 100 file ini secara bersamaan dan memulai pekerjaan SageMaker batch dengan 100 pekerja untuk pemrosesan paralel, memungkinkan vektorisasi yang efisien dan menelan satu miliar dokumen ke dalamnya. OpenSearch

Di lingkungan produksi, Anda dapat menggunakan pipeline OpenSearch Ingestion untuk menghasilkan file S3 untuk input inferensi batch. Pipeline mendukung berbagai sumber data dan beroperasi sesuai jadwal untuk terus mengubah data sumber menjadi file S3. File-file ini kemudian secara otomatis diproses oleh server AI melalui pekerjaan batch offline terjadwal, memastikan pemrosesan dan konsumsi data berkelanjutan.

Langkah 4: Pantau pekerjaan inferensi batch

Anda dapat memantau pekerjaan inferensi batch menggunakan SageMaker konsol atau. AWS CLI Anda juga dapat menggunakan Get Task API untuk memantau pekerjaan batch:

GET /_plugins/_ml/tasks/_search { "query": { "bool": { "filter": [ { "term": { "state": "RUNNING" } } ] } }, "_source": ["model_id", "state", "task_type", "create_time", "last_update_time"] }

API mengembalikan daftar tugas tugas batch aktif:

{ "took": 2, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 3, "relation": "eq" }, "max_score": 0.0, "hits": [ { "_index": ".plugins-ml-task", "_id": "nyWbv5EB_tT1A82ZCu-e", "_score": 0.0, "_source": { "model_id": "nyWbv5EB_tT1A82ZCu-e", "state": "RUNNING", "task_type": "BATCH_PREDICTION", "create_time": 1725496527958, "last_update_time": 1725496527958 } }, { "_index": ".plugins-ml-task", "_id": "miKbv5EB_tT1A82ZCu-f", "_score": 0.0, "_source": { "model_id": "miKbv5EB_tT1A82ZCu-f", "state": "RUNNING", "task_type": "BATCH_PREDICTION", "create_time": 1725496528123, "last_update_time": 1725496528123 } }, { "_index": ".plugins-ml-task", "_id": "kiLbv5EB_tT1A82ZCu-g", "_score": 0.0, "_source": { "model_id": "kiLbv5EB_tT1A82ZCu-g", "state": "RUNNING", "task_type": "BATCH_PREDICTION", "create_time": 1725496529456, "last_update_time": 1725496529456 } } ] } }

Setelah memantau pekerjaan inferensi batch dan mengonfirmasikannya selesai, Anda dapat menjalankan berbagai jenis pencarian AI, termasuk semantik, hibrida, percakapan (dengan RAG), neural sparse, dan multimodal. Untuk informasi selengkapnya tentang penelusuran AI yang didukung oleh OpenSearch Layanan, lihat pencarian AI.

Untuk mencari vektor mentah, gunakan jenis knn kueri, berikan vector array sebagai input, dan tentukan k jumlah hasil yang dikembalikan:

GET /my-raw-vector-index/_search { "query": { "knn": { "my_vector": { "vector": [0.1, 0.2, 0.3], "k": 2 } } } }

Untuk menjalankan pencarian bertenaga AI, gunakan jenis neural kueri. Tentukan query_text input, model model_id penyematan yang Anda konfigurasikan di pipeline OpenSearch Ingestion, dan k jumlah hasil yang dikembalikan. Untuk mengecualikan embeddings dari hasil pencarian, tentukan nama bidang embedding di parameter: _source.excludes

GET /my-ai-search-index/_search { "_source": { "excludes": [ "output_embedding" ] }, "query": { "neural": { "output_embedding": { "query_text": "What is AI search?", "model_id": "mBGzipQB2gmRjlv_dOoB", "k": 2 } } } }