Repositori ini meng -host kode sampel yang mendukung kode RE: Inforce 2024 dengan ID Sesi DAP341. Kode dalam repositori ini sengaja mudah dioptimalkan untuk keterbacaan selama sesi, dan tidak dimaksudkan untuk digunakan dalam pengaturan produksi.
Tujuan kode dalam repositori ini adalah untuk menunjukkan inti fungsional chatbot pengambilan augmented generasi (RAG), sambil menyoroti beberapa pertimbangan perlindungan data yang relevan untuk beban kerja AI generatif secara umum.
Jika Anda ingin menggunakan case penggunaan gaya chatbot kain dengan AWS dalam produksi, pertimbangkan salah satu opsi berikut:
Repositori ini berisi serangkaian "skrip" Python yang dapat dieksekusi untuk menunjukkan serangkaian ide. Skripnya diberi nomor karena, ketika dieksekusi secara berurutan, mereka menceritakan sebuah kisah tentang bagaimana chatbot kain bekerja, dan bagaimana data dapat dilindungi dalam beban kerja yang berbasis di Genai. Namun, semua skrip mandiri dan idempoten dan tidak perlu dijalankan secara berurutan.
Beberapa skrip Python yang disediakan di sini perlu dimodifikasi sebelum mereka berjalan. Skrip disimpan di sini persis seperti yang ditunjukkan dalam presentasi Re: Inforce untuk konsistensi. Contoh di mana Anda harus memperbarui skrip dianotasi dengan #UPDATE_TO_RUN_YOURSELF .
Sumber daya AWS yang diperlukan untuk menjalankan skrip contoh Python, misalnya indeks Amazon Kendra, contoh data, dll., Dapat disediakan oleh pengguna repositori ini, tetapi di bawah ini adalah instruksi bagaimana sumber daya ini dapat dibuat.
Sumber daya AWS utama yang perlu dibuat dan dirujuk sebelum skrip Python akan berfungsi adalah indeks Amazon Kendra dan sumber data Kendra yang menyertainya yang menunjuk data pada ember Amazon S3. Perhatikan bahwa indeks Amazon Kendra memiliki biaya yang tidak dapat diabaikan, dan perawatan harus diambil untuk memahami biaya tersebut sebelum Anda menggunakan solusi ini.
Kode yang disediakan dalam repositori ini dimaksudkan untuk saling melengkapi dengan penyebaran pembangun aplikasi AI generatif di AWS. Jika Anda menggunakan pembuat aplikasi AI generatif di AWS, dan lanjutkan untuk menggunakan penyebaran kasus penggunaan "teks" dengan opsi "RAG" yang diaktifkan, indeks Kendra dapat dibuat untuk Anda seperti yang ditunjukkan pada bagian berikut:
Menyebarkan pembangun aplikasi AI generatif pada solusi AWS per panduan penyebaran.
Karena berkaitan dengan perlindungan data, pertimbangkan untuk menyebarkan solusi dengan opsi VPC diaktifkan, yang meminimalkan lalu lintas yang mengalir melalui internet publik dengan memanfaatkan titik akhir VPC.
Setelah dasbor penyebaran digunakan, Anda akan dapat menggunakan kasing penggunaan.
Saat menggunakan kasing penggunaan, pilih opsi text . Di bagian Select knowledge base , pilih yes untuk opsi RAG, pilih Kendra sebagai basis pengetahuan, dan, jika Anda belum memiliki indeks Kendra, pilih no untuk "Apakah Anda memiliki indeks Kendra yang sudah ada?" untuk membuatnya dibuat untuk Anda. Semua nilai default lainnya baik -baik saja, tetapi sesuaikan jika/sesuai kebutuhan sesuai kebutuhan Anda.
Setelah pembangun aplikasi AI generatif Anda digunakan, Anda akan memiliki Indeks Amazon Kendra. Anda sekarang perlu menambahkan sumber data Kendra ke indeks itu. Pertama, buat atau gunakan kembali ember Amazon S3 yang ada untuk menyimpan data. Unggah isi direktori data , serta src/kendra-acl.json dalam repositori ini dengan ember S3 sehingga struktur yang dihasilkan terlihat seperti ini:
engineering/rootrunner3k-techspecs.txt
wiki/ecorobopotato.txt
kendra-acl.json
Arahkan ke Indeks Amazon Kendra Anda di Konsol Manajemen AWS, dan pilih opsi Add Data Sources . Pilih opsi Amazon S3 connector . Berikan nama sumber data. Buat peran IAM, atau gunakan yang ada seperti yang diinginkan. Dalam Configure sync settings , masukkan lokasi S3 Bucket Anda, atur file kendra-acl.json dalam pengaturan Access control list configuration file location , perluas Additional configuration , dan tambahkan engineering dan marketing sebagai awalan yang akan diindeks. Semua nilai default lainnya cukup untuk membuat dan menggunakan sumber data Kendra Anda. Setelah sumber data dibuat, Anda harus memulai operasi sync sumber data setidaknya sekali, dan menunggu sinkronisasi itu selesai sebelum menjalankan skrip Python.
Sebelum Anda dapat menghubungi model Amazon Bedrock, Anda harus mengaktifkan akses model. Repositori ini menggunakan soneta Claude 3, jadi setidaknya model ini harus diaktifkan.
Untuk menjalankan file Python CloudWatch secara khusus, Anda harus mengaktifkan penebangan doa model Amazon Bedrock, khususnya dengan tujuan log Amazon CloudWatch.
Sebagai bagian dari proses ini, Anda akan membuat grup Log CloudWatch, yang harus diperbarui dalam skrip Python yang menyertainya.
Untuk menjalankan skrip Python yang terkait dengan pagar batuan dasar, Anda harus membuat pagar batuan dasar. Untuk melakukannya menggunakan konsol manajemen AWS, arahkan ke Amazon Bedrock Service dan pilih bagian pagar pembatas. Pilih Create guardrail . Berikan nama dan atur dengan default atau opsi mana pun yang Anda sukai. Namun, pastikan bahwa di bagian Add sensitive information filters , Anda menambahkan jenis Address PII, dan pilih Mask sebagai perilaku pagar pembatas. Ini memastikan bahwa pagar pembatas Anda akan mereplikasi perilaku yang dimaksudkan untuk ditunjukkan dalam skrip Python dalam proyek ini.
File Markdown, Gambar, dan File Kode Python di direktori src dimaksudkan untuk dilihat dan dieksekusi dalam urutan yang ditentukan oleh skema penomoran mereka. Sebagai berikut adalah penjelasan untuk setiap file untuk membantu memandu pembaca melalui maksud presentasi yang menyertai sampel kode ini.
Memberikan poin utama dari cuplikan kode ini, yaitu untuk menunjukkan kepada Anda kode Python yang sangat disederhanakan yang dapat dibaca dan menunjukkan bagaimana Rag bekerja pada tingkat dasar, sementara juga menyoroti pertimbangan perlindungan data untuk beban kerja Genai secara lebih luas.
Gambar yang digunakan untuk memperkenalkan produk dan organisasi nosional yang datanya kami gunakan. Data ini sengaja tidak masuk akal sehingga LLMS tidak akan secara tidak sengaja memiliki data pelatihan terkait dengan produk atau organisasi nosional ini. Namun, karena repositori yang menyertainya sekarang merupakan open source, mungkin saja LLM pada akhirnya dapat menggunakan repositori ini sebagai sumber data pelatihan, yang pada akhirnya dapat merusak asumsi ini!
Cukup menunjukkan isi ember Amazon S3 yang kami atur yang berisi data sumber kami. Ini juga menyoroti jenis enkripsi untuk data ini pada S3 untuk menekankan pentingnya enkripsi data saat istirahat.
Mencetak beberapa informasi dasar tentang Indeks Amazon Kendra kami untuk memperkenalkan konsep Kendra dan bagaimana hal itu dapat melakukan pencarian semantik terhadap sumber data kami.
Menunjukkan panggilan API retrieve sederhana terhadap indeks Kendra kami, yang mengambil konteks berdasarkan pertanyaan yang kami ajukan.
Panggilan Amazon Bedrock dan mengajukan pertanyaan yang tidak terkait dengan data kepemilikan nosional kami. Ini dimaksudkan untuk menunjukkan bagaimana LLM dapat menjawab banyak pertanyaan tentang hal -hal yang tersedia untuk umum, karena LLM sering dilatih terhadap sejumlah besar data yang dikikis dari internet terbuka.
Panggilan Bedrock dan mengajukan pertanyaan tentang data milik kami. Menunjukkan bagaimana LLM tidak dapat menjawab pertanyaan tentang data yang merupakan hak milik dan itu belum menjadi bagian dari dataset pelatihannya.
Pertama memanggil Kendra untuk mengambil konteks yang relevan dari data berpemilik kami, dan kemudian menggunakan konteks itu ketika memanggil LLM di Amazon Bedrock. Pola ini disebut generasi augmented retrieval, atau kain.
Menambahkan daftar kontrol akses dalam panggilan ke Amazon Kendra. Karena grup "pemasaran" kami tidak diizinkan untuk mengakses dokumen spesifikasi teknis dari Kendra, jawaban kami tidak termasuk perincian tentang konten yang tidak diizinkan oleh pemasaran. Ini menunjukkan bagaimana kita dapat mencapai otorisasi tingkat dokumen saat menggunakan pendekatan berbasis RAG. Perlu dicatat bahwa jika Anda malah menggunakan data hak milik Anda untuk melakukan penyesuaian atau lanjutan pra-pelatihan untuk menyesuaikan LLM, Anda kehilangan kemampuan untuk melakukan otorisasi berbutir halus di tingkat dokumen; Pengguna Anda memiliki akses ke model yang disesuaikan atau tidak.
Melakukan kueri kain yang mencakup alamat tertentu. Tapi mungkin kita tidak ingin alamat, atau jenis PII lain atau konten sensitif/berbahaya untuk dimasukkan dalam chatbot kita ...
Cukup daftar beberapa atribut pagar pagar Amazon Bedrock yang sudah ada yang akan kami gunakan pada langkah berikut. Secara khusus, kami melihat bahwa pagar pembatas kami mereduksi tipe data.
Melakukan panggilan berbasis kain yang sama dengan 09_rag_address.py, tetapi menambahkan di pagar batuan dasar sebagai bagian dari panggilan ke batuan dasar. Ini pada gilirannya mengurangi alamat spesifik data PII dari respons.
Mencantumkan 3 contoh cloudtrail terbaru untuk memohon batuan dasar. Ini hanya menunjukkan bagaimana CloudTrail dapat digunakan untuk mengaudit penggunaan Layanan Bedrock Amazon. Layanan AWS lainnya juga menghasilkan acara CloudTrail, dan data ini dapat digunakan untuk mengaudit dan melindungi sumber daya AWS Anda.
Mencantumkan 3 log doa model cloudWatch terbaru. Ini menunjukkan bagaimana data Anda dapat dimasukkan dalam log doa model CloudWatch. Oleh karena itu, jika Anda mengaktifkan log doa model, Anda harus melindunginya dengan tingkat perawatan yang sama dengan Anda melindungi sumber data itu sendiri.
Setelah menjalankan skrip Python, Anda akan dipandu melalui beberapa contoh yang menunjukkan pertimbangan perlindungan data untuk beban kerja AI generatif. Beberapa pengambilan kunci adalah:
Dasar -dasar perlindungan data masih berlaku.
AI generatif memperkenalkan beberapa pertimbangan baru
Lihat berkontribusi untuk informasi lebih lanjut.
Perpustakaan ini dilisensikan di bawah lisensi MIT-0. Lihat file lisensi.