Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Layanan Web Amazon

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Layanan Web Amazon

Dengan Basis Pengetahuan untuk Batuan Dasar Amazon, Anda dapat menyambungkan model pondasi (FM) dengan aman Batuan Dasar Amazon ke data perusahaan Anda untuk Retrieval Augmented Generation (RAG). Akses terhadap data tambahan membantu model ini menghasilkan respons yang lebih relevan, spesifik konteks, dan akurat tanpa perlu melatih kembali FM.

Dalam postingan ini, kami membahas dua fitur baru Basis Pengetahuan untuk Amazon Bedrock khusus untuk RetrieveAndGenerate API: mengonfigurasi jumlah hasil maksimum dan membuat perintah khusus dengan templat perintah basis pengetahuan. Anda sekarang dapat memilih ini sebagai opsi kueri di samping jenis pencarian.

Ikhtisar dan manfaat fitur baru

Opsi jumlah hasil maksimum memberi Anda kendali atas jumlah hasil pencarian yang akan diambil dari penyimpanan vektor dan diteruskan ke FM untuk menghasilkan jawabannya. Hal ini memungkinkan Anda menyesuaikan jumlah informasi latar belakang yang disediakan untuk pembuatan, sehingga memberikan lebih banyak konteks untuk pertanyaan kompleks atau lebih sedikit untuk pertanyaan sederhana. Ini memungkinkan Anda mengambil hingga 100 hasil. Opsi ini membantu meningkatkan kemungkinan konteks yang relevan, sehingga meningkatkan akurasi dan mengurangi halusinasi dari respons yang dihasilkan.

Templat perintah basis pengetahuan kustom memungkinkan Anda mengganti templat perintah default dengan templat Anda sendiri untuk menyesuaikan perintah yang dikirimkan ke model untuk pembuatan respons. Hal ini memungkinkan Anda untuk menyesuaikan nada, format output, dan perilaku FM saat merespons pertanyaan pengguna. Dengan opsi ini, Anda dapat menyempurnakan terminologi agar lebih sesuai dengan industri atau domain Anda (seperti layanan kesehatan atau hukum). Selain itu, Anda dapat menambahkan instruksi dan contoh khusus yang disesuaikan dengan alur kerja spesifik Anda.

Di bagian berikut, kami menjelaskan bagaimana Anda dapat menggunakan fitur-fitur ini dengan Konsol Manajemen AWS atau SDK.

Prasyarat

Untuk mengikuti contoh-contoh ini, Anda harus memiliki basis pengetahuan yang ada. Untuk petunjuk cara membuatnya, lihat Buat basis pengetahuan.

Konfigurasikan jumlah hasil maksimum menggunakan konsol

Untuk menggunakan opsi jumlah hasil maksimum menggunakan konsol, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon Bedrock, pilih Basis pengetahuan di panel navigasi kiri.
  2. Pilih basis pengetahuan yang Anda buat.
  3. Pilih Uji basis pengetahuan.
  4. Pilih ikon konfigurasi.
  5. Pilih Sinkronkan sumber data sebelum Anda mulai menguji basis pengetahuan Anda.
    Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  6. Bawah Konfigurasi, Untuk Pencarian Tipe, pilih jenis pencarian berdasarkan kasus penggunaan Anda.

Untuk posting ini, kami menggunakan pencarian hybrid karena menggabungkan pencarian semantik dan teks untuk memberikan akurasi yang lebih besar pada penyedia. Untuk mempelajari lebih lanjut tentang pencarian hibrid, lihat Basis Pengetahuan untuk Amazon Bedrock kini mendukung pencarian hibrid.

  1. Lihat lebih lanjut Jumlah maksimum potongan sumber dan atur jumlah hasil maksimum Anda.
    Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Untuk menunjukkan nilai fitur baru ini, kami menunjukkan contoh bagaimana Anda dapat meningkatkan keakuratan respons yang dihasilkan. Kami menggunakan Dokumen Amazon 10K untuk tahun 2023 sebagai sumber data untuk menciptakan basis pengetahuan. Kami menggunakan kueri berikut untuk eksperimen: โ€œPada tahun berapa pendapatan tahunan Amazon meningkat dari $245 miliar menjadi $434 miliar?โ€

Respons yang benar untuk pertanyaan ini adalah โ€œPendapatan tahunan Amazon meningkat dari $245 miliar pada tahun 2019 menjadi $434 miliar pada tahun 2022,โ€ berdasarkan dokumen di basis pengetahuan. Kami menggunakan Claude v2 sebagai FM untuk menghasilkan respons akhir berdasarkan informasi kontekstual yang diambil dari basis pengetahuan. Claude 3 Soneta dan Claude 3 Haiku juga didukung sebagai generasi FM.

Kami menjalankan kueri lain untuk mendemonstrasikan perbandingan pengambilan dengan konfigurasi berbeda. Kami menggunakan kueri masukan yang sama (โ€œPada tahun berapa pendapatan tahunan Amazon meningkat dari $245 miliar menjadi $434 miliar?โ€) dan menetapkan jumlah hasil maksimum menjadi 5.

