교육/SK네트웍스 Family AI 캠프
[플레이데이터 SK네트웍스 Family AI캠프 14기] 13주차 회고
shining park
2025. 7. 6. 19:26
Class Daily Log
- MON : https://www.notion.so/LLM-LangChain-Component-Retrieval-Chains-LCEL-Agent-Tool-222743164153806eba57f4da49e90d8a?source=copy_link
- TUE : https://www.notion.so/LLM-LangChain-Component-Agent-Tool-RAG-AI-Sommelier-Rag-Indexing-AI-Sommelier-Rag-223743164153809296a9dd457938cbb4?source=copy_link
- WED : https://www.notion.so/LLM-RAG-AI-Sommelier-Rag-Advanced-RAG-retrieval-optimization-2247431641538061b1ced683f3c29eab?source=copy_link
- THU : https://www.notion.so/LLM-Advanced-RAG-retrieval-optimization-HyDE-Cohere-Rerank-Contextual-Compression-Metadata-Filt-225743164153800c8be3c711a6f0324a?source=copy_link
- FRI : https://www.notion.so/LLM-Advanced-RAG-argumentation-generation-optimization-Rag-Self-Consistency-RAG-Few-Shot-RAG-Co-22674316415380d6ae89f545c13eb9bb?source=copy_link
✏️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의 작동 원리
- 인덱스 생성(Indexing)
- 질의 처리(Query Processing)
- 유사도 계산(Similarity Calculation)
- 결과 반환
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를 통한 복습을 진행할 것
- 복습과 실습과제를 미루지 말 것
- 운동을 꾸준히 해서 체력을 늘릴 것