Kecerdasan Data Generatif

Basis Pengetahuan untuk Amazon Bedrock kini mendukung pemfilteran metadata untuk meningkatkan akurasi pengambilan | Layanan Web Amazon

Tanggal:

At AWS re: Temukan 2023, kami mengumumkan ketersediaan umum Basis Pengetahuan untuk Batuan Dasar Amazon. Dengan Basis Pengetahuan untuk Amazon Bedrock, Anda dapat menghubungkan model dasar (FM) dengan aman Batuan Dasar Amazon ke data perusahaan Anda menggunakan model Retrieval Augmented Generation (RAG) yang terkelola sepenuhnya.

Untuk aplikasi berbasis RAG, keakuratan respons yang dihasilkan dari FM bergantung pada konteks yang diberikan pada model. Konteks diambil dari penyimpanan vektor berdasarkan permintaan pengguna. Dalam fitur Basis Pengetahuan untuk Amazon Bedrock yang baru-baru ini dirilis, pencarian hibrida, Anda dapat menggabungkan pencarian semantik dengan pencarian kata kunci. Namun, dalam banyak situasi, Anda mungkin perlu mengambil dokumen yang dibuat dalam jangka waktu tertentu atau diberi tag dengan kategori tertentu. Untuk menyaring hasil pencarian, Anda dapat memfilter berdasarkan metadata dokumen untuk meningkatkan akurasi pengambilan, yang pada gilirannya menghasilkan generasi FM yang lebih relevan dan selaras dengan minat Anda.

Dalam postingan ini, kami membahas fitur pemfilteran metadata kustom baru di Basis Pengetahuan untuk Amazon Bedrock, yang dapat Anda gunakan untuk meningkatkan hasil pencarian dengan memfilter terlebih dahulu pengambilan Anda dari penyimpanan vektor.

Ikhtisar pemfilteran metadata

Sebelum peluncuran pemfilteran metadata, semua potongan yang relevan secara semantik hingga maksimum yang telah ditentukan sebelumnya akan dikembalikan sebagai konteks yang digunakan FM untuk menghasilkan respons. Sekarang, dengan filter metadata, Anda tidak hanya dapat mengambil potongan yang relevan secara semantik tetapi juga subkumpulan potongan yang relevan yang terdefinisi dengan baik berdasarkan filter metadata yang diterapkan dan nilai terkait.

Dengan fitur ini, Anda kini dapat menyediakan file metadata khusus (masing-masing hingga 10 KB) untuk setiap dokumen di basis pengetahuan. Anda dapat menerapkan filter pada pengambilan Anda, menginstruksikan penyimpanan vektor untuk melakukan pra-filter berdasarkan metadata dokumen dan kemudian mencari dokumen yang relevan. Dengan cara ini, Anda memiliki kendali atas dokumen yang diambil, terutama jika pertanyaan Anda ambigu. Misalnya, Anda dapat menggunakan dokumen hukum dengan istilah serupa untuk konteks berbeda, atau film yang memiliki plot serupa yang dirilis pada tahun berbeda. Selain itu, dengan mengurangi jumlah potongan yang sedang dicari, Anda memperoleh keunggulan kinerja seperti pengurangan siklus CPU dan biaya kueri penyimpanan vektor, selain peningkatan akurasi.

Untuk menggunakan fitur pemfilteran metadata, Anda perlu menyediakan file metadata bersama file data sumber dengan nama yang sama dengan file data sumber dan .metadata.json akhiran. Metadata dapat berupa string, angka, atau Boolean. Berikut ini contoh isi file metadata:

{
    "metadataAttributes" : { 
        "tag" : "project EVE",
        "year" :  2016,
        "team": "ninjas"
    }
}

Fitur pemfilteran metadata Basis Pengetahuan untuk Amazon Bedrock tersedia di Wilayah AWS US East (N. Virginia) dan US West (Oregon).

