Retriever untuk alur kerja RAG - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Retriever untuk alur kerja RAG

Bagian ini menjelaskan cara membuat retriever. Anda dapat menggunakan solusi pencarian semantik yang dikelola sepenuhnya, seperti Amazon Kendra, atau Anda dapat membuat pencarian semantik kustom dengan menggunakan database vektor. AWS

Sebelum Anda meninjau opsi retriever, pastikan Anda memahami tiga langkah proses pencarian vektor:

  1. Anda memisahkan dokumen yang perlu diindeks menjadi bagian-bagian yang lebih kecil. Ini disebut chunking.

  2. Anda menggunakan proses yang disebut embedding untuk mengubah setiap potongan menjadi vektor matematika. Kemudian, Anda mengindeks setiap vektor dalam database vektor. Pendekatan yang Anda gunakan untuk mengindeks dokumen memengaruhi kecepatan dan akurasi pencarian. Pendekatan pengindeksan tergantung pada database vektor dan opsi konfigurasi yang disediakannya.

  3. Anda mengonversi kueri pengguna menjadi vektor dengan menggunakan proses yang sama. Retriever mencari database vektor untuk vektor yang mirip dengan vektor kueri pengguna. Kesamaan dihitung dengan menggunakan metrik seperti jarak Euclidean, jarak kosinus, atau produk titik.

Panduan ini menjelaskan cara menggunakan layanan berikut Layanan AWS atau pihak ketiga untuk membuat lapisan pengambilan kustom pada AWS:

Amazon Kendra

Amazon Kendra adalah layanan pencarian cerdas yang dikelola sepenuhnya yang menggunakan pemrosesan bahasa alami dan algoritme pembelajaran mesin canggih untuk mengembalikan jawaban spesifik atas pertanyaan penelusuran dari data Anda. Amazon Kendra membantu Anda secara langsung menyerap dokumen dari berbagai sumber dan menanyakan dokumen setelah berhasil disinkronkan. Proses sinkronisasi menciptakan infrastruktur yang diperlukan untuk membuat pencarian vektor pada dokumen yang dicerna. Oleh karena itu, Amazon Kendra tidak memerlukan tiga langkah tradisional dari proses pencarian vektor. Setelah sinkronisasi awal, Anda dapat menggunakan jadwal yang ditentukan untuk menangani konsumsi yang sedang berlangsung.

Berikut ini adalah keuntungan menggunakan Amazon Kendra untuk RAG:

  • Anda tidak perlu memelihara database vektor karena Amazon Kendra menangani seluruh proses pencarian vektor.

  • Amazon Kendra berisi konektor bawaan untuk sumber data populer, seperti database, perayap situs web, bucket Amazon S3, instans, dan instance. Microsoft SharePoint Atlassian Confluence Konektor yang dikembangkan oleh AWS Mitra tersedia, seperti konektor untuk Box danGitLab.

  • Amazon Kendra menyediakan pemfilteran daftar kontrol akses (ACL) yang hanya mengembalikan dokumen yang dapat diakses pengguna akhir.

  • Amazon Kendra dapat meningkatkan respons berdasarkan metadata, seperti tanggal atau repositori sumber.

Gambar berikut menunjukkan contoh arsitektur yang menggunakan Amazon Kendra sebagai lapisan pengambilan sistem RAG. Untuk informasi selengkapnya, lihat Membangun aplikasi AI Generatif dengan akurasi tinggi dengan cepat pada data perusahaan menggunakan Amazon KendraLangChain,, dan model bahasa besarAWS (posting blog).

Menggunakan Amazon Kendra sebagai lapisan pengambilan untuk sistem RAG aktif. AWS

Untuk model foundation, Anda dapat menggunakan Amazon Bedrock atau LLM yang digunakan melalui Amazon AI. SageMaker JumpStart Anda dapat menggunakan AWS Lambda with LangChainuntuk mengatur aliran antara pengguna, Amazon Kendra, dan LLM. Untuk membangun sistem RAG yang menggunakan Amazon KendraLangChain,, dan LLMs berbagai, lihat repositori Ekstensi Amazon LangChain Kendra. GitHub

OpenSearch Layanan Amazon

Amazon OpenSearch Service menyediakan algoritme HTML bawaan untuk penelusuran k-terdekat (k-NN) untuk melakukan pencarian vektor. OpenSearch Layanan juga menyediakan mesin vektor untuk Amazon EMR Tanpa Server. Anda dapat menggunakan mesin vektor ini untuk membangun sistem RAG yang memiliki kemampuan penyimpanan dan pencarian vektor yang dapat diskalakan dan berkinerja tinggi. Untuk informasi selengkapnya tentang cara membangun sistem RAG menggunakan OpenSearch Tanpa Server, lihat Membangun alur kerja RAG yang dapat diskalakan dan tanpa server dengan mesin vektor untuk model Amazon OpenSearch Tanpa Server dan Amazon Bedrock Claude (posting blog).AWS

Berikut ini adalah keuntungan menggunakan OpenSearch Service untuk pencarian vektor:

  • Ini memberikan kontrol penuh atas database vektor, termasuk membangun pencarian vektor terukur dengan menggunakan OpenSearch Serverless.

  • Ini memberikan kontrol atas strategi chunking.

  • Ini menggunakan algoritma perkiraan tetangga terdekat (ANN) dari perpustakaan Non-Metric Space Library (NMSLIB), Faiss, dan Apache Lucene untuk menyalakan pencarian K-nn. Anda dapat mengubah algoritme berdasarkan kasus penggunaan. Untuk informasi selengkapnya tentang opsi untuk menyesuaikan pencarian vektor melalui OpenSearch Layanan, lihat kemampuan database vektor Amazon OpenSearch Service dijelaskan (posting AWS blog).

  • OpenSearch Tanpa server terintegrasi dengan basis pengetahuan Amazon Bedrock sebagai indeks vektor.

Amazon Aurora PostgreSQL dan pgvector

Amazon Aurora PostgreSQL Compatible Edition adalah mesin database relasional terkelola sepenuhnya yang membantu Anda mengatur, mengoperasikan, dan menskalakan penerapan PostgreSQL. pgvector adalah ekstensi PostgreSQL open-source yang menyediakan kemampuan pencarian kesamaan vektor. Ekstensi ini tersedia untuk Aurora PostgreSQL yang kompatibel dan untuk Amazon Relational Database Service (Amazon RDS) untuk PostgreSQL. Untuk informasi selengkapnya tentang cara membangun sistem berbasis RAG yang menggunakan Aurora PostgreSQL kompatibel dan pgvector, lihat posting blog berikut: AWS

Berikut ini adalah keuntungan menggunakan pgvector dan Aurora PostgreSQL kompatibel:

  • Ini mendukung pencarian tetangga terdekat yang tepat dan perkiraan. Ini juga mendukung metrik kesamaan berikut: jarak L2, produk dalam, dan jarak kosinus.

  • Ini mendukung Inverted File dengan Flat Compression (IVFFlat) dan Hierarchical Navigable Small Worlds (HNSW) pengindeksan.

  • Anda dapat menggabungkan pencarian vektor dengan kueri atas data spesifik domain yang tersedia dalam instance PostgreSQL yang sama.

  • Aurora PostgreSQL kompatibel dioptimalkan untuk dan menyediakan caching berjenjang. I/O Untuk beban kerja yang melebihi memori instans yang tersedia, pgvector dapat meningkatkan kueri per detik untuk pencarian vektor hingga 8 kali.

Analisis Amazon Neptunus

Amazon Neptune Analytics adalah mesin database grafik yang dioptimalkan untuk memori untuk analitik. Ini mendukung perpustakaan algoritma analitik grafik yang dioptimalkan, kueri grafik latensi rendah, dan kemampuan pencarian vektor dalam traversal grafik. Ini juga memiliki pencarian kesamaan vektor bawaan. Ini menyediakan satu titik akhir untuk membuat grafik, memuat data, memanggil kueri, dan melakukan pencarian kesamaan vektor. Untuk informasi selengkapnya tentang cara membangun sistem berbasis RAG yang menggunakan Neptunus Analytics, lihat Menggunakan grafik pengetahuan untuk membangun aplikasi GraphRag dengan Amazon Bedrock dan Amazon Neptunus (posting blog).AWS

Berikut ini adalah keuntungan menggunakan Neptune Analytics:

  • Anda dapat menyimpan dan mencari embeddings dalam kueri grafik.

  • Jika Anda mengintegrasikan Neptunus Analytics LangChain dengan, arsitektur ini mendukung kueri grafik bahasa alami.

  • Arsitektur ini menyimpan dataset grafik besar dalam memori.

Amazon MemoryDB

Amazon MemoryDB adalah layanan database dalam memori yang tahan lama yang memberikan kinerja sangat cepat. Semua data Anda disimpan dalam memori, yang mendukung pembacaan mikrodetik, latensi tulis milidetik satu digit, dan throughput tinggi. Pencarian vektor untuk MemoryDB memperluas fungsionalitas MemoryDB dan dapat digunakan bersama dengan fungsionalitas MemoryDB yang ada. Untuk informasi lebih lanjut, lihat Pertanyaan menjawab dengan LLM dan repositori RAG di. GitHub

Diagram berikut menunjukkan arsitektur sampel yang menggunakan MemoryDB sebagai database vektor.

Aplikasi AI generatif mengambil konteks dari database vektor MemoryDB.

Berikut ini adalah keuntungan menggunakan MemoryDB:

  • Ini mendukung algoritma pengindeksan Flat dan HNSW. Untuk informasi lebih lanjut, lihat Pencarian vektor untuk Amazon MemoryDB sekarang tersedia secara umum di Blog Berita AWS

  • Ini juga dapat bertindak sebagai memori penyangga untuk model pondasi. Ini berarti bahwa pertanyaan yang dijawab sebelumnya diambil dari buffer alih-alih melalui proses pengambilan dan pembuatan lagi. Diagram berikut menunjukkan proses ini.

    Menyimpan jawaban dalam database MemoryDB sehingga dapat diambil dari memori buffer.
  • Karena menggunakan database dalam memori, arsitektur ini menyediakan waktu kueri milidetik satu digit untuk pencarian semantik.

  • Ini menyediakan hingga 33.000 kueri per detik pada penarikan 95-99% dan 26.500 kueri per detik dengan penarikan lebih dari 99%. Untuk informasi lebih lanjut, lihat AWS re:Invent 2023 - Pencarian vektor latensi ultra-rendah untuk video Amazon MemoryDB aktif. YouTube

Amazon DocumentDB

Amazon DocumentDB (dengan kompatibilitas MongoDB) adalah layanan database yang cepat, andal, dan dikelola sepenuhnya. Ini membuatnya mudah untuk mengatur, mengoperasikan, dan menskalakan basis data MongoDB yang kompatibel di cloud. Pencarian vektor untuk Amazon DocumentDB menggabungkan fleksibilitas dan kemampuan query yang kaya dari database dokumen berbasis JSON dengan kekuatan pencarian vektor. Untuk informasi lebih lanjut, lihat Pertanyaan menjawab dengan LLM dan repositori RAG di. GitHub

Diagram berikut menunjukkan contoh arsitektur yang menggunakan Amazon DocumentDB sebagai database vektor.

Aplikasi AI generatif mengambil konteks dari database vektor Amazon DocumentDB.

Diagram menunjukkan alur kerja berikut:

  1. Pengguna mengirimkan kueri ke aplikasi AI generatif.

  2. Aplikasi AI generatif melakukan pencarian kesamaan di database vektor Amazon DocumentDB dan mengambil ekstrak dokumen yang relevan.

  3. Aplikasi AI generatif memperbarui kueri pengguna dengan konteks yang diambil dan mengirimkan prompt ke model pondasi target.

  4. Model dasar menggunakan konteks untuk menghasilkan respons terhadap pertanyaan pengguna dan mengembalikan respons.

  5. Aplikasi AI generatif mengembalikan respons kepada pengguna.

Berikut ini adalah keuntungan menggunakan Amazon DocumentDB:

  • Ini mendukung metode HNSW dan IVFFlat pengindeksan.

  • Ini mendukung hingga 2.000 dimensi dalam data vektor dan mendukung metrik jarak produk Euclidean, cosinus, dan titik.

  • Ini memberikan waktu respons milidetik.

Pinecone

