검색 증강 생성(RAG)을 위한 텍스트 임베딩 파이프라인
요약
본 문서는 RAG(검색 증강 생성) 시스템을 구축하기 위한 텍스트 임베딩 파이프라인 구현 방법을 안내합니다. AWS CDK와 Lambda 함수를 사용하여 문서 및 데이터베이스의 지식을 벡터 스토어에 저장하고, 이를 LLM 응답 생성 시 활용하는 아키텍처를 제시합니다.
핵심 포인트
- RAG 시스템 구축을 위한 텍스트 임베딩 파이프라인 구현 가이드입니다.
- AWS CDK와 Lambda 함수를 사용하여 전체 아키텍처를 배포할 수 있습니다.
- S3 업로드 또는 DMS 복제 작업을 통해 데이터를 파이프라인에 공급합니다.
검색 증강 생성(RAG)을 위한 텍스트 임베딩 파이프라인
본 솔루션은 문서와 데이터베이스에 저장된 문맥적 지식을 텍스트 임베딩으로 변환하고 이를 벡터 스토어에 저장하는 파이프라인입니다. 대규모 언어 모델(LLM)로 구축된 애플리케이션은 벡터 스토어에서 유사성 검색을 수행하여 응답을 생성하기 전에 문맥적 지식을 검색할 수 있습니다. 이 기술은 검색 증강 생성(RAG)으로 알려져 있으며, 응답의 품질과 정확도를 향상시키는 데 자주 사용됩니다.
❗ 경고 ❗
-
운영 환경에 사용하기 전 구성 검토 및 변경: 현재 구성은 추가적인 검토와 적응 없이 운영 환경에서 사용되어서는 안 됩니다. 백업 비활성화 및 다중 가용 영역(multi-AZ)과 같은 비용 절감을 위해 채택된 많은 안티 패턴들이 있습니다.
-
발생하는 비용에 유의: 본 솔루션은 비용 효율적으로 개발되었지만, 발생할 수 있는 비용에 유의하시기 바랍니다.
아키텍처

전제 조건
설정
-
이 저장소를 클론합니다.
-
AWS 계정에 'EC2DefaultKeyPair'라는 이름의 키 페어를 생성합니다.
-
의존성을 설치합니다.
npm install
- CDK Toolkit을 사용하여 AWS 계정을 부트스트랩합니다 (아직 AWS 계정에서 수행하지 않은 경우).
cdk bootstrap
-
람다 함수와 그 의존성을 패키징합니다.
- macOS:
sh prepare-lambda-package.sh - Windows:
.ileprepare-lambda-package.ps1
- macOS:
-
CDK 스택을 배포합니다.
cdk deploy --all --require-approval never
- 이전 단계가 완료되기를 기다리는 동안, us-east-1 지역의 Amazon Bedrock으로 이동하여 “Amazon Titan Embeddings G1 - Text”에 대한 접근 권한을 부여합니다.
워크스루 (Walkthrough)
-
S3 버킷에 데이터를 업로드하는 방법은 두 가지가 있습니다.
-
(a) 내용이 담긴 .txt 파일을 S3 버킷(스택 중 하나에서 생성됨)에 업로드합니다 (sample.txt가 예시입니다).
-
(b) AWS 관리 콘솔에서 DMS 복제 작업(replication task)을 시작합니다. 소스 데이터베이스의 데이터는 S3 버킷으로 복제되어 .csv 파일로 저장됩니다.
"Start DMS replication task"
Lambda 함수가 .txt / .csv 파일의 내용을 텍스트 임베딩으로 생성하여 벡터 스토어에 저장합니다.
-
-
배스천 호스트(bastion host)에 연결합니다 (SSH 또는 instance connect). 다음 명령을 실행하고 (비밀번호를 제공하여) 인증합니다. 자격 증명은 AWS Secrets Manager의 “text-embeddings-pipeline-vector-store” 비밀에서 찾을 수 있습니다.
psql --port=5432 --dbname=postgres --username=postgres --host=<RDS 인스턴스 DNS 이름>
\dt를 실행하여 데이터베이스 테이블 목록을 확인합니다. 접두사 “langchain”으로 시작하는 이름의 테이블은 LangChain이 임베딩을 생성하고 저장하면서 자동으로 생성합니다.
List of relations
Schema | Name | Type | Owner
--------+-------------------------+-------+----------
...
- 문서와 임베딩은 “langchain_pg_embedding” 테이블에 저장됩니다. 다음 명령을 실행하여 잘린 값(실제 값은 너무 깁니다)을 확인할 수 있습니다.
SELECT embedding::varchar(80) FROM langchain_pg_embedding;
```
embedding
----------------------------------------------------------------------------------
[-0.005340576,-0.61328125,0.13769531,0.7890625,0.4296875,-0.13671875,-0.01379394 ...
...
- ```
SELECT document::varchar(80) FROM langchain_pg_embedding;
```
document
----------------------------------------------------------------------------------
What is text embeddings pipeline?,Text embeddings pipeline allows you to create ...
...
## Clean Up
1. Destroy all CDK stacks.
```bash
cdk destroy --all
Security
더 자세한 정보는 CONTRIBUTING를 참조하십시오.
License
이 라이브러리는 MIT-0 라이선스 하에 배포됩니다. LICENSE 파일을 참조하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기