"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다."

 

 

개발분야와 관련된 동영상을 보다보면 한번쯤 '조코딩'이라는 채널명을 만난 적이 있을 것입니다. 꽤 많은 동영상을 촬영하는 분입니다. 조코딩의 동영상 강의 중에서 랭체인에 관한 내용이 이번에 한 권의 책으로 묶어져 나왔네요. 바로 한빛미디어에서 나온 <AI 에이전트 서비스 만들기>입니다.

 

 

회사에서 아마존  베드락 기반의 RAG 서비스를 개발/운영하고 있다보니 RAG 시스템이 어떻게 동작하는지, 임베딩 모델과 벡터 저장소의 관계는 무엇인지 정도는 알고 있습니다. 하지만 최근 테크 밋업에 가보니 RAG를 랭체인/랭그래프로 구현한 이야기들을 많이 들을 수 있었습니다. 그래서 최근 화두인 에이전트와 랭체인에 대해 한번 훑어보고 싶어하던 차에 이 책을 살펴보게 되었습니다.

 

조코딩 책의 장점은 각 장에서 설명하는 개발 내용을 예제 서비스로 만들어보는 형태로 풀어낸다는 점입니다.  

1부에서는 랭체인이 어떤 프레임워크인지를 이해하기 위하여 인공지능 시인과 PDF를 기반으로 채팅을 하는 시스템을 개발합니다. 주로 기본적인 LLM, RAG, OpenAI API, LangChain 개념과 환경 설정에 집중하여 설명하고 있습니다.

2부에서는 LangChain의 주요 구성 요소를 살펴봅니다. 파이프 문자를 이용한  LangChain의 LLM 체인 생성을 집중적으로 살펴 봅니다. 특히 Ollama와 Streamlit(파이썬 웹 애플리케이션 프레임워크)로 리뷰 평가 AI/시인/다국어 이메일 생성기 서비스를 만듭니다. 이 과정에서는 RAG라기 보다는 어떤 PDF 문서를 올리거나 텍스트 프롬프트를 주고 API를 호출하여 웹 애플리케이션으로 결과를 보여주는 과정을 보여줍니다.

3부부터는 본격적으로 RAG 시스템을 구축합니다. 여기서부터는 텍스트/PDF 문서를 임베딩(벡터화)하여 ChromaDB 벡터 저장소에 저장하고, 사용자의 질의를 벡터화하여 유사한 결과를 찾아 다시 내용을 요약해서 출력하는 서비스를 만듭니다. 현진건 작가의 소설을 임베딩하고, 사용자가 마치 현진건 선생과 멀티턴 방식의 대화를 나누는 서비스를 만듭니다.

4부에서는 ChromaDB대신 FAISS를 저장소로 사용하고, 이를 기반으로 유사성 검색을 구현합니다. 결국 RAG는 문서 Load -> Split -> Embed -> Store한 다음, Question-> Retrieve -> LLM을 이용한 답변 생성 과정으로 이루어집니다. 다양한 Loader, Splitter, Retriever의 사용 사례를 볼 수 있습니다.

5부에서는 검색 품질을 올리기 위한 여러 방법을 소개합니다. 예를 들어 하나의 질문을 확장된 여러가지 질문으로 파생시켜 검색하는 multiquery 기법, 키워드 검색이 중점인 BM25와 Chroma기반의 벡터 검색을 결합하는 하이브리드 검색 시스템(EnsenbleRetriever 사용)을 설명합니다.

6부에서는 멀티모달을 다룹니다. 텍스트가 아닌 멀티모달 RAG를 구현하는 방법, 이미지 기반의 검색 시스템을 만들어 봅니다.

7부에서는 에이전트가 주제입니다. Function Call을 구현하여 LLM을 장착한 Agent 서비스를 만들어 봅니다. 워크플로를 만드는 것이 7부의 핵심이네요.

