| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- rpc
- listen server
- Aegis
- 게임 개발
- UI
- unity
- attribute
- stride
- os
- linear regression
- CTF
- 언리얼엔진
- ability task
- gameplay tag
- MAC
- Multiplay
- animation
- gameplay ability system
- 유니티
- 게임개발
- photon fusion2
- C++
- widget
- Replication
- local prediction
- gas
- Unreal Engine
- 보안
- gameplay effect
- 언리얼 엔진
- Today
- Total
Replicated
RAG, MCP 본문
검색 증강 생성(RAG)
- Retrieval-Agumented Generation
- LLM이 모든 지식이 있는 건 아니고 할로시네이션(환각)이 있음
- 효과적인 방법이 프롬프트 일부에 지식을 제공하는 것, 이 지식은 컨텍스트의 일부로서 입력됨
- 파인 튜닝보다 훨씬 적은 노력과 비용
- 정보의 변동성이 큰 분야에 효과적 대응 가능
- 최신 정보가 중요한 분야나 특정 도메인의 응용 프로그램에서 큰 강점
| RAG | Fine-tuning | |
| 정의 | 최신의 외부 데이터에서 적절한 문서 검색 및 답변을 생성해 LLM 모델의 정확성과 신뢰성을 향상시키는 방식 | 사전 학습된 모델에 각 개별 기업의 도메인 특화 데이터를 추가 학습시켜 맞춤형 모델로 업데이트 하는 방식 |
| 이점 | 외부 데이터에 대한 상시적 접근 가능 데이터의 최신성 유지에 용이 근거가 확실한 데이터를 기반으로 답변 생성 |
양질의 라벨링 데이터만 있다면 높은 품질의 모델 생성 가능 업데이트가 빈번하지 않은 특정 도메인에서 유용 |
| 도전과제 | 관련 없는 문서를 검색할 가능성이 있어 효율적인 검색 모델을 구축해야 함 | 충분한 데이터가 없거나 양질의 데이터가 아닌 경우 모델의 퀄리티가 낮아질 수 있음 모델의 지식은 마지막 훈련 데이터까지만 한정됨 |
| 유스케이스 | 새로운 데이터가 자주 업데이트 되는 기업 | 특정 작업용 애플리케이션 |
Indexing
RAG 시스템 구축의 첫 단계, 프롬프트에게 제공할 지식 데이터베이스를 구축하는 단계
1. 문서 분할
- 대량의 텍스트 데이터를 관리하기 쉬운 작은 단위로 분할
- 이렇게 나눈 작은 단위를 청크라 함
2. 임베딩
- 각 청크를 컴퓨터가 이해할 수 있는 형태로 변환
- 자연어 처리 모델로 청크를 벡터로 변환하고, 이후 텍스트 간의 유사성을 계산하는데 활용
3. 저장
- 완성된 임베딩 벡터들을 효율적으로 저장하고 검색할 수 있는 벡터 데이터베이스에 보관
Retrieval
사용자 프롬프트와 연관성이 있는 지식을 벡터 데이터베이스에서 검색하여 가져오는 과정
1. 질문 임베딩
- 사용자의 질문(프롬프트)을 벡터로 변환, 문서 청크들과 비교 가능해짐
2. 유사성 비교
- 이 질문 벡터와 저장된 문서 청크 벡터 간의 유사성 계산
- 주로 사용되는 방법은 코사인 유사도나 유클리디안 거리 등의 수학적 척도

