QA dengan LLM dan RAG (Retrieval Augmented Generation)
Proyek ini merupakan aplikasi Question Answering dengan Large Language Models (LLMs) dan Amazon Aurora Postgresql menggunakan pgvector. Aplikasi yang menggunakan pendekatan RAG (Retrieval Augmented Generation) mengambil informasi yang paling relevan dengan permintaan pengguna dari basis pengetahuan atau konten perusahaan, menggabungkannya sebagai konteks bersama dengan permintaan pengguna sebagai prompt, dan kemudian mengirimkannya ke LLM untuk mendapatkan Tanggapan GenAI.
LLM memiliki batasan pada jumlah kata maksimum untuk perintah masukan, oleh karena itu memilih bagian yang tepat di antara ribuan atau jutaan dokumen di perusahaan, berdampak langsung pada keakuratan LLM.
Dalam proyek ini, Amazon Aurora Postgresql dengan pgvector digunakan untuk basis pengetahuan.
Arsitektur keseluruhannya seperti ini:
Alur Kerja Keseluruhan
- Terapkan tumpukan cdk (Untuk informasi lebih lanjut, lihat di sini).
- SageMaker Studio di VPC pribadi.
- Titik Akhir SageMaker untuk pembuatan teks.
- Titik Akhir SageMaker untuk menghasilkan penyematan.
- Klaster Amazon Aurora Postgresql untuk menyimpan embeddings.
- Kredensial akses klaster Aurora Postgresql (nama pengguna dan kata sandi) disimpan di AWS Secrets Manager sebagai nama seperti
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
.
- Buka SageMaker Studio lalu buka terminal Sistem baru.
- Jalankan perintah berikut di terminal untuk mengkloning repositori kode untuk proyek ini:
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
- Buka notebook
data_ingestion_to_pgvector.ipynb
dan Jalankan. (Untuk informasi lebih lanjut, lihat di sini) - Jalankan aplikasi Streamlit. (Untuk informasi lebih lanjut, lihat di sini)
Referensi
- Memanfaatkan pgvector dan Amazon Aurora PostgreSQL untuk Pemrosesan Bahasa Alami, Chatbots, dan Analisis Sentimen (13-07-2023)
- Mempercepat pengindeksan dan pencarian HNSW dengan pgvector di Amazon Aurora edisi yang kompatibel dengan PostgreSQL dan Amazon RDS for PostgreSQL (06-11-2023)
- Mengoptimalkan aplikasi AI generatif dengan pengindeksan pgvector: Mendalami teknik IVFFlat dan HNSW (15-03-2024)
- Meningkatkan kinerja beban kerja AI generatif di Amazon Aurora dengan Pembacaan yang Dioptimalkan dan pgvector (09-02-2024)
- Membangun pencarian bertenaga AI di PostgreSQL menggunakan Amazon SageMaker dan pgvector (03-05-2023)
- Bangun aplikasi Streamlit di Amazon SageMaker Studio (11-04-2023)
- Bangun aplikasi AI Generatif dengan akurasi tinggi dengan cepat pada data perusahaan menggunakan Amazon Kendra, LangChain, dan model bahasa besar (03-05-2023)
- (github) Sampel Amazon Kendra Retriver
- Menjawab pertanyaan menggunakan Retrieval Augmented Generation dengan model dasar di Amazon SageMaker JumpStart (02-05-2023)
- Gunakan model fondasi kepemilikan dari Amazon SageMaker JumpStart di Amazon SageMaker Studio (27-06-2023)
- LangChain - Kerangka kerja untuk mengembangkan aplikasi yang didukung oleh model bahasa.
- Streamlit - Cara yang lebih cepat untuk membuat dan berbagi aplikasi data
- rag-with-amazon-kendra-and-sagemaker - Aplikasi Menjawab Pertanyaan dengan Model Bahasa Besar (LLM) dan Amazon Kendra
- rag-with-amazon-opensearch-and-sagemaker - Aplikasi Menjawab Pertanyaan dengan Model Bahasa Besar (LLM) dan Amazon OpenSearch Service
- rag-with-amazon-opensearch-serverless - Aplikasi Menjawab Pertanyaan dengan Large Language Model (LLM) dan Amazon OpenSearch Serverless Service
- Log perubahan vektor pg
Peningkatan dimensi maksimal untuk vektor dari 1024 menjadi 16000
Peningkatan dimensi maksimal untuk indeks dari 1024 menjadi 2000