Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Memulai dengan Vektor S3
catatan
Vektor Amazon S3 sedang dalam rilis pratinjau untuk Amazon Simple Storage Service dan dapat berubah sewaktu-waktu.
Dalam tutorial ini, Anda membuat bucket vektor S3 dan indeks vektor di Wilayah AWS konsol Amazon S3. Selanjutnya, Anda menggunakan model embedding Amazon Bedrock untuk menghasilkan embeddings vektor data Anda dan menyimpannya dalam indeks vektor Anda untuk melakukan pencarian semantik.
Untuk memulai, daftar AWS akun jika Anda belum memilikinya. Untuk informasi selengkapnya tentang pengaturan dengan akun, lihatMemulai dengan Amazon S3.
Topik
Langkah 2: Buat indeks vektor dalam ember vektor dengan konsol
Langkah 3: Masukkan vektor ke dalam indeks vektor dengan SDK for Python (Boto3)
Langkah 4. Vektor kueri dalam indeks vektor dengan SDK for Python (Boto3)
(Opsional) Otomatiskan pembuatan penyematan vektor dengan S3 Vectors Embed CLI
(Opsional) Integrasikan Vektor S3 dengan Basis Pengetahuan Amazon Bedrock
Langkah 1: Buat bucket vektor dengan konsol
Bucket vektor S3 adalah jenis bucket Amazon S3 yang dibuat khusus untuk menyimpan dan menanyakan vektor. Anda menggunakan operasi API khusus untuk menulis dan menanyakan data vektor. Anda dapat mengontrol akses ke data vektor Anda dengan mekanisme kontrol akses seperti kebijakan berbasis identitas IAM dan kebijakan berbasis sumber daya.
Pada langkah ini, Anda menggunakan konsol Amazon S3 untuk membuat bucket vektor pertama Anda. Untuk cara lain untuk membuat bucket vektor, lihatMembuat ember vektor.
Untuk membuat ember vektor
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di panel navigasi kiri, pilih ember Vektor.
-
Pada halaman Vector bucket, pilih Create vector bucket.
-
Pada halaman Bucket Create vector, untuk bidang Nama bucket Vector, masukkan nama. Dalam tutorial ini, kita gunakan
media-embeddingssebagai nama bucket vektor. Nama bucket vektor harus 3 hingga 63 karakter dan unik dalam file Wilayah AWS. Karakter yang valid adalah huruf kecil (a-z), angka (0-9), dan tanda hubung (-).catatan
Nama bucket vektor tidak dapat diubah setelah bucket dibuat.
-
Di bawah Enkripsi, pilih Tentukan jenis enkripsi. Anda memiliki opsi untuk menentukan jenis enkripsi sebagai enkripsi sisi Server dengan AWS Key Management Service kunci (SSE-KMS) atau enkripsi sisi Server default dengan kunci terkelola Amazon S3 (SSE-S3). Dalam tutorial ini, kami memilih enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3). Untuk informasi selengkapnya tentang pengaturan konfigurasi enkripsi untuk bucket vektor, lihatPerlindungan data dan enkripsi di Vektor S3.
catatan
Jenis enkripsi tidak dapat diubah setelah bucket vektor dibuat.
-
Pilih Buat ember vektor.
Langkah 2: Buat indeks vektor dalam ember vektor dengan konsol
catatan
Pilih parameter konfigurasi indeks vektor Anda dengan hati-hati. Setelah membuat indeks vektor, Anda tidak dapat memperbarui nama indeks vektor, dimensi, metrik jarak, atau kunci metadata yang tidak dapat difilter. Untuk mengubah salah satu dari nilai-nilai ini, Anda harus membuat indeks vektor baru.
Pada langkah ini, Anda membuat indeks vektor di bucket vektor Anda. Indeks vektor digunakan untuk menyimpan dan menanyakan embeddings vektor Anda. Untuk informasi selengkapnya tentang indeks vektor, lihatIndeks vektor.
Untuk membuat indeks vektor
-
Arahkan ke bucket vektor yang baru dibuat dalam daftar bucket Vector di konsol Amazon S3.
-
Pilih Buat indeks vektor.
-
Pada halaman Buat indeks vektor, masukkan nama di bidang Nama indeks vektor. Dalam tutorial ini, kita gunakan
moviessebagai nama indeks vektor.Nama indeks vektor harus 3 hingga 63 karakter dan unik dalam ember vektor ini. Karakter yang valid adalah huruf kecil (a-z), angka (0-9), tanda hubung (-), dan titik (.).
Nama indeks vektor tidak dapat diubah setelah pembuatan indeks.
-
Di bawah Dimensi, tentukan nilai numerik antara 1 dan 4096 yang menentukan berapa banyak angka yang akan ada di setiap vektor yang dihasilkan oleh model penyematan vektor Anda. Model penyematan adalah model pembelajaran mesin khusus (ML) yang mengubah data (seperti teks atau gambar) menjadi vektor numerik. Model embedding biasanya menghasilkan output antara 500-2000 dimensi, dengan masing-masing dimensi menjadi angka floating-point. Dalam tutorial ini, kita akan menggunakan model embedding Titan Text v2 dari Amazon Bedrock. Model embedding ini menggunakan vektor 1024 dimensi sebagai default, jadi kita akan mengatur dimensi untuk indeks vektor.
1024Nilai dimensi tidak dapat diubah setelah pembuatan indeks. Tentukan nilai dimensi dengan cermat berdasarkan rekomendasi model penyematan Anda.
-
Di bawah metrik Jarak, pilih Kosinus (yang mengukur kesamaan sudut) atau Euclidean (yang mengukur jarak garis lurus) sebagai metrik jarak untuk menentukan bagaimana kesamaan antara vektor dihitung selama kueri. Dalam tutorial ini, kita memilih Cosine.
Metrik jarak tidak dapat diubah setelah pembuatan indeks. Pilih metrik jarak dengan hati-hati berdasarkan rekomendasi model penyematan Anda.
-
Di bawah Pengaturan tambahan (opsional), Anda dapat menentukan kunci metadata yang tidak dapat difilter untuk menyimpan informasi tambahan di samping penyematan vektor Anda.
catatan
Anda dapat melampirkan metadata yang dapat difilter sebagai pasangan nilai kunci ke setiap vektor saat Anda memasukkan data vektor setelah pembuatan indeks. Secara default, semua kunci metadata yang dilampirkan ke vektor dapat difilter dan dapat digunakan sebagai filter dalam kueri kesamaan. Hanya kunci metadata yang ditetapkan sebagai tidak dapat difilter selama pembuatan indeks vektor yang dikecualikan dari pemfilteran.
Setiap kunci metadata yang tidak dapat difilter harus antara 1 hingga 63 karakter dan unik dalam indeks vektor. Kunci ini berguna untuk menyimpan informasi referensi yang tidak perlu Anda filter selama kueri kesamaan. Misalnya, saat bekerja dengan penyematan teks, Anda mungkin ingin mempertahankan potongan teks asli untuk tujuan referensi. Dalam tutorial ini, kita menambahkan kunci metadata yang tidak dapat difilter yang diberi nama
source_textuntuk menyimpan data teks yang ingin kita buat embeddings vektor.Anda tidak dapat memperbarui kunci metadata yang tidak dapat difilter setelah pembuatan indeks. Rencanakan struktur metadata Anda dengan hati-hati.
-
Pilih Buat indeks vektor.
Verifikasi bahwa indeks vektor baru Anda muncul di dalam bucket.
Langkah 3: Masukkan vektor ke dalam indeks vektor dengan SDK for Python (Boto3)
Untuk menyisipkan, membuat daftar, dan kueri vektor, gunakan AWS SDKs AWS CLI, atau Amazon S3 REST API.
Langkah ini adalah menyisipkan embeddings vektor ke indeks vektor Anda dengan operasi API. PutVectors
Anda harus terlebih dahulu menghasilkan embeddings vektor dengan menggunakan model embedding pilihan Anda. Jika Anda menggunakan Amazon Bedrock, buat penyematan dengan menggunakan operasi InvokeModelAPI untuk menentukan model penyematan pilihan Anda. Atau, untuk menghasilkan dan menyisipkan embeddings vektor dengan satu perintah, lihat. (Opsional) Otomatiskan pembuatan penyematan vektor dengan S3 Vectors Embed CLI
Contoh kode berikut menghasilkan embeddings vektor 1024 dimensi dengan model Titan Text Embeddings V2 dari Amazon Bedrock dengan menggunakan AWS SDK untuk Python (Boto3), dan menyimpannya dalam indeks vektor Anda dengan menggunakan API. PutVectors Seiring dengan setiap vektor, kami melampirkan pasangan kunci-nilai sebagai metadata yang dapat difilter. Selain itu, kami menggunakan kunci metadata yang tidak dapat difilter yang diberi nama source_text untuk mempertahankan teks asli dari mana setiap vektor diturunkan. Untuk memaksimalkan throughput permintaan dan mengoptimalkan kecepatan dan efisiensi, kami menyarankan Anda memasukkan dan menghapus vektor dalam batch. Untuk informasi selengkapnya, lihat Praktik terbaik Vektor S3.
# Populate a vector index with embeddings from Amazon Titan Text Embeddings V2. import boto3 import json # Create Bedrock Runtime and S3 Vectors clients in the AWS Region of your choice. bedrock = boto3.client("bedrock-runtime", region_name="us-west-2") s3vectors = boto3.client("s3vectors", region_name="us-west-2") # Texts to convert to embeddings. texts = [ "Star Wars: A farm boy joins rebels to fight an evil empire in space", "Jurassic Park: Scientists create dinosaurs in a theme park that goes wrong", "Finding Nemo: A father fish searches the ocean to find his lost son" ] # Generate vector embeddings. embeddings = [] for text in texts: response = bedrock.invoke_model( modelId="amazon.titan-embed-text-v2:0", body=json.dumps({"inputText": text}) ) # Extract embedding from response. response_body = json.loads(response["body"].read()) embeddings.append(response_body["embedding"]) # Write embeddings into vector index with metadata. s3vectors.put_vectors( vectorBucketName="media-embeddings", indexName="movies", vectors=[ { "key": "Star Wars", "data": {"float32": embeddings[0]}, "metadata": {"source_text": texts[0], "genre":"scifi"} }, { "key": "Jurassic Park", "data": {"float32": embeddings[1]}, "metadata": {"source_text": texts[1], "genre":"scifi"} }, { "key": "Finding Nemo", "data": {"float32": embeddings[2]}, "metadata": {"source_text": texts[2], "genre":"family"} } ] )
Langkah 4. Vektor kueri dalam indeks vektor dengan SDK for Python (Boto3)
Setelah menyimpan embeddings vektor dalam indeks vektor, Anda dapat melakukan pencarian kesamaan dengan menggunakan operasi API. QueryVectors
Anda harus terlebih dahulu membuat penyematan vektor kueri Anda dengan menggunakan model penyematan yang sama yang digunakan selama penyisipan di. Langkah 3: Masukkan vektor ke dalam indeks vektor dengan SDK for Python (Boto3) Dalam tutorial ini, gunakan model Titan Text Embeddings V2 dari Amazon Bedrock melalui SDK for Python (Boto3).
Anda dapat melakukan pencarian kesamaan untuk mengembalikan vektor pencocokan terdekat. Dalam pencarian kesamaan, Anda dapat memfilter secara opsional dengan menggunakan kunci metadata untuk mempersempit hasil berdasarkan kriteria tertentu sambil mempertahankan relevansi semantik.
# Query a vector index with an embedding from Amazon Titan Text Embeddings V2. import boto3 import json # Create Bedrock Runtime and S3 Vectors clients in the AWS Region of your choice. bedrock = boto3.client("bedrock-runtime", region_name="us-west-2") s3vectors = boto3.client("s3vectors", region_name="us-west-2") # Query text to convert to an embedding. input_text = "adventures in space" # Generate the vector embedding. response = bedrock.invoke_model( modelId="amazon.titan-embed-text-v2:0", body=json.dumps({"inputText": input_text}) ) # Extract embedding from response. model_response = json.loads(response["body"].read()) embedding = model_response["embedding"] # Query vector index. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2)) # Query vector index with a metadata filter. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, filter={"genre": "scifi"}, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2))
(Opsional) Otomatiskan pembuatan penyematan vektor dengan S3 Vectors Embed CLI
Amazon S3 Vectors Embed CLI adalah alat baris perintah mandiri yang menyederhanakan proses bekerja dengan penyematan vektor di Vektor S3. Dengan perintah tunggal, Anda dapat membuat embeddings vektor untuk data Anda dengan menggunakan Amazon Bedrock, dan menyimpan serta menanyakannya dalam indeks vektor S3 Anda. Alat ini mendukung perintah berikut:
-
s3vectors-embed put: Hasilkan penyematan vektor teks, konten file, atau objek S3, dan simpan sebagai vektor dalam indeks vektor S3. -
s3vectors-embed query: Sematkan input kueri dan cari vektor serupa dalam indeks vektor S3.
Untuk informasi selengkapnya tentang perintah dan penggunaan, lihat repositori Amazon S3 Vectors Embed CLI. GitHub
(Opsional) Integrasikan Vektor S3 dengan Basis Pengetahuan Amazon Bedrock
Amazon Bedrock Knowledge Bases terintegrasi dengan Vektor S3 untuk penyimpanan dataset vektor yang hemat biaya dan jangka panjang.
Prasyarat
Ikuti prasyarat untuk memastikan Anda memiliki izin yang diperlukan untuk membuat basis pengetahuan Amazon Bedrock.
-
Izin IAM yang sesuai untuk layanan Vektor S3 dan Amazon Bedrock. Untuk informasi selengkapnya tentang izin IAM untuk Vektor S3, lihat. Manajemen Identitas dan Akses di Vektor S3
-
Dokumen sumber Anda disiapkan untuk diserap ke dalam basis pengetahuan.
-
Pemahaman tentang persyaratan model embedding Anda.
Buat basis pengetahuan Amazon Bedrock dengan Vektor S3 di konsol
Amazon Bedrock Knowledge Bases menyediakan alur kerja end-to-end RAG yang dikelola sepenuhnya. Saat Anda membuat basis pengetahuan dengan Vektor S3, Amazon Bedrock secara otomatis mengambil data dari sumber data S3 Anda, mengubah konten menjadi blok teks, menghasilkan embeddings, dan menyimpannya dalam indeks vektor Anda. Anda kemudian dapat menanyakan basis pengetahuan dan menghasilkan respons berdasarkan potongan yang diambil dari data sumber Anda.
Untuk membuat basis pengetahuan Amazon Bedrock dengan Vektor S3 di konsol
-
Masuk ke AWS Management Console menggunakan peran IAM dengan izin Amazon Bedrock, dan buka konsol Amazon Bedrock di. https://console.aws.amazon.com/bedrock/
-
Di panel navigasi kiri, pilih Pangkalan Pengetahuan.
-
Di bagian Basis Pengetahuan, pilih Buat. Dalam daftar dropdown, pilih Pangkalan Pengetahuan dengan penyimpanan vektor.
-
Simpan nama Basis Pengetahuan, deskripsi Basis Pengetahuan, dan izin IAM pada nilai default mereka dalam tutorial ini.
-
Untuk Pilih tipe sumber data, pilih sumber data untuk menghubungkan basis pengetahuan Anda. Dalam tutorial ini, pilih Amazon S3.
-
(Opsional) Berikan Tag atau log Aplikasi apa pun.
-
Pilih Berikutnya.
-
Pada halaman Konfigurasi sumber data, simpan nama sumber Data, Lokasi sumber data, strategi Parsing, dan strategi Chunking di pengaturan default dalam tutorial ini.
-
Di URI S3, masukkan bucket tujuan umum S3 yang berisi file sumber Anda, atau pilih Browse S3 dan pilih bucket tujuan umum S3.
-
Untuk data S3 terenkripsi, pilih Tambahkan kunci KMS yang dikelola pelanggan untuk data S3 dan tentukan kunci KMS yang dikelola pelanggan Anda.
-
Pilih Berikutnya untuk melanjutkan ke langkah berikutnya yang menentukan model Embeddings dan opsi penyimpanan Vector.
-
Di bagian model Embeddings, pilih Pilih model dan pilih model penyematan yang kompatibel untuk digunakan dengan Vektor S3. Anda harus menggunakan floating-point embeddings. Tipe biner tidak didukung.
-
(Opsional) Perluas bagian Konfigurasi tambahan untuk melihat opsi konfigurasi berikut (tidak semua model mendukung semua konfigurasi):
-
Jenis penyematan — Apakah akan mengonversi data menjadi penyematan vektor floating-point (float32) (lebih tepat, tetapi lebih mahal) atau penyematan vektor biner (kurang tepat, tetapi lebih murah). Untuk berintegrasi dengan Vektor S3, Anda harus memilih Embeddings vektor Floating-point.
-
Dimensi vektor — Pilih model embedding ukuran dimensi yang direkomendasikan.
-
-
Di bagian Penyimpanan vektor, pilih metode yang disarankan Cepat buat penyimpanan vektor baru untuk penyiapan otomatis bucket vektor baru, atau pilih Gunakan penyimpanan vektor yang ada untuk menggunakan bucket vektor yang ada jika tersedia. Untuk informasi tentang menggunakan alur penyimpanan vektor yang ada, lihat Prasyarat untuk menggunakan penyimpanan vektor yang Anda buat untuk basis pengetahuan di Panduan Pengguna Amazon Bedrock.
-
Untuk konfigurasi Tambahan — Secara default, bucket vektor Anda menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3). Anda dapat memilih untuk menggunakan kunci KMS Anda sendiri untuk enkripsi sisi server dengan kunci Layanan Manajemen AWS Kunci (SSE-KMS) untuk meningkatkan kontrol atas pengaturan enkripsi.
-
Pilih Berikutnya untuk meninjau detail Basis Pengetahuan dan kemudian pilih Buat Basis Pengetahuan.
catatan
Waktu yang diperlukan untuk membuat basis pengetahuan tergantung pada konfigurasi spesifik Anda. Ketika pembuatan basis pengetahuan selesai, status basis pengetahuan berubah untuk menyatakan bahwa basis pengetahuan sudah siap atau tersedia. Setelah basis pengetahuan Anda siap dan tersedia, sinkronkan sumber data Anda untuk pertama kalinya atau kapan pun Anda ingin memperbarui konten Anda. Untuk menyinkronkan sumber data Anda, pilih basis pengetahuan Anda di konsol dan pilih Sinkronkan dalam bagian ikhtisar sumber data.
(Opsional) Integrasikan Vektor S3 dengan Amazon OpenSearch
Amazon OpenSearch Service adalah layanan
Lihat informasi yang lebih lengkap di Menggunakan Vektor S3 dengan Layanan OpenSearch .