Seperti yang ditunjukkan pada tangkapan layar berikut, respons yang dihasilkan adalah โ€œMaaf, saya tidak dapat membantu Anda dengan permintaan ini.โ€

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Selanjutnya, kita atur hasil maksimal menjadi 12 dan ajukan pertanyaan yang sama. Respons yang dihasilkan adalah โ€œpeningkatan pendapatan tahunan Amazon dari $245 miliar pada tahun 2019 menjadi $434 miliar pada tahun 2022.โ€

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Seperti yang ditunjukkan dalam contoh ini, kami dapat mengambil jawaban yang benar berdasarkan jumlah hasil yang diambil. Jika Anda ingin mempelajari lebih lanjut tentang atribusi sumber yang merupakan hasil akhir, pilih Tampilkan detail sumber untuk memvalidasi jawaban yang dihasilkan berdasarkan basis pengetahuan.

Sesuaikan templat prompt basis pengetahuan menggunakan konsol

Anda juga dapat menyesuaikan prompt default dengan prompt Anda sendiri berdasarkan kasus penggunaan. Untuk melakukannya di konsol, selesaikan langkah-langkah berikut:

  1. Ulangi langkah-langkah di bagian sebelumnya untuk mulai menguji basis pengetahuan Anda.
  2. Aktifkan Hasilkan tanggapan.
    Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  3. Pilih model pilihan Anda untuk menghasilkan respons.

Kami menggunakan model Claude v2 sebagai contoh di postingan ini. Model Claude 3 Sonnet dan Haiku juga tersedia untuk generasi.

  1. Pilih Mendaftar untuk melanjutkan.
    Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Setelah Anda memilih model, bagian baru dipanggil Templat prompt basis pengetahuan muncul di bawah Konfigurasi.

  1. Pilih Edit untuk mulai menyesuaikan prompt.
    Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  2. Sesuaikan templat perintah untuk menyesuaikan cara Anda ingin menggunakan hasil yang diambil dan menghasilkan konten.

Untuk postingan ini, kami memberikan beberapa contoh untuk membuat โ€œsistem AI Penasihat Keuanganโ€ menggunakan laporan keuangan Amazon dengan perintah khusus. Untuk praktik terbaik dalam rekayasa cepat, lihat Pedoman teknik yang cepat.

Kami sekarang menyesuaikan template prompt default dalam beberapa cara berbeda, dan mengamati responsnya.

Mari kita coba kueri dengan prompt default terlebih dahulu. Kami bertanya โ€œBerapa pendapatan Amazon pada tahun 2019 dan 2021?โ€ Berikut ini menunjukkan hasil kami.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Dari keluarannya, kami menemukan bahwa ini menghasilkan respons bentuk bebas berdasarkan pengetahuan yang diambil. Kutipan juga dicantumkan untuk referensi.

Katakanlah kita ingin memberikan instruksi tambahan tentang cara memformat respons yang dihasilkan, seperti menstandarkannya sebagai JSON. Kita dapat menambahkan instruksi ini sebagai langkah terpisah setelah mengambil informasi, sebagai bagian dari template prompt:

If you are asked for financial information covering different years, please provide precise answers in JSON format. Use the year as the key and the concise answer as the value. For example: {year:answer}

Respons akhir memiliki struktur yang diperlukan.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Dengan menyesuaikan prompt, Anda juga dapat mengubah bahasa respons yang dihasilkan. Pada contoh berikut, kami menginstruksikan model untuk memberikan jawaban dalam bahasa Spanyol.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Setelah menghapus $output_format_instructions$ dari prompt default, kutipan dari respons yang dihasilkan akan dihapus.

Di bagian berikut, kami menjelaskan bagaimana Anda dapat menggunakan fitur-fitur ini dengan SDK.

Konfigurasikan jumlah hasil maksimum menggunakan SDK

Untuk mengubah jumlah maksimum hasil dengan SDK, gunakan sintaks berikut. Untuk contoh ini, pertanyaannya adalah โ€œPada tahun berapa pendapatan tahunan Amazon meningkat dari $245 miliar menjadi $434 miliar?โ€ Tanggapan yang benar adalah โ€œPeningkatan pendapatan tahunan Amazon dari $245 miliar pada tahun 2019 menjadi $434 miliar pada tahun 2022.โ€

