πŸ“š Amazon Bedrock – RAG & Knowledge Base

1. πŸ” RAGλž€ λ¬΄μ—‡μΌκΉŒ?

RAG (Retrieval-Augmented Generation) 은

μ™ΈλΆ€ λ°μ΄ν„°μ—μ„œ 정보λ₯Ό 검색(Retrieve) ν•˜κ³  β†’ 이λ₯Ό ν”„λ‘¬ν”„νŠΈμ— μΆ”κ°€(Augment) ν•˜μ—¬ β†’ λͺ¨λΈμ΄ 더 μ •ν™•ν•œ 닡변을 생성(Generate) ν•˜λŠ” λ°©λ²•μ΄μ—μš”.

  • 검색(Retrieval): λͺ¨λΈμ΄ ν•™μŠ΅ν•˜μ§€ λͺ»ν•œ μ΅œμ‹  λ°μ΄ν„°λ‚˜ νŠΉμ • 도메인 데이터λ₯Ό κ°€μ Έμ™€μš”.
  • 증강(Augmentation): κ²€μƒ‰ν•œ 데이터λ₯Ό 질문과 ν•©μ³μ„œ λͺ¨λΈμ— μ „λ‹¬ν•΄μš”.
  • μž₯점: λͺ¨λΈμ„ μƒˆλ‘œ ν•™μŠ΅(Fine-tuning)ν•˜μ§€ μ•Šκ³ λ„ μ΅œμ‹  지식을 λ°˜μ˜ν•  수 μžˆμ–΄μš”.

2. πŸ— λ™μž‘ 방식 (Step-by-Step)

  1. 데이터 μ €μž₯μ†Œ
    • Amazon S3, Confluence, SharePoint, Salesforce, μ›Ήμ‚¬μ΄νŠΈ 등에 λ¬Έμ„œλ₯Ό μ €μž₯
  2. 벑터 μž„λ² λ”© 생성
    • Bedrock이 λ¬Έμ„œλ₯Ό μž‘μ€ 쑰각으둜 λ‚˜λˆ„κ³ 
    • Amazon Titan, Cohere 같은 μž„λ² λ”© λͺ¨λΈλ‘œ 숫자 λ²‘ν„°λ‘œ λ³€ν™˜
  3. 벑터 λ°μ΄ν„°λ² μ΄μŠ€ μ €μž₯
    • λ³€ν™˜λœ 벑터λ₯Ό OpenSearch, Aurora, Neptune, S3 Vectors 같은 벑터 DB에 μ €μž₯
  4. 쿼리 처리
    • μ‚¬μš©μžκ°€ μ§ˆλ¬Έν•˜λ©΄ β†’ μ§ˆλ¬Έλ„ λ²‘ν„°λ‘œ λ³€ν™˜ β†’ DBμ—μ„œ μœ μ‚¬ν•œ 벑터 검색
  5. ν”„λ‘¬ν”„νŠΈ 증강
    • κ²€μƒ‰λœ κ²°κ³Όλ₯Ό μ›λž˜ 질문과 ν•©μ³μ„œ λͺ¨λΈμ— 전달
  6. λ‹΅λ³€ 생성
    • Claude, Titan Text, Llama 같은 λͺ¨λΈμ΄ λ§₯락을 μ΄ν•΄ν•˜κ³  λ‹΅λ³€ + 좜처 제곡


3. πŸ›  μ£Όμš” ꡬ성 μš”μ†Œ

ꡬ성 μš”μ†Œ μ„€λͺ… AWS / μ™ΈλΆ€ μ˜΅μ…˜
데이터 μ†ŒμŠ€ 원본 데이터 μ €μž₯ μœ„μΉ˜ Amazon S3, Confluence, SharePoint, Salesforce, μ›Ήμ‚¬μ΄νŠΈ
μž„λ² λ”© λͺ¨λΈ ν…μŠ€νŠΈλ₯Ό λ²‘ν„°λ‘œ λ³€ν™˜ Amazon Titan, Cohere
벑터 DB 벑터 μ €μž₯ 및 검색 OpenSearch, Aurora, Neptune, S3 Vectors / Pinecone, Redis, MongoDB
기초 λͺ¨λΈ μ΅œμ’… λ‹΅λ³€ 생성 Claude, Titan Text, Llama λ“±

4. πŸ“Š AWS 벑터 DB 비ꡐ (μ‹œν—˜ 포인트!)

μ„œλΉ„μŠ€ νŠΉμ§• ν™œμš© 사둀
OpenSearch μ‹€μ‹œκ°„ 검색, KNN 지원, μ„œλ²„λ¦¬μŠ€ λͺ¨λ“œ 있음 λŒ€κ·œλͺ¨ μ‹€μ‹œκ°„ 검색 & 뢄석
Aurora PostgreSQL RDB에 벑터 검색 톡합 (pgvector) κΈ°μ‘΄ SQL μ‹œμŠ€ν…œμ— RAG κ²°ν•©
Neptune Analytics κ·Έλž˜ν”„ 기반 검색 (GraphRAG) 관계 쀑심 데이터, κ·Έλž˜ν”„ 뢄석
S3 Vectors μ €λΉ„μš©, 높은 내ꡬ성, λΉ λ₯Έ 쿼리 μž₯κΈ° 보관 및 λΉ„μš© μ΅œμ ν™”

βœ… μ‹œν—˜ κΏ€νŒ

  • β€œμ‹€μ‹œκ°„ λŒ€κ·œλͺ¨ 검색” β†’ OpenSearch
  • β€œκ·Έλž˜ν”„ 관계 쀑심” β†’ Neptune
  • β€œμ €λΉ„μš©/고내ꡬ성” β†’ S3 Vectors