Berikut ini adalah kasus penggunaan umum untuk pemfilteran metadata:

  • Dokumentasikan chatbot untuk perusahaan perangkat lunak โ€“ Ini memungkinkan pengguna menemukan informasi produk dan panduan pemecahan masalah. Filter pada sistem operasi atau versi aplikasi, misalnya, dapat membantu menghindari pengambilan dokumen usang atau tidak relevan.
  • Pencarian percakapan aplikasi organisasi โ€“ Hal ini memungkinkan pengguna untuk mencari dokumen, kanban, transkrip rekaman rapat, dan aset lainnya. Dengan menggunakan filter metadata pada grup kerja, unit bisnis, atau ID proyek, Anda dapat mempersonalisasi pengalaman obrolan dan meningkatkan kolaborasi. Contohnya adalah, โ€œBagaimana status proyek Sphinx dan risiko yang timbul,โ€ di mana pengguna dapat memfilter dokumen untuk proyek atau jenis sumber tertentu (seperti email atau dokumen rapat).
  • Pencarian cerdas untuk pengembang perangkat lunak โ€“ Ini memungkinkan pengembang untuk mencari informasi rilis tertentu. Filter pada versi rilis, jenis dokumen (seperti kode, referensi API, atau masalah) dapat membantu menentukan dokumen yang relevan.

Ikhtisar solusi

Di bagian berikut, kami mendemonstrasikan cara menyiapkan himpunan data untuk digunakan sebagai basis pengetahuan, lalu melakukan kueri dengan pemfilteran metadata. Anda dapat melakukan kueri menggunakan salah satu Konsol Manajemen AWS atau SDK.

Siapkan kumpulan data untuk Basis Pengetahuan untuk Amazon Bedrock

Untuk posting ini, kami menggunakan file contoh kumpulan data tentang video game fiksi untuk mengilustrasikan cara menyerap dan mengambil metadata menggunakan Basis Pengetahuan untuk Amazon Bedrock. Jika Anda ingin mengikutinya di akun AWS Anda sendiri, unduh filenya.

Jika Anda ingin menambahkan metadata ke dokumen Anda di basis pengetahuan yang sudah ada, buat file metadata dengan nama file dan skema yang diharapkan, lalu lewati ke langkah untuk menyinkronkan data Anda dengan basis pengetahuan untuk memulai penyerapan bertahap.