def retrieveAndGenerate(query, kbId, numberOfResults, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("In what year did Amazonโ€™s annual revenue increase from $245B to $434B?", 
"<knowledge base id>", numberOfResults, model_id, region_id)['output']['text']

'ThenumberOfResults'pilihan di bawah'retrievalConfiguration' memungkinkan Anda memilih jumlah hasil yang ingin Anda ambil. Keluaran dari RetrieveAndGenerate API mencakup respons yang dihasilkan, atribusi sumber, dan potongan teks yang diambil.

Berikut ini adalah hasil untuk nilai 'yang berbeda'.numberOfResults' parameter. Pertama, kita atur numberOfResults = 5.

Lalu kita atur numberOfResults = 12.

Sesuaikan templat prompt basis pengetahuan menggunakan SDK

Untuk menyesuaikan perintah menggunakan SDK, kami menggunakan kueri berikut dengan templat perintah yang berbeda. Untuk contoh ini, pertanyaannya adalah โ€œBerapa pendapatan Amazon pada tahun 2019 dan 2021?โ€

Berikut ini adalah templat prompt default:

"""You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.
Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

$output_format_instructions$

Assistant:
"""

Berikut ini adalah templat prompt yang disesuaikan:

"""Human: You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results.If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question.Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.

Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

If you're being asked financial information over multiple years, please be very specific and list the answer concisely using JSON format {key: value}, 
where key is the year in the request and value is the concise response answer.
Assistant:
"""

def retrieveAndGenerate(query, kbId, numberOfResults,promptTemplate, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                },
                'generationConfiguration': {
                        'promptTemplate': {
                            'textPromptTemplate': promptTemplate
                        }
                    }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("What was the Amazon's revenue in 2019 and 2021?โ€", 
                               "<knowledge base id>", <numberOfResults>, <promptTemplate>, <model_id>, <region_id>)['output']['text']

Dengan templat prompt default, kami mendapatkan respons berikut:

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Jika Anda ingin memberikan petunjuk tambahan seputar format keluaran pembuatan respons, seperti menstandardisasi respons dalam format tertentu (seperti JSON), Anda dapat menyesuaikan perintah yang ada dengan memberikan panduan lebih lanjut. Dengan templat prompt khusus kami, kami mendapatkan respons berikut.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

'ThepromptTemplate'pilihan dalam'generationConfiguration' memungkinkan Anda menyesuaikan perintah untuk kontrol yang lebih baik atas pembuatan jawaban.

Kesimpulan

Dalam postingan ini, kami memperkenalkan dua fitur baru di Basis Pengetahuan untuk Amazon Bedrock: menyesuaikan jumlah maksimum hasil pencarian dan menyesuaikan templat prompt default untuk RetrieveAndGenerate API. Kami mendemonstrasikan cara mengonfigurasi fitur ini di konsol dan melalui SDK untuk meningkatkan performa dan akurasi respons yang dihasilkan. Meningkatkan hasil maksimal akan memberikan informasi yang lebih komprehensif, sedangkan menyesuaikan templat cepat memungkinkan Anda menyempurnakan instruksi untuk model dasar agar lebih selaras dengan kasus penggunaan tertentu. Penyempurnaan ini menawarkan fleksibilitas dan kontrol yang lebih besar, memungkinkan Anda memberikan pengalaman yang disesuaikan untuk aplikasi berbasis RAG.

Agar sumber daya tambahan mulai diterapkan di lingkungan AWS Anda, lihat hal berikut:


Tentang penulis

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Sandeep Singh adalah Ilmuwan Data AI Generatif Senior di Amazon Web Services, yang membantu bisnis berinovasi dengan AI generatif. Ia berspesialisasi dalam AI Generatif, Kecerdasan Buatan, Pembelajaran Mesin, dan Desain Sistem. Dia bersemangat mengembangkan solusi canggih yang didukung AI/ML untuk memecahkan masalah bisnis yang kompleks untuk beragam industri, mengoptimalkan efisiensi dan skalabilitas.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Suyin Wang adalah Arsitek Solusi Spesialis AI/ML di AWS. Dia memiliki latar belakang pendidikan interdisipliner dalam Pembelajaran Mesin, Layanan Informasi Keuangan, dan Ekonomi, serta pengalaman bertahun-tahun dalam membangun aplikasi Ilmu Data dan Pembelajaran Mesin yang memecahkan masalah bisnis dunia nyata. Dia senang membantu pelanggan mengidentifikasi pertanyaan bisnis yang tepat dan membangun solusi AI/ML yang tepat. Di waktu luangnya, dia suka menyanyi dan memasak.

Basis Pengetahuan untuk Amazon Bedrock sekarang mendukung permintaan khusus untuk RetrieveAndGenerate API dan konfigurasi jumlah maksimum hasil yang diambil | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Sherly Ding adalah arsitek solusi spesialis kecerdasan buatan (AI) dan pembelajaran mesin (ML) senior di Amazon Web Services (AWS). Dia memiliki pengalaman luas dalam pembelajaran mesin dengan gelar PhD di bidang ilmu komputer. Dia terutama bekerja dengan pelanggan sektor publik dalam berbagai tantangan bisnis terkait AI/ML, membantu mereka mempercepat perjalanan pembelajaran mesin mereka di AWS Cloud. Saat tidak membantu pelanggan, dia menikmati aktivitas di luar ruangan.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS