◈ 요약 ◈
생성형 AI의 개요와 함께 LangChain 프레임워크를 사용한 실질적인 구현 사례까지 모두 10개의 장으로 구성해 포괄적으로 제공하는 책이다.
1장은 생성형 AI가 텍스트, 이미지, 그리고 비디오 처리를 어떻게 혁신적으로 변화시키는지 설명한다. 이 장에서는 LLM(Large Language Model, 거대 언어 모델) 등의 생성 모델을 소개하며, 그 잠재력을 자세히 살펴본다. 2장에서는 LangChain의 프레임워크를 활용한다. 낡은 지식, 행동 제한 그리고 환각의 위험과 같은 한계를 다루며, LangChain이 외부 데이터와 개입을 통합해 더 일관된 AI 응용 프로그램을 어떻게 구현하는지 설명한다.
3장은 환경 설정의 기본 지식을 다루며, Docker, Conda, Pip, Poetry 설치 안내부터 시작한다. OpenAI의 ChatGPT와 Hugging Face와 같은 다양한 공급 업체로부터 모델을 통합하는 방법에 대한 내용과 필요한 API 키를 얻는 과정을 설명한다. 4장에서는 정보 추출을 위한 밀도 체인(Chain of Density)을 알아보고, LangChain 데코레이터(decorator)와 표현 언어에 대한 논의를 통해 사용자 맞춤형 행동을 정의하는 방법을 설명한다. 5장은 ChatGPT와 같은 챗봇의 능력을 향상시키기 위해 검색 증강 생성(RAG, Retrieval-Augmented Generation)과 같은 방법을 설명한다. 6장은 소프트웨어 개발에서 부상하는 LLM의 역할을 조사하며, AI가 코딩 작업을 자동화하고 동적 코딩 비서로서의 역할 가능성을 알아본다. 7장은 생성형 AI와 데이터 과학의 공통점을 탐색하며, LLM이 생산성을 향상시키고 과학적 발견을 촉진할 수 있는 잠재력을 살펴본다. 8장은 미세 조정(fine-tuning)과 프롬프팅(prompting)과 같은 조건화 기술을 알아본다. 9장은 LLM을 실제 응용 프로그램 내에서 배치하는 데 있어서의 복잡성을 다루며, 성능 보장, 규제 요구 사항 충족, 규모에 대한 강건성 및 효과적인 모니터링을 위한 모범 사례를 살펴본다. 10장은 생성형 AI의 잠재적인 발전과 사회 기술적 도전에 대해 자세히 알아본다.
◈ 이 책에서 다루는 내용 ◈
◆ LLM을 이해하고 강점 및 한계 파악
◆ 생성형 AI의 기본 원리와 산업 동향 이해
◆ LangChain을 사용해 질문 응답 시스템 및 챗봇과 같은 LLM 앱 개발
◆ 트랜스포머 모델과 어텐션 메커니즘 이해
◆ Pandas와 파이썬을 사용해 데이터 분석 및 시각화 자동화
◆ 성능 향상을 위한 프롬프트 공학 이해
◆ LLM을 미세 조정하고 능력을 발휘하기 위한 도구 이해
◆ LangChain을 사용해 LLM을 서비스로 배포하고 평가 전략 적용
◆ 데이터 누출을 방지하기 위해 오픈 소스 LLM을 사용해 문서와 개인적으로 상호 작용하는 방법
◈ 이 책의 대상 독자 ◈
개발자, 연구자 그리고 LLM에 대해 더 알고 싶어하는 모든 사람이 대상으로 하는 책이다. 명확하고 간결하게 작성됐으며, 실습을 통해 학습할 수 있도록 다양한 코드 예제를 갖추고 있다.
초보자든 경험이 많은 개발자든, LLM과 LangChain을 최대한 이해하고 이 분야의 최신 동향을 선도하고자 하는 모든 이에게 가치 있는 자원이 될 것이다.
◈ 이 책의 구성 ◈
1장, ‘생성형 AI란 무엇인가?’에서는 생성형 AI가 텍스트, 이미지 그리고 비디오 처리를 혁신적으로 변화시키는 데 어떻게 핵심적인 역할을 하는지 설명한다. LLM과 같은 생성 모델을 소개하며, 이들의 기술적 기반과 다양한 분야에서의 변혁적인 잠재력을 자세히 소개한다. 이러한 모델의 이론적 배경, 신경망, 훈련 접근 방법 그리고 인간과 유사한 콘텐츠 생성에 대해 강조하고 다룬다. 또한 인공지능의 진화, 트랜스포머(Transformer) 아키텍처, 스테이블 디퓨전(Stable Diffusion)과 같은 텍스트에서 이미지로의 모델 그리고 음성과 비디오 응용에 대한 내용도 살펴본다.
2장, ‘LLM 응용을 위한 LangChain’에서는 LLM의 확률적 앵무새, 즉 진정한 이해 없이 언어를 모방하는 모델을 넘어설 필요성을 강조하고, 이를 위해 LangChain의 프레임워크를 활용한다. 낡은 지식, 행동 제한 그리고 환각의 위험과 같은 한계를 다루며, LangChain이 외부 데이터와 개입을 통합해 더 일관된 AI 애플리케이션을 어떻게 구현하는지 강조한다. 2장은 확률적 앵무새의 개념에 비판적으로 관여해, 유창하지만 의미 없는 언어를 생성하는 모델의 결핍을 소개하고 프롬프팅, 사고 과정 체인, 검색 기반의 논리가 어떻게 LLM을 강화해 맥락, 편향 그리고 불투명성과 관련된 문제를 해결하는지 설명한다.
3장, ‘LangChain으로 시작하기’에서는 이 책의 모든 예제를 실행하기 위해 환경을 설정하는 데 필요한 기본 지식을 제공한다. Docker, Conda, Pip, Poetry 설치 안내부터 시작하며, OpenAI의 ChatGPT와 Hugging Face와 같은 다양한 공급업체로부터 모델을 통합하는 방법과 필요한 API 키를 얻는 과정을 설명한다. 또한 오픈 소스 모델을 로컬에서 실행하는 방법도 다룬다. 아울러 LangChain을 사용해 고객 서비스 에이전트를 지원하는 LLM 앱을 만들어 LangChain이 작업을 간소화하고 응답의 정확도를 향상시킬 수 있는 예시를 보여준다.
4장, ‘능력 있는 비서 구축’에서는 LLM을 신뢰할 수 있는 비서로 변환하는 데에 관여해, 잘못된 정보를 줄이기 위해 사실 확인을 진행하고, 요약을 위한 정교한 프롬프팅 전략을 사용하며, 향상된 지식을 위해 외부 도구를 통합한다. 정보 추출을 위한 밀도 체인(Chain of Density)을 탐구하고 LangChain 데코레이터와 표현 언어에 대한 논의를 통해 사용자 맞춤형 행동을 정의하는 방법을 설명한다. 또한 LangChain에서 긴 문서를 처리하기 위한 맵 리듀스(map-reduce)를 소개하고, API 사용 비용을 관리하기 위한 토큰 모니터링에 대한 내용도 다룬다.
이 부분은 Streamlit 애플리케이션을 구현해 대화형 LLM 애플리케이션을 만들고, 함수 호출과 도구 사용을 통해 기본 텍스트 생성을 뛰어넘는 것에 중점을 두고 있다. “plan-and-solve” 및 “제로샷(zero-shot)”이라는 두 가지 명확한 에이전트 패러다임을 구현해 의사 결정 전략을 시연하는 데 사용된다.
5장, ‘ChatGPT 같은 챗봇 구축’에서는 ChatGPT와 같은 챗봇의 능력을 향상시키기 위해 검색 증강 생성과 같은 방법을 다룬다. 이 방법은 LLM에 외부 지식에 접근할 수 있는 기능을 제공해 정확성과 도메인 특화 능력을 향상시킨다. 특히 문서 벡터화, 효율적인 색인화, Milvus와 Pinecone과 같은 벡터 데이터베이스를 사용한 의미적 검색 등을 알아본다. 책에서는 챗봇을 구현하면서 책임 있는 의사 소통을 보장하기 위해 모더레이션 체인(moderation chains)을 포함시켰다. 이 챗봇은 깃허브에서 사용 가능하며, 대화 메모리(memory) 및 컨텍스트 관리와 같은 고급 주제를 탐구하는 기반 자료로 사용된다.
6장, ‘생성형 AI를 이용한 소프트웨어 개발’에서는 소프트웨어 개발에서 부상하는 LLM의 역할을 조사하며, AI가 코딩 작업을 자동화하고 동적 코딩 비서로서의 역할 가능성을 강조한다. AI 기반 소프트웨어 개발의 현재 상태를 탐구하고, 코드 일부를 생성하기 위한 모델 실험을 진행하며, LangChain을 사용한 자동 소프트웨어 개발 에이전트를 위한 디자인을 소개한다. 에이전트의 성능에 대한 비판적인 고찰은 실수 완화 그리고 고수준 디자인을 위한 인간 감독(human oversight)의 중요성을 강조하며, AI와 인간 개발자가 상호 작용하는 미래를 준비한다.
7장, ‘데이터 과학을 위한 LLM’에서는 생성형 AI와 데이터 과학의 공통점을 탐색하며, LLM이 생산성을 향상시키고 과학적 발견을 촉진할 수 있는 잠재력에 초점을 맞춘다. AutoML을 통한 데이터 과학의 현재 자동화 범위에 대한 개요를 제공하고, 이를 확장해 LLM에 통합해 데이터셋 보강과 실행 가능한 코드 생성 등의 고급 작업을 수행하는 개념을 소개한다. LLM이 탐색적 데이터 분석, SQL 쿼리 실행, 통계 데이터 시각화를 수행하는 실용적인 방법을 다룬다. 마지막으로 에이전트와 도구 사용을 이용해 LLM이 복잡한 데이터 중심 질문에 대응하는 방법을 보여준다.
8장, ‘LLM 사용자 정의 및 그 출력’에서는 미세 조정(fine-tuning)과 프롬프팅(prompting)과 같은 조건화 기술을 살펴본다. 이는 LLM의 성능을 복잡한 추론과 특수 작업에 맞게 조정하는 데 필수적이다. 미세 조정은 LLM이 작업별 데이터로 더 많은 훈련을 받는 것을 다루며, 프롬프트 공학(prompt engineering)은 LLM을 원하는 출력을 생성하도록 전략적으로 안내한다. 퓨샷(few-shot) 러닝과 사고 체인(chain-of-thought)과 같은 고급 프롬프팅 전략이 구현돼 LLM의 추론 능력을 향상시킨다. 미세 조정과 프롬프팅에 관한 구체적인 예제뿐만 아니라 LLM의 미래 발전과 해당 분야에서의 응용에 대해서도 설명한다.
9장, ‘생성형 AI 제품화’에서는 LLM을 실제 애플리케이션 내에서 배치하는 데 있어서의 복잡성과 함께 성능 보장, 규제 요구 사항 충족, 규모에 대한 강건성 및 효과적인 모니터링을 위한 모범 사례를 다룬다. 평가, 관측 가능성과 체계적인 운영의 중요성을 강조해 생성형 AI가 고객 참여와 재정적 영향이 있는 의사 결정에서 유용하게 사용될 수 있도록 한다. 또한 Fast API, Ray, LangServe, LangSmith와 같은 도구를 사용해 LLM 앱의 배포와 지속적인 모니터링에 대한 실용적인 전략에 대한 개요를 설명한다. 이러한 도구는 다양한 분야에서 생성형 AI의 책임 있는 채택을 지원하는 자동 평가와 분석을 제공할 수 있다.
10장, ‘생성형 모델의 미래’에서는 생성형 AI의 잠재적인 발전과 사회 기술적 도전에 대해 다룬다. 10장은 이러한 기술이 경제와 사회에 미치는 영향을 검토하며 직업 이동, 잘못된 정보 그리고 인간 가치 조정과 같은 윤리적 고민을 살펴본다. 다양한 분야에서 AI가 유발한 혼란과 변화에 대비하는 가운데 기업, 법조인 그리고 기술자들이 효과적인 지배 프레임워크를 형성하는 책임에 대해 고찰한다. 이 마지막 장은 AI 개발을 인간 잠재력 증대로 이끄는 동시에 딥페이크, 편향 그리고 AI 무기화와 같은 위험에 대처해야 하는 중요성을 강조한다. 즉 투명성, 윤리적 배치, 공정한 접근을 이끌기 위한 촉박함을 강조한다.