8부는 7장에서 익힌 에이전트를 이용하여 CrewAI 기반으로 복합 페르소나를 가진 여러 에이전트를 만들고 이들이 협업하여 결과를 만들어 내는 시스템을 만듭니다. 예제로는 주제어를 입력하면 블로그 글을 만들어 주는 리액트 웹앱을 만듭니다.

 

전체적으로 RAG/랭체인을 이해하기 위한 입문서로 적절해 보입니다. 코드도 친절하게 변경되는 부분을 표시해가면서 완성합니다.  랭체인으로 서비스를 만들려면 파이썬을 알아야 하는데, 기본적인 문법만 익혀도 이 책을 보는데에는 아무런 문제가 없습니다. 개발 언어에 너무 걱정하지 않아도 될 것 같습니다. 기본 문법 외에 람다 함수와 컴프리헨션 기법 정도만 익히고 시작하시면 됩니다.

 

전체적으로 RAG의 구조를 이해하고, 각 하위 구성요소들이 어떻게 협업하는지를 이해하는데 도움이 되는 책입니다. 그러면서도 예제 프로젝트를 만들어 보면서 실무의 경험을 살짝 경험할 수 있습니다. 저는 231쪽의 청크 사이즈와 오버랩 사이즈 예제가 좋았습니다. 이런 정보들은 만들면서 찾아보고 실험해봐야 얻는 지식이니깐요.

 

그리고 OpenAI의 Embedding 모델인 text-embedding-ada-002는 항상 1536 차원의 고정 크기 벡터라는 것도 알았습니다. :)

 

이제 베드락으로 초반에 연동했던 서비스를 LangChain으로 구현해 봐야겠네요. RAG 시스템을 구현하기 위해 입문서를 찾으신다면 괜찮은 책이라 생각됩니다. 비슷한 책으로 테디노트님의 책이 있습니다. 이 책도 한번 같이 읽어봐야겠습니다.

 

반응형

 

문득 바이브코딩이 화두인 AI 시대에도 여전히 읽을 가치가 있는 책들이 많다는 생각이 들었습니다. 예전에 약어나 책 표지 그림으로 이야기 나누던 기억이 나서 트위터에 다음과 같은 글을 올렸습니다.

AI시대라고 하지만, 여전히 읽을 가치가 있는 컴퓨터 책들이 너무 많습니다. 
그런데 조금씩 잊혀지는 것 같아서 아쉬워요. 
대략 보면 약어로 언급되는 책들도 있고, 특징으로 표현되는 책들이 있어요. 
여러분들 기억에 남는 책들, 동료 개발자들에게 같이 읽으면 좋겠다싶은 책중 약어/특징책 올려봐요

약어: SICP, TCPL, TCPPL, ECPP, DDIA, ISLA-P ....
특징: 공룡책, 복서책,  마법사책, 홍학책... 등등..

 

그랬더니 너무 좋은 책들을 소개해주시는 분들이 많아서, 이 책 소개를 그냥 트윗으로 흘려보내기 아까워서 블로그에 정리해 봅니다.

 

 
오브젝트   "한국 기술서적의 보물"  @도막도
토끼책
객체지향의 사실과 오해 오브젝트를 보고 제가 추천했습니다.  
SICP
마법사책

컴퓨터 프로그램의 구조와 해석

자바스크립트로 배우는 SICP
MIT CS 첫 수업교재.
하지만 이글도 참고해서 읽어보세요.
@회전하는그래디언트
@오월
 
코드 2판 한때 페촐드옹이 말씀하시길은... 공자왈과 같은 느낌이었죠. @회전하는그래디언트
NAND2Tetris
밑바닥부터 만드는 컴퓨팅 시스템 정작 원서 이름은 The Elements of Computing Systems 인데 줄이면 TEoCS가 되어야 하지만, NAND2Tetris로 유명. 회로부터 쌓아올려 응용프로그램(테트리스)까지 만드는 내용 @회전하는그래디언트
OSTEP
Operating SYstems: Three Easy Piece 컴퓨터 구조+시스템 프로그래밍 @김지현
@notJoon
CSAPP
컴퓨터 시스템
Computer Systems:A Programmer's Perspective
  @김지현