Pineconeadalah database vektor yang dikelola sepenuhnya yang membantu Anda menambahkan pencarian vektor ke aplikasi produksi. Ini tersedia melalui AWS Marketplace. Penagihan didasarkan pada penggunaan, dan biaya dihitung dengan mengalikan harga pod dengan jumlah pod. Untuk informasi selengkapnya tentang cara membangun sistem berbasis RAG yang menggunakanPinecone, lihat posting AWS blog berikut:

Diagram berikut menunjukkan arsitektur sampel yang menggunakan Pinecone sebagai database vektor.

Aplikasi AI generatif yang mengambil konteks dari database Pinecone vektor.

Diagram menunjukkan alur kerja berikut:

  1. Pengguna mengirimkan kueri ke aplikasi AI generatif.

  2. Aplikasi AI generatif melakukan pencarian kesamaan dalam database Pinecone vektor dan mengambil ekstrak dokumen yang relevan.

  3. Aplikasi AI generatif memperbarui kueri pengguna dengan konteks yang diambil dan mengirimkan prompt ke model pondasi target.

  4. Model dasar menggunakan konteks untuk menghasilkan respons terhadap pertanyaan pengguna dan mengembalikan respons.

  5. Aplikasi AI generatif mengembalikan respons kepada pengguna.

Berikut ini adalah keuntungan menggunakanPinecone:

  • Ini adalah database vektor yang dikelola sepenuhnya dan menghilangkan biaya pengelolaan infrastruktur Anda sendiri.

  • Ini menyediakan fitur tambahan penyaringan, pembaruan indeks langsung, dan peningkatan kata kunci (pencarian hibrida).

MongoDB Atlas

MongoDB Atlasadalah database cloud yang dikelola sepenuhnya yang menangani semua kompleksitas penerapan dan pengelolaan penerapan Anda. AWS Anda dapat menggunakan pencarian Vektor MongoDB Atlas untuk menyimpan embeddings vektor dalam database Anda. MongoDB Basis pengetahuan Amazon Bedrock mendukung MongoDB Atlas penyimpanan vektor. Untuk informasi selengkapnya, lihat Memulai Integrasi Basis Pengetahuan Amazon Bedrock dalam MongoDB dokumentasi.

Untuk informasi selengkapnya tentang cara menggunakan pencarian MongoDB Atlas vektor untuk RAG, lihat Retrieval-Augmented Generation with, LangChain Amazon SageMaker AI JumpStart, dan MongoDB Atlas Semantic Search (posting blog).AWS Diagram berikut menunjukkan arsitektur solusi rinci dalam posting blog ini.

Menggunakan pencarian MongoDB Atlas vektor untuk mengambil konteks untuk aplikasi AI generatif berbasis RAG.

Berikut ini adalah keuntungan menggunakan pencarian MongoDB Atlas vektor:

  • Anda dapat menggunakan implementasi yang ada MongoDB Atlas untuk menyimpan dan mencari embeddings vektor.

  • Anda dapat menggunakan MongoDBQuery API untuk menanyakan embeddings vektor.

  • Anda dapat secara mandiri menskalakan pencarian vektor dan database.

  • Penyematan vektor disimpan di dekat data sumber (dokumen), yang meningkatkan kinerja pengindeksan.

Weaviate

Weaviateadalah sumber terbuka populer, database vektor latensi rendah yang mendukung jenis media multimodal, seperti teks dan gambar. Basis data menyimpan objek dan vektor, yang menggabungkan pencarian vektor dengan penyaringan terstruktur. Untuk informasi selengkapnya tentang penggunaan Weaviate dan Amazon Bedrock untuk membangun alur kerja RAG, lihat Membangun solusi AI generatif siap perusahaan dengan model dasar Cohere di Amazon Bedrock dan Weaviate database vektor di (posting blog). AWS MarketplaceAWS

Berikut ini adalah keuntungan menggunakanWeaviate:

  • Ini adalah open source dan didukung oleh komunitas yang kuat.

  • Itu dibangun untuk pencarian hibrida (baik vektor dan kata kunci).

  • Anda dapat menerapkannya sebagai penawaran perangkat lunak terkelola AWS sebagai layanan (SaaS) atau sebagai klaster Kubernetes.