Top

LangChain으로 구현하는 LLM [파이썬, ChatGPT로 LLM 애플리케이션 만들기]

  • 원서명Generative AI with LangChain: Build large language model (LLM) apps with Python, ChatGPT and other LLMs (ISBN 9781835083468)
  • 지은이벤 아우파스(Ben Auffarth)
  • 옮긴이이병욱
  • ISBN : 9791161758350
  • 35,000원
  • 2024년 03월 29일 펴냄
  • 페이퍼백 | 408쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/generative-ai-llm

요약

생성형 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 무기화와 같은 위험에 대처해야 하는 중요성을 강조한다. 즉 투명성, 윤리적 배치, 공정한 접근을 이끌기 위한 촉박함을 강조한다.

저자/역자 소개

지은이의 말

동적이며 빠르게 발전하는 AI 분야에서 생성형 AI는 기술과의 상호 작용 방식을 변형할 것으로 예상되는 혁신적인 힘을 가졌다는 점에서 두드러진다. 이 책은 개발자, 연구자 그리고 AI 애호가가 이러한 도구를 활용하는 데 있어 필요한 지식을 제공하기 위해 디자인된 LLM이라는 복잡한 세계로의 탐험이다.
딥러닝의 심연으로 진입해 비정형 데이터가 살아 움직이는 곳에서 GPT-4와 같은 LLM이 어떻게 AI가 비즈니스, 사회 그리고 개인에 미치는 영향을 개척하는지 발견해보라. 이러한 모델의 능력과 잠재력이 기술 산업과 미디어에서 계속해서 화제가 되는 동안, 이들이 어떻게 작동하며 어떻게 번창하고 어떻게 우리를 미래의 지평으로 나아가게 하는지 탐험할 수 있는 좋은 순간이다.
이 책은 여러분이 LLM을 지탱하는 기술적인 프레임워크를 이해하도록 안내하는 나침반 역할을 한다. LLM의 광범위한 응용 분야, 그 기반이 되는 아키텍처의 우아함 그리고 그 존재의 강력한 함의에 대한 전례를 제공한다. AI 초보자부터 경험이 풍부한 개발자까지 다양한 독자를 대상으로 쓰인 이 책은 이론적인 개념과 실제적인 코드 예제를 융합해, LLM을 인지적으로 이해할 뿐만 아니라 창의적이고 책임감 있게 적용할 수 있도록 준비해준다.
우리가 함께 이 여정을 시작하면서, 지식과 통찰력을 갖추고 있는 여러분은 현재 진행 중인 생성형 AI 서술에 영감을 받아 자아를 형성하고 구성할 수 있도록 준비해보라. 여러분은 이 흥미진진한 진화의 최전선에 서 있으며, 놀라운 기술적 발전의 중심에 서게 될 것이다.

지은이 소개

벤 아우파스(Ben Auffarth)

컴퓨터 신경과학 박사 학위를 가진 경험이 풍부한 데이터 과학 리더다. 테라바이트 단위의 데이터를 분석하고 최대 64k 코어를 갖춘 슈퍼 컴퓨터에서 뇌 활동을 시뮬레이션하며, 실험을 설계하고 수행했다. 보험 적용 응용을 처리하는 제품화 시스템을 구축했고, 수백만 건의 문서에 대해 신경망을 훈련시켰다. 『Machine Learning for Time-Series』(Packt, 2021)와 『Artificial Intelligence with Python Cookbook Python』(Packt, 2020)의 저자이며, 현재는 헤이스팅스 다이렉트(Hastings Direct)에서 보험 분야에 몸담고 있다.

옮긴이의 말

최근 주목받는 생성형 인공지능에 관한 책으로, 특히 LLM을 집중적으로 분석한다. LLM을 실질적으로 활용할 수 있는 여러 프레임워크 중 LangChain을 사용하는 방법을 자세히 소개한 책으로, 실용적인 LLM 활용 입문서라고 할 수 있다. 또한 LangChain을 활용한 생성형 AI의 실제적인 구현 예제는 물론 이미지, 음성 등 여러 분야에서 부각되고 있는 다양한 생성형 AI의 특징과 장단점, 현재 기술 수준 등에 대해 비교하고 설명해주는 개괄적인 입문서로 도움이 된다. 생성형 인공지능, 그중에서도 특히 LLM에 대한 전체 개괄을 빠르게 얻고자 하는 독자라면 이 책이 좋은 출발점이 될 것이다.