Dalam contoh kumpulan data kami, setiap dokumen game adalah file CSV terpisah (misalnya, s3://$bucket_name/video_game/$game_id.csv) dengan kolom berikut:

title, description, genres, year, publisher, score

Metadata setiap game memiliki akhiran .metadata.json (sebagai contoh, s3://$bucket_name/video_game/$game_id.csv.metadata.json) dengan skema berikut:

{
  "metadataAttributes": {
    "id": number, 
    "genres": string,
    "year": number,
    "publisher": string,
    "score": number
  }
}

Buat basis pengetahuan untuk Amazon Bedrock

Untuk instruksi membuat basis pengetahuan baru, lihat Buat basis pengetahuan. Untuk contoh ini, kami menggunakan pengaturan berikut:

  • pada Siapkan sumber data halaman, di bawah Strategi pemotongan, pilih Tidak ada potongan, karena Anda sudah memproses dokumen pada langkah sebelumnya.
  • Dalam majalah Model penyematan bagian, pilih Penyematan Titan G1 โ€“ Teks.
  • Dalam majalah Basis data vektor bagian, pilih Buat toko vektor baru dengan cepat. Fitur pemfilteran metadata tersedia untuk semua penyimpanan vektor yang didukung.

Sinkronkan kumpulan data dengan basis pengetahuan

Setelah Anda membuat basis pengetahuan, dan file data serta file metadata Anda berada di Layanan Penyimpanan Sederhana Amazon (Amazon S3), Anda dapat memulai penyerapan tambahan. Untuk instruksi, lihat Sinkronkan untuk menyerap sumber data Anda ke dalam basis pengetahuan.

Kueri dengan pemfilteran metadata di konsol Amazon Bedrock

Untuk menggunakan opsi pemfilteran metadata di konsol Amazon Bedrock, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon Bedrock, pilih Basis pengetahuan di panel navigasi.
  2. Pilih basis pengetahuan yang Anda buat.
  3. Pilih Uji basis pengetahuan.
  4. Pilih Konfigurasi ikon, lalu perluas filter.
  5. Masukkan kondisi menggunakan format: key = value (misalnya, genre = Strategy) dan tekan Enter.
  6. Untuk mengubah kunci, nilai, atau operator, pilih kondisi.
  7. Lanjutkan dengan ketentuan yang tersisa (misalnya, (genre = Strategi DAN tahun >= 2023) ATAU (peringkat >= 9))
  8. Setelah selesai, masukkan kueri Anda di kotak pesan, lalu pilih Run.

Untuk postingan kali ini, kami memasukkan kueri โ€œGame strategi dengan grafis keren yang dirilis setelah tahun 2023โ€.

Kueri dengan pemfilteran metadata menggunakan SDK

Untuk menggunakan SDK, pertama-tama buat klien untuk Agen untuk Amazon Bedrock waktu berjalan:

import boto3

bedrock_agent_runtime = boto3.client(
    service_name = "bedrock-agent-runtime"
)

Kemudian buat filternya (berikut beberapa contohnya):

# genres = Strategy
single_filter= {
    "equals": {
        "key": "genres",
        "value": "Strategy"
    }
}

# genres = Strategy AND year >= 2023
one_group_filter= {
    "andAll": [
        {
            "equals": {
                "key": "genres",
                "value": "Strategy"
            }
        },
        {
            "GreaterThanOrEquals": {
                "key": "year",
                "value": 2023
            }
        }
    ]
}

# (genres = Strategy AND year >=2023) OR score >= 9
two_group_filter = {
    "orAll": [
        {
            "andAll": [
                {
                    "equals": {
                        "key": "genres",
                        "value": "Strategy"
                    }
                },
                {
                    "GreaterThanOrEquals": {
                        "key": "year",
                        "value": 2023
                    }
                }
            ]
        },
        {
            "GreaterThanOrEquals": {
                "key": "score",
                "value": "9"
            }
        }
    ]
}

Lewati filter ke retrievalConfiguration dari API Pengambilan or Ambil Dan Hasilkan Lebah:

retrievalConfiguration={
        "vectorSearchConfiguration": {
            "filter": metadata_filter
        }
    }

Tabel berikut mencantumkan beberapa respons dengan kondisi pemfilteran metadata yang berbeda.

Pertanyaan Penyaringan Metadata Dokumen yang Diambil Pengamatan
โ€œGame strategi dengan grafis keren yang dirilis setelah tahun 2023โ€ Off

* Viking Saga: The Sea Raider, tahun:2023, genre: Strategi

* Kastil Abad Pertengahan: Pengepungan dan Penaklukan, tahun:2022, genre: Strategi
* Kerajaan Fantasi: Chronicles of Eldoria, tahun:2023, genre: Strategi

* Revolusi Sibernetik: Bangkitnya Mesin, tahun:2022, genre: Strategi
* Steampunk Chronicles: Clockwork Empires, tahun:2021, genre: Pembangunan Kota

2/5 game memenuhi syarat (genre = Strategi dan tahun >= 2023)
On * Viking Saga: The Sea Raider, tahun:2023, genre: Strategi
* Kerajaan Fantasi: Chronicles of Eldoria, tahun:2023, genre: Strategi
2/2 game memenuhi syarat (genre = Strategi dan tahun >= 2023)

Selain metadata khusus, Anda juga dapat memfilter menggunakan prefiks S3 (yang merupakan metadata bawaan, sehingga Anda tidak perlu menyediakan file metadata apa pun). Misalnya, jika Anda mengatur dokumen game ke dalam awalan menurut penerbit (misalnya, s3://$bucket_name/video_game/$publisher/$game_id.csv), Anda dapat memfilter berdasarkan penerbit tertentu (misalnya, neo_tokyo_games) menggunakan sintaks berikut:

publisher_filter = {
    "startsWith": {
                    "key": "x-amz-bedrock-kb-source-uri",
                    "value": "s3://$bucket_name/video_game/neo_tokyo_games/"
                }
}

Membersihkan

Untuk membersihkan sumber daya Anda, selesaikan langkah-langkah berikut:

  1. Hapus basis pengetahuan:
    1. Di konsol Amazon Bedrock, pilih Basis pengetahuan bawah Orkestrasi di panel navigasi.
    2. Pilih basis pengetahuan yang Anda buat.
    3. Perhatikan Identitas AWS dan Manajemen Akses (IAM) nama peran layanan di Ikhtisar basis pengetahuan bagian.
    4. Dalam majalah Basis data vektor bagian, perhatikan koleksi ARN.
    5. Pilih Delete, lalu masukkan hapus untuk mengonfirmasi.
  2. Hapus database vektor:
    1. pada Layanan Pencarian Terbuka Amazon konsol, pilih koleksi bawah Tanpa Server di panel navigasi.
    2. Masukkan koleksi ARN yang Anda simpan di bilah pencarian.
    3. Pilih koleksi dan pilih Delete.
    4. Masukkan konfirmasi di prompt konfirmasi, lalu pilih Delete.
  3. Hapus peran layanan IAM:
    1. Di konsol IAM, pilih Peran di panel navigasi.
    2. Cari nama peran yang Anda catat sebelumnya.
    3. Pilih peran dan pilih Delete.
    4. Masukkan nama peran di konfirmasi konfirmasi dan hapus peran tersebut.
  4. Hapus kumpulan data sampel:
    1. Di konsol Amazon S3, navigasikan ke bucket S3 yang Anda gunakan.
    2. Pilih awalan dan file, lalu pilih Delete.
    3. Masukkan hapus permanen di prompt konfirmasi untuk menghapus.

Kesimpulan

Dalam postingan ini, kami membahas fitur pemfilteran metadata di Basis Pengetahuan untuk Amazon Bedrock. Anda mempelajari cara menambahkan metadata khusus ke dokumen dan menggunakannya sebagai filter saat mengambil dan menanyakan dokumen menggunakan konsol Amazon Bedrock dan SDK. Hal ini membantu meningkatkan akurasi konteks, membuat respons kueri menjadi lebih relevan sekaligus mencapai pengurangan biaya kueri database vektor.

Untuk sumber daya tambahan, lihat yang berikut ini:


Tentang Penulis

Corvus Lee adalah Arsitek Solusi Senior GenAI Labs yang berbasis di London. Dia bersemangat merancang dan mengembangkan prototipe yang menggunakan AI generatif untuk memecahkan masalah pelanggan. Dia juga mengikuti perkembangan terkini dalam AI generatif dan teknik pengambilan dengan menerapkannya pada skenario dunia nyata.

Ahmad Ewis adalah Arsitek Solusi Senior di AWS GenAI Labs, yang membantu pelanggan membangun prototipe AI generatif untuk memecahkan masalah bisnis. Saat tidak berkolaborasi dengan pelanggan, dia senang bermain dengan anak-anaknya dan memasak.

Chris Pecora adalah Ilmuwan Data AI Generatif di Amazon Web Services. Dia bersemangat dalam membangun produk dan solusi inovatif sambil juga berfokus pada ilmu pengetahuan yang terobsesi dengan pelanggan. Saat tidak menjalankan eksperimen dan mengikuti perkembangan terkini GenAI, dia senang menghabiskan waktu bersama anak-anaknya.

tempat_img

Intelijen Terbaru

tempat_img

Hubungi kami

Hai, yang di sana! Apa yang bisa saya bantu?