@notJoon
 
피플웨어 협업과 창의성이라는 키워드는 AI시대에도 변하지 않는 가치 @오월
 
해커와 화가 협업과 창의성이라는 키워드는 AI시대에도 변하지 않는 가치 @오월
3M
맨먼스 미신
(The Mythical Man-Month)
다들 말하지만 제대로 완독한 사람은 드물다는 그 책.
은빛탄환
@오월
TAOCP


컴퓨터 프로그래밍의 예술
- 1: 기초 알고리즘
- 2: 준수치적 알고리즘
- 3: 정렬과 검색
- 4a: 조합적 알고리즘
Knuth교수님의 역작.
지금도 집필중.
이걸 한글판으로 내는 한빛미디어도 대단!!!

이 책 다 읽고오면 MS 취업시켜준다고 빌게이츠가 말했던 그 책!!
 @김지현
 @오월
 
단위테스트
Unit Testing
테스트 서적과 블로깅을 통틀어 단연 일품인 책  @도하
 
Linkers and Loaders 이제는 사용되지 않는 하드웨어나 개념들로 챕터가 진행되지만 LLM과 인터랙션하면 매우 좋은 배움이 가능 @0101
 
What Every Programmer Should Know About Memory 책?이라기엔 애매하지만 @회전하는그래디언트
LYAH

가장 쉬운 하스켈 책
원제는 Learn You a Haskell for Great Good! @박준규
TAPL
Types And Programming Languages    @박준규
쉽자
쉽게 배우는 자료구조 with 자바   @김지현
쉽알
쉽게 배우는 알고리즘   @김지현
SF
Software Foundation 이 시리즈는 저도 처음 알았습니다. 총 6권으로 온라인/다운로드후 볼 수 있군요.
1: Logical Foundations
2: Programming Language Foundations
3: Verified Functional ALgorithms
4: QuickChick(Property-based Testing in Coq)
5: Verifiable C
6: Separation Logic Foundation
@김지현
Napkin
An Infinitely Large Napkin 수학책. 총 1048.  @김지현
Le14
Basic Category Theory

범주론(Basic Category Theory) @김지현
Hatcher
Algebraic Topology 대수위상, 560쪽 @김지현
TAOMP
멀티프로세서 프로그래밍 동시성프로그래밍
원제가 The Art Of Multiprocessor Programming
@김지현
홍학책
구글 엔지니어는 이렇게 일한다. 원제: Software Engineering at Google  
복서책
한줄한줄 짜면서 익히는 러스트 프로그래밍 러스트 책. 꽃게책들과 함께 유명한 책.  
TCPL
C언어 프로그래밍 The C Programming Language  
DDIA
멧돼지책
데이터 중심 애플리케이션 설계 Designing Data-Intensive Application  
ISLA-P
기초부터 다지는 통계학 교과서 with 파이썬 An Introduction to Statistical Learning with Application in Python.
전작 R 버전을 뛰어넘는 명작.
 
PP
실용주의 프로그래머 저는 Programming Pearl도 짝을 이뤄 읽을 책이라 생각합니다. @승귤
 
프로그래머의 뇌 우리의 두뇌 동작 방식과 코딩 모드에 대한 이약. @승귤
 
오늘날 우리는 컴퓨터라 부른다. 약자로 불릴만큼 유명한 책은 아니고 개발책도 아니고 전문서도 아닌 교양서지만 저는 재밌게 읽어서 추천합니다 @8bits
 
로지코믹스 약자로 불릴만큼 유명한 책은 아니고 개발책도 아니고 전문서도 아닌 교양서지만 저는 재밌게 읽어서 추천합니다 @8bits

 

좋은 책들 추천해 주셔서 고맙습니다.

 

역시 인사이트의 PPP 시리즈가 눈에 많이 띄네요. 좋은 책 내주시는 출판사분께 감사드립니다.

반응형

+ Recent posts