QA พร้อม LLM และ RAG (การสร้างเสริมแบบดึงข้อมูล)
โปรเจ็กต์นี้เป็นแอปพลิเคชันตอบคำถามที่มี Large Language Models (LLM) และ Amazon Aurora Postgresql โดยใช้ pgvector แอปพลิเคชันที่ใช้วิธีการ RAG (Retrieval Augmented Generation) จะดึงข้อมูลที่เกี่ยวข้องกับคำขอของผู้ใช้มากที่สุดจากฐานความรู้หรือเนื้อหาขององค์กร รวมกลุ่มเป็นบริบทพร้อมกับคำขอของผู้ใช้เป็นพรอมต์ จากนั้นจึงส่งไปยัง LLM เพื่อรับ การตอบสนองของ GenAI
LLM มีข้อจำกัดเกี่ยวกับจำนวนคำสูงสุดสำหรับพร้อมท์การป้อนข้อมูล ดังนั้นการเลือกข้อความที่ถูกต้องจากเอกสารหลายพันหรือล้านรายการในองค์กร จึงมีผลกระทบโดยตรงต่อความแม่นยำของ LLM
ในโปรเจ็กต์นี้ Amazon Aurora Postgresql พร้อม pgvector ถูกใช้เป็นฐานความรู้
สถาปัตยกรรมโดยรวมเป็นดังนี้:
ขั้นตอนการทำงานโดยรวม
- ปรับใช้สแต็ก cdk (สำหรับข้อมูลเพิ่มเติม ดูที่นี่)
- SageMaker Studio ใน VPC ส่วนตัว
- SageMaker Endpoint สำหรับการสร้างข้อความ
- SageMaker Endpoint สำหรับสร้างการฝัง
- คลัสเตอร์ Amazon Aurora Postgresql สำหรับการจัดเก็บการฝัง
- ข้อมูลรับรองการเข้าถึงคลัสเตอร์ Aurora Postgresql (ชื่อผู้ใช้และรหัสผ่าน) ที่จัดเก็บไว้ใน AWS Secrets Manager เป็นชื่อ เช่น
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
- เปิด SageMaker Studio จากนั้นเปิด เทอร์มินัลระบบ ใหม่
- รันคำสั่งต่อไปนี้บนเทอร์มินัลเพื่อโคลนที่เก็บโค้ดสำหรับโปรเจ็กต์นี้:
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
- เปิดสมุด
data_ingestion_to_pgvector.ipynb
แล้วเรียกใช้ (สำหรับข้อมูลเพิ่มเติม ดูที่นี่) - เรียกใช้แอปพลิเคชัน Streamlit (สำหรับข้อมูลเพิ่มเติม ดูที่นี่)
อ้างอิง
- ใช้ประโยชน์จาก pgvector และ Amazon Aurora PostgreSQL สำหรับการประมวลผลภาษาธรรมชาติ แชทบอท และการวิเคราะห์ความรู้สึก (13-07-2023)
- เร่งการจัดทำดัชนีและการค้นหา HNSW ด้วย pgvector บนรุ่นที่เข้ากันได้กับ Amazon Aurora PostgreSQL และ Amazon RDS สำหรับ PostgreSQL (06-11-2023)
- เพิ่มประสิทธิภาพแอปพลิเคชัน generative AI ด้วยการจัดทำดัชนี pgvector: เจาะลึกเทคนิค IVFFlat และ HNSW (2024-03-15)
- ปรับปรุงประสิทธิภาพของปริมาณงาน AI ที่สร้างบน Amazon Aurora ด้วย Optimized Reads และ pgvector (2024-02-09)
- การสร้างการค้นหาที่ขับเคลื่อนด้วย AI ใน PostgreSQL โดยใช้ Amazon SageMaker และ pgvector (2023-05-03)
- สร้างแอป Streamlit ใน Amazon SageMaker Studio (11-04-2023)
- สร้างแอปพลิเคชัน Generative AI ที่มีความแม่นยำสูงอย่างรวดเร็วบนข้อมูลองค์กรโดยใช้ Amazon Kendra, LangChain และโมเดลภาษาขนาดใหญ่ (2023-05-03)
- (github) ตัวอย่าง Amazon Kendra Retriver
- การตอบคำถามโดยใช้การดึงข้อมูล Augmented Generation ด้วยโมเดลพื้นฐานใน Amazon SageMaker JumpStart (02-05-2023)
- ใช้โมเดลพื้นฐานที่เป็นกรรมสิทธิ์จาก Amazon SageMaker JumpStart ใน Amazon SageMaker Studio (27-06-2023)
- LangChain - กรอบงานสำหรับการพัฒนาแอปพลิเคชันที่ขับเคลื่อนโดยโมเดลภาษา
- Streamlit - วิธีที่เร็วกว่าในการสร้างและแชร์แอปข้อมูล
- rag-with-amazon-kendra-and-sagemaker - แอปพลิเคชันตอบคำถามด้วย Large Language Models (LLM) และ Amazon Kendra
- rag-with-amazon-opensearch-and-sagemaker - แอปพลิเคชันตอบคำถามด้วย Large Language Models (LLM) และ Amazon OpenSearch Service
- rag-with-amazon-opensearch-serverless - แอปพลิเคชันตอบคำถามด้วย Large Language Models (LLM) และ Amazon OpenSearch Serverless Service
- บันทึกการเปลี่ยนแปลง Pgvector
เพิ่มขนาดสูงสุดสำหรับเวกเตอร์จาก 1024 เป็น 16000
เพิ่มขนาดสูงสุดสำหรับดัชนีจาก 1024 เป็น 2000