옮긴이 소개

이병욱

서울과학종합대원 AI첨단대학원 주임교수
카이스트(KAIST) 겸직교수
한국금융연수원 겸임교수
인공지능연구원(AIRI) 부사장
금융위원회 금융규제혁신회의 위원
금융위원회 법령해석심의위원회 위원
금융위원회 적극행정위원회 위원
금융위원회 디지털자산 자문위원
한국산업기술진흥원(KIAT) ‘규제자유특구 분과위원회’ 위원
과기정통부 우정사업본부 정보센터 네트워크 & 블록체인 자문위원
전) BNP 파리바 카디프 전무
전) 삼성생명 마케팅 개발 수석
전) 보험넷 Founder & CEO
전) LG전자 연구원

서울과학종합대학원 디지털금융 주임교수와 카이스트 겸직교수 그리고 한국금융연수원 겸임교수를 맡고 있으며, 인공지능연구원(AIRI)의 부사장으로도 재직 중이다. 카이스트(KAIST) 전산학과 계산 이론 연구실에서 공부했으며 공학을 전공한 금융 전문가로, 세계 최초의 핸드헬드-PC(Handheld-PC) 개발에 참여해 한글 윈도우 CE 1.0과 2.0을 미국 Microsoft 본사에서 공동 개발했다. 1999년에는 전 보험사 보험료 실시간 비교 서비스를 제공하는 핀테크 전문회사 ㈜보험넷을 창업했고 이후 삼성생명을 비롯한 생명 보험사 및 손해 보험사에서 CMO(마케팅총괄 상무), CSMO(영업 및 마케팅 총괄 전무) 등을 역임하면서 혁신적인 상품과 서비스를 개발, 총괄했다.
인공지능연구원에서 머신러닝 기반의 금융 솔루션 개발에 관련된 다양한 활동을 하고 있으며 금융위원회, 금융정보분석원 등에 다양한 자문을 하고 있다.
저서로는 『비트코인과 블록체인, 탐욕이 삼켜버린 기술』(에이콘, 2018)과 대한민국학술원이 2019 교육부 우수학술도서로 선정한 『블록체인 해설서』(에이콘, 2019), 2022년 문체부 세종도서로 선정된 『돈의 정체』(에이콘, 2019) 그리고 한국금융연수원의 핀테크 전문 교재인 『헬로, 핀테크!』(공저, 2020), 『헬로, 핀테크! – 인공지능 편』(2021)이 있다.

목차