5. πŸ“Œ μ™œ KNN 검색이 μ€‘μš”ν•œκ°€?

RAGμ—μ„œ KNN (k-Nearest Neighbors) 검색은 κ°€μž₯ μ€‘μš”ν•œ λ‹¨κ³„μ˜ˆμš”.

  • λ¬Έμ„œμ™€ μ§ˆλ¬Έμ„ λ²‘ν„°λ‘œ λ³€ν™˜ β†’ μ„œλ‘œμ˜ β€œκ±°λ¦¬β€λ₯Ό 계산 β†’ κ°€μž₯ κ°€κΉŒμš΄ k개 λ¬Έμ„œ 검색
  • 거리 계산 방법: 코사인 μœ μ‚¬λ„(Cosine Similarity), μœ ν΄λ¦¬λ“œ 거리 λ“±
  • AWS μ‹œν—˜μ—μ„œλŠ” β€œsemantic search”, β€œvector similarity search” = KNN 검색을 μ˜λ―Έν•œλ‹€κ³  보면 λΌμš”.
  • OpenSearch의 Approximate k-NN 은 λŒ€κ·œλͺ¨ μ‹€μ‹œκ°„ 검색에 자주 μΆœμ œλΌμš”.

6. πŸ’‘ λŒ€ν‘œμ μΈ ν™œμš© 사둀

  1. 고객 μ„œλΉ„μŠ€ 챗봇 β†’ μ œν’ˆ 맀뉴얼, FAQ, νŠΈλŸ¬λΈ”μŠˆνŒ… λ¬Έμ„œ 기반 λ‹΅λ³€
  2. 법λ₯  λ¦¬μ„œμΉ˜ β†’ νŒλ‘€, 법령, 규제 λ¬Έμ„œλ₯Ό 검색해 μ •ν™•ν•œ μΆœμ²˜μ™€ ν•¨κ»˜ 제곡
  3. ν—¬μŠ€μΌ€μ–΄ Q&A β†’ μ§ˆλ³‘, 치료, 연ꡬ λ…Όλ¬Έ 데이터λ₯Ό 기반으둜 λ‹΅λ³€

7. πŸ§ͺ μ‹€μŠ΅ μ˜ˆμ‹œ – β€œλ‚΄ λ¬Έμ„œμ™€ λŒ€ν™”ν•˜κΈ°β€

  • λͺ©ν‘œ: μ—…λ‘œλ“œν•œ λ¬Έμ„œλ₯Ό 기반으둜 질문-λ‹΅λ³€ 챗봇 λ§Œλ“€κΈ°

  • 절차

    1. AWS Console β†’ Knowledge Bases 이동
    2. β€œChat with your document” 선택
    3. λ¬Έμ„œ μ—…λ‘œλ“œ
    4. 질문 μž…λ ₯ β†’ 예: β€œWWWλ₯Ό 발λͺ…ν•œ μ‚¬λžŒμ€ λˆ„κ΅¬μ•Ό?”
    5. λͺ¨λΈμ΄ λ¬Έμ„œ 검색 β†’ κ΄€λ ¨ 문단 μ°Ύμ•„μ„œ λ‹΅λ³€ 생성 (좜처 포함)

  • μ‹œν—˜ 팁: λ‹΅λ³€ν•  데이터가 없을 땐 β€œμ œκ³΅λœ 데이터에 ν•΄λ‹Ή λ‚΄μš©μ΄ μ—†μŠ΅λ‹ˆλ‹€β€ 라고 응닡해야 함


8. πŸ“Œ μ‹œν—˜ λŒ€λΉ„ 핡심 μš”μ•½

  • RAG μ •μ˜: μ™ΈλΆ€ 데이터 검색 + ν”„λ‘¬ν”„νŠΈ 증강 β†’ 더 μ •ν™•ν•œ λ‹΅λ³€
  • Bedrock μž₯점: μž„λ² λ”© 생성, KB 관리, FM μ—°κ²° μžλ™ν™”
  • 벑터 DB μ˜΅μ…˜: OpenSearch, Aurora, Neptune, S3 Vectors
  • 데이터 μ†ŒμŠ€: S3, Confluence, SharePoint, Salesforce, μ›ΉνŽ˜μ΄μ§€
  • μ‚¬μš© 사둀: 챗봇, 법λ₯  검색, 의료 지식 Q&A
  • μ‹œν—˜ 자주 λ‚˜μ˜€λŠ” ν‚€μ›Œλ“œ
    • β€œvector similarity search” = k-NN
    • β€œProvisioned Throughput” = μ»€μŠ€ν…€ λͺ¨λΈ ν•„μˆ˜
    • β€œFine-tuning vs RAG” β†’ Fine-tuning = λͺ¨λΈ 자체 μˆ˜μ •, RAG = 데이터 μΆ”κ°€λ§Œ

βœ… μΆ”κ°€ μ‹œν—˜ 포인트

  • Fine-tuning 은 λͺ¨λΈ κ°€μ€‘μΉ˜ λ³€κ²½, λΉ„μš© ↑, 데이터 ν•„μš” ↑
  • RAG λŠ” κ°€μ€‘μΉ˜ λ³€κ²½ μ—†μŒ, μ΅œμ‹  데이터 반영, λΉ„μš© ↓
  • Bedrock KB λŠ” S3, Confluence, Salesforce λ“± λ‹€μ–‘ν•œ μ†ŒμŠ€μ™€ 직접 μ—°κ²° κ°€λŠ₯
  • Aurora (pgvector) λŠ” κΈ°μ‘΄ SQL DBλ₯Ό μ‚¬μš©ν•˜λŠ” κΈ°μ—…μ—μ„œ 자주 언급됨