- 코사인 유사도: 두 벡터의 내적을 두 벡터 길이의 곱으로 나눈 값
3. 관련 문서 선택
- 유사도 점수를 바탕으로 가장 높은 상위 k개의 문서 청크를 선택
Generation
검색된 문서 청크는 원래의 질문과 결합되어 추가 컨텍스트를 형성
결합된 텍스트와 질문은 모델에 입력되어 최종 답변을 생성하는데 사용
RAG의 종류
- Naive RAG
- Advanced RAG
- Modular RAG
* FAISS
- 대용량 벡터 검색 라이브러리
- 페이스북에서 개발 및 배포한 밀집 벡터의 유사도 측정과 클러스터링에 효율적인 라이브러리
* RAG을 사용하면 LLM의 답변 속도가 현저히 느려질 수 있음
성능 최적화를 위해
- 문서 길이 제한 및 요약
- 임베딩 성능 개선
- 캐시 사용
- LLM 로딩 최적화
Vector database
llm이 정보를 효율적으로 검색하고 처리할 수 있도록 지원
속성 유사성으로 결과를 제공하는 의미론적 검색 어플리케이션에서 특히 중요
LangChain의 문서 관리 도구
- Document Loader가 다양한 소스에서 문서를 불러오고 처리하는 과정을 담당
- 주요 목적은 효율적으로 문서 데이터를 수집하고 사용 가능한 형식으로 변환하는 것
벡터 데이터베이스
- 벡터 형식의 데이터를 저장, 쿼리하고 분석하는데 특화된 데이터베이스
- 벡터 저장, 유사성 측정, 인덱싱, 쿼리 처리, 스케일링
- Pinecone, Chroma, Weviate, Milvus, Faiss, Qdrant..
- Chroma는 LLM 앱을 위한 최적화가 있음
벡터 DB 선택 시 고려 사항
- 확장성: 데이터 증가에 따른 성능 유지 가능 여부
- 검색 성능: 유사도 기반 검색 정확도와 속도
- 유연성: 다양한 데이터 형식, 모델과의 연동
- 사용 편의성: API, 문서화, 배포의 난이도
- 신뢰성: 오픈소스 커뮤니티 또는 상용 지원 여부
Chroma
- RAG 구축 시 많이 사용되는 오픈소스 벡터 데이터베이스
- 벡터 임베딩을 다루기 위한 다양한 기능 지원 (문서 및 질의 임베딩, 메타데이터 저장, 검색)
- 단순한 사용성, 유사도 순위 제공, 빠른 실행
MCP (Model Context Protocol)
- llm과 외부 데이터 소스 및 앱 간 안전하고 표준화된 상호작용을 정의하는 개방형 프로토콜
- 기존의 API 연동 방식이 모델마다, 도구마다 개별적으로 필요했던 복잡성을 해소하고 llm 기반 애플리케이션 개발과 확장성과 신뢰성을 높이는 것을 목표로 함
MCP vs tool calling
- MCP는 도구의 발견, 연결, 호출, 보안을 위한 표준화된 통신 및 아키텍처
- Tool Calling은 llm이 도구를 사용하도록 만드는 언어
| 구분 | Tool Calling | MCP |
| 개념적 역할 | llm의 의도 파악 및 도구 사용 결정 언어 | llm과 외부 도구, 데이터 간 표준 통신 인프라 |
| 핵심 기능 | 1. 모델이 호출할 함수의 JSONSchema 이해 2. 사용자 요청에 따라 함수 호출 필요 여부 및 인수 결정 |
1. 외부 도구, 데이터의 발견 및 등록 표준화 2. 보안, 인증, 전송 규격 정의 3. 다양한 llm 간의 도구 재사용성 보장 |
| 구현 방식 | llm 내부의 추론 과정에서 json 객체를 출력하여 호출 의도를 표현 | Host - Client - Server 구조를 갖는 외부 프로토콜 |
| 상호 운용성 | 모델 제공 업체에 의해 정의된 특정 json 스키마에 의존 | 개방형 표준이므로 llm 종류와 무관하게 모든 mcp 규격을 따르는 도구를 사용 가능 |
| 보안/인증 | 보통 툴 콜링 자체는 보안을 안다루고 실제 호출은 별도의 api 키나 인증 방식으로 처리 | 보안 및 인증 메커니즘을 내제 |
MCP의 기본 아키텍처
호스트 애플리케이션
- 사용자가 상호작용하는 최종 인터페이스
- 사용자의 요청을 받아서 llm에 전달하고 최종 응답을 사용자에게 보여줌
MCP 클라이언트
- 호스트 애플리케이션 내부에 통합되어 있음
- llm과 mcp 서버 간의 통신을 관리
- llm이 도구를 사용해야 한다고 판단하면 이 클라이언트가 mcp 서버에 요청을 보냄
MCP 서버
- 실제 외부 기능이나 데이터 소스에 연결되는 로직을 포함
- 클라이언트로부터 mcp 규격에 맞는 요청을 받아 실제 작업을 수행하고 그 결과를 다시 클라이언트에 반환
MCP가 가져온 변화
툴 재사용성 증가
- 한 번 MCP 서버로 구현된 도구는 다양한 llm에서 코드 수정없이 재사용될 수 있음
보안 및 감사 용이
- MCP는 보안, 접근 제어, 감사 기록 등에 대한 명확한 규약을 포함하고 있어 기업 환경에서 llm 에이전트를 안전하게 배포 가능
에이전트 기능 확장
- llm 에이전트가 RAG을 넘어 복잡한 업무 자동화를 수행할 수 있게 되어 llm의 유틸리티를 극대화
MCP 개발 프레임워크
프로토콜 표준을 중심으로 다양한 서버 및 클라이언트 구현체가 존재
LangChain
- 기존의 에이전트 프레임워크로 MCP 서버를 도구처럼 활용할 수 있는 어댑터를 제공
smolagent (Hugging Face)
- 허깅 페이스의 LocalPythonExecutor와 함께 사용하여 MCP를 AI 어시스턴트와 통합 가능
GitHub MCP
- 코드 작성 지원을 위해 클로드와 협업하는 코딩 도우미 서버의 한 종류
FastAPI-MCP
- 개발자가 자신만의 MCP 서버를 쉽게 구축할 수 있도록 돕는 라이브러리
Cursor MCP Installer
- 개발 편의성을 위해 Cursor IDE에 MCP 서버를 자동으로 추가하는 도구
'학부 > 딥러닝' 카테고리의 다른 글
| AI Agent, Context Engineering (0) | 2025.12.08 |
|---|---|
| LangChain, LangGraph (0) | 2025.12.08 |
| Hugging face (0) | 2025.12.07 |
| 자연어 처리 : Seq2Seq, Attention, Transformer (0) | 2025.12.07 |
| 자연어 처리 : RNN, LSTM (0) | 2025.12.07 |