교육/SK네트웍스 Family AI 캠프

[플레이데이터 SK네트웍스 Family AI캠프 14기] 13주차 회고

shining park 2025. 7. 6. 19:26

Class Daily Log

 

 

✏️13주차 진행 내용 : LLM

 

📍이번주의 중요 내용

 

LLM > LangChain Component > Retrieval

  • Vector Store
    • 벡터 데이터베이스란 쉽게 말해, 비정형 데이터(텍스트, 이미지, 오디오 등)를 숫자 벡터로 변환하여 저장하고, 이 벡터들 간의 유사성을 바탕으로 데이터를 검색하는 데이터베이스
    • 벡터 데이터베이스는 유사도 기반 검색으로 고차원 데이터 처리에 유리
    • 주요 특징
      • Approximate Nearest Neighbor (ANN) 검색 → ANN 알고리즘을 사용해 유사한 벡터를 빠르게 검색
      • 확장성
      • 유연성 → 텍스트, 이미지, 오디오 데이터를 임베딩 형태로 변환해 저장 가능 + 다양한 머신러닝 모델과 통합하여 사용자 요구에 맞는 검색 시스템 구축 가능
      • 주요 벡터 데이터베이스 비교

  • ⭐Retriever
    • 리트리버는 벡터DB의 검색 기능을 표준화하고 추상화하여 LangChain 생태계에서 재사용성을 높이는 어댑터(Adapter) 역할을 수행
    • Retriever의 유형
      • Sparse Retriever : 단어 기반 매칭(Bag-of-Words, TF-IDF, BM25 등) 사용
      • Dense Retriever : 문맥을 포함한 의미적 매칭, 딥러닝 기반 임베딩 모델(예: BERT, DPR)을 사용하여 문장/문서를 벡터화
    • Retriever의 작동 원리
      1. 인덱스 생성(Indexing)
      2. 질의 처리(Query Processing)
      3. 유사도 계산(Similarity Calculation)
      4. 결과 반환
retriever = vector_db.as_retriever(
    search_type='similarity',
    search_kwargs={
        'k': 3,
    }
)

retrieval_results = retriever.batch(['인디언 조'])
retrieval_results
"""
[[Document(id='a95a4949-724c-4604-827b-63f115036c7c', metadata={'producer': '3-Heights(TM) PDF Optimization Shell 5.9.1.5 (http://www.pdf-tools.com)', 'creator': 'Acrobat PDFMaker 7.0 dla programu Word', 'creationdate': '2006-08-26T00:50:00+02:00', 'author': 'GOLDEN', 'company': 'c', 'title': 'Microsoft Word - 1', 'moddate': '2021-01-27T15:00:11+01:00', 'source': 'The_Adventures_of_Tom_Sawyer.pdf', 'total_pages': 35, 'page': 9, 'page_label': '10'}, page_content='Then Injun Joe killed the doctor with a knife.'),
  Document(id='e6fa110f-cf51-429c-bf30-cbdcc63642a4', metadata={'producer': '3-Heights(TM) PDF Optimization Shell 5.9.1.5 (http://www.pdf-tools.com)', 'creator': 'Acrobat PDFMaker 7.0 dla programu Word', 'creationdate': '2006-08-26T00:50:00+02:00', 'author': 'GOLDEN', 'company': 'c', 'title': 
...
"""

 

 

LLM > LangChain Component > RAG

    • RAG (Retrieval-augmented generation)
      • https://python.langchain.com/docs/tutorials/rag/
      • 자체 문서를 사용하여 응답을 생성하는 앱 구현
      • 주요 개념
        • Document
        • Vector Stores (=Vector DB)
        • Retrievers
      • RAG 프로세스
        • Indexing : ①로드 → ②분할 → ③저장
        • 검색 및 생성 과정 : ④검색 → ⑤생성

 

LLM > Advanced RAG > Retrieval Optimization > BM25 Dense Comarison

  • BM25 vs Dense retrieval 비교
항목 BM25 (Sparse) Dense Retrieval (AI 기반)
방식 단어 일치 기반 의미(벡터) 기반
예시 검색 결과 "와인" → "와인" 포함 문서 "와인" → "포도주" 관련 문서
의미 파악 못 함 잘 함
속도 빠름 느릴 수 있음
학습 필요 여부 없음 있음 (사전 학습 모델 필요)
대표 알고리즘/도구 BM25, TF-IDF BERT, OpenAI, FAISS, Pinecone
  • 검색성능 평가지표 함수
지표 설명 의미 이상적일 때
P@5 Precision@k
상위 k개 결과 중 관련 문서 비율
상위 5개 중 정답 비율 높을수록 좋음
R@5 Recall@k
전체 관련 문서 대비 상위 k개 내 포함된 비율
전체 정답 중 상위 5개 안에 있는 비율 높을수록 좋음
  Reciprocal Rank(RR)
첫 관련 문서가 등장한 순위의 역수
   
MRR Mean Reciprocal Rank
여러 질의의 RR 값을 평균
정답이 얼마나 앞에 나왔는가 높을수록 좋음
  Average Precision(AP)
관련 문서를 만날 때마다의 Precision 값을 모두 평균
   
MAP Mean Average Precision

정답이 많을 때의 정밀도 평균 높을수록 좋음

 

 

 

 

Keep

  • 지각, 결석, 병가가 없는 것
  • 복습을 꾸준히 한 것
  • 해커톤을 도전한 것

Problem

  • 아침에 9시 거의 다 되어서 강의실에 도착하는 것
  • 실습과제 하나가 밀린 것

Try

  • 수업 시작 10분 전에 강의실에 도착해서 미리 강의들을 준비를 마칠 것
  • 지하철 이용 시간에 독서나 Daily Log를 통한 복습을 진행할 것
  • 복습과 실습과제를 미루지 말 것
  • 운동을 꾸준히 해서 체력을 늘릴 것