[목 차]
베타리더 후기 x
시작하며 xiii
이 책에 대하여 xv
PART I 개발 전 필요한 배경지식
CHAPTER 1 LLM과 RAG 기초 3
1.1 LLM의 개념과 작동 원리 4
1.2 LLM의 주요 특징 16
1.3 LLM의 실제 활용 사례 17
1.4 RAG란? 18
1.5 RAG 파이프라인 구성 시 LangChain 활용의 장점 21
CHAPTER 2 벡터 저장소와 임베딩, 검색 전략 24
2.1 RAG 파이프라인의 핵심 구성 요소 24
2.2 벡터 저장소 검색 방식 비교 30
CHAPTER 3 프롬프트 엔지니어링 기초 35
PART II LangChain을 활용한 RAG 파이프라인 구성하기
CHAPTER 4 LangChain 입문 45
4.1 LangChain이란? 45
4.2 환경 설정과 LangChain ChatOpenAI 활용법 47
CHAPTER 5 로컬 및 오픈소스 LLM 활용: Ollama와 허깅 페이스 54
5.1 Ollama를 활용한 로컬 LLM 활용 55
5.2 허깅 페이스의 오픈소스 LLM 활용 60
CHAPTER 6 Chroma를 활용한 벡터 저장소 구성 69
CHAPTER 7 retrieval 효율 개선을 위한 데이터 전처리 79
CHAPTER 8 LLM을 효율적으로 사용하는 방법 84
8.1 분할 정복 85
8.2 LCEL의 특징 87
8.3 소규모 LLM을 활용한 비용 최적화 101
CHAPTER 9 LangChain을 활용하지 않는다면? 108
CHAPTER 10 LangChain의 유연한 AI 스택 구성 114
PART III LangGraph를 활용한 AI 에이전트 구현하기
CHAPTER 11 LangGraph 입문 127
11.1 LangGraph란? 127
11.2 LangGraph와 LangChain의 차이점 129
CHAPTER 12 워크플로 vs. 에이전트 134
12.1 LangGraph로 구현하는 워크플로 135
12.2 LangGraph로 구현하는 에이전트 144
CHAPTER 13 에이전트 오케스트레이션 157
13.1 슈퍼바이저 상태 및 라우터 정의 172
13.2 슈퍼바이저 구성 요소 설정 173
13.3 Command 클래스와 구조화된 출력 기능을 활용한 슈퍼바이저 노드 구현 174
13.4 에이전트 노드 구현 176
13.5 에이전트 노드의 역할과 구현 방식 178
13.6 그래프 구성 및 컴파일 182
CHAPTER 14 MCP를 활용한 에이전트 구현 186
14.1 MCP 서버 구현 189
14.2 LangChain 도구를 MCP 도구로 변환 196
CHAPTER 15 LangSmith를 활용한 에이전트 모니터링 205
15.1 Input(입력) 209
15.2 Output(출력) 210
15.3 TOTAL TOKENS(토큰 사용량) 211
15.4 LATENCY(지연 시간) 212
15.5 LangSmith를 활용한 에이전트 평가 213
CHAPTER 16 실전 AI 에이전트 구현 사례 215
16.1 우버의 대규모 코드 마이그레이션 에이전트 216
16.2 AppFolio의 부동산 관리 코파일럿 217
16.3 링크드인의 AI 리크루터 218
16.4 일래스틱서치의 AI 어시스턴트 219
16.5 Klarna의 고객 지원 AI 어시스턴트 220
PART IV LLM 성능 평가
CHAPTER 17 LLM 평가의 중요성 225
17.1 LLM의 예측 불가능성 225
17.2 안정적인 AI 에이전트 서비스를 위한 평가의 중요성 226
17.3 LLM 평가의 고유한 어려움 228
17.4 체계적인 LLM 평가 접근법 233
CHAPTER 18 LLM 평가 지표 240
18.1 검색 정확도 관련 지표 241
18.2 응답 품질 관련 지표 244
18.3 사용자 경험 관련 지표 247
18.4 종합 평가 지표 251
18.5 RAG 시스템의 핵심 평가 영역 253
18.6 평가 지표 간의 균형과 최적화 255
CHAPTER 19 LLM 평가를 위한 골든 데이터셋 257
19.1 골든 데이터셋의 개념 257
19.2 골든 데이터셋 구축 방법 259
19.3 골든 데이터셋의 구조화와 협업 도구 활용 262
19.4 골든 데이터셋 활용 방법 267
19.5 효과적인 골든 데이터셋 구축과 활용 전략 270
CHAPTER 20 오프라인 평가 vs. 온라인 평가 271
20.1 오프라인 평가 272
20.2 온라인 평가 274
20.3 하이브리드 접근법 284
20.4 RAG 시스템을 위한 평가 전략 288
20.5 효과적인 LLM 평가를 위한 전략적 접근 293
CHAPTER 21 LangSmith를 활용한 에이전트 평가 294
CHAPTER 22 앞으로 나아갈 방향 308
22.1 에이전트의 지능 향상 308
22.2 멀티 에이전트 시스템으로의 확장 309
22.3 실제 비즈니스 적용을 위한 다음 단계 310
찾아보기 314
[본 문]
LLM 서비스를 운영할 때는 환각(hallucination)을 유의해야 한다. 환각은 LLM이 답변을 생성할 때, 데이터에 기반하지 않고 사실과 다른 정보를 생성하는 현상이다. 따라서 LLM을 활용한 서비스를 운영한다면 어떤 문서를 참고했는지 답변의 출처를 같이 보여주는 것이 중요하다. 그래서 벡터 저장소에 메타 데이터를 같이 저장해야 하고, 어떤 문서의 몇 페이지에서 가져왔다는 것을 함께 보여준다. 이러한 방식은 LLM 답변의 신뢰도를 보증하고, 서비스 품질을 높이는 데 기여한다. (26쪽)
문맥을 조금 더 자세히 작성하면 원하는 결과를 얻어낼 수 있다. 코드로 사용한 EXAONE 3.5와 추론 모델인 exaone-deep을 제외하고 Ollama에서 공식적으로 한국어를 지원하는 모델은 없다. 하지만 앞에서 언급한 한국어 LLM 리더보드를 보면, 공식적으로 한국어를 지원하는 claude-3-opus나 gpt-4o-mini보다 Qwen2.5, Llama3.1 등의 모델이 한국어 이해 능력이 더 뛰어나다. / 특히 MarkerAI에서 공개한 수능 국어 LLM 리더보드에 따르면, 상용 LLM인 앤트로픽 Claude Haiku 4.5보다 Llama3.1-405B가 수능 국어 문제 해결에 더 좋은 성과를 보인다. 따라서 Ollama는 여전히 사용할 만한 가치가 있다. 하지만 꼭 한국어를 지원하는 오픈소스 LLM을 사용해야 한다면, 허깅 페이스의 오픈소스 LLM을 사용하는 것이 적절하다. (59쪽)
세액이 계산된 것처럼 보이지만, 사실은 그렇지 않다. 원본 문서에 따르면 "주택에 대한 종합부동산세의 과세표준은 납세의무자별로 주택의 공시가격을 합산한 금액에서 다음 각 호의 금액을 공제한 금액에 부동산 시장의 동향과 재정 여건 등을 고려하여 100분의 60부터 100분의 100까지의 범위에서 대통령령으로 정하는 공정시장가액비율을 곱한 금액으로 한다. 다만, 그 금액이 영보다 작은 경우에는 영으로 본다"라고 되어 있다. 따라서 사용자가 세금에 관한 질문을 했을 때, 공시가격, 공제액, 공정시장가액비율을 바탕으로 답변을 생성해야 한다. (83쪽)
슈퍼바이저가 의사결정을 내리고 나면, 실제 작업을 수행할 에이전트 노드를 구현해야 한다. 각 에이전트 노드는 해당 도메인에 특화된 에이전트를 실행하고 그 결과를 슈퍼바이저에게 반환하는 역할을 한다. / 에이전트 노드는 멀티 에이전트 시스템에서 개별 에이전트와 전체 워크플로를 연결하는 중요한 인터페이스 역할을 한다. (176쪽)
모델별로 토큰 수를 측정하는 방식이 다른데, 예를 들어 GPT-4는 tiktoken 인코딩을, Claude는 자체 토크나이저를 사용한다. LangSmith는 각 LLM 제공업체의 API 응답에 포함된 토큰 사용량을 자동으로 파싱해 기록하기 때문에 개발자가 모델별 토큰 계산을 위한 별도의 로직을 작성할 필요가 없다. 또한 입력 토큰(prompt token)과 출력 토큰을 구분해 표시하므로, 비용 구조를 더욱 상세히 분석할 수 있다. (211쪽)
잘못된 세금 정보를 제공하면 사용자가 직접적인 금전적 손해를 입을 수 있다. 이러한 위험을 줄이려면, 체계적인 지표 모니터링으로 성능 저하나 이상 징후를 조기에 발견하고 대응해야 한다. 특히 안전성과 정확성 지표는 법적 리스크를 최소화하는 핵심 도구다. (238쪽)