목차
  • 1장. 생성형 AI란 무엇인가?
    • 생성형 AI 소개
      • 생성 모델이란 무엇인가?
      • 왜 지금인가?
    • LLM의 이해
      • GPT란 무엇인가?
      • 다른 LLM
      • 주요 플레이어
      • GPT 모델은 어떻게 작동할까?
        • 사전 훈련
        • 토큰화
        • 스케일링
        • 조건화
      • 이러한 모델을 시험하는 방법
    • 텍스트 투 이미지 모델이란?
    • 다른 영역에서 AI가 할 수 있는 일
    • 요약
    • 문제

  • 2장. LLM 응용을 위한 LangChain
    • 확률적 앵무새를 넘어서
      • LLM의 한계는 무엇인가?
      • LLM의 한계를 완화하는 방법
      • LLM 응용이란 무엇인가?
    • LangChain이란 무엇인가?
    • LangChain의 핵심 요소 탐색
      • 체인이란 무엇인가?
      • 에이전트는 무엇인가?
      • 메모리는 무엇인가?
      • 도구란 무엇인가?
    • LangChain의 작동 원리
    • LangChain과 다른 프레임워크와의 비교
    • 요약
    • 문제

  • 3장. LangChain으로 시작하기
    • 이 책을 위한 종속성 설정 방법
      • pip
      • Poetry
      • Conda
      • Docker
    • API 모델 통합 탐색
      • 가짜 LLM
      • OpenAI
      • Hugging Face
      • Google Cloud Platform
      • Jina AI
      • Replicate
      • 그 외
      • 애저
      • Anthropic
    • 로컬 모델 탐색
      • Hugging Face Transformers
      • llama.cpp
      • GPT4ALL
    • 고객 서비스를 위한 애플리케이션 구축
    • 요약
    • 문제

  • 4장. 능력 있는 비서 구축
    • 팩트 체크를 통한 환각 완화
    • 정보 요약
      • 기본 프롬프팅
      • 프롬프트 템플릿
      • 밀도 체인
      • 맵 리듀스 파이프라인
      • 토큰 사용량 모니터링
    • 문서에서 정보 추출
    • 툴을 사용한 질문 응답
      • 툴을 사용한 정보 검색
      • 시각 인터페이스 구축
    • 추론 전략 탐색
    • 요약
    • 문제

  • 5장. ChatGPT 같은 챗봇 구축
    • 챗봇이란 무엇인가?
    • 검색과 벡터의 이해
      • 임베딩
      • 벡터 저장소
        • 벡터 인덱싱
        • 벡터 라이브러리
        • 벡터 데이터베이스
    • LangChain에서의 로딩 및 검색
      • 문서 로더
      • LangChain에서 검색기
        • kNN 검색기
        • PubMed 검색기
        • 맞춤형 검색기
    • 챗봇 구현
      • 문서 로더
      • 벡터 저장소
      • 메모리
        • 대화 버퍼
        • 대화 요약 기억
        • 지식 그래프 저장
        • 여러 메모리 메커니즘의 병합
        • 장기 일관성
    • 응답 중재
    • 요약
    • 문제

  • 6장. 생성형 AI를 이용한 소프트웨어 개발
    • 소프트웨어 개발과 AI
      • 코드 LLM
    • LLM을 사용한 코드 작성
      • StarCoder
      • StarChat
      • LLaMa 2
      • 소형 로컬 모델
    • 소프트웨어 개발 자동화
    • 요약
    • 문제

  • 7장. 데이터 과학을 위한 LLM
    • 생성 모델이 데이터 과학에 미치는 영향
    • 자동화된 데이터 과학
      • 데이터 수집
      • 시각화와 탐색적 데이터 분석
      • 전처리와 특징 추출
      • AutoML
    • 데이터 과학 질문에 답하기 위한 에이전트 사용
    • LLM을 사용한 데이터 탐색
    • 요약
    • 질문

  • 8장. LLM 사용자 정의 및 출력
    • LLM 조건화
      • 조건화 기법
        • 인간 피드백을 가미한 강화학습
        • LoRA
        • 추론 시간 조건화
    • 미세 조정
      • 미세 조정 설정
      • 오픈 소스 모델
      • 상업용 모델
    • 프롬프트 공학
      • 프롬프트 기술
        • 제로샷 프롬프팅
        • 퓨샷 러닝
        • CoT 프롬프팅
        • 자기 일관성
        • ToT
    • 요약
    • 문제

  • 9장. 생성형 AI 제품화
    • LLM 애플리케이션의 제품화를 준비하는 방법
      • 용어
    • LLM 앱을 평가하는 방법
      • 두 출력 비교
      • 기준 대비 비교
      • 문자열과 문맥 비교
      • 데이터셋을 대상으로 한 평가 수행
    • LLM 앱을 배포하는 방법
      • FastAPI 웹서버
      • Ray
    • LLM 앱을 관찰하는 방법
      • 관찰 반응
      • 관측성 도구
      • LangSmith
      • PromptWatch
    • 요약
    • 문제

  • 10장. 생성형 모델의 미래
    • 생성형 AI의 현 상태
      • 도전 과제
      • 모델 개발에서의 추세
      • 빅테크 대 소기업
      • AGI
    • 경제적 결과
      • 창의적 산업과 광고
      • 교육
      • 법률
      • 제조
      • 의학
      • 군사
    • 사회적 함의
      • 오정보와 사이버보안
      • 규제와 실행의 어려움
    • 앞으로의 길

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안