LLM 및 RAG(검색 증강 생성)를 사용한 QA
이 프로젝트는 LLM(대형 언어 모델) 및 pgVector를 사용하는 Amazon Aurora Postgresql을 사용한 질문 응답 애플리케이션입니다. RAG(Retrieval Augmented Generation) 접근 방식을 사용하는 애플리케이션은 기업 지식 기반이나 콘텐츠에서 사용자의 요청과 가장 관련 있는 정보를 검색하고 이를 프롬프트로 사용자의 요청과 함께 컨텍스트로 묶은 다음 LLM으로 전송하여 GenAI 응답.
LLM은 입력 프롬프트의 최대 단어 수에 제한이 있으므로 기업의 수천 또는 수백만 개의 문서 중에서 올바른 구절을 선택하는 것은 LLM의 정확성에 직접적인 영향을 미칩니다.
이 프로젝트에서는 pgVector가 포함된 Amazon Aurora Postgresql이 지식 기반으로 사용됩니다.
전체적인 아키텍처는 다음과 같습니다.
전반적인 작업 흐름
- CDK 스택을 배포합니다(자세한 내용은 여기를 참조하세요).
- 프라이빗 VPC의 SageMaker Studio.
- 텍스트 생성을 위한 SageMaker 엔드포인트.
- 임베딩 생성을 위한 SageMaker 엔드포인트.
- 임베딩을 저장하기 위한 Amazon Aurora Postgresql 클러스터.
- Aurora Postgresql 클러스터의 액세스 자격 증명(사용자 이름 및 암호)은
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
와 같은 이름으로 AWS Secrets Mananger에 저장됩니다.
- 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 활용(2023-07-13)
- Amazon Aurora PostgreSQL 호환 버전 및 PostgreSQL용 Amazon RDS에서 pgVector를 사용하여 HNSW 인덱싱 및 검색을 가속화합니다(2023-11-06)
- pgVector 인덱싱을 사용하여 생성적 AI 애플리케이션 최적화: IVFFlat 및 HNSW 기술에 대한 심층 분석(2024-03-15)
- 최적화된 읽기 및 pgVector를 사용하여 Amazon Aurora에서 생성적 AI 워크로드 성능 향상(2024-02-09)
- Amazon SageMaker 및 pgVector를 사용하여 PostgreSQL에서 AI 기반 검색 구축(2023-05-03)
- Amazon SageMaker Studio에서 Streamlit 앱 구축(2023-04-11)
- Amazon Kendra, LangChain 및 대규모 언어 모델을 사용하여 기업 데이터에 정확도가 높은 Generative AI 애플리케이션을 빠르게 구축하세요(2023-05-03)
- (github) Amazon Kendra Retriver 샘플
- Amazon SageMaker JumpStart에서 기본 모델과 함께 검색 증강 생성을 사용한 질문 답변(2023-05-02)
- Amazon SageMaker Studio에서 Amazon SageMaker JumpStart의 독점 기반 모델 사용(2023-06-27)
- LangChain - 언어 모델을 기반으로 하는 애플리케이션 개발을 위한 프레임워크입니다.
- Streamlit - 데이터 앱을 구축하고 공유하는 더 빠른 방법
- rag-with-amazon-kendra-and-sagemaker - LLM(대형 언어 모델) 및 Amazon Kendra를 사용한 질문 응답 애플리케이션
- rag-with-amazon-opensearch-and-sagemaker - LLM(대형 언어 모델) 및 Amazon OpenSearch Service를 사용한 질문 응답 애플리케이션
- rag-with-amazon-opensearch-serverless - LLM(대형 언어 모델) 및 Amazon OpenSearch 서버리스 서비스를 사용한 질문 응답 애플리케이션
- Pg벡터 변경 로그
벡터의 최대 크기가 1024에서 16000으로 증가했습니다.
인덱스의 최대 크기가 1024에서 2000으로 증가되었습니다.