AI VIDEO BRIEFING
RAG 검색 2단계와 툴 호출, 에이전트 루프까지 스탠퍼드 CME295 7강 핵심 정리
스탠퍼드 CME295 7강은 학습 시점에 갇힌 LLM을 외부 세계와 잇는 방법을 다룬다. RAG의 후보 검색과 재랭킹, 검색 품질 지표, 함수 호출 3단계, ReAct 에이전트 루프와 안전 문제까지 짚었다.

핵심 메시지
쉽게 이해하기
스탠퍼드 CME295 강의의 일곱 번째 시간은 지금까지 혼자 학습되고 혼자 추론하던 LLM을 바깥 시스템과 이어 붙이는 실전 기법을 다룬다. 강의는 먼저 모든 상용 모델의 모델 카드에 적혀 있는 '지식 컷오프' 날짜를 보여 주며 문제를 정의한다. 컷오프 이후에 벌어진 일을 물으면 모델은 모른다고 답하거나 틀린 답을 내놓는다.
그렇다면 최신 데이터를 계속 학습시키면 되지 않느냐는 질문에 강의는 두 가지 이유로 고개를 젓는다. 하나는 지식만 골라 바꾸면서 다른 능력이 퇴행하지 않게 하기가 매우 까다롭다는 점이고, 다른 하나는 용도별로 파인튜닝한 모델이 여러 개라면 그때마다 같은 작업을 반복해야 한다는 유지보수 부담이다. 새 정보를 프롬프트에 몽땅 붙이는 방법도 답이 아니다. 컨텍스트가 수십만 토큰이라 해도 책 몇 백 쪽 분량에 불과하고, 무관한 정보가 섞이면 모델이 오히려 헷갈리며, 입력 토큰만큼 비용이 붙는다.
그래서 등장하는 것이 필요한 조각만 찾아 프롬프트에 덧붙이는 RAG다. 강의는 문서를 수백 토큰짜리 청크로 나눠 임베딩을 만들어 두는 지식 베이스 구축 단계부터, 청크 크기와 임베딩 차원, 청크 간 겹침 같은 하이퍼파라미터의 절충을 설명한다. 검색은 두 단계로 진행된다. 먼저 코사인 유사도로 수많은 청크에서 100여 개 후보를 남기고, 이어 질의와 청크를 함께 인코더에 넣는 크로스 인코더로 순위를 다시 매긴다.
의미가 비슷한 문서를 찾는 임베딩 검색은 정작 질의에 들어 있는 고유명사를 놓칠 수 있다. 강의는 이름이 서로 다른 두 곰 인형 예시로 이 한계를 보여 주고, 단어 겹침을 점수화하는 BM25를 함께 쓰는 하이브리드 검색을 소개한다. 청크가 문맥에서 잘려 뜻이 흐려지는 문제는 문서 전체를 참고해 짧은 설명을 앞에 붙이는 방식으로 완화하는데, 이때 늘어나는 LLM 호출 비용은 같은 접두어의 계산 결과를 재사용하는 프롬프트 캐싱으로 낮춘다.
후반부는 구조화된 기능을 부르는 툴 호출로 넘어간다. 모델에게는 함수 구현이 아니라 이름과 입출력, 설명만 보여 주고 인자를 채우게 한 뒤, 실행 결과를 다시 넣어 자연어 답을 만들게 한다. 도구가 많아지면 프롬프트가 비대해지므로 먼저 후보 도구를 고르는 선택기를 두고, 도구 정의 방식이 모델마다 제각각인 문제는 MCP 같은 표준으로 푼다. 마지막으로 관찰·계획·행동을 반복하는 ReAct 방식의 에이전트와, 그 능력이 커질수록 함께 커지는 안전 문제를 다룬다.
주요 인사이트
- 검색이 잘못되면 그 뒤 단계가 아무리 좋아도 답이 틀린다. 강의가 RAG 시간의 대부분을 검색기 설계와 평가에 쓰는 이유이며, 성능은 NDCG, 역순위, 상위 k에서의 재현율과 정밀도로 수치화한다.
- 임베딩 검색과 키워드 검색은 대체재가 아니라 보완재다. 뜻이 비슷한 문서를 찾아야 할 때와 특정 단어가 반드시 들어가야 할 때는 서로 다른 도구가 필요하다.
- 질의는 짧은 질문이고 문서는 긴 서술이라 같은 인코더로 임베딩하면 서로 비교하기 어색해진다. 가짜 문서를 먼저 생성해 그것을 임베딩하는 우회법이 나온 배경이다.
- 도구를 무제한으로 붙이면 오히려 성능이 떨어진다. 컨텍스트가 유한하고 비슷한 API가 섞이면 모델이 무엇을 써야 할지 헷갈리기 때문에, 도구 선택기로 후보를 좁히는 설계가 필요하다.
- 강연자는 코딩 보조가 지금 가장 쓸모 있는 에이전트 활용이라면서도, 코드 생성은 싸졌지만 그 코드가 옳은지 판단하는 일은 여전히 어렵다며 기초를 익히라고 당부한다.
자주 묻는 질문
RAG와 툴 호출은 어떻게 다른가요?
RAG는 문서처럼 정해진 구조가 없는 자료에서 관련 대목을 찾아 프롬프트에 붙이는 방식이고, 툴 호출은 입력과 출력이 정해진 함수를 불러 결과를 받아 오는 방식입니다. 강의는 둘 다 학습 시점 이후의 정보를 메우는 방법이라는 점에서 서로를 대체하기보다 보완한다고 설명합니다.
청크 크기와 임베딩 차원은 어떻게 정하나요?
정답은 없고 절충의 문제입니다. 청크가 너무 작으면 문맥이 끊기고 너무 크면 임베딩이 내용을 제대로 대표하지 못해 보통 수백 토큰 규모로 잡으며, 청크끼리 백 토큰 안팎을 겹치게 둡니다. 임베딩 차원은 클수록 미묘한 차이를 담지만 저장 공간과 추론 연산이 늘어납니다.
프롬프트 캐싱은 왜 비용을 줄여 주나요?
디코더 기반 모델은 앞에서 뒤로만 계산하기 때문에 프롬프트의 앞부분이 같으면 그 부분의 활성값이 항상 같습니다. 이를 한 번만 계산해 두고 이후에는 불러다 쓰면 되며, 강의는 어떤 상용 모델의 경우 캐시된 입력 토큰 가격이 일반 입력의 10분의 1 수준이라고 소개합니다.
에이전트에는 어떤 안전 위험이 있나요?
모델이 실제로 행동할 수 있게 되면서 데이터 유출 같은 위험이 생깁니다. 강의는 외부에 쓰기가 가능한 도구에 접근한 모델이 사용자의 비밀 정보를 밖으로 내보내는 시나리오를 예로 들고, 학습 단계의 무해성 데이터와 추론 시점의 안전 분류기라는 두 갈래 방어를 소개합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