In bagian 1 dari seri ini, kami menyajikan solusi yang menggunakan Penyematan Multimodal Amazon Titan model untuk mengonversi slide individual dari dek slide menjadi embeddings. Kami menyimpan embeddings dalam database vektor dan kemudian menggunakan Asisten Bahasa dan Penglihatan Besar (LLaVA 1.5-7b) model untuk menghasilkan respons teks terhadap pertanyaan pengguna berdasarkan slide paling mirip yang diambil dari database vektor. Kami menggunakan layanan AWS termasuk Batuan Dasar Amazon, Amazon SageMaker, dan Amazon OpenSearch Tanpa Server dalam solusi ini.
Dalam posting ini, kami menunjukkan pendekatan yang berbeda. Kami menggunakan Soneta Antropis Claude 3 model untuk menghasilkan deskripsi teks untuk setiap slide di dek slide. Deskripsi ini kemudian diubah menjadi penyematan teks menggunakan Penyematan Teks Amazon Titan model dan disimpan dalam database vektor. Kemudian kami menggunakan model Claude 3 Sonnet untuk menghasilkan jawaban atas pertanyaan pengguna berdasarkan deskripsi teks paling relevan yang diambil dari database vektor.
Anda dapat menguji kedua pendekatan untuk kumpulan data Anda dan mengevaluasi hasilnya untuk melihat pendekatan mana yang memberikan hasil terbaik. Di Bagian 3 seri ini, kami mengevaluasi hasil kedua metode.
Ikhtisar solusi
Solusinya memberikan implementasi untuk menjawab pertanyaan menggunakan informasi yang terkandung dalam teks dan elemen visual dari slide deck. Perancangannya mengandalkan konsep Retrieval Augmented Generation (RAG). Secara tradisional, RAG telah dikaitkan dengan data tekstual yang dapat diproses oleh model bahasa besar (LLM). Dalam seri ini, kami memperluas RAG untuk menyertakan gambar juga. Ini memberikan kemampuan pencarian yang kuat untuk mengekstrak konten yang relevan secara kontekstual dari elemen visual seperti tabel dan grafik serta teks.
Solusi ini mencakup komponen berikut:
- Amazon Titan Text Embeddings adalah model penyematan teks yang mengubah teks bahasa alami, termasuk kata tunggal, frasa, atau bahkan dokumen besar, menjadi representasi numerik yang dapat digunakan untuk mendukung kasus penggunaan seperti pencarian, personalisasi, dan pengelompokan berdasarkan kesamaan semantik.
- Claude 3 Sonnet adalah generasi berikutnya dari model tercanggih dari Anthropic. Soneta adalah alat serbaguna yang dapat menangani berbagai tugas, mulai dari penalaran dan analisis kompleks hingga keluaran cepat, serta pencarian dan pengambilan informasi dalam jumlah besar yang efisien.
- OpenSearch Serverless adalah konfigurasi tanpa server sesuai permintaan untuk Amazon OpenSearch Service. Kami menggunakan OpenSearch Serverless sebagai database vektor untuk menyimpan embeddings yang dihasilkan oleh model Amazon Titan Text Embeddings. Indeks yang dibuat dalam koleksi OpenSearch Serverless berfungsi sebagai penyimpanan vektor untuk solusi RAG kami.
- Penyerapan Amazon OpenSearch (OSI) adalah pengumpul data tanpa server yang terkelola sepenuhnya yang mengirimkan data ke domain OpenSearch Service dan koleksi OpenSearch Serverless. Dalam postingan ini, kami menggunakan API pipeline OSI untuk mengirimkan data ke penyimpanan vektor OpenSearch Serverless.
Desain solusi terdiri dari dua bagian: penyerapan dan interaksi pengguna. Selama penyerapan, kami memproses kumpulan slide masukan dengan mengonversi setiap slide menjadi gambar, menghasilkan deskripsi dan penyematan teks untuk setiap gambar. Kami kemudian mengisi penyimpanan data vektor dengan embeddings dan deskripsi teks untuk setiap slide. Langkah-langkah ini diselesaikan sebelum langkah-langkah interaksi pengguna.
Pada fase interaksi pengguna, pertanyaan dari pengguna diubah menjadi penyematan teks. Pencarian kesamaan dijalankan pada database vektor untuk menemukan deskripsi teks yang sesuai dengan slide yang berpotensi berisi jawaban atas pertanyaan pengguna. Kami kemudian memberikan deskripsi slide dan pertanyaan pengguna ke model Claude 3 Soneta untuk menghasilkan jawaban atas pertanyaan tersebut. Semua kode untuk posting ini tersedia di GitHub istirahat.
Diagram berikut menggambarkan arsitektur penyerapan.
Alur kerja terdiri dari langkah-langkah berikut:
- Slide dikonversi ke file gambar (satu per slide) dalam format JPG dan diteruskan ke model Claude 3 Soneta untuk menghasilkan deskripsi teks.
- Data dikirim ke model Amazon Titan Text Embeddings untuk menghasilkan embeddings. Dalam seri ini, kami menggunakan dek slide Latih dan terapkan Difusi Stabil menggunakan AWS Trainium & AWS Inferentia dari AWS Summit di Toronto, Juni 2023 untuk mendemonstrasikan solusinya. Dek sampel memiliki 31 slide, oleh karena itu kami menghasilkan 31 set penyematan vektor, masing-masing dengan 1536 dimensi. Kami menambahkan bidang metadata tambahan untuk melakukan kueri penelusuran kaya menggunakan kemampuan penelusuran OpenSearch yang canggih.
- Penyematan dimasukkan ke dalam saluran OSI menggunakan panggilan API.
- Alur OSI menyerap data sebagai dokumen ke dalam indeks OpenSearch Serverless. Indeks dikonfigurasi sebagai sink untuk alur ini dan dibuat sebagai bagian dari koleksi OpenSearch Serverless.
Diagram berikut menggambarkan arsitektur interaksi pengguna.
Alur kerja terdiri dari langkah-langkah berikut:
- Seorang pengguna mengajukan pertanyaan terkait dengan dek slide yang telah diserap.
- Input pengguna diubah menjadi embeddings menggunakan model Amazon Titan Text Embeddings yang diakses menggunakan Amazon Bedrock. Pencarian vektor OpenSearch Service dilakukan menggunakan embeddings ini. Kami melakukan pencarian k-nearest neighbour (k-NN) untuk mengambil embeddings paling relevan yang cocok dengan kueri pengguna.
- Metadata respons dari OpenSearch Serverless berisi jalur ke gambar dan deskripsi yang sesuai dengan slide yang paling relevan.
- Prompt dibuat dengan menggabungkan pertanyaan pengguna dan deskripsi gambar. Prompt diberikan kepada Claude 3 Sonnet yang dihosting di Amazon Bedrock.
- Hasil inferensi ini dikembalikan ke pengguna.
Kami membahas langkah-langkah untuk kedua tahapan di bagian berikut, dan menyertakan detail tentang keluarannya.
Prasyarat
Untuk mengimplementasikan solusi yang diberikan dalam posting ini, Anda harus memiliki Akun AWS dan keakraban dengan FM, Amazon Bedrock, SageMaker, dan OpenSearch Service.
Solusi ini menggunakan model Claude 3 Sonnet dan Amazon Titan Text Embeddings yang dihosting di Amazon Bedrock. Pastikan model ini diaktifkan untuk digunakan dengan menavigasi ke Akses model halaman di konsol Amazon Bedrock.
Jika model diaktifkan, Status akses akan menyatakan Akses diberikan.
Jika model tidak tersedia, aktifkan akses dengan memilih Kelola akses model, memilih model, dan memilih Minta akses model. Model-model tersebut segera diaktifkan untuk digunakan.
Gunakan AWS CloudFormation untuk membuat tumpukan solusi
Anda dapat menggunakan AWS CloudFormation untuk membuat tumpukan solusi. Jika Anda telah membuat solusi untuk Bagian 1 di akun AWS yang sama, pastikan untuk menghapusnya sebelum membuat tumpukan ini.
Wilayah AWS | Link |
---|---|
us-east-1 |
|
us-west-2 |
Setelah tumpukan berhasil dibuat, navigasikan ke tab Keluaran tumpukan di konsol AWS CloudFormation dan catat nilai untuk MultimodalCollectionEndpoint
dan OpenSearchPipelineEndpoint
. Anda menggunakannya dalam langkah selanjutnya.
Template CloudFormation membuat sumber daya berikut:
- Peran IAM - Pengikut Identitas AWS dan Manajemen Akses (IAM) peran dibuat. Perbarui peran ini untuk menerapkan izin dengan hak istimewa paling rendah, seperti yang dibahas di Praktik terbaik keamanan.
SMExecutionRole
dengan Layanan Penyimpanan Sederhana Amazon (Amazon S3), SageMaker, OpenSearch Service, dan akses penuh Amazon Bedrock.OSPipelineExecutionRole
dengan akses ke bucket S3 dan tindakan OSI.
- Buku catatan SageMaker – Semua kode untuk postingan ini dijalankan menggunakan notebook ini.
- Koleksi Tanpa Server OpenSearch – Ini adalah database vektor untuk menyimpan dan mengambil embeddings.
- Pipa OSI – Ini adalah alur untuk menyerap data ke OpenSearch Tanpa Server.
- Ember S3 – Semua data untuk postingan ini disimpan di bucket ini.
Templat CloudFormation menyiapkan konfigurasi alur yang diperlukan untuk mengonfigurasi alur OSI dengan HTTP sebagai sumber dan indeks OpenSearch Serverless sebagai sink. Buku catatan SageMaker 2_data_ingestion.ipynb
menampilkan cara memasukkan data ke dalam alur menggunakan Permintaan perpustakaan HTTP.
Templat CloudFormation juga dibuat jaringan, enkripsi dan akses data kebijakan yang diperlukan untuk koleksi OpenSearch Tanpa Server Anda. Perbarui kebijakan ini untuk menerapkan izin dengan hak istimewa paling rendah.
Nama templat CloudFormation dan nama indeks OpenSearch Service direferensikan di notebook SageMaker 3_rag_inference.ipynb
. Jika Anda mengubah nama default, pastikan Anda memperbaruinya di buku catatan.
Uji solusinya
Setelah Anda membuat tumpukan CloudFormation, Anda dapat menguji solusinya. Selesaikan langkah-langkah berikut:
- Di konsol SageMaker, pilih notebook di panel navigasi.
- Pilih
MultimodalNotebookInstance
Dan pilihlah Buka JupyterLab. - In Browser File, buka folder buku catatan untuk melihat buku catatan dan file pendukung.
Buku catatan diberi nomor sesuai urutan pengoperasiannya. Instruksi dan komentar di setiap buku catatan menjelaskan tindakan yang dilakukan oleh buku catatan tersebut. Kami menjalankan buku catatan ini satu per satu.
- Pilih
1_data_prep.ipynb
untuk membukanya di JupyterLab. - pada Run menu, pilih Jalankan Semua Sel untuk menjalankan kode di buku catatan ini.
Buku catatan ini akan diunduh secara publik dek geser, konversi setiap slide ke dalam format file JPG, dan unggah ke bucket S3.
- Pilih
2_data_ingestion.ipynb
untuk membukanya di JupyterLab. - pada Run menu, pilih Jalankan Semua Sel untuk menjalankan kode di buku catatan ini.
Di buku catatan ini, Anda membuat indeks dalam koleksi OpenSearch Serverless. Indeks ini menyimpan data penyematan untuk dek slide. Lihat kode berikut:
Anda menggunakan model Claude 3 Sonnet dan Amazon Titan Text Embeddings untuk mengonversi gambar JPG yang dibuat di buku catatan sebelumnya menjadi penyematan vektor. Penyematan ini dan metadata tambahan (seperti jalur S3 dan deskripsi file gambar) disimpan dalam indeks bersama dengan penyematan. Cuplikan kode berikut menunjukkan bagaimana Claude 3 Sonnet menghasilkan deskripsi gambar:
Deskripsi gambar diteruskan ke model Amazon Titan Text Embeddings untuk menghasilkan penyematan vektor. Penyematan ini dan metadata tambahan (seperti jalur S3 dan deskripsi file gambar) disimpan dalam indeks bersama dengan penyematan. Cuplikan kode berikut menunjukkan panggilan ke model Amazon Titan Text Embeddings:
Data diserap ke dalam indeks OpenSearch Serverless dengan membuat panggilan API ke pipeline OSI. Cuplikan kode berikut menunjukkan panggilan yang dilakukan menggunakan pustaka HTTP Permintaan:
- Pilih
3_rag_inference.ipynb
untuk membukanya di JupyterLab. - pada Run menu, pilih Jalankan Semua Sel untuk menjalankan kode di buku catatan ini.
Buku catatan ini mengimplementasikan solusi RAG: Anda mengonversi pertanyaan pengguna menjadi penyematan, menemukan deskripsi gambar serupa dari database vektor, dan memberikan deskripsi yang diambil ke Claude 3 Sonnet untuk menghasilkan jawaban atas pertanyaan pengguna. Anda menggunakan templat prompt berikut:
Cuplikan kode berikut menyediakan alur kerja RAG:
Hasil
Tabel berikut berisi beberapa pertanyaan dan tanggapan pengguna yang dihasilkan oleh penerapan kami. Itu Pertanyaan kolom menangkap pertanyaan pengguna, dan Menjawab kolom adalah respon tekstual yang dihasilkan oleh Claude 3 Soneta. Itu Gambar kolom memperlihatkan pencocokan slide k-NN yang dikembalikan oleh pencarian vektor OpenSearch Serverless.
Hasil RAG multimodal
Kueri indeks Anda
Anda dapat menggunakan Dasbor OpenSearch untuk berinteraksi dengan OpenSearch API guna menjalankan pengujian cepat pada indeks dan data yang diserap.
Membersihkan
Untuk menghindari timbulnya biaya di masa mendatang, hapus sumber daya. Anda dapat melakukan ini dengan menghapus tumpukan menggunakan konsol AWS CloudFormation.
Kesimpulan
Perusahaan menghasilkan konten baru setiap saat, dan slide deck adalah cara umum untuk berbagi dan menyebarkan informasi secara internal dalam organisasi dan secara eksternal dengan pelanggan atau di konferensi. Seiring waktu, informasi yang kaya dapat tetap terkubur dan tersembunyi dalam modalitas non-teks seperti grafik dan tabel di slide deck ini.
Anda dapat menggunakan solusi ini dan kekuatan FM multimodal seperti Amazon Titan Text Embeddings dan Claude 3 Sonnet untuk menemukan informasi baru atau mengungkap perspektif baru tentang konten dalam slide deck. Anda dapat mencoba berbagai model Claude yang tersedia di Amazon Bedrock dengan memperbarui CLAUDE_MODEL_ID
dalam globals.py
file.
Ini adalah Bagian 2 dari seri tiga bagian. Kami menggunakan Amazon Titan Multimodal Embeddings dan model LLaVA di Bagian 1. Di Bagian 3, kami akan membandingkan pendekatan dari Bagian 1 dan Bagian 2.
Bagian dari kode ini dirilis di bawah Lisensi Apache 2.0.
Tentang penulis
Amit Arora adalah Arsitek Spesialis AI dan ML di Amazon Web Services, membantu pelanggan perusahaan menggunakan layanan pembelajaran mesin berbasis cloud untuk menskalakan inovasi mereka dengan cepat. Dia juga dosen tambahan di MS data science and analytics program di Georgetown University di Washington DC
Manju Prasad adalah Arsitek Solusi Senior di Amazon Web Services. Dia berfokus pada pemberian panduan teknis di berbagai domain teknis, termasuk AI/ML. Sebelum bergabung dengan AWS, ia merancang dan membangun solusi untuk perusahaan di sektor jasa keuangan dan juga untuk startup. Dia bersemangat berbagi pengetahuan dan menumbuhkan minat terhadap bakat-bakat baru.
Archana Inapudi adalah Arsitek Solusi Senior di AWS, yang mendukung pelanggan strategis. Dia memiliki lebih dari satu dekade keahlian lintas industri yang memimpin inisiatif teknis strategis. Archana adalah calon anggota komunitas bidang teknis AI/ML di AWS. Sebelum bergabung dengan AWS, Archana memimpin migrasi dari sumber data tradisional yang disimpan ke Hadoop di sebuah perusahaan layanan kesehatan. Dia bersemangat menggunakan teknologi untuk mempercepat pertumbuhan, memberikan nilai kepada pelanggan, dan mencapai hasil bisnis.
Antara Raisa adalah Arsitek Solusi AI dan ML di Amazon Web Services, mendukung pelanggan strategis yang berbasis di Dallas, Texas. Dia juga memiliki pengalaman bekerja dengan mitra perusahaan besar di AWS, di mana dia bekerja sebagai Arsitek Solusi Sukses Mitra untuk pelanggan yang berpusat pada digital.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/