메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

쉽고 빠르게 익히는 실전 LLM

ChatGPT 활용부터 LLM 파인튜닝, 임베딩, 고급 프롬프트 엔지니어링까지

한빛미디어

번역서

판매중

  • 저자 : 시난 오즈데미르
  • 번역 : 신병훈
  • 출간 : 2024-02-01
  • 페이지 : 312 쪽
  • ISBN : 9791169211932
  • 물류코드 :11193
  • 초급 초중급 중급 중고급 고급
4.7점 (37명)
좋아요 : 6

LLM 입문자도 당장 시작할 수 있게 해 주는 단계별 가이드


LLM FAQ, AI/ML 용어 해설집, LLM 애플리케이션 개발 고려사항 Tip 수록

이 책은 LLM 개발 단계별 지침, 모범 사례, 실제 사례 연구, 실습 예제 등 LLM이 생소했던 사람도 당장 개발을 시작할 수 있을 만큼 LLM에 대한 전반적인 지식을 쉽고 친절하게 설명합니다. 또한, LLM 개발에 더 깊이 들어가 파인튜닝, 오픈 소스와 클로즈드 소스 LLM의 비교 및 활용법, 데이터 형식 및 파라미터 설정법, 임베딩, 성능 최적화, 고급 프롬프트 엔지니어링까지 다뤄 LLM을 실제로 현업에서 활용하고 있는 실무자에게도 통찰력을 제공합니다. LLM 입문서이자, 실무 가이드인 이 도서를 통해 다가오는 LLM 시대를 더 확실히 대비하세요!

 

700_쉽고 빠르게 익히는 실전 LLM.jpg

시난 오즈데미르 저자

시난 오즈데미르

현재 Shiba Technologies의 창립자이자 CTO입니다. 존스 홉킨스 대학교의 데이터 과학 강사였으며 데이터 과학 및 머신러닝에 관한 여러 교과서를 집필했습니다. 또한 RPA 기능을 갖춘 엔터프라이즈급 대화형 AI 플랫폼인 Kylie.ai의 창립자이기도 합니다.

신병훈 역자

신병훈

서울대학교 수학과를 졸업하고, 나눔기술과 Microsoft에서 개발자, 컨설턴트, 프로덕트 매니저로 일했습니다. 현재 도쿄에 있는 스타트업, BoostDraft에서 프로덕트 매니저로 일하고 있습니다.

Part 1 LLM 소개

Chapter 1 LLM

_1.1 LLM이란?

__1.1.1 LLM 정의

__1.1.2 LLM 주요 특징

__1.1.3 LLM 작동 원리

_1.2 현재 많이 사용되는 LLM

__1.2.1 BERT

__1.2.2 GPT-4와 ChatGPT

__1.2.3 T5

_1.3 도메인 특화 LLM

_1.4 LLM을 이용한 애플리케이션

__1.4.1 전통적인 자연어 처리(NLP) 작업

__1.4.2 자유로운 텍스트 생성

__1.4.3 정보 검색/신경망 의미 기반 검색

__1.4.4 챗봇

_1.5 마치며

 

Chapter 2 LLM을 이용한 의미 기반 검색

_2.1 들어가는 글

_2.2 작업

__2.2.1 비대칭적 의미 기반 검색

_2.3 솔루션 개요

_2.4 구성 요소

__2.4.1 텍스트 임베더

__2.4.2 문서 청킹

__2.4.3 벡터 데이터베이스

__2.4.4 파인콘

__2.4.5 오픈 소스 대안

__2.4.6 검색 결과 재순위화

__2.4.7 API

_2.5 통합

__2.5.1 성능

_2.6 클로즈드 소스 구성 요소의 비용

_2.7 마치며

 

Chapter 3 프롬프트 엔지니어링의 첫 번째 단계

_3.1 들어가는 글

_3.2 프롬프트 엔지니어링

__3.2.1 언어 모델에서 정렬

__3.2.2 직접 요청하기

__3.2.3 퓨샷 학습

__3.2.4 출력 구조화

__3.2.5 페르소나 지정하기

_3.3 여러 모델과 프롬프트 작업하기

__3.3.1 ChatGPT

__3.3.2 Cohere

__3.3.3 오픈 소스 프롬프트 엔지니어링

_3.4 ChatGPT와 Q/A 챗봇 만들기

_3.5 마치며

 

Part 2 LLM 활용법

Chapter 4 맞춤형 파인튜닝으로 LLM을 최적화하기

_4.1 들어가는 글

_4.2 파인튜닝과 전이학습: 기초 안내서

__4.2.1 파인튜닝 과정

__4.2.2 파운데이션 모델로 사전 훈련된 클로즈드 소스 모델 사용하기

_4.3 OpenAI 파인튜닝 API 살펴보기

__4.3.1 GPT-3 파인튜닝 API

__4.3.2 사례 연구: Amazon 리뷰 감정 분류

__4.3.3 데이터에 대한 지침 및 모범 사례

_4.4 OpenAI CLI로 맞춤형 예제 준비하기

_4.5 OpenAI CLI 설정하기

__4.5.1 하이퍼파라미터 선택과 최적화

_4.6 첫 번째 파인튜닝 LLM

__4.6.1 정량적 지표로 파인튜닝 모델 평가하기

__4.6.2 정성적 평가 기술

__4.6.3 파인튜닝된 GPT-3 모델을 애플리케이션에 통합하기

_4.7 사례 연구 2: Amazon 리뷰 카테고리 분류

_4.8 마치며

 

Chapter 5 고급 프롬프트 엔지니어링

_5.1 들어가는 글

_5.2 프롬프트 인젝션 공격

_5.3 입력/출력 유효성 검사

__5.3.1 예제: NLI 이용해서 유효성 검사 파이프라인 만들기

_5.4 배치 프롬프팅

_5.5 프롬프트 체이닝

__5.5.1 프롬프트 인젝션을 방어하기 위한 체이닝

__5.5.2 프롬프트 스터핑을 막기 위한 체이닝

__5.5.3 예제: 멀티모달 LLM을 안전하게 사용하기 위한 체이닝

_5.6 연쇄적 사고 프롬프트

__5.6.1 예시: 기초 연산

_5.7 퓨샷 학습 다시 보기

__5.7.1 예제: LLM을 이용한 초등학교 수학

_5.8 테스트와 반복적 프롬프트 개발

_5.9 마치며

 

Chapter 6 임베딩과 모델 아키텍처 맞춤화

_6.1 들어가는 글

_6.2 사례 연구: 추천 시스템 만들기

__6.2.1 문제와 데이터 설정하기

__6.2.2 추천의 문제 정의하기

__6.2.3 추천 시스템의 전체 개요

__6.2.4 항목 비교를 위한 맞춤형 설명 필드 생성

__6.2.5 파운데이션 임베더로 기준선 설정

__6.2.6 파인튜닝 데이터 준비

__6.2.7 문장 트랜스포머 라이브러리로 오픈 소스 임베더 파인튜닝하기

__6.2.8 결과 요약

_6.3 마치며

 

Part 3 고급 LLM 사용법

Chapter 7 파운데이션 모델을 넘어서

_7.1 들어가는 글

_7.2 사례연구: VQA

__7.2.1 모델 소개: ViT, GPT-2 및 DistillBERT

__7.2.2 은닉 상태 투영과 융합

__7.2.3 크로스-어텐션: 이것은 무엇이며 왜 중요한가요?

__7.2.4 맞춤형 멀티모달 모델

__7.2.5 데이터: Visual QA

__7.2.6 VQA 훈련 과정

__7.2.7 결과 요약

_7.3 사례 연구: 피드백 기반 강화 학습

__7.3.1 모델: FLAN-T5

__7.3.2 보상 모델: 감정과 문법 정확도

__7.3.3 트랜스포머 강화 학습

__7.3.4 RLF 훈련 과정

__7.3.5 결과 요약

_7.4 마치며

 

Chapter 8 고급 오픈 소스 LLM 파인튜닝

_8.1 들어가는 글

_8.2 예시: BERT를 이용한 애니메이션 장르 다중 레이블 분류

__8.2.1 다중 레이블 장르 예측을 위한 성능 측정 지표로 자카드 점수 사용하기

__8.2.2 단순 파인튜닝 과정

__8.2.3 오픈 소스 LLM 파인튜닝을 위한 일반적인 팁

__8.2.4 결과 요약

_8.3 예시: GPT-2를 이용한 LaTeX 생성

__8.3.1 오픈 소스 모델을 위한 프롬프트 엔지니어링

__8.3.2 결과 요약

_8.4 시난의 현명하면서도 매력적인 답변 생성기: SAWYER

__1단계: 지시사항 파인튜닝

__2단계: 보상 모델 훈련

__3단계: (예상하는) 사용자 피드백 기반 강화 학습

__결과 요약

_8.5 끊임없이 변화하는 파인튜닝의 세계

_8.6 마치며

 

Chapter 9 LLM을 프로덕션 환경에서 사용하기

_9.1 들어가는 글

_9.2 클로즈드 소스 LLM을 프로덕션 환경에 배포하기

__9.2.1 비용 예측

__9.2.2 API 키 관리

_9.3 프로덕션 환경에 오픈 소스 LLM 배포하기

__9.3.1 추론을 위한 모델 준비

__9.3.2 상호 운용성

__9.3.3 양자화

__9.3.4 가지치기

__9.3.5 지식 증류

__9.3.6 LLM 사용에 대한 비용 예측

__9.3.7 Hugging Face에 올리기

_9.4 마치며

 

Part 4 부록

APPENDIX A LLM 자주 묻는 질문(FAQ)

APPENDIX B LLM 용어 해설

APPENDIX C LLM 애플리케이션 개발 고려사항

 

LLM이 생소한 입문자이든, 숙련된 개발자이든, 모두가 만족할 맞춤형 LLM 가이드

 

ChatGPT와 같은 최신 LLM은 놀랍고도 편리한 기술을 제공해 주지만, 거대한 크기와 많은 복잡성 때문에 여전히 실무자가 실제로 자신의 업무에 적용하기 어려워합니다. 이 책은 이러한 어려움을 해결하기 위해 LLM의 복잡성을 최소화하고, 프롬프트 엔지니어링 기법부터 강화 학습까지 여러 분야의 쉽지 않은 내용들을 적당한 깊이와 난이도로 설명합니다. LLM 서비스를 구현하는 개발자이든, 새롭게 공부하는 학생이든, 심지어 서비스를 기획하는 프로덕트 매니저까지도 자신의 수준에 맞는 LLM 개념과 활용법을 알차게 배울 수 있습니다. 이 책을 통해 LLM의 전반적인 지식을 빠르고 쉽게 익혀 자신의 업무에 LLM을 적용해 보시길 바랍니다.

 

주요 내용

  • 사전 훈련, 파인튜닝, 어텐션, 토큰화 등 LLM의 주요 개념
  • API와 파이썬을 활용한 LLM 파인튜닝 및 맞춤화
  • 의미 기반 검색 시스템을 구축하여 LLM 검색 기능 최적화
  • 퓨샷 프롬프트와 같은 고급 프롬프트 엔지니어링
  • LLM 임베딩, 멀티모달 트랜스포머 구축, RLHF/RLAIF를 활용한 LLM 정렬

저는 감성공학 분야에 대한 관심이 있어 자연스럽게 LLM에 대한 학습이 필수적인데, 본 책을 통해 말 그대로 쉽고 빠르게 LLM의 기초를 다지고, 응용해볼 수 있는 시간이 되었습니다.

특히 GPT가 최근 뜨거운 감자가 되면서 관련 지식이 없는 분들께서도 사용해본 경험이 있으실텐데, 프로그래머는 물론, 프로그래머가 아닌, 인공지능에 낯선 분들께서도 LLM의 개념과 여러 기능을 사용하는 방법까지 충분히 이해하실 수 있을 것 같습니다.


이 책은 부록을 포함하여 크게 4가지 부분으로 나뉘어져 있습니다.

- LLM에 대한 소개

- LLM 활용법

- 고급 LLM 사용법

- 부록: LLM 관련 FAQ, 용어 해설, LLM 앱 개발 시 고려사항

다른 한빛미디어의 도서와 마찬가지로, 저자분의 github에 링크가 업로드되어 있어 편리하고 빠르게 소스코드에 접근이 가능합니다.

 

1장은 LLM의 기초 단계를 다룬다 생각하시면 될 것 같습니다.

LLM의 정의와 특징, 작동 원리에 대해 이해한 후 최근 핫한 모델에 대해 이해해보고,

도메인 특화 LLM과 LLM을 활용한 앱의 종류에 대해서도 알아볼 수 있습니다.

특히, 저는 대학원 준비 과정에서 자연어 처리를 관심분야로 정하고 원서와 면접 준비를 진행했었는데

본 책을 미리 접했다면 입시 준비에서 고생 없이 준비할 수 있었을 것이라는 후회가 들더군요..

2024년 2월 이후로 비슷한 경험이 있으신 분이 계시다면 이 책을 꼭 추천드립니다.

왜냐면,, Transformer기와 BERT에 대한 사전 지식은 정말 자주 출제되거든용...

 

2장에서는 hyperparameter를 조정하여 LLM의 기능을 충분히 활용해보는 시간을 가졌습니다.

이 과정을 fine-tuning이라고 부르는데, 다양한 LLM의 각 모델마다 설정할 수 있는 parameter가 다르기 때문에

케이스의 목적에 맞는 튜닝을 진행해야 합니다.

그 다음으로는 더 복잡하거나, 여러 단계의 작업을 수행하기 위해 한 LLM 모델을 또 다른 LLM 입력에 넣어

연쇄적으로 수행하는 prompt chaining을 포함한 prompt engineering에 대해 학습할 수 있었습니다.

 

여기서 prompt engineering이란, 정확하고 유용한 출력을 위해

효과적으로 작업을 전달하는 입력창을 만드는 작업을 의미합니다.

파이썬 언어에 대한 어느정도의 기초지식만 있으면 충분히 프롬프트 엔지니어링에 도전해보실 수 있어요!

본 장에서는 특정 어조, 구문, 스타일에 필요한 작업과 특정 도메인에 특화된 언어를 핸들링하는 과정에서 유용한

Few-Shot 학습을 위주로 학습합니다.

 

3장은 난이도가 어느정도 있습니다. 본 장에서는 multi-modal 시스템에서

ViT, GPT-2, DistilBert를 사용해보는 시간을 가졌습니다.

특히, 저는 이미지에 대한 개방형 질문과 사람이 직접 작성한 답변 쌍이 데이터셋으로 제공되고 있는

Visual QA 라는 사이트를 처음 접해봤는데,

여기서 데이터를 제공받아 강화학습을 진행한 과정이 아주 흥미롭고 기억에 남았습니다.

모델이 발달함에 따라 다양한 데이터셋을 제공하는 서비스도 따라서 발전하는구나,, 라는 걸 깨닫기도 했구요.

생소하고 낯선 LLM 모델을 통해

다양한 환경에서 fine-tuning을 진행해보다 보면, 벌써 책의 끝이 보입니다.

4장의 부록은 서평으로 처음 남겨보는 것 같네요..!

솔직히 말하면,, 저는 책의 부록을 잘 읽지 않습니다.

특히 정보를 주는 책의 경우 척도별 계산값이라던가,, index 정도를 찾을 때가 많은데,

이 책은 부록 자체가 하나의 책처럼 필요한 정보의 요약본이기 때문에

도서를 완독한 후 복습 차원에서 읽어보게 되더군요.

 

혹시 프로그래밍이나 AI에 친숙하지 않은 독자분들께서는 해당 부록을 참고하셔서

도메인 지식을 함께 습득하며 읽어보시면 훨씬 이해가 쉬우실 것 같습니다!!

그리고 LLM 앱과 관련하여 개발을 계획중에 있으신 분께서는

부록 C LLM 애플리케이션 개발 고려사항 역시 큰 꿀팁이 될 수 있을 것 같습니다.

전체적으로, 본 도서 쉽고 빠르게 익히는 실전 LLM

- pre-trained model, fine-tunning, attention, tokenizer 등의 LLM의 필수 개념은 물론,

- API와 python을 활용한 fine-tuning

- 의미 기반의 검색 시스템의 구축과 검색 기능 최적화 방법

- few-shot 과 같은 고급 prompt engineering

을 위주로

오픈소스는 물론 클로즈드 모델의 기능도 접해볼 수 있었습니다.

다시 한 번 말하지만,, 면접 전에 이 책을 알았더라면 얼마나 좋았을까 라는 생각이 들어

진심으로 추천드리는 LLM 도서였습니다.


- 본 서평은 출판사로부터 책을 제공받아 읽고 주관적으로 작성된 글입니다.

Author: 시난 오즈데미르 지음 / 신병훈 옮김

출판사: 한빛미디어

Score /5: ⭐️⭐️⭐️⭐️⭐️

요즘은 생성형 AI의 시대라 해도 과언이 아닌 것 같습니다.
하지만 현재 해당 분야를 살짝 들여다 보면 사용 방법에 몰두하고 있는 느낌이 듭니다.

개인적으로 활용하는 방법도 좋지만 모든 것은 기초가 있기에 응용이 있다고 생각하므로 LLM이라고 불리는 모델도 기초부터 알고 싶었습니다. 하지만 요즘에 관련된 책을 찾아보면 아예 머신러닝 부터 시작하거나 어려운 수학에 대한 부분만 나옵니다. 

그런 의미에서 이 책은 LLM이라는 쉬울수도 어려울수도 있는 주제를 과장 한스푼 덧대어 A-Z까지 풀어내고 있습니다. 
LLM이 어떻게 만들어지는지, 그리고 어떻게 우리 입맛대로 조금씩 수정할 수 있는지, 마지막으로 어떻게 프로덕션 환경에 적용할지 9개의 챕터를 가지고 설명합니다.

관련 내용중 관심있는 부분만 읽어도 되지만 개인적으로는 인내심을 가지고 천천히 살펴보면 좋은 내용이 많습니다.
개인적으로는 현재 관심있는 분야인 파인튜닝에 대한 부분을 여러 부분에 걸쳐 설명해주고 있어서 좋았습니다.

마지막으로 이 책에 대해서 좋았던 점은 글만 나열하는 것이 아니라 적절한 코드기반으로 그림또한 적절히 섞여있다는 것입니다.

 

적절한 그림 예시- 그림을 통해 이해가 쉬움

 

 

모든 기술은 한순간에 만들어 지는 것이 아닙니다. LLM이라는 기술이 현재는 최고이지만 내일도 최고일거라는 보장은 없습니다.
하지만 AI/ML 분야의 기초, 특히 LLM 활용 및 구현에 대한 기초를 이 책을 통해서 한다면 이 후 다른 기술이 나와도 여러분들은 당황하지 않고 숙련될 수 있으리라 생각합니다.

따라서, 이 책을 레퍼런스 형태로 활용하기를 권장합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평임."

제목에는 '쉽고 빠르게 익히는'이라는 표현이 들어있지만... 세상에 쉽고 빠르게 익힐 수 있는 건 별로 없다. 설명이 쉽고 간단하면 더 깊은 내용을 알고 싶고, 깊은 내용을 설명하다 보면 어렵고 느려진다. 이러저러한 책이나 영상 강의들을 보지만 '문과도 할 수 있다'. '초보자도 알 수 있다'면서 쉽게 설명하는 것은 그냥 혀끝으로 맛을 보고 "아, 달구나!"라고 느끼는 딱 거기까지인 경우가 많다. 정작 알고 싶은 것은 단맛 중에서도 어떤 단맛이 나는지, 저 단맛은 어떻게 만든 건지, 저런 단맛이 나는 다른 요리는 어떻게 만들 수 있는지 이런 것들인데 이건 또 다른 영역이다.

이 책은 그보다는 조금 더 깊은 맛을 느낄 수 있도록 되어 있다. 원제가 <Quick Start Guide to Large Language Model>이다. 이미 만들어진 LLM들을 현실 시나리오에 빠르고 효과적으로 적용할 수 있는 방법을 보여주기 위해서 씌여진 것 같다. 즉, 구슬은 이미 서 말이 있고 그걸 효과적으로 잘 꿰는 방법을 가르쳐주는 것이다. 앞부분에서 구슬이 어떻게 만들어진 것일까? 하는 궁금증에 대해서도 간단하게 설명해 준다. 하지만 이미 배경지식이 있는 사람이 정리하는 차원에서 읽기에 좋지 초보자가 볼 수 있는 책은 아닌 것 같다.

 

화려하지는 않지만 적당한 그림들이 삽입되어 있어서 그림만 보고도 이해하기 쉽게 되어 있고, 간략한 코드도 제공된다. 특히 용어에 대해서 하나하나씩 짚어서 설명해 놓은 것은 매우 유용하다.

1부에서는 LLM에 대해 소개하고 있다. LLM이 무엇인지 어떻게 동작하는지 설명하고 의미 기반 검색에 대해 설명한다. 마지막으로 프롬프트 엔지니어링에 대해서 소개한다. 프롬프트 엔지니어링만 따로 다루는 책들도 많이 나와 있는데 이 장은 굉장히 일반적이고 기본적인 내용을 다룬다. 2부에서는 맞춤형 파인튜닝, 고급 프롬프트 엔지니어링, 모델 아키텍처와 임베딩을 맞춤화 하는 방법을 다룬다. 몇 가지 알고리즘에 대한 설명과 실습 코드가 있다. 깊고 방대한 내용을 다루는 것은 아니지만 역시 낯선 용어나 개념을 이해할 수 있도록 조목조목 설명해 놓아서 정리하기에 좋다. 3부에서는 고급 LLM 사용법을 다루면서 최종적으로는 프로덕션 환경에서 LLM을 배포하는 방법을 다루고 있는데 이 책을 읽는 사람들은 이 3부에 제일 관심이 많지 않을까 싶다. 300페이지 가량 되는 책이라서 세세하게 설명을 붙여놓지는 않았지만, 그래서 스터디용으로 사용하기에 좋은 책 같다. 기초부터 배포까지 전체적인 흐름과 방향은 잡아주면서 실제 삽질은 스터디를 통해 해결하게 하는.. 원래 실력은 삽질의 시간에 비례해지 않던가.^^

마지막 LLM에 관해 많이 하는 질문들, 용어들, LLM 애플리케이션 개발 시 고려할 사항들을 부록으로 붙여준 것도 도움이 많이 된다. 그리고 전체적으로 옮긴이가 독자의 이해를 돕기 위해 주석을 다는 데 신경을 많이 썼구나 하는 것을 느낄 수 있었다.

LLM(Large Language Model)은 작년부터 핫한 키워드입니다. 기존에 인공지능이라고 하면 CV(Computer Vision)이나 NLP(Natural Language Processing)이라는 용어가 흔했다면 ChatGPT가 나오면서부터는 LLM이 대세가 되었죠. LLM이라는 단어는 많이 들어보았어도 무엇인지 잘 모르는 분들, LLM의 원리가 궁금한 분들, LLM을 어떻게 활용할 수 있는지를 알고 싶은 분들에게 '쉽게 빠르게 익히는 실전 LLM'을 추천합니다. 

 

 

 

'쉽게 빠르게 익히는 실전 LLM'은 키워드와 목차를 보고 읽어보아야 겠다고 생각했던 책입니다. 요즘 자주 들을 수 있는 'ChatGPT', '고급 프롬프트 엔지니어링', 'LLM 파이튜닝' 등의 키워드가 눈에 가장 먼저 들어왔고,목차에서는 LLM의 기본 개념부터 파이튜닝 방법과 프로덕션 환경에서 LLM을 사용하는 법까지 전반적인 내용을 모두 다르고 있었기 때문입니다.


 

'쉽게 빠르게 익히는 실전 LLM' 중 가장 보고 싶었던 부분은 프롬프트 엔지니어링 기법이었습니다. 프롬프트 인젝션 등 해킹과 관련된 내용이나 프롬프트 엔지니어의 업무 등을 조금이나마 알아보고 싶었기 때문입니다. Part 2 - Chapter 5의 고급 프롬프트 엔지니어링에서 그 부분을 다루는데, 깊지는 않지만 프롬프트 인젝션과 그에 대한 대응책 등, 대략적인 내용을 알 수 있었습니다. 

 

'쉽게 빠르게 익히는 실전 LLM' 의 장점

누구나 쉽게 읽을 수 있는 LLM 실전서

실제로 '쉽게 빠르게 익히는 실전 LLM'을 읽으면서 LLM에 대한 전반적인 흐름을 파악할 수 있어서 많은 도움이 되었습니다. 책 소개에 쓰여있는 것과 같이 완전 초보자를 위한 책은 아니었지만, 다양한 비유를 사용하여 최대한 쉽게 설명되어 있고 용어의 의미도 역자주를 통해 설명되어 있기 때문에 인공지능의 개념을 어느 정도 알고 있는 사람이라면 충분히 이해할 수 있을 것 같습니다. 

 

의미 기반 검색 시스템의 예시

 

 

Part3인 고급 LLM 사용법은 조금 이해하기 까다로웠지만 LLM을 사용해 서비스를 개발하는 분들에게는 도움이 될 만한 내용이 많았습니다. 책에서 LLM에 대한 전반적인 내용을 모두 다루다 보니 깊은 내용은 아니었지만 어느 정도 힌트를 얻을 수 있었습니다.

 

실습 코드

'쉽게 빠르게 익히는 실전 LLM'은 이론만 아니라 실습도 함께 진행합니다. 책에는 코드의 일부 또는 의사코드를 설명하지만 저자인 시난 오즈데미르의 깃헙( https://github.com/sinanuozdemir/quick-start-guide-to-llms)에는 실제 코드가 들어 있습니다. 공개된 코드를 사용해보거나 코드를 뜯어보면서 LLM을 실제로 어떻게 활용할 수 있을지를 알아볼 수 있습니다. 

 

 

모델의 다양성 - 오픈 소스와 멀티 모달

'쉽게 빠르게 익히는 실전 LLM'에서는 유료로 사용해야 하는 모델(ChatGPT) 뿐 아니라 무료로 사용할 수 있는 오픈 소스 모델(GPT-2, )을 설명하고, 실습에서 사용해 봅니다. 독자들의 다양한 상황을 고려하여 설명을 해주어 다양한 조건 속에서도 LLM을 사용할 수 있도록 하였습니다. 뿐만 아니라 LLM을 활용한 멀티 모달 모델의 원리도 설명합니다. 

 

책 마지막의 Q&A에도 나와있지만 '쉽게 빠르게 익히는 실전 LLM'은 랭체인과 같은 LLM 프레임워크를 사용하지 않습니다. 저자는 "이 책의 초점은 LLM을 직접 다루고, 파이튜닝하며, 중간 도구 없이 배포하는 방법에 대한 근본적인 이해"라고 언급합니다. 이를 통해 다른 도구를 선택하고 활용하는 데 도움이 된다는 것이죠. 랭체인을 사용하는 것보다 어려울 수는 있지만 기본을 알아야 응용을 자유롭게 할 수 있다는 점에서 정독할만한 가치가 있습니다. 

 

 

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

 

 작년 한 해, 생성형AI가 전 세계에서 큰 화제가 되었다. 
생성형AI는 아주 큰 혁신이었기에 현재까지도 이목을 끌고 있다. 
업무 분야뿐 아니라 일상 생활에서도 활용되고 있으며 예술 분야에서도 적용되고 있다. 

Chat GPT의 근간에는 LLM(Large Language Model)이라는 주로 트랜스포머 아키텍처에서 파생된 AI모델이 있다. 
이는 사람의 언어와 코드를 이해하고 생성하게 위해 설계되었다고 한다. 
방대한 양의 텍스트 데이터로 학습되었기 때문에 사람이 사용하는 언어의 복잡성과 뉘앙스도 파악할 수 있다. 
LLM에 대해 대해 알아보고자 ‘쉽고 빠르게 익히는 실전 LLM’을 펼쳤다. 

저자는 시난 오즈데미르로 대학 강사, 기업가, 머신러닝 엔지니어, 벤처캐피털 조언자 등의 다양한 경험을 해보았다.
여러 분야를 걸쳐 일해온 이였기에 LLM에 대해 이해해나갈 수 있었으며 그러한 지식들을 책에 담았다고 한다. 
곧, 보편적인 기술이 될 LLM이 여러 분야에서 적용될 예시를 확인할 수 있다.


책은 LLM에 대한 정의와 그중에서도 핫한 BERT, ChatGPT, T5에 대해 소개하고 LLM을 이용한 의미 기반 검색에 대해 알아본다. 
이후, LLM으로 파인튜닝을 하거나 아키텍처를 맞춤화하며 LLM을 활용하는 시간을 갖는다. 
최종적으로는 고급 LLM을 사용하는 방법을 배우며 심도있는 내용으로 마무리한다.

​​
언어 모델링에서 일반적으로 쓰이는 모델링 작업은 자동 인코딩 작업과 자기 회귀 작업이 있다. 
자기회귀 언어 모델은 알려진 어휘에서 주어진 문장의 바로 다음에 가장 가능성 있는 토큰을 생성하도록 모델에 요청한다. 이때의 토큰이란 의미를 가지는 가장 작은 단위를 뜻하며 문장이나 텍스트를 작은 단위로 나누어 생성되는 것을 말한다. 가장 유명한 예로 GPT가 있다. 
자동 인코딩 모델은 알려진 어휘에서 문장의 어느 부분이든 누락된 단어를 채우는 것을 모델에 요청한다. 이 모델의 전형적인 예로는 BERT가 있다. 
이처럼 익히 알고 있는 서비스를 예시로 LLM의 개념과 모델, 상세한 설명들을 접할 수 있었다. 
AI가 도출한 답변 예시와 도식화 덕에 더욱 쉽게 이해할 수 있었다. 

책은 모델 선택과 데이터 형식, 파인튜닝 파라미터, 모델의 내부 작동 원리에 대해 설명한다. 모든 종류의 LLM이 어떻게 사용하고 훈련되고 최적화할 수 있는지에 대해 알리는 것이 책의 주요 목적이라고 한다. 생성형AI를 더욱 효율적으로 활용하고 최적의 답변을 이끌어 내고 싶은 사람이라면 이 책을 통해 읽어보는 것이 좋을 것 같다.


 

 

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

1부부터 차례대로 읽으면 가장 처음으로 LLM이 무엇인지, 그리고 자연어처리 분야에 대한 전반적인 설명이 나옵니다. 그 이후로는 OpenAI를 이용하여 코드와 그림으로 구성되어 있고, 프롬프트 엔지니어링 방법이 나옵니다. 부록에 있는 용어 해설도 이 분야를 처음 접해보시는 분들이 먼저 읽고 책을 보시면 더욱 좋을 것 같습니다.

LLM에 대한 간단하고 누구나 쉽게 따라해볼 수 있게끔 단계별로 가이드처럼 나와있는 것이 이 책의 가장 큰 장점입니다. 실제로 현업에서 일하고 계시는 분들도 LLM을 이용하고 싶을 때 이 책만 읽어보셔도 많은 도움이 되실 것 같습니다. 실용적이며 바로 적용가능한 점이 또 다른 장점이라고 생각합니다.

"LLM (Large Language Models)은 대부분 트랜스포머 아키텍처에서 파생된(반드시 그렇지는 않지만) AI 모델로, 사람의 언어, 코드 등을 이해하고 생성하기 위해 설계되었습니다." 즉 *LLM (Large Language Models)**은 방대한 양의 자연어 데이터를 처리하고 종종 사람이 생성한 텍스트와 구별할 수 없는 응답을 생성할 수 있는 인공 지능 시스템입니다.

LLM을 훈련시키는 방법은 1. 텍스트 데이터 수집, 2. 데이터 정리(전처리), 3. 데이터 분할, 4. 모델 설정(LLM의 구조 정의), 5.모델 훈련으로 진행이 되는데 이 도서는 3개의 파트 (1 LLM 소개 , 2 LLM 활용법, 3 고급 LLM 사용법) 와 4 부록으로 단계별 지침, 모범 사례, 실제 사례 연구, 실습 예제를 통해서 소개하고 있습니다.

LLM을 빠르게 이해하기 하기흘 원하는 독자를 위해 그림과 예제를 통해서 소개하고 있으며 의미 기반 검색으로 시작으로 프롬프트 엔지니어링에 대해서 소개하고 파트 2에서 파인튜닝, 프로프트 엔지니어링 고급 주제, 레이블이 없는 방대한 데이터 세트에서 훈련된 AI 신경망으로, 텍스트 번역, 의료 이미징 등 다양한 작업을 수행하는 파운데이션 모델을 추천 시스템 만들기 사례연구를 시작으로 다양한 사례를 통해 파인튜닝, 트랜스포머등에 대해서 소개하고 있으면 다양한 방법을 제시하고 있습니다.

마지막으로 부록에서 LLM 자주 묻는 질문(FAQ), LLM 용어 해설, LLM 애플리케이션 개발 고려사항에 알려 주고 있습니다.

일반 개발자로 살아온 나에게는 패이스북, 카카오 등 많은 SNS에 있는 오픈 쳇에서 이야기하는 것들을 이해하기 위해 별도의 시간을 내어서 공부해야 하는 개념을 이 도서를 통해서 빠르게 알 수 있어서 좋았습니다.

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

✔️ 기초부터 심화까지 모두 배울 수 있다.
이 책은 LLM 프로그래밍에 입문하는데 적절한 책이다. 기초 LLM 프로그래밍 부터 ChatGPT 활용, LLM 임베딩, 고급 프롬프트 엔지니어링에 대한 응용 지식까지 한번에 담고 있다. 책이 그렇게 두껍지 않은데도 LLM의 모든 내용을 담고 있어 더욱 추천할만 하다. 특히 내용에 대한 자세한 그림도 포함하고 있어 책을 읽을때 쉽게 이해할 수 있다는 것이 큰 장점이다.

 

✔️ 실전 예제와 문제 해결 방법을 통해 실전 응용에 참고할 수 있다.
LLM을 이용한 의미 기반 검색, Q/A 챗봇, LLM을 이용한 추천 시스템, 멀티모달 VQA 시스템 등 다양한 응용 사례를 파이썬 코드 예제와 함께 제공하기 때문에 LLM 기술을 체계적으로 학습할 수 있다. 또한 오픈소스 LLM 모델의 파인튜닝, 사용자 피드백 강화 학습 등 고급 응용 사례도 포함하고 있어 실제로 성능을 개선하는 다양한 방법을 소개한다.

 

✔️ LLM의 모든 내용을 그림으로 쉽게 표현한다.
이 책의 가장 큰 장점이 매 장에서 설명하는 이론, 내용들을 빠짐없이 그림으로 쉽게 표현한다는 것이다. 요즘 나오는 개발 책들 중에서 소스코드만 나열하여 이해하는데 어려움을 갖게 하는 경우가 많다. 그만큼 책으로서 쉽게 읽히고, 친절한 책을 찾기 힘들다. 그러나 실전 LLM은 예제 코드에 대한 내용을 쉽게 그림으로 설명하고, 중간중간 필요한 부분에 그림으로 독자들의 이해를 높이기 위해 노력한 좋은 책이다.

이 책은 LLM(언어 모델을 학습하는 대규모 기계학습 모델)에 대한 입문서부터 고급 개념까지를 담은 포괄적인 가이드입니다. 책은 단계별 가이드를 제공하여 LLM 개발에 입문하려는 개발자들에게도 유용하며, 동시에 숙련된 개발자들에게도 깊은 통찰력을 제공합니다.

첫째로, 이 책은 LLM의 기본 개념을 소개합니다. LLM이 무엇인지부터 작동 원리, 주요 특징, 그리고 현재 가장 널리 사용되는 LLM 모델들에 대해 설명합니다. BERT, GPT-4, T5와 같은 다양한 모델들에 대한 내용을 다루며, 각 모델의 특징과 활용성을 비교하여 독자들이 적절한 모델을 선택할 수 있도록 안내합니다.

둘째로, 책은 LLM을 활용한 다양한 애플리케이션 및 사용 사례를 다룹니다. 전통적인 자연어 처리 작업부터 자유로운 텍스트 생성, 정보 검색, 챗봇 등 다양한 예시를 제시하여 LLM의 다양한 활용 가능성을 보여줍니다. 이를 통해 독자들은 LLM을 어떻게 실제 업무에 적용할 수 있는지에 대한 이해를 높일 수 있습니다.

세 번째로, 책은 LLM을 활용한 실제 작업에 대해 상세히 다룹니다. 의미 기반 검색 시스템을 구축하는 방법부터 고급 프롬프트 엔지니어링, 맞춤형 파인튜닝, 임베딩, 모델 아키텍처 맞춤화 등 다양한 주제를 다룹니다. 또한 오픈 소스 LLM 파인튜닝 및 프로덕션 환경에서의 사용 방법에 대해서도 상세히 설명합니다.

마지막으로, 책은 부록을 통해 LLM 자주 묻는 질문(FAQ), LLM 용어 해설, LLM 애플리케이션 개발 고려사항 등을 다루어 독자들이 LLM 개발에 필요한 전반적인 지식을 습득할 수 있도록 돕습니다.

또한 다양한 실무자들의 추천사를 통해 이 책이 LLM 개발에 필요한 실용적인 지식을 제공하는 데 도움이 됨을 보여줍니다.

이 책은 LLM에 대한 입문부터 고급 내용까지를 체계적으로 다루며, 맞춤형 예제와 실용적인 팁을 제공하여 독자들이 이론을 이해하고 실제로 적용할 수 있도록 돕습니다. 따라서 LLM에 대한 흥미를 가진 모든 사람들에게 이 책을 강력히 추천합니다.

대중에게 Chat GPT가 사용되기 시작하며, 어떤 기술을 기반으로 구현되었는가가 매우 궁금했다. 그 기반에 LLM 대규모 언어 모델이라는 딥러닝 알고리즘이 있다는 것을 막연하게 알고는 있었는데, 이번에 책을 리뷰하는 기회에 더 자세히 알아본다.

Chat GPT 가 응답하는 것을 매우 쉽게 기술적으로 쉽게 설명할 때,  << 다음 중 괄호 ( ) 안에 알맞은 단어를 찾으시오. >> 라는 문제의 연속이라는 표현을 하는데, LLM을 극단적으로 추상화하여 표현한 아주 적젏한 표현이라고 생각한다. 그렇다면 이를 구현하기 위해서는 상식적으로도 매우 많은 예시, 샘플, 구문, 자료 즉 탄탄하게 지지해주는 데이터가 필요하다.

 

그렇다면 대량의 언어 모델링을 이용한 무언가를 만들어야 할 때, 미리 알아야 하고, 적용할 수 있으며, 구현해야 할 때 무엇이 필요하고 어떤 준비를 해야 하는가에 대한 내용이 이 책의 내용이다.

개발자 혹은 개발 입문자가 LLM 을 통해 할 수 있는 일에 대해서 소개하고 가장 많이 사용되고 있는 예로 BERT 와 Chat GPT를 소개한다. 생각해보니 LLM을 Chat GPT만 사용하는 것은 아니니 잠시 망각했엇다. 그렇다면 전통적인 기술(벌써?)이 되버린 챗봇과는 무엇이 다르고 어던 기대를 할 수 있는가는 2장부터 상세히 설명되기 시작한다.

 

흔히들, 질문이 훌륭해야 원하는 답을 얻을 수 있다는 말이 있는데, 질문을 처리하는 관점에서의 엔지니어링 입장에서 질문은 그 전에 고정된 리스트 형태 혹은 나열된 명령어 목록에서 선택 처리하는 방식에서 벗어나야 했다. 또한, 맥락으로 이어지는 자연어로 입력 되기에 지시에 대한 응답을 예측하는 수준을 넘어 대화를 이어가는 수준을 유지해야 하는데, 단순히 입력된 맥락을 분석하여 생성하는 AI를 넘어야 하는 숙제는 자기 자신을 극복 ( LLM이 결국 생성이므로 ) 해야 하는 숙제를 가진다.

이 책은 LLM을 이용하여 자신의 어플리케이션 혹은 목적 달성을 위해 데이터셋을 통한 학습을 통한 파인튜닝에 대한 소개, 어디에 집중시킬 것인가에 대한 어텐션, 의미를 파악하기 위한 관계를 살펴보는 임베딩 등 LLM 관련 용어/기술을 설명하면서 동시에 구글과 OpenAI가 어떤 기술셋을 활용하는지를 간단히 소개한다.

 

책에서는 딥러닝을 배우지 않아도 충분히 혹은 오히려 쉽게 접근할 수 있다고는 하지만 상세 도표나 용어가 낯설 수 있으므로 책 부록에 있는 용어 사전을 미리 살펴보거나 딥러닝에 대한 사전 학습을 하고 살펴보기를 바란다. 그렇다면 후반부에서 설명되는 맞춤형 아키텍처에 대한 설명에 대한 이해와 응용에 큰 힘이 될 것으로 믿는다.

 

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

ChatGPT로 인해 LLM(Large Language Models)에 대한 관심이 커지고 있는 가운데 이 책은 LLM 입문으로 추천하는 책입니다. 기초 용어부터 개념과 활용까지 다루고 있기 때문에 LLM의 원리와 기술을 체계적으로 익힐 수 있습니다. 용어 해설이 부록으로 담겨 있을 만큼 친절한 도서이지만, LLM 이해에 있어 기초적인 파이썬과 머신러닝을 갖고 있어야 수월하게 읽힐 책이라고 생각됩니다. LLM의 이론적 이해와 실무 기술을 모두 잡고 싶은 분들이라면 만족하실 책입니다.

 

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

모델을 직접 만들거나 파인튜닝 해서 쓰던 것에서 API를 사용하여 쉽게 나만의 모델을 만들 수 있는 시대가 되었다. 프로그래밍 초보자라도 API 사용법과 간단한 추상화된 웹개발 도구 몇 가지를 익힌다면 나만의 LLM 챗봇이나 AI도구를 만들 수 있는 시대가 되었다.

이에 대한 친절한 가이드가 되는 책이 바로 이 책이다. 파이썬 기반의 다양한 라이브러리를 활용하여 웹개발이 처음이라도 FAST API를 통해 간단한 서비스를 구현할 수 있게 돕는 책이 바로 이 책이다.

최근 LLM모델의 API를 사용한 서비스 개발 관심도가 엄청나게 높은데 친절한 튜토리얼을 찾고자 한다면 이 책이 큰 도움이 되리라 생각된다.

나만의 프롬프트 혹은 내가 수집한 데이터 혹은 검색을 함께 활용하여 논문을 분석하거나 리포트를 만들거나 복잡한 PDF문서에 있는 내용에서 원하는 정보를 찾기 위해 모델을 만들어 봤다면 작은 태스크일지라도 의외로 거쳐야하는 전처리 과정이 복잡하게 느껴질 수도 있고 또 선택지가 많아서 고민이 될 수도 있다.

긴 문서를 다룰 때 어떤식으로 청크를 다뤄야 할지에 대한 제안 사항도 참고해볼만하다.

벡터DB를 구성한다면 Pinecone으로 할지 직전 구현할지 또 임베딩은 어떻게 할지, 토큰, 청킹 등 다양한 고민 앞에 놓이게 되는데 이런 고민에 대한 간단한 예제코드들이 다양하게 제공되어 잘 동작하는 코드를 통해 서비스 구현에 대한 힌트를 얻는데 도움이 되었다.

이 책에서 제공하는 예제 소소코드만을 활용해서 내 업무나 연구에 활용한다면 제법 쉽고 빠르게 나만의 LLM서비스를 구현해 볼 수 있지 않을까 싶다.

소스코드에 API 키만 바꿔 입력해보고 나만의 LLM 서비스를 만드는데 활용해 볼 수 있게 되어 있다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

해당 책을 선택한 배경

  1. 가끔 아이디어를 얻기 위해 챗GPT 등을 활용하며, 원하는 답을 얻기 위해 ‘프롬프트 창’에 ‘어떤 명령어’를 입력해야 할까가 고민이었다.
  2. ML / DL 을 잠깐 겉핥기로 배웠는데, LLM 모델과 자연어처리에 대해 심화된 지식을 얻을 수 있을까 궁금했다.
  3. 프롬프트 엔지니어링 직무가 보이길래 어떤 업무를 하는지 궁금했다.


 

책을 읽고 좋았던 부분

1. 프롬프트 엔지니어링이란?

사실, 책을 신청하면서도 프롬프트 엔지니어링에 대한 개념이 정립되어 있지 않았다. 예시와 함께 있어 정의가 직관적으로 이해가 된다.

2. 프롬프트창에 어떻게 입력해야 할까?

어떤 식으로 명령어를 입력하면 원하는 답이 나올까? 에 대한 내용도 존재한다. 위의 이유와 마찬가지로 예시 덕분에 빠르게 이해하고 넘어갈 수 있다.

3. 실습

프롬프트 작동 원리를 이해하고, 간단한 챗봇을 만드는 실습을 해볼 수 있다니. LLM쪽으로 관심이 있다면 코드도 주어지기 때문에 꼭 따라 해볼 것 같다.

4. 세세한 정의, 사례연구

YOLO 모델을 파인튜닝하는 프로젝트를 한 적이 있다. 모델을 직접 만드는 것도 아닌 파인튜닝만 하는 것은 너무 얕게 가는 것 아닐까? 란 생각을 한 적도 있다. 그런데 파인튜닝도 제대로 하면 고려할 것이 아주 많다는 것을 ‘파인튜닝 과정’을 통해 새롭게 고민할 수 있었다.

 

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다**


이 책은 요즘 핫핫핫한 기술인 LLM(Large Language Model)에 대한 전반적인 내용을 체계적으로 다루고 있습니다. LLM의 기초 이론부터 실무 활용, 앞으로의 발전 방향까지 아우르고 있어 입문자나 실무자 모두에게 유용한 책이라고 생각됩니다. 전반적으로 다양한 실습 코드와 사례, 시각적 도구를 활용하여 이론과 실전을 균형있게 다루었다는 점이 인상적입니다. 실제 코드와 적용 사례가 많이 있습니다. 

제 경우에는 AI 관련 용어들이 많이 어려웠는데, 이 책에서 전이학습, 파인튜닝 등의 기본 개념을 잘 설명해주어서 이해하는데 많은 도움이 되었습니다. 처음에는 생소했던 용어들이 예시와 함께 자연스럽게 설명되어 있어 보다 쉽게 배울 수 있었습니다.

먼저 첫 번째 파트에서는 LLM이 무엇이고 어떻게 동작하는지, 그리고 왜 중요한지에 대해 기초 지식과 특히 의미 기반 검색과 프롬프트 엔지니어링 부분은 요즘 공부하고 있는 파트라 재미있었습니다. 

두 번째 파트에서는 LLM 실무 활용 방법을 상세히 다루고 있는데요, 데이터셋 파인튜닝, 출력 검증, 프롬프트 엔지니어링 기법 등 꼭 필요한 기술들을 초보자도 이해하기 쉽게 적어놓았네요.

세 번째 파트는 LLM의 미래 기술 동향과 프로덕션 배포 시 고려사항을 소개하고 있어 나중에 실무 적용시에 실질적인 도움이 될 것 같습니다.  

책 내내 활용된 흐름도와 도표 또한 복잡한 내용을 이해하는데 한몫했습니다. 체계적인 구성과 친절한 설명, 그리고 시각적 자료를 통해 LLM에 대한 전반적인 지식을 착실히 쌓을 수 있었습니다.


LLM에 관심이 있다면 꼭 한번 읽어보시기를 추천합니다~ 또 AI 용어에 어려움을 겪고 있다면 이 책이 좋은 가이드가 되리라 봅니다. :)

Quick Start Guide to Large Language Model
O’Reilly에서 2023년 10월에 발행한 책입니다. LLM의 발전 속도가 너무 빨라서 Outdated 됐을까봐 걱정했는데, 이 책은 LLM에 대한 기초적인 부분에 초점을 맞추었습니다.

대상 독자
이 책은 LLM에 관심 있는 분이나 관련 서비스 개발을 시작하려는 분에게 적합합니다. 단순하고 쉽게 설명하려는 노력이 돋보이는 책입니다.

딥러닝의 정석 2판 리뷰에서는 "AI에 관심이 있고 Stable Diffusion이나 OpenAI와 같은 LLM의 사용법이나 가능성을 알아보고 싶다면 머신러닝, 딥러닝을 배우기보다는 프롬프트 엔지니어링을 공부하는 것이 좋다"고 언급했습니다. 이는 이 책을 대상으로 한 것으로 생각됩니다.

책 소개
이 책은 신경망 언어 모델부터 LLM까지의 발전 과정 및 작동 원리를 소개합니다. 2017년 Google 팀이 발표한 Transformer 딥러닝 모델을 시작으로, LLM의 역사가 그리 길지 않음에도 불구하고 자세한 설명을 제공합니다.

시맨틱 검색, 기본적인 프롬프트 엔지니어링에 대해 논합니다. 기초적인 지식을 설명하고 확장해 나가는데, 예를 들어 의미 기반 검색(Semantic Search) 챕터에서는 텍스트 임베딩, 벡터 데이터베이스, Cosine Similarity 등에 대해서도 다룹니다. 또한 RAG에 필요한 문서 청킹, 벡터 데이터베이스, 프롬프트 엔지니어링 전략들, 페르소나 지정 등도 소개합니다.

자세한 후기 링크: https://dev.sonim1.com/ko/blog/review-quick-start-guide-to-llm

 

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

이 책은 대규모 언어모델(LLM)의 기초부터 심화까지 다룬 책인데, 이론 보다는 실습 위주로 설명하고 있는 책입니다.

LLM 관련 업무를 하고 있는 제게 제목만으로도 굉장히 흥미를 끈 책이 였습니다. 쉽고 빠르게 익히는 실전 LLM 책에서 제가 몰랐던 몇몇 가지 기술들에 대해서 알 수 있어서 정말 뜻깊게 읽은 책 입니다. 특히 챕터2의 의미 기반 검색 부분은 최근에 관심을 가지게 된 RAG 기술의 의문을 풀게 해 준 내용이 들어 있었습니다.

또한 파인튜닝을 실무적으로 사용할 수 있게끔 설명해준 부분도 굉장히 좋았습니다.

실무에 LLM을 이용하려고 하신다면 한 번 쯤 이 책을 읽어보시면 많은 도움이 될 것 같습니다.

 

이번에 리뷰할 서적은 한빛미디어에서 출판된 "쉽고 빠르게 익히는 실전 LLM" 입니다.
요즘에 이슈가 되고 있는 LLM에 대해 다루면서, 쉽고 빠르게 익힐 수 있도록 구성된 최신 트렌드의 신간 서적입니다.
아래는 각 파트의 주요 내용을 간략하게 정리한 것입니다.

파트 1: LLM의 기초를 쌓는 시간

이 파트는 LLM의 넓은 세계로 첫걸음을 내딛는 여정과도 같습니다. 
1장에서는 LLM이 무엇인지, 어떻게 작동하는지에 대한 기본적인 개념을 차근차근 설명해 줍니다. 
술술 읽히는 문체로 복잡한 원리를 쉽게 풀어내어 입문자들도 부담없이 이해할 수 있습니다.

2장에서는 LLM의 실전 활용 사례 중 하나인 의미 기반 검색 시스템 구축 과정을 안내합니다. 
각 구성요소가 어떤 역할을 하는지 하나씩 짚어가며 설명하고, 통합 방식까지 꼼꼼히 다룹니다. 
실전에서 꼭 필요한 내용을 미리 경험해볼 수 있습니다.

3장은 프롬프트 엔지니어링의 기본 기술을 익힐 수 있는 시간입니다. 
정렬, 직접 요청부터 시작해 퓨샷 학습, 페르소나 지정 등 다양한 방법을 실례와 함께 소개합니다. 
ChatGPT 등 유명 LLM을 활용한 실습까지 있어 재미와 몰입감을 더해줍니다.

파트 2: LLM 활용의 고수되기  

4장에서는 드디어 LLM의 성능을 한층 업그레이드할 수 있는 파인튜닝에 대해 배웁니다. 
파인튜닝의 개념과 과정을 이해하기 쉽게 설명해주고, 실제 데이터를 활용한 아마존 리뷰 분석 실습도 있습니다. 
이론과 실전을 오가며 체득할 수 있어 매우 유익합니다.

5장에서는 프롬프트 엔지니어링의 고급 기법을 익히는 시간입니다. 
프롬프트 인젝션 공격 방어법, 배치 프롬프팅, 프롬프트 체이닝 등 다양한 테크닉을 배울 수 있습니다. 
이론 설명 뿐 아니라 직접 따라해볼 수 있는 예제도 곁들여져 있어 금상첨화입니다.  

6장에서는 LLM 임베딩과 모델 아키텍처를 최적화하는 실전 과정을 경험해볼 수 있습니다. 
추천 시스템을 구축하면서 맞춤형 임베딩 구축, 오픈소스 임베더 파인튜닝 등의 기술을 활용해봅니다. 
단계별 안내와 상세한 코드 설명이 있어 쉽게 따라할 수 있습니다.

파트 3: LLM의 최전선을 가다

7장에서는 파운데이션 모델을 뛰어넘는 최신 LLM 기술 동향을 살펴봅니다. 
시각 질의응답과 같은 멀티모달 LLM, 강화학습 기반 LLM 등 혁신적인 연구 사례를 소개하고 있습니다. 
이론적 배경에 대한 상세한 설명과 함께 실제 적용 과정도 꼼꼼히 다룹니다.

8장에서는 오픈소스 LLM의 파인튜닝 사례를 만나볼 수 있습니다. 
BERT를 활용한 다중 레이블 분류, GPT-2 기반 LaTeX 생성 등 실전 프로젝트를 통해 오픈소스 모델 튜닝 방법을 배웁니다. 
또한 SAWYER와 같은 혁신적 모델도 소개되어 무한한 가능성을 엿볼 수 있습니다.

마지막 9장에서는 프로덕션 환경에서의 LLM 배포 과정을 살펴봅니다. 
클로즈드/오픈소스 모델 배포 시 고려사항, 비용 예측, 최적화 기법 등 실무에서 반드시 알아야 할 내용을 빠짐없이 다룹니다. 
현장에서 바로 적용할 수 있을 만큼 구체적이고 실용적입니다.  

전반적으로 이 책은 LLM 입문자와 실무자 모두에게 최적화된 가이드라고 할 수 있습니다. 
기초부터 최신 동향까지 체계적으로 풀어내며, 다양한 실습 기회를 제공합니다. 
담백하면서도 친근한 문체로 술술 읽혀 지식을 습득하는 재미까지 더해줍니다. 
LLM 분야에서 꼭 한 번 거쳐가야 할 필독서라고 자부할만합니다.

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

이 책은 LLM에 대한 정보를 제공하며, 
처음 접하는 사람들에게도 쉽게 이해할 수 있는 내용을 포함하고 있는데
LLM의 정의부터 시작하여 주요 특징과 작동 원리에 대해 상세히 설명해주고 있습니다.
그리고 현재 많이 사용되고 있는 LLM 중 BERT, GPT , T5등을 각각의 아키텍처 측면에서 설명을 해주고 있는데
각각 어느 작업에 특화되어 있는지 자세하게 설명해 주고 각각의 LLM들을 이용한 애플리케이션도 설명해 주어 일반 독자들도 쉽게 이해할 수 있도록 해주고 있습니다.

 

약간 아쉬었던점이 있다면 실습부분 해당될것 같습니다.
 위 내용은 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

우선 시중에 LLM 책들이 마구 쏟아지고 있는데, AI 분야의 입문자들에게 단계적으로 접근할 수 있도록 쓰인 친절한 책이라고 생각이 들었습니다. LLM 자체가 진입장벽이 높은데 도식화 형태로 설명하여, 자신감을 갖고 시작할 수 있게 한다고 생각합니다. Python 코딩을 조금이라도 해보신 실무자들을 에게 많은 가이드를 줍니다. 또한 고급 프롬프팅과 Fine-Tuning 영역에서는 제가 놓친 부분들이 많았는데 점검하기 좋았다는 생각이 듭니다. 

 

실제로 LLM을 활용하여 문제를 해결하는 데 필요한 기술과 지식을 습득할 수 있는 부분들이 많습니다. 특히 Fine-Tuning, Semantic Search, 고급 프롬프트 엔지니어링 등의 주제는 제가 하는 AI 교육 및 컨설팅 분야에 좋은 교보재가 된다고 생각이 들었습니다. 또한, LLM을 파인튜닝하는 과정에서 레이어를 프리징 하는 방법이나 ChatBot QA 도식화되는 부분, 그리고 자주 묻는 질문과 용어 정리 Appendix 등 정말 친절하게 쓰여서 유튜브에도 없는 디테일한 부분까지 다루어서 근래 들어 흡족스러운 책이었습니다.

 

오래간만에 좋은 개발 서적을 Get 한 것 같아서, 종종 개념공부하고 점검하고, 교육하는데 활용하기 좋은 교보재라는 생각이 들었습니다. LLM을 입문하면서 Python Code를 다룰 줄 아시는 분들이라면 필수 도서라고 생각합니다.
 

LLM, ChatGPT, 프롬프트 엔지니어링을 챕터별로 단계별로 실습 해보면서 기초부터 꽤 심화된 지식까지 얻어갈 수 있는 훌륭한 책입니다

책이 또 많이 두껍지도 않아서 가볍고 빠르게 실습해보면서 익혀볼 수 있어서 더 좋은것 같습니다

  작년 한 해를 후끈 달아오르게 하고 이제는 노말이 되어가는 생성형 AI들은 신기하기만 하다. 그들은 엄청난 규모를 자랑하는 서버에서 자신들만의 모델을 만들어 가고 있다. 대화형 AI들은 굉장히 광범위한 학습을 하게 되는데 이를 위한 대규모 언어 모델(Large Language Models)을 LLM이라고 한다. 덱스트의 이해와 분석을 중심으로 하는 고급 기술이기도 하다. 많은 양의 학습 데이터가 필요하기 때문에 붙여진 이름이기도 하다.

  LLM의 원리와 이해가 담겨 있는 이 책은 한빛미디어의 지원으로 읽어볼 수 있었다.

  AI와 대화하는 것은 나름 흥미롭다. 기존의 헬퍼 형식의 chatbot들과는 다른 꽤나 다양한 주제에 대한 얘기를 할 수 있다. 하지만 그것이 어떻게 작동하는지는 꽤나 어려운 일인 것 같다. 

  대부분의 LLM 모델은 트랜스포머 아키텍처로부터 시작되었지만 그 특성에 따라 일부만 취해 학습을 진행해 왔다. 몸집을 가볍게 하여 각자의 특기를 가지려고 하는 것 같다. 모든 것을 학습한다는 것은 어려운 일이고 많은 자원이 필요하기 때문이다. 그런 면에서 보면 인간의 뇌는 정말 대단한 것 같다. 

  이 책은 기본적으로 어렵다. LLM 자체가 쉽지 않아 보이는 것도 사실이고 꽤나 다양한 모델과 접근법이 머릿속에 잘 이해가 되질 않는다. 기본적인 학습이나 동작은 알 것 같지만 꽤나 고급적인 부분까지 파고드는 느낌이라 어느 부분에서는 전혀 이해하질 못해 그냥 텍스트만 읽었다. 사실 입문조차 제대로 안 한 상태여서 그럴지도 모르겠다.

  책을 읽으면 LLM이라는 것을 어떻게 접근해야 할지 조금 알 수 있고 LLM들의 특징과 그들이 만들어내는 오류들도 이해할 수 있게 된다. 어떻게 사용하는 것이 더 나을지라는 고민에 약간의 해법을 줄 수 있을 것 같다.

  개인적인 역량이 부족하여 책을 소화하기에 어려움이 있었지만 LLM에 대한 관심은 더 깊어진 것 같다. 

  LLM의 기초부터 고급 프롬프터 엔지니어링까지 다채로운 부분에 대한 접근이 있으니 관련 분야를 정복하려는 사람들에게는 충분히 좋은 책이 되지 않을까 싶다.

 “한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

LLM의 작동원리와 튜닝 방법에 대해서 잘 배울 수 있는 책입니다.
아쉬운 점은 깃허브에 제공된 코드와 책에 있는 코드가 일치하지 않아 책에 있는 코드를 따라서 학습하기는 어렵습니다.
특히 라이브러리를 설치하거나 import 해오는 부분이 생략되어 있는 부분이 많아 파이썬에 익숙한 독자가 아니면 책 내용을 따라하며 실습하기는 어렵습니다.
그리고 openai 계정이 필수로 있어야만 따라 할 수 있는 내용이라 openai 가입 및 결재가 필요합니다. 주로 임베딩을 이용하기 때문에 결재 금액이 크지 않아도 실습에 큰 문제는 없다는 점은 다행입니다.
책의 내용은 아주 좋은데 책의 내용을 따라가며 실습하기가 어렵다는 점이 많이 아쉽네요…
원 저자의 깃허브에 있는 코드도 책 내용에 따라서 나누어져 있는 것이 아니라 챕터 하나를 하나의 파일에 모두 담아서 구분해가며 보기 어렵습니다.

 

예를 들면 Chapter6의 경우 캐글의 MyAnimeList 2020 데이터라고 책에 나와있는데 저자의 깃허브에는 데이터가 없습니다.

그래서 캐글로 가서 검색하니 비슷한 데이터셋이 여러개 있어서 어떤 것이 코드에서 사용한 것인지 찾기 어려웠는데..

힘들게 찾고 보니 저자가 제공한 소스코드 가장 위에 링크가 주석 처리 되어 있더군요…

책에는 캐글이 어떤 곳이다 라는 주석만 있고 MyAnimeList 2020 데이터에 대한 링크는 주석이 없는데 이런 부분을 주석으로 알려주었다면 데이터를 찾느라 시간을 허비하지 않아도 되었을텐데 아쉽습니다.

 

무엇보다 출판사나 번역하신 분이 책 챕터에 맞춰서 코드를 정비하고 별도로 제공해 주시면 좋겠습니다.

좋은 책인데 실습코드 때문에 책의 가치가 반감되는 것 같아 아쉽습니다. 


 

 

LARGE LANGUAGE MODELS

쉽고 빠르게 익히는 실전 LLM

  시난 오즈데미르 지음

  신병훈 옮김

 

LLM 이 성장한 기간은 오래되었다고 하지만,

인공지능 분야에 계신 분들은 일찍이 알고 있는 모델일 수 있지만,

제 기준에서는 LLM 에 대해서는 최근에 자주 보거나 듣게 된 것 같습니다.

 

그러다 보니 신선하고 새로움이 가득 했습니다.

 

인공지능 관련하여 책에서도 얘기 하듯 머신러닝과 파이썬에 대한 어느 정도 경험이 있다면 이해하기 더 효율 적이긴 할 것 같습니다.

용어 등에 대해서도 일부 모르는 부분들은 별도 찾아 보면서 봐야할 부분들이 있기에 .....

 

[ 대상 독자 ]

 

 

[ 책 구성 ]

이 책은 크게 4개의 부와 총 9개의 장에 3개의 부록으로 구성되어 있습니다.

부록 B 의 경우 "LLM 용어 해설" 장으로 용어에 대한 의미 위주의 설명이긴 하지만 책을 보면서 참고해도 되고 먼저 읽어 보고 책을 읽어 보는 것도 좋을 것 같습니다.

 

1부 : LLM 소개

   1장 LLM

   2장 LLM을 이용한 의미 기반 검색

   3장 프롬프트 엔지니어링의 첫 번째 단계

 

2부 : LLM 활용법

   4장 맞춤형 파인튜닝으로 LLM을 최적화하기

   5장 고급 프롬프트 엔지니어링

   6장 임베딩과 모델 아키텍처 맞춤화

 

3부 : 고급 LLM 사용법

   7장 파운데이션 모델을 넘어서

   8장 고급 오픈 소스 LLM 파인튜닝

   9장 LLM을 프로덕션 환경에서 사용하기

 

4부 : 부록

   부록 A - LLM 자주 묻는 질문 (FAQ)

   부록 B - LLM 용어 해설

   부록 C - LLM 애플리케이션 개발 고려사항

 

책 내용에서 중요한 키포인트나 내용 중 저자가 생각하는 부분들 또는 부연 설명이 필요한 부분들에 대해서는 별도 메모 칸으로 추가 설명을 하며,

 

그리고, 많은 예제 캡쳐와 그림들을 인용하여 이해하는데 도움을 주고자 노력하고 있습니다.

 

각 장의 챕터 마다 해당 챕터에서 설명하고자 했던 내용들을 요약하고 다음 장 또는 챕터에서 설명하고자 하는 부분에 대해 알려 주고 있습니다.

해당 챕터를 보기전 미리 보면서 저자가 어떤 부분 위주로 설명할 것인지를 알고 학습 진행하여도 좋을 것 같습니다.

 

[ 결론 ]

LLM 에 대한 처음 부터 활용까지 알아볼 수 있는 책 입니다.

대상 독자에서 얘기하는 것 처럼 인공지능 분야에 대한 경험이 없어도 현실적인 부분들과 그리고 예제 들이 포함되어 있어서 책을 학습하는데 크게 문제는 없을 것 같습니다.

제 기준에서는 여러번 읽어 봐야 겠지만요 ......

LLM에 대해 알고자 한다면 ... 이 책을 추천 합니다.

LLM이라는 망망대해를 직관적인 도식 자료를 활용해 실용적 관점에서 핵심 원리와 본질만 전달하고자 노력한 점이 인상적이다. 특히, 다양한 예제 실습을 통해 머릿속의 반짝이는 창의력을 제품화 할 수 있도록 가이드한다.

LLM이라는 거대하고 복잡한 바다를 이렇게 간결하게 설명하는 책이 등장할 줄은 몰랐다. LLM이라는 주제에 대한 확실한 이해와 남다른 통찰을 수십년 간의 경험으로 다져온 전달력으로 표현한 것 같다. 다른 책들과 달리 서문에 이 책에 대한 저자의 자신감이 느껴졌는데 이 조차도 읽는 내내 겸손의 표현임을 깨달았다.

단순히 1장만 읽어도 LLM을 구성하는 망망대해가 얼마나 거대한지는 초보자도 느낄 수 있다. 현재 가장 유명한 LLM 모델인 BERT, GPT-4, T5에서 LLM을 가능케한 사전훈련, 전이학습, 파인튜닝, 어텐션 등 하나하나의 주제도 그 깊이가 어마어마하기에 사실 이 모든 것을 전달하는 책은 등장할 수 없다는 생각을 했다.

하지만 천재들은 늘 나같이 흔한 범인들의 선입견의 박살내는 매력이 있는 듯 하다. 이 망망대해로 직접 뛰어들지 않고 실용적인 관점에서 기본원리와 본질이 무엇인지 축척 높은 지도를 만들어 나간다.

본질

이를 설명하는데 있어 핵심은 알기쉽게 설명한 직관적인 도식으로 대체하고 추상적인 개념은 예제 실습을 통해 눈으로 보게 만든다. 예를 들어 어텐션이 무엇인지 모르는 NLP 초보자도 아래 그림을 보면 대략적으로 어떤 의미인지는 파악할 수 있을 것이다.

어텐션

예제의 경우도 LLM을 가능케 한 주류 기술 특히 파인튜닝을 중심으로 짧은 코딩으로 엄청난 결과물을 얻을 수 있는 형태로 구성되어있으니 각 개념들의 내부에 집중하느라 길을 잃지않도록 본질을 알고 원하는 문제를 해결할 수 있도록 정보 전달의 수급을 조절한다. 아래 시각적 질문 답변 시스템을 만드는 과정이 대표적인 예시이다.

VAQ

이 책에 등장하는 예제들은 굉장히 다양한데 클로즈드 소스를 활용하는 방법부터 오픈소스를 파인튜닝하는 방법에 이르기까지 저변이 상당히 다양하기에 좋은 아이디어만 있다면 이들을 참조하여 빠르게 원하는 제품을 얻을 수 있을 듯 하다. 예제도 재밌는 주제가 많다. 예를 들어 아래 자연어를 레이텍으로 변환하는 예제가 그렇다.

LaTex

3장이나 5장에서 프롬프트 엔지니어링을 다루는 것도 이색적이다. ChatGPT를 곁에 두고 사는 독자들이라면 이미 3장 정도의 기법은 잘 알고 있겠지만 5장에 등장하는 프롬프트 인젝션이나 스터핑과 같은 기법은 생소할지도 모른다.

다른 이들이 올린 질문 자체 혹은 방식 또는 사용한 데이터를 가져오는 기술을 자연어 세계에서도 적용할 수 있다는 것 자체가 LLM에 얼마만큼의 창의성을 적용시킬 수 있는 것인지 그 거대함에 자주 위압을 느낀다.

마지막 단원에는 실습한 모델이나 예제들을 프로덕션 환경에서 활용할 수 있는 방법도 소개된다. Hugging Face 모델 허브에 올리는 것을 마지막으로 이 책의 여정은 끝이 난다.
 

Hugging Face

이러한 거대한 망망대해를 읽는데 있어 시종일관 재미를 줄 수 있는 책은 결코 흔치 않을 것이다. LLM을 시작하는 사람 혹은 이 분야에 도전하는 이에게 특히 큰 용기를 복돋게 해줄 명작이다. 물론 AI 대격변 시대에 살고 있는 누구나 한 번 쯤 읽으며 실습해본다면 막연한 미래를 대비하는데 큰 도움이 될 것이다.


2000년~2010년 "라떼"만 하더라도 인공지능이 조금씩 HOT해지고 있었는데 그렇게까지 대중들의 관심을 끌지는 못했습니다. 생활에 직접 쓰이거나 체감되는 것이 없었기 때문이죠. 그런데 분위기가 슬슬 바뀌기 시작한 것은 "알파고"의 등장 시점부터였던 것 같습니다. 이세돌과 인공지능 "알파고"의 세기의 바둑대결은 인간만이 할 수 있는 복잡한 게임이라고 생각했던 바둑을 일개 컴퓨터가 인공의 지능을 가지고 인간에 대적해서 인간을 이길 수 있다는 놀라운 결과를 보여주었습니다.(4:1로 알파고의 최종 승리). 그이후 인공지능 분야가 떡상을 하면서 단순 자연어처리 모델, 이미지 및 영상처리 모델을 넘어서서 동물의 학습 능력을 모방하여 시행착오로부터 점점 자가학습으로 지식을 더 습득하는 "강화학습"이 인기를 끌었습니다. 

 

그리고 이후 2022년 11월 홀연히 등장한 "chatGPT"는 가히 센세이션이었습니다. 아니, 그보다 더한 충격이었습니다.

대학생 시절에나 초기 인공지능 기술을 조금 공부하다가 손을 놓고 보안 분야 업무를 하고 있던 저는 chatGPT 서비스 소식을 듣고 사용을 해보았는데, 어떤 질문을 던져도 그럴싸한 답변을 사람의 언어로 제공하는 것이 신기했습니다. 

얼마나 많은 양의 데이터를 어떤 원리로 학습했길래 질문에 대해 답변을 자연스러운 대화처럼 생성하는 것일까요?  

 

 

한빛미디어에서 "나는 리뷰어다"를 통해 신청하여 제공받은 "쉽고 빠르게 익히는 실전 LLM" 이라는 책을 통해 저는 chatGPT를 구성하는 기술들에 대한 지식을 쉽게 이해할 수 있었습니다.

 

OpenAI 사에서 발표한 생성형 AI 서비스 "chatGPT"는 이 책의 제목인 LLM(Large Language Model), 즉 대규모 언어 모델로 분류됩니다. 

 

이 책의 1장에서는 LLM을 소개하면서 LLM이 무엇이고, 동작원리와 중요성을 설명해줍니다. 그 다음 2장부터는 실습을 진행하는데 LLM을 Semantic Search(의미 기반 검색)에 사용하는 검색 시스템을 제작합니다. 특히 OpenAI의 LLM모델인 GPT3.5, GPT4 등을 사용해볼 수 있는 웹 기반 인터페이스인 "Playground"와 OpenAI의 API 등을 통해 예제 코드들을 실습해볼 수 있었습니다. 이 책에서는 GPT-3 기반의 실습이 실려있습니다.

 

3장에서는 Q/A 챗봇을 간단하게 만들면서 chatGPT를 구성하는 "프롬프트 엔지니어링"에 대해 설명합니다.

 

4장에서는 데이터셋을 사용해서 LLM에 대하여 맞춤형 파인튜닝을 통해 최적화 하는 방법을 다룹니다. 

 

이 장에서 좋았던 점은 어려운 파인튜닝 과정을 그림을 통해 도식화하여 설명을 친절하게 해주고 Amazon 제품 리뷰 모음(amazon_reviews_multi 데이터셋)을 학습하고 리뷰들에 감정 분류를 수행할 수 있도록 OpenAI의 사전 훈련된 모델을 파인튜닝을 하여 리뷰에서 주어진 별점 예측이 가능하도록 차근차근 따라갈 수 있도록 한다는 것입니다.

 

5장에서는 프롬프트 인젝션 공격, 프롬프트 스터핑을 막는 기술(입출력 유효성 검사, 프롬프트 체이닝 등)들을 소개하고 퓨샷 학습(Few-shot Learning)으로 LLM 성능을 높이는 실습 등 고급 프롬프트 기술을 다루고 있습니다.

 

6장에서는 Kaggle에 있는 "MyAnimeList 2020" 데이터셋을 활용한 추천 시스템 제작 실습을 통해 임베딩과 모델 아키텍처를 맞춤화하는 방법을 설명합니다. 그이후 장에서는 고급 기술들과 함께 프로덕션 환경에 배포하는 내용에 대해서도 다루고 있습니다.

 

또한 책의 뒤 부록에서는 LLM 과 관련한 용어 해설과 LLM 애플리케이션 개발 고려사항, 자주 묻는 질문(FAQ) 도 담고 있어 이해를 돕고 있습니다.

 

이 책 제목 일부인 "쉽고 빠르게 익히는" 이라기에는 LLM 자체의 용어 원리 등이 난이도가 좀 있는 기술들이라 마냥 이해하기 쉬운 책은 아니었습니다. 그런데 이 책의 제목인 "실전" LLM에서 "실전"에 맞게 실제 데이터를 통한 다양한 실습 예제들을 독자들이 직접 해볼 수 있어 진득하게 시간을 들여 따라가면 LLM을 깊이 이해하는 데 제격인 책이지 않을까 싶습니다. (저도 다 읽어보고 실습을 다시 하나하나 따라가고 있는 중입니다 :-))

 

책이 얇지만 챕터별 내용과 실습이 알차게 들어가 있어 독학으로도 괜찮고, 강의나 그룹 스터디 용도로도 괜찮다는 생각도 들었습니다. 

 

자연어처리의 혁신이 된 LLM 모델을 깊이 이해할 수 있는 고마운 책이었습니다.


 

* 이 책은 한빛미디어 "나는 리뷰어다"를 통해 제공받았으며, 솔직하게 작성한 후기입니다.

이번 책은 AI Transformation을 하고 싶은 분들을 위한 책이라는 생각이 들만큼 내용이 쉽게 쓰여있지만 그렇다고 부실한 책은 아닙니다! LLM을 간단하게 업무에 적용시켜보고 싶은 분들께 이 책을 추천합니다 ㅎㅎ

내용

ChatGPT로 뜨거운 LLM(Large Language Model)에 대한 책입니다. LLM의 소개, 활용법에 대해 다루고 있습니다.

특징

LLM을 실질적으로 구축하는 것에 대한 내용을 담고 있습니다.

이 책은 LLM 애플리케이션을 개발하고 운영하는 것에 대해서 집중적으로 다루고 있습니다. 반드시 알아야 하는 개념에 대해서 쉽고 짧게 언급하고 리얼 월드(실제 세계)에서 LLM 애플리케이션을 다룰 때 어떤 것을 고려해야 하고 어떻게 시스템을 설계해야 하는지에 대해서 말합니다.

 

예를 들어 LLM을 사용한 의미 기반 검색 시스템을 개발하려 한다면 일반적으로 다음과 같은 단계를 따른다고 합니다.

  1. 문서 저장
    1. 임베딩을 위한 문서 저장
    2. 의미 정보를 인코딩하기 위한 텍스트 임베딩 생성
    3. 나중에 쿼리가 주어졌을 때 검색할 수 있도록 임베딩을 데이터베이스에 저장
  2. 문서 검색
    1. 사용자에게 전처리되고 정리할 수 있는 쿼리 입력
    2. 임베딩 유사도를 통해 후보 문서를 검색
    3. 필요한 경우 후보 문서의 순위를 재순위화
    4. 최종 검색 결과를 사용자에게 반환

애플리케이션 개발자 입장에서 특정 시스템을 만들기 위한 일반적인 단계와 필요한 구성 요소를 파악하는 것은 굉장히 중요합니다. 무엇을 만들지 모른다면 만들 수 없기 때문이죠. 나아가 각 단계를 실제로 구현하기 위해서 필요한 기술 및 장단점에 대해서도 다룹니다.

  • 텍스트를 임베딩하려면 단어, 구문을 받아 벡터로 변환하는 텍스트 임베더가 필요합니다.
  • 임베딩 유사도를 계산하는 방법 코사인 유사도를 사용합니다.
  • 큰 문서를 임베딩 하기 위해선 문서 청킹을 사용합니다.
  • 임베딩한 문서를 저장하는 저장소로는 파인콘 등의 벡터 데이터베이스를 사용합니다.

이런 식으로 LLM을 이용하는 특정 시스템이 어떤 단계로 구성되는지, 그리고 각 단계에서 필요한 개념과 도구는 무엇인지에 대해서도 다루고 있습니다. 예시로 들어가 있는 파이썬 코드도 내용을 이해하는데 필요한 핵심 부분만 알맞게 들어가 있습니다. 흔히 발품을 팔아야 얻을 수 있는 이런 정보들을 한 권의 책에서 얻을 수 있다는 것이 신기할 따름입니다.

부담스럽지 않고 친절합니다.

비전문가 입장에서 AI 관련 서적은 일반적으로 읽기 난도가 높은 편입니다. 그리고 동시에 많은 개념을 다루어야 하는데 지면의 한계로 특정 개념에 대한 설명이 모호하거나 명확하지 않을 때도 있고, 반대로 너무 자세히 다루고 있어서 어려울 때도 있습니다.

 

하지만 이 책은 부담스럽지 않습니다. 두께도 약 300페이지 정도로 무난하고 내용을 전개할 때 필요한 개념을 적절한 설명과 적당한 분량으로 설명하고 있습니다. 부록에 FAQ와 용어 설명을 따로 지면을 할당해서 넣어 두었는데요 이 부분만 잘 읽고 가져가도 충분할 정도로 훌륭하게 정리가 되어 있습니다.

추천 독자

  • LLM을 이용한 애플리케이션이나 시스템 개발에 관심이 있는 개발자
  • ChatGPT 등 LLM 기술을 경험해 본 파이썬 개발자

 

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

이 책을 읽으면서 좋았던 부분

저자가 생각하는 LLM 의 핵심 내용들을 사례와 예제 코드로 만날 수 있다.

이 책은 전문서가 아닌 실용서다.

진짜 깊은 내용까지 다루고 있지 않음에도, 전문 지식을 갖추고 있지 않은 사람들은 책의 후반부로 갈수록 다루고 있는 내용을 한 번에 이해하기 어려울 것 같다는 생각이 들 수 있다. 하지만, 다양한 사례를 바탕으로 이해하기 쉽게 풀어내려는 노력이 보였고, 예제 코드와 예제 이미지로 이해를 돕고 있어서 이해하는데 큰 도움이 되었다. AI에 대한 경험 자체가 없어서, 용어가 익숙하지 않은 사람들은 책의 부록에 용어 설명도 포함되어 있으니 이것과 웹 검색을 적극 활용하면 도움이 될 것 같다.

 

프롬프트 엔지니어링의 중요성을 알게 해줬다.

이 책에서 LLM이라는 단어를 제외하고 가장 중요하게 다루고 있는 내용 중 하나가 프롬프트 엔지니어링이라고 생각한다. "원하는 결과를 얻으려면 질문만 잘하면 된다."라는 식으로 프롬프트 엔지니어링에 대해 추상적으로만 이해하고 있는 나를 포함한 많은 사람들에게 이것이 왜 중요한지 알려주려고 하는 것 같았다. 단순히 질문을 잘해야 한다는 내용에서 벗어나서, 어떻게 작용하는지를 설명하고 프로세스에서 중요한 요점들을 추려서 설명해주고 있어서 잘 와닿았던 것 같다. 사람의 입장에선 질문이 중요한 시대가 된 셈인데, 프롬프트 엔지니어링을 해체 분석하면서 이를 어떻게 활용해야 좋을지 생각해 보는 계기도 되었다.

 

 

요약

LLM을 처음 만나거나, 만난 지 오래되었거나, 자주 만나는 사람 모두에게 유용한 가이드북

AI 기반 지식이 아예 없는 사람이라면 이해하기 어려운 책이므로, 선행 학습을 권장

 

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

복잡한 LLM 개념을 단순화하여 쉽게 설명하고, 실용적인 조언과 예시로 가득 찬 권장 실습 리소스도 제공

 

이 책은 LLM에 대한 사전 경험이 없는 독자들도 쉽게 접근할 수 있도록 구성 되었습니다. 기본 개념부터 시작하여, 배경지식, 단계별 지침, 모범 사례, 실제 사례 분석, 그리고 실습까지 포괄적으로 다룹니다. 이를 통해 독자들은 LLM의 내부 메커니즘, GPT-4 등 최신 기술 트렌드에 대한 기본적인 이해를 넓힐 수 있습니다. 또한, LLM 작업에 필요한 실용적인 데이터셋과 코드 예제를 제공하여 학습을 돕습니다.

 

복잡한 LLM 개념을 다양한 배경을 가진 독자가 이해할 수 있도록 명확하게 설명하며, AI 기술을 실제로 활용하는 데 필수적인 지식을 제공하여, AI와 LLM에 관심 있는 이들을 위한 훌륭한 가이드가 됩니다.

 

도서의 순서은 실용적인 접근 방식을 취하며, 개발에 관심 있는 독자들이라면 코드 예제를 통해 LLM과 그 응용 분야에 대한 자신감 있는 이해를 얻을 수 있도록 구성하였습니다.

 

GitHub를 통해 제공되는 주피터 노트북 코드를 활용하여 이론을 실습으로 확인할 수 있습니다. 어떤 코드는 책 출간이후 더 발전된 형태로 만들어 지기도 했고, 보다 업그레이드된 버전을 추가로 안내해 주기도 합니다. 명확한 내용으로 이론을 다지고, 눈으로 코드의 흐름을 따라가면서 이해도를 높인 다음, 깃허브의 소스코드를 통해 실습을 통한 숙달이 가능합니다.

 

https://github.com/sinanuozdemir/quick-start-guide-to-llms

 

저자, 시난 오즈데미르는 Shiba Technologies와 LoopGenius의 창립자이자 CTO로, 존스 홉킨스 대학에서 데이터 사이언스를 가르치며 다양한 교육 콘텐츠를 제작해 왔습니다. 책에서 안내하는 GitHub 주소를 통해 접속하면, 저자가 제공하는 다양한 교육 리소스를 확인할 수 있습니다. 이 리소스들은 저자의 교육 과정과 실무 경험을 통해 지속적으로 업데이트되고 있으며, 독자들에게 실질적인 학습 기회를 제공합니다.

 

대부분의 강좌는 오라이리 피어슨 유료 강의인 경우가 많긴 한데, 각 유료 강좌들의 참고 링크나 공개된 주피터 노트북만 봐도 유용한 내용을 많이 얻을 수 있습니다. 이 도서는 저자가 강좌를 진행하는 일련과정 중간에 나온 중간 산출물(?)의 성격입니다. 따라서, 저자의 교육과 실무를 위한 지속적인 기술 팔로업과 동향 서베이가 반영되어 있고, 여러차례의 교육과 피교육자의 피드백을 통해 교육에 적합하도록 다듬어져 있습니다.

 

LLMs, GPT, and Prompt Engineering for Developers
  - https://github.com/sinanuozdemir/pearson-llm-dev-intro

Using Open- and Closed-Source LLMs in Real World Applications
  - https://github.com/sinanuozdemir/pearson-gpt-training-engineer

 

제 페북 LLM 기술의 최전선에 있는 개발자 지인들에게는 기대했던 '실전'적인 내용이 부족할 수 있다고 지적합니다. LLM 기술의 맨 선두에서 기술개발에 정진하는 이들에게, 이 책은 트렌드 있는 LLM의 전체 개괄을 다루면서 무엇보다 책 제목에 "실전" 이라는 단어가 있어 기대치가 너무 높은게 아닐까 생각됩니다. 하지만, 이론적 개요와 실용적인 예시 모두가 유익했으며, 주관적인 또는 객관적인 시각에서 모두, 이 책을 추천합니다.

 

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

쉽고 빠르게 익히는 실전 LLM

OpenAI의 ChatGPT의 열풍과 AI 높은 관심으로 인해 LLM이 무엇인지를 궁금해하는 사람들에게 도움이 되도록 기본적인 내용부터 활용까지를 설명해주는 도서입니다. ChatGPT 활용, LLM 임베딩, 프롬프트 엔지니어링에 대한 지식을 제공해주고 있으며, 다양한 실전 예제와 해결방법을 통해 더 나은 LLM 프로그래밍을 지원합니다.

LLM은 대규모 언어 모델로 자연어 처리(NLP) 중 언어 모델 중심으로 많은 사람들이 자신의 업무 영역에 사용을 하고자 합니다. LLM은 확률 모델을 사용하여 연속적인 토큰을 예측할 뿐이지만, 사람들은 이미 이것을 AI(인공지능)으로 인식하고 있습니다.

자연어 내에서 LLM의 위치는 어디쯤인지와 트랜스포머와 인코더, 전이학습, 파인튜닝, 임베딩, 어텐션, 토큰화 등을 설명해줍니다. 이 책에는 이해하기 쉽고 무엇이 수행되고 있는지를 보여주는 파이썬 코드들이 있습니다. 이 책의 프롬프트 엔지니어링에 대한 내용은 LLM으로부터 훨씬 나은 결과를 얻는 방법도 알려줍니다.

이 책의 목표는 모델 선택, 데이터 형식, 파인튜닝 파라미터, 그리고 더 많은 것에 가장 좋은 선택을 내릴 수 있도록 모델의 내부 작동 원리에 대한 충분한 통찰력을 제공하는 동시에, 모든 종류의 LLM을 실용적인 애플리케이션을 위해 어떻게 사용하고 훈련하며 최적화할지에 대한 방법을 안내하는 것입니다.

 

도서 목차

1 : LLM 소개

1장 : LLM

2장 : LLM을 이용한 의미 기반 검색

3장 : 프롬프트 엔지니어링의 첫 번째 단계

2 : LLM 활용법

4장 : 맞춤형 파인튜닝으로 LLM 최적화하기

5장 : 고급 프롬프트 엔지니어링

6장 : 임베디와 모델 아키텍처 맞춤화

3 : 고급 LLM 사용법

7장 : 파운데이션 모델을 넘어서

8장 : 고급 오픈 소스 LLM 파인튜닝

9장 : LLM을 프로덕션 환경에서 사용하기

 

 

PART 1. LLM 소개

1장 : LLM

LLM(Large Language Model) 대규모 언어 모델은 대부분 트랜스포머 아키텍처에서 파생된 AI 모델로, 사람의 언어, 코드 등을 이해하고 생성하기 위해 설계되었습니다. 이러한 모델은 방대한 양의 텍스트 데이터로 학습되어, 사람 언어의 복잡성과 뉘앙스를 포착할 수 있습니다. LLM은 간단한 텍스트 분류부터 텍스트 생성에 이르기까지 언어 관련 작업을 넓은 범위에서 높은 정확도로 유창하고 유려하게 수행할 수 있습니다. LLM의 다양성과 뛰어난 성능 때문에 트랜스포머 기반의 LLM은 다양한 산업과 응용 분야에서 점점 더 가치있는 자산이 되고 있습니다.

 

트랜스포머 아키텍처 자체는 매우 인상적입니다. 이전 NLP 모델보다 훨씬 병렬화 및 확장을 할 수 있어 이전 NLP 모델로 가능하지 않던 훨씬 큰 데이터셋과 훈련 시간을 지원할 수 있습니다. 트랜스포머는 시퀀스 내 각 단어가 다른 모든 단어에 ‘주의를 기울이게’ 하여 단어 간의 장거리 종속성과 문맥 관계를 포착할 수 있게 하는 셀프 어텐션을 사용합니다. 물론 어떤 아키텍처도 완벽하지 않듯이 트랜스포머 아키텍처도 여전히 한번에 처리할 수 있는 텍스트의 최대 길이를 나타내는 입력 문맥 윈도우에 제한되어 있습니다.

자기회귀 언어모델은 문장에서 이전 토큰만을 기반으로 다음 토큰을 예측하도록 훈련합니다. 이러한 모델은 트랜스포머의 디코더 부분에 해당하며, 어텐션 헤드가 앞서 온 토큰만 볼 수 있도록 전체 문장에 마스크가 적용되어 있습니다. 자기 회귀 모델은 텍스트 생성에 이상적이며, 좋은 예로는 GPT입니다.

 

자동 인코딩 언어 모델은 손상된 버전의 입력 내용으로부터 기존 문장을 재구성하도록 훈련합니다. 이러한 모델은 트랜스포머의 인코더 부분에 해당하며, 마스크 없이 전체 입력에 접근할 수 있습니다. 자동 인코딩 모델은 전체 문장의 양방향 표현을 생성합니다. 텍스트 생성과 같은 다양한 작업에 파인튜닝될 수 있지만 주요 애플리케이션은 문장 분류 또는 토큰 분류입입니다. 좋은 예로는 BERT입니다.

 

LLM 작동원리

사전 훈련

모든 LLM은 대량의 텍스트 데이터로 특정 언어 모델링 관련 작업에 대해 사전훈련을 합니다. 사전훈련 중에 LLM은 일반적인 언어와 단어 간의 관계를 배우고 이해하려고 합니다. 모든 LLM은 서로 다른 말뭉치와 서로 다른 작업에 대해서 훈련되었습니다.

• 마스크된 언어 모델링 작업(자동 인코딩 작업) : BERT가 하나의 문장안에서 토큰의 상호작용을 인식하도록 도와줌

• 다음 문장 예측(NSP) 작업 : BERT가 문장들 사이에서 토큰이 서로 어떻게 상호작용하는지 이해하도록 도와줌

 

전이학습

전이학습은 머신러닝에서 한 작업에서 얻은 지식을 활용하여 다른 관련 작업의 성능을 향상시키는 기술입니다. LLM에 대한 전이학습은 텍스트 데이터의 한 말뭉치에서 사전 훈련된 LLM을 가져옵니다. 그리고 텍스트 분류나 텍스트 생성과 같은 특정한 ‘실제’작업을 위해 작업 특정 데이터로 모델의 파라미터를 업데이트함으로써 모델을 파인튜닝하는 것을 포함합니다.

 

파인튜닝

사전 훈련된 LLM은 특정 작업을 위해 파인튜닝될 수 있습니다. 파인튜닝은 LLM을 작업에 특화된 상대적으로 작은 크기의 데이터셋에서 훈련시켜, 특정 작업을 위한 파라미터를 조정하는 것을 의미합니다. 이를 통해 LLM은 사전 훈련된 언어에 대한 지식을 활용하여 특정 작업의 정확도를 향상시킬 수 있습니다.

 

어텐션

어텐션은 트랜스포머만이 아니라 다양한 가중치를 입력의 다른 부분에 할당하는 딥러닝 모델에서 사용되는 메커니즘입니다. 이를 통해 모델은 번역이나 요약과 같은 작업을 수행하면서 가장 중요한 정보를 우선시하고 강조할 수 있습니다. 본질적으로 어텐션은 모델이 동적으로 입력의 다른 부분에 ‘집중’할 수 있게 하여, 성능 향상과 더 정확한 결과를 이끌어냅니다. 어텐션은 트랜스포머 기반 LLM의 핵심 구성요소이며, 훈련 과정과 대상 작업 사이의 정보를 효과적으로 유지하면서 긴 텍스트 부분을 쉽게 처리할 수 있게 합니다.

 

임베딩

임베딩은 고차원 공간에서의 단어, 구절, 또는 토큰의 수학적 표현입니다. 자연어 처리에서 임베딩은 다른 단어와의 의미와 관계를 포착하는 방식으로 단어, 구절, 또는 토큰을 나타냅니다. 여러 종류의 임베딩이 가능하며, 이 중 위치 임베딩은 문장에서 토큰의 위치를 인코딩하며, 토큰 임베딩은 토큰의 의미를 임베딩합니다.

 

토큰화

토큰화는 텍스트를 가장 작은 이해 단위인 토큰으로 분해하는 과정입니다. 이 토큰들은 의미를 내포한 정보 조각이며, 어텐션 계산에 입력으로 사용되어 LLM이 실제로 학습하고 작동하게 됩니다. 토큰은 LLM의 정적 어휘를 구성하며, 항상 전체 단어를 나타내는 것이 아닙니다.

 

현재 많이 사용되는 LLM

BERT : 구글에서 만든 것으로 문장의 양방향 표현을 구성하기 위해 어텐션 메커니즘을 사용하는 자동 인코딩 모델입니다. 이 접근법은 문장 분류와 토큰 분류 작업에 이상적입니다.

GPT : OpenAI에서 만든 것으로 어텐션 메커니즘을 사용하여 이전 토큰을 기반으로 시퀀스에서 다음 토큰을 예측하는 자기회귀 모델입니다. 주로 텍스트 생성에서 사용되며, 사람이 쓴 것처럼 자연스러운 텍스트를 생성할 수 있는 능력으로 알려져 있습니다.

T5 : 구굴에서 만든 것으로 텍스트 분류, 요약, 생성에 이르기까지 여러 NLP 작업을 수행하기 위해 설계된 순수한 인코더/디코더 트랜스포머 모델입니다. 실제로 이러한 성능을 체감할 수 있었던 최초의 인기 있는 모델 중 하나입니다.

 

2장 : LLM을 이용한 의미 기반 검색

텍스트 임베딩은 단어나 구문을 그들의 맥락적 의미를 기반으로 다차원 공간에서 기계가 읽을 수 있는 수치 벡터로 표현하는 방법입니다. LLM을 활용한 텍스트 임베딩을 통해 단어와 문구의 표면적인 구문이나 철자를 넘어서는 의미를 포착할 수 있습니다. 이러한 텍스트 임베딩을 이용하면 언어 사용에 관한 풍부한 정보를 활용하여 LLM의 사전 훈련과 파인튜닝이 기반이 되는 애플리케이션을 거의 무한하게 구축할 수 있습니다.

 

비대칭적 의미 기반 검색

의미 기반 검색 시스템은 사용자 쿼리의 의미와 맥락을 이해하고, 이를 검색 가능한 문서의 의미 및 맥락과 대조할 수 있습니다. 이러한 시스템은 정확한 키워드나 n-gram 일치에 의존하지 않고도 데이터베이스에서 관련된 결과를 찾아낼 수 있으며, 사전 훈련된 LLM을 이용하여 쿼리와 문서/정보의 뉘앙스를 이해합니다.

 

텍스트 유사도

텍스트를 벡터로 변환하면, 텍스트 조각끼리 서로 ‘유사’한지 여부를 파악하기 위해 수학적으로 표현해야 합니다. 코사인 유사도는 두 벡터가 얼마나 유사한지를 측정하는 방법입니다. 이것은 두 벡터 사이의 각도를 살펴보고, 방향이 얼마나 가까운지에 따라 점수를 매깁니다. 같은 방향이면 1이고, 수직이면 0, 다른 방향이면 -1입니다.

 

3장 : 프롬프트 엔지니어링의 첫 번째 단계

프롬프트 엔지니어링은 효과적으로 작업을 전달하여 정확하고 유용한 출력을 반환하도록 유도하는 LLM에 대한 입력(프롬프트)을 만드는 것입니다. 프롬프트 엔지니어링은 언어의 뉘앙스, 작업 중인 특정 도메인, 그리고 사용 중인 LLM의 능력과 한계를 이해하는 기술이 필요합니다.

 

언어 모델에서 정렬

프롬프트 엔지니어링이 LLM 애플리케이션 개발에 중요한 이유를 이해하려면 LLM이 어떻게 훈련되는지 뿐만 아니라 언어 모델이 어떻게 사람의 입력에 정렬되는지를 이해해야 합니다. 언어 모델에서의 정렬이란 모델이 사용자가 예상한 것과 ‘일치하는’ 방식으로 입력 프롬프트를 이해하고 답변하는 것입니다.

 

직접 요청하기

명령어 정렬 언어 모델을 위한 프롬프트 엔지니어링의 첫 번째이자 가장 중요한 규칙은 요청하는 내용이 최대한 명확하고 직접적이어야 한다는 것입니다. LLM에 작업을 요청할 때, 그 작업을 가능한 한 명확하게 전달하는 게 중요합니다. 더 명확한 LLM의 답변을 위해, 접두사를 추가함으로써 작업에 대한 입력과 출력을 명확하게 표시할 수 있습니다.

 

퓨샷 학습

퓨샷 학습은 LLM에 작업의 몇 가지 예제를 제공하여 문제의 맥락과 애매한 차이를 이해하는 데 도움을 주는 강력한 기술입니다. 퓨샷 학습은 특정한 어조, 구문 또는 스타일이 필요한 작업과 특정 도메인에 특화된 언어를 다룰 때 특히 유용합니다.

 

프롬프트 엔지니어링은 언어 모델의 성능을 향상시키는데 중요한 과정입니다. 프롬프트를 설계학고 최적화하면 언어 모델이 사용자의 입력을 더 잘 이해하고 이에 정확한 답을 하도록 만들 수 있습니다.

 

 

PART 2. LLM 활용법

4장 : 맞춤형 파인튜닝으로 LLM을 최적화하기

파인튜닝은 이미 만들어진 모델을 업데이트해서 더 높은 품질의 결과를 만듭니다. 사용하는 토큰을 절약하고, 더 빠른 답변을 만들 수 있습니다. GPT와 같은 광범위한 텍스트 데이터로 사전 훈련된 LLM들은 훌륭한 퓨샷 학습 능력을 갖고 있지만, 수 많은 예제를 통해 모델을 미세하게 조정하는 파인튜닝으로 한 단계 더 발전해 다양한 작업에서 뛰어난 성능을 발휘할 수 있습니다.

 

파인튜닝은 전이학습을 기반으로 합니다. 전이학습은 사전 훈련된 모델을 활용해 새로운 작업이나 분야에 기존 지식을 적용하는 기술입니다. 파인튜닝은 사전 훈련된 파라미터들을 ‘최종’목표 작업에 더 잘 맞게 조정하는 전이학습의 특별한 형태입니다. 파인튜닝을 통해 LLM은 맞춤화된 예시를 학습하여 관련성이 높고 정확한 답변을 더욱 효율적으로 생성할 수 있습니다.

 

딥러닝 주요 용어

• 훈련셋(Training Set) : 모델을 훈련시키기 위해 사용되는 레이블이 달린 예시의 모음입니다. 모델은 훈련 예시를 기반으로 조정하여 데이터의 패턴과 관계를 인식하게 됩니다.

• 검증셋(Validation Set) : 훈련셋과 별개로 훈련 중 모델의 성능을 평가하기 위해 사용되는 레이블이 달린 예시의 모음입니다.

• 테스트셋(Test Set) : 훈련셋과 검증셋 모두와 별개인 레이블이 지정된 세 번째 예시 모음입니다. 이는 훈련과 파인튜닝 과정이 완료된 후 모델의 최종 성능을 평가하는 데 사용하거나 처음 접하는 새로운 데이터를 일반화하는 모델의 능력이 편향되어 있지 않은지 최종 평가하는데 사용합니다.

• 손실 함수(Loss Fucntion) : 모델의 예측 값과 실제 목표 값 사이의 차이를 정량화하는 함수입니다. 이것은 모델의 성능을 평가하고 최적화 과정을 안내하는 오차의 지표 역할을 합니다. 손실 함수를 최소화해 더 나은 예측을 달성하는 것이 모델을 훈련하는 목표입니다.

 

파인튜닝 과정

1. 레이블이 지정된 데이터 수집

2. 하이퍼파라미터 선택

3. 모델 적응

4. 평가와 반복

5. 모델 구현 및 추가 학습

 

파인튜닝 데이터를 선택할 때 고려해야할 사항

• 데이터 품질 : 파인튜닝에 사용되는 데이터가 고품질이어야 하며, 노이즈가 없어야 하고, 대상 도메인이나 작업을 정확하게 대표해야 합니다.

• 데이터 다양성 : 데이터셋이 다양하게 구성되어야 하며, 다양한 시나리오를 포괄하여 모델이 다른 상황에서도 잘 일반화될 수 있어야 합니다.

• 데이터 균형 : 다양한 작업과 도메인 간의 예제 분포를 균형 있게 유지하면 모델의 성능에서 과적합과 편향을 방지할 수 있습니다. 이는 다수 클래스의 샘플링을 줄이고, 소수 클래스의 샘플링을 늘리고, 합성 데이터를 추가함으로써 불균형 데이터셋에서도 달성할 수 있습니다.

• 데이터 양 : 모델을 파인튜닝하기 위해 필요한 데이터의 총량을 결정합니다. 일반적으로 LLM과 같은 대규모 언어 모델은 다양한 패턴을 효과적으로 파악하고 학습하기 위해 더 광범위한 데이터를 요구하지만, LLM이 유사한 데이터에 대해 사전 훈련되었다면 더 작은 데이터셋으로도 충분할 수 있습니다. 필요한 데이터의 정확한 양은 수행 중인 작업의 복잡성에 따라 달라질 수 있습니다. 대량의 훈련 데이터를 사용하면 모델 성능을 향상시킬 수 있지만, 모델 훈련과 파인튜닝에 필요한 컴퓨팅 자원도 증가합니다.

 

파인튜닝 사전 작업

• 중복 제거 : 최고 데이터 품질을 보장하기 위해, 데이터셋에서 중복된 데이터를 제거합니다.

• 데이터 분할 : 데이터셋을 훈련, 검증, 테스트셋으로 나누어, 각 셋에 예제의 무작위 분포를 유지합니다.

• 훈련 데이터 섞기 : 파인튜닝 전에 훈련 데이터를 섞는 것은 모델이 예제를 무작위 순서로 만나게 하여 훈련 과정에서의 편향을 피하는 데 도움이 됩니다.

 

하이퍼파라미터 최적화

• 학습률(Learning Rate) : 학습률은 모델이 최적화하는 동안 수행하는 단계의 크기를 결정합니다. 학습률이 작을수록 수렴 속도는 느려지지만 정확도가 잠재적으로 올라갈 수 있습니다. 학습률이 클수록 학습 속도는 빨라지지만 모델이 최적의 솔루션을 오버슈팅할 수 있습니다.

• 배치 크기(Batch Size) : 배치 크기는 모델 업데이트의 단일 반복에서 사용된 훈련 예제의 수를 나타냅니다. 배치 크기가 클수록 더 안정적인 기울기와 더 빠른 학습 속도를 얻을 수 있습니다. 반면 배치 크기가 작을수록 모델은 더 정확해지지만, 수렴 속도는 더 느려질 수 있습니다.

• 훈련 에포크(Training Epoch) : 한 번의 에포크는 전체 훈련 데이터셋을 완전히 한 번 통과하는 것입니다. 훈련 에포크의 수는 모델이 데이터를 반복해서 학습하고 파라미터를 파인튜닝하는 횟수를 결정합니다.

 

5장 : 고급 프롬프트 엔지니어링

프롬프트를 향상시키고, 성능을 최적화하며, LLM 기반 애플리케이션의 보안을 강화하는 것이 목표입니다.

 

프롬프트 인젝션 공격

프롬프트 인젝션 공격은 공격자가 LLM에 제공된 프롬프트를 조작하여 편향된 또는 악의적인 결과를 생성하려고 할 때 사용하는 공격 유형입니다. 이는 민감하거나 고위험 애플리케이션에서 사용되는 LLM에 중대한 문제가 될 수 있으며, 잘못된 정보의 확산이나 편향된 컨텐츠의 생성으로 이어질 수 있습니다.

 

입력/출력 유효성 검사

LLM을 보호하고 정확한 결과를 보장하려면 입력 데이터 정제 및 데이터 유효성 검사 과정을 구현하여 잠재적으로 해롭거나 위험한 내용을 필터링하는 것이 좋습니다.

 

배치 프롬프팅

배치 프롬프팅은 파인 튜닝 모델에서 했던 것처럼 한 번에 한 샘플씩 실행하는 대신에, LLM이 일괄적으로 추론을 실행할 수 있습니다. 이 기술은 다양한 작업에서 성능을 유지하거나 경우에 따라 향상시키면서 토큰 및 시간 비용을 크게 줄입니다.

 

프롬프트 체이닝

프롬프트 체이닝은 더 복잡하거나 여러 단계의 작업을 완료하기 위해 하나의 LLM 출력을 다른 LLM의 입력으로 사용하는 것을 의미합니다. 이는 여러 LLM의 능력을 활용하고 단일 모델로는 얻을 수 없는 결과를 달성하기 위한 강력한 방법이 될 수 있습니다.

 

연쇄적 사고 프롬프트

연쇄적 사고 프롬프트는 LLM에 일련의 단계를 통해 추론하도록 하여 보다 구조화되고 투명하며 정확한 출력을 생성하는 방법입니다. 목표는 복잡한 작업을 더 작고 상호 연결된 하위 작업으로 세분화하여 LLM이 각 하위 작업을 단계별로 처리하도록 하는 것입니다. 이 방법은 모델이 문제의 특정한 측면에 ‘집중’할 수 있도록 할 뿐만 아니라 중간 결과물을 생성하여 잠재적인 문제를 식별하고 디버깅하기 쉽습니다.

 

6장 : 임베딩과 모델 아키텍처 맞춤화

LLM 구현에서 더 큰 잠재력을 발휘하기 위해서는 임베딩 모델을 파인튜닝하고 사전 훈련된 LLM 모델 아키텍처를 맞춤화하는 세계로 뛰어들 것입니다. 파운데이션 모델은 그 자체로 인상적이지만 아키텍처를 작은 규모부터 큰 규모까지 조정하면 다양한 작업에 맞게 적용하고 최적호할 수 있습니다. 이러한 맞춤화를 통해 고유한 문제를 더 잘 해결하고 LLM을 특정 비즈니스 요구에 맞게 조정할 수 있습니다.

 

추천 시스템 만들기

추천 시스템은 개인화된 추천을 생성하기 위해 사용자 특성과 아이템 특성을 모두 고려해야 합니다. 사용자 특성에는 연령, 검색 기록 및 과거 아이템 상호작용과 같은 인구통계학적 정보가 포함될 수 있으며, 아이템 특성에는 장르, 가격, 인기도와 같은 특성이 포함될 수 있습니다.

 

추천 시스템에서 탐색과 패턴 활용 사이의 적절한 균형을 찾는 것도 중요합니다. 패턴 활용이란 시스템이 사용자의 과거 선호도를 바탕으로 사용자가 좋아할 것이라고 확신하는 아이템을 추천하거나, 단순히 사용자가 이전에 상호작용한 아이템과 유사한 아이템을 추천하는 것을 말합니다. 반면에 탐색은 사용자가 이전에 전혀 고려하지 않았을 수 있는 아이템을 제안하며, 특히 추천이 과거에 그들이 좋아했던 것과 정확이 유사하지 않은 경우에 그렇습니다. 이러한 균형을 맞추는 것은 사용자가 계속해서 새로운 컨텐츠를 발견하는 동시에 관심사에 맞는 추천을 받을 수 있게 해줍니다.

 

컨텐츠 기반 추천 VS 협업 필터링

추천 엔진은 크게 두 가지 주요 접근 방식인 컨텐츠 기반 추천과 협업 필터링으로 나눌수 있습니다. 컨텐츠 기반 추천은 추천되는 아이템의 특성에 초첨을 맞추며, 이를 활용하여 사용자의 과거 상호작용을 기반으로 비슷한 컨텐츠를 추천합니다. 반면에, 협업 필터링은 사용자의 선호도와 행동을 활용하여 유사한 관심사나 취향을 가진 사용자 간의 패턴을 식별하여 추천을 생성합니다.

추천 기술 측면에서 볼 때, 컨텐츠 기반 추천과 협업 필터링 추천의 요소를 모두 결합한 접근 방식을 사용하는 것이 좋습니다. 각 애니메이션의 특성을 바이-인코더의 입력으로 사용하여 컨텐츠 기반 측면을 활용합니다. 동시에 사용자의 선호도와 행동을 기반으로 나온 자카드 점수를 고려하여 협업 필터링을 통합합니다.

 

 

PART 3. 고급 LLM 사용법

7장 : 파운데이션 모델은 넘어서

기존 모델들을 결합하여 새로운 LLM 아키텍처를 구축하는 개념으로 다양한 모델을 결합함으로써, 그들의 강점을 활용하여 개별 모델보다 더 잘 수행하거나 이전에는 불가능했던 작업을 수행할 수 있는 하이브리드 아키텍처를 만들수 있습니다. 예를 들어 시각적 추론 작업을 해결하기 위해 BERT의 텍스트 처리 기능, 비전 트랜스포머의 이미지 처리 기능, 그리고 오픈 소스 GPT-2의 텍스트 생성 기능을 결합한 멀티모달 시각화 질문-답변 시스템을 구축할 것입니다. 또한 강화 학습 분야를 탐구하고 이것이 사전 훈련된 LLM을 파인튜닝하는데 어떻게 사용될 수 있는지 살펴볼 것입니다.

 

사례 연구 : 시각적 질문-답변(VAQ)

시각적 질문-답변은 이미지와 자연어 모두에 대한 이해와 추론이 필요한 어려운 작업입니다. 이 작업은 주어진 이미지와 관련된 자연어로 된 질문에 올바르게 답하는 텍스트 답변을 생성하는 것이 목표입니다.

 

여기서 구축할 멀티모달 시스템에서는 세 가지 기초 모델인 ViT, GPT-2, DistilBERT를 소개합니다. 텍스트 프로세서인 DistilBERT는 속도와 메모리 효율성을 위해 최적화된 인기 있는 BERT 모델의 증류 버전입니다. 이 사전 훈련된 지식 증류를 사용하여 더 큰 BERT 모델에서 더 작고 효율적인 모델로 지식을 전달할 것입니다. 이미지 프로세서인 ViT는 이미지 이해를 위해 특별히 설계된 트랜스포머 기반 아키텍처입니다. 이 모델은 이미지에서 관련된 특징을 추출하기 위해 셀프 어텐션 메커니즘을 사용합니다. 텍스트 인코더인 GPT-2는 대량의 텍스트 데이터에 대해 사전 훈련된 오픈 소스 생성 언어 모델입니다. GPT-2는 약 40GB의 데이터에 대해 사전 훈련되었으므로, 이 또한 전이학습 덕분에 훈련 중에 도움이 될 단어에 대한 사전 지식을 가지고 있습니다.

 

은닉 상태 투영과 융합

텍스트와 이미지 입력을 각각의 모델(DistillBERT와 ViT)에 넣으면, 이들은 입력의 유용한 특징 표현을 포함하는 출력 텐서를 생성합니다. 그러나 이러한 특징이 반드시 같은 형식으로 되지는 않으며, 차원 수가 다를 수가 있습니다. 이러한 불일치를 해결하기 위해, 선형 투영 계층을 사용하여 텍스트와 이미지 모델의 출력 텐서를 공유 차원 공간에 투영합니다. 이를 통해 텍스트와 이미지 입력에서 추출된 특징들을 효과적으로 결합할 수 있습니다. 그리고 이를 디코더(GPT-2)에 입력하여 일관되고 관련 있는 텍스트 답변을 생성합니다.

 

크로스-어텐션

크로스-어텐션은 멀티모달 시스템이 텍스트와 이미지 입력 사이의 상호작용 및 생성하고자 하는 출력 텍스트를 학습할 수 있게 해 주는 메커니즘입니다. 이는 기본 트랜스포머 아키텍처의 핵심 구성 요소로, 입력에서 출력으로 정보를 효과적으로 통합할 수 있게 해 줍니다.

 

사례 연구 : 피드백 기반 강화 학습

사람으로부터 또는 자동화된 실시간 피드백을 사용하여 생성된 텍스트를 성능 측정으로, 또는 모델을 최적화하기 위한 손실 함수로 사용할 수 있다면 어떨까? 바로 피드백 기반 강화 학습(RLF), AI 피드백 기반 강화 학습이 등장합니다. 강화 학습 방법을 사용하면 실시간 피드백을 사용하여 언어 모델을 직접 최적화할 수 있습니다.

 

훈련 과정은 총 3가지 핵심 단계로 나뉩니다.

1. 언어 모델의 사전 훈련

2. 보상 모델 정의(잠재적 훈련)

3. 강화 학습으로 언어 모델을 파인튜닝하기

 

8장 : 고급 오픈 소스 LLM 파인튜닝

이 책의 목적 중 LLM에 대해 소개해 주는 부분 이외에도 작은 오픈 소스 모델들도 적절한 데이터와 파인튜닝을 통해 GPT-4와 같은 거대한 클로즈드 소스 모델들만큼 훌륭한 모델을 만들 수 있다는 것을 보여주고자 합니다.

 

예시 : BERT를 이용한 애니메이션 장르 다중 레이블 분류

장르 예측 모델의 성능을 평가하기 위해 항목 집합 간의 유사성을 측정하는 지표인 자카드 점수를 사용할 것입니다 이 점수는 각 애니메이션 타이틀에 대해 장르를 예측하는 모델의 정확도를 평가할 수 있기 때문에 항목 당 여러 레이블을 예측하는 다중 레이블 장르 예측 작업에 적합합니다.

 

 

대표사진 삭제

모델 파인튜닝 과정

오픈 소스 LLM 파인튜닝을 위한 일반적인 팁

- 데이터 준비 + 피처 엔지니어링

- 배치 크기 및 기울기 누적 조정하기

- 동적 패딩

- 혼합 정밀도 훈련

- 파이토치 2.0 통합

- 결과 요약

- 모델 동결

 

9장 : LLM을 프로덕션 환경에서 사용하기

LLM을 활용할 수 있는 능력이 커짐에 따라, 더 많은 사람과 공유할 수 있도록 이러한 모델을 프로덕션에 배포하는 필요성도 커지고 있습니다.

 

클로즈드 소스 LLM을 프로덕션 환경에 배포하기

비용 예측

클로즈드 소스 모델의 경우 비용 예측은 주로 API 사용량과 관련이 있습니다. 이는 일반적으로 이런한 모델에 접근하는 방식이기 때문입니다.

 

API 키 관리

API 키를 관리함에 있어 노출되지 않도록 주의해서 관리해야 하며, 잠재적인 키 유출의 영향을 최소화하기 위해 정기적으로 API 키를 교체해야 합니다. 또한 필요한 최소한의 권한만을 가진 키를 사용하도록 해야 합니다.

 

프로덕션 환경에 오픈 소스 LLM 배포하기

추론을 위한 모델 준비

훈련을 마친 모델을 프로덕션에 바로 사용할 수는 있지만, 프로덕션 추론을 위한 머신러닝 코드를 추가적인 작업을 통해 최적화하는 것이 좋습니다.

 

상호 운용성

모델은 기본적으로 상호 운용 가능하도록 하는 것이 유익합니다. 이는 모델이 다양한 머신러닝 프레임워크에서 사용될 수 있음을 의미합니다. 인기 있는 방법 중 하나로 ONNX를 사용하는 것으로, 이는 머신러닝 모델을 위한 개방형 표준 형식입니다.

 

양자화

양자화는 신경망의 가중치와 편향의 정밀도를 줄이는 기술입니다. 이는 더 작은 모델 크기와 빠른 추론 시간을 결과로 가져오며, 모델 정확도에는 약간의 감소가 있습니다.

 

가지치기

가지치기는 LLM의 크기를 줄이는 데 도움이 되는 또 다른 기술입니다. 이는 신경망에서 모델의 출력을 가장 적게 기여하는 가중치를 제거함으로써 모델의 복잡성을 줄이는 작업을 의미합니다. 이는 더 빠른 추론 시간과 더 작은 메모리 사용하여, 자원이 제한된 환경에서 모델을 배포하는 데 특히 유용합니다.

 

지식 증류

지식 증류는 더 큰 모델이나 모델 앙상블의 행동을 모방하려는 더 작은 모델을 생성하는데 사용되며, 더 효율적으로 실행될 수 있는 컴팩트한 모델을 결과로 만듭니다. 자원이 제한된 환경에서 배포할 때 유익합니다.

 

LLM 사용에 대한 비용 예측

오픈 소스 모델의 경우, 비용 추정은 모델을 호스팅하고 실행하는 데 필요한 컴퓨팅 및 저장 공간 자원을 모두 고려합니다. 이러한 비용을 정확하게 예측하려면 애플리케이션의 요구사항, 선택한 클라우드 제공업체의 가격 구조, 모델의 자원 요구사항에 대한 포괄적인 이해가 필요합니다.

 

Hugging Face에 올리기

Hugging Face를 저장소로 사용하고자 한다면, 아래와 같은 단계로 진행해야 합니다. 모델 준비하기, 라이선스 선택하기, 모델 카드 작성하기, 저장소에 모델 푸시하기 입니다.

 

책의 총평

프롬프트 엔지니어링과 관련한 내용부터 LLM 기초, 활용, 배포까지 다양한 부분에 대해 상세하게 가르쳐 준 책으로 LLM에 관심이 있는 사람이라면 한번 쯤은 읽어볼만한 도서입니다. 하지만 깊이가 없는 사람들에게는 이해가 어려울 수 있고, 번역된 용어가 개발자인 나 조차도 이해하기 어렵게 된 부분들이 있었습니다. 가이드 문서로 적합하니 너무 깊이 있는 것을 원한다면 다른 도서도 같이 활용해야 할것입니다.

최근에 컴퓨터 비전 위주의 책을 읽다보니, 언어 모델에 대해서도 호기심이 더 생긴거 같긴 합니다.

 

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

 

 

 

트랜스포머 아키텍처

  • 2017년 Google Brain 팀에서 발표한 딥러닝 모델이다.
  • 학계와 산업에서 다양한 자연처 처리 작업을 다루는데 표준이 되었다.
  • LLM은 대부분 트랜스포머 아키텍처를 기반으로 한 AI 모델로, 간단한 텍스트 분류부터 텍스트 생성까지 다양한 언어 관련 작업을 높은 정확도와 유창하고 유려하게 수행할 수 있다.

 

LLM이란

  • LLM에 대한 정의를 설명하기 위해 다음과 같은 특징들을 설명하고 있다.
    • 시퀀스 투 시퀀스
      • 인코더
      • 디코더
    • 자기회귀 모델, 자동 인코딩 모델, 자기회귀와 자동 인코딩의 조합
    • 사전학습 (pre-training), 전이학습 (Transfer Learning), 파인튜닝 (Fine-Tuning)
    • 정렬 + RLHF 등…
  • BERT, GPT, T5와 같은 언어 모델부터 Alignment, RLHF까지 고전적인 방법부터 최신 기술까지 폭넓게 다루고 있다. 어느 정도 경험이 있는 사람들은 알고 있던 내용을 다시 한 번 정리할 수 있고, 처음 접하는 사람들도 빠르게 트렌드를 파악할 수 있을 것이다.

 

ChatGPT를 이용한 프롬프트 엔지니어링

LLM에게서 원하는 출력을 이끌어내기 위해서는 효과적인 프롬프트가 중요하다.

  • 3장에서는 이에 대한 퓨샷 학습, JSON 형태로의 출력 구조화, 페르소나 등에 대해 설명한다.
  • 5장에서는 프롬프트를 향상시키고, 성능을 최적화하며, LLM 기반 어플리케이션의 보안을 강화하는 방법에 대해 설명한다.

따라서 자연스럽게 유효성 검사를 위해 NLI 파이프라인을 설명하는 걸로 이어진다.

위 두 챕터를 읽으면서 저자가 LLM 개발을 하면서 겪은 시행착오와 이를 해결해 나가는 과정을 엿볼 수 있었다. 파인 튜닝뿐만 아니라 프롬프트 및 이에 따른 보안도 중요하다는 것을 깨달았다.

 

고급 LLM

다른 책들과는 달리, 일반적인 파인 튜닝뿐만 아니라 모델 동결, 기울기 누적, 의미론적 다운 샘플링 등 다양한 기법들을 소개하고 설명한다. LaTex 방정식 생성 예제를 통해 이를 활용하는 방법과, SWAYER를 통해 작은 파라미터의 LLM으로도 좋은 결과를 얻는 방법을 보여준다. 또 다소 어려운 내용인 RLHF에 대해서도 상세하게 설명하고 있어 유익하다.

더불어, 프로덕션 환경에서 추론 파이프라인을 최적화하기 위한 ONNX, 양자화, 가지치기, 지식 증류 등 여러 기법들도 함께 소개한다.

 

마치며

전반적으로 자연어 처리 트렌드부터 RLHF와 같은 고급 기술까지 LLM에 대해 폭넓게 다루고 있다. 다만, BERT, T5, GPT-2와 같은 모델 대신 LLaMA와 같은 친숙한 모델을 활용했으면 더 좋았을 것 같다. 또 추론 속도 최적화 외에도 훈련 시에 적용할 수 있는 PEFT 기법도 소개했다면 좋았을 것이다. 하지만 프롬프트 엔지니어링과 강화학습에 대한 내용은 적절한 깊이와 난이도로 설명되어 있어 좋았다. 이 책은 LLM 개발자 뿐만 아니라 자연어 처리에 관심 있는 사람들에게도 추천할 만하다.

 

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

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

1. 도서 선정 이유


AI 업계에서 일하다보니 가만히 있어도 산업 동향이 들립니다. 특히 챗지피티 등장 이후로 급격하게 판도가 바뀌고 있는 것을 느끼고 있습니다. 챗지피티 이후로 1년이 지났는데 영향력은 더 강해지고, 무시할 수 없는 흐름이 되어가고 있네요. 조금 늦었지만 이제부터라도 LLM을 제대로 이해해보고자 신청하였습니다.

개발자를 비롯하여 직접 LLM을 설계를 해야하는 분이라면 LLM이 어떻게 학습하는 지 등 그 구조를 상세하게 이해하는 것이 중요할텐데요. 다만 저는 빠르게 개괄을 이해하고자 이 책을 선정했습니다. 제목부터 “쉽고 빠르게 익히는 실전 LLM”이라고하여, 전반적인 아키텍처와 실전 모델 도입 시 고려해야할 점으로 무엇을 고려해야 하는지를 배울 수 있을 거라 기대하고 읽었습니다. 
 

2. 목차 구성


책은 크게 세 부분, 1) LLM 소개, 2) LLM 활용법, 3) 고급 LLM 사용법으로 나뉘어져 있습니다. 

1부에서는 LLM이 무엇이고 어떻게 동작하는지 등 기초적인 내용을 다룹니다. 자연어 처리를 공부한 적이 있다면 다들 들어봤을 텍스트 임베딩, 어텐션, 트랜스포머와 같은 개념들을 간단하게 짚고 갑니다. 요즘엔 거의 챗지피티로 통용되는 자연어 처리 과제인 의미 기반 검색(Semantic Search)에 대해서는 한 챕터를 투자하여 설명합니다. 실전 LLM에서 사용하는 분야가 대체로 바로 저 의미 기반 검색이기 때문인 것 같습니다. LLM 도입을 위해 오픈 소스 프레임워크와 임베딩 시스템을 도입했을 때 월 비용이 얼마나 드는지 계산하는 과정(2.6 클로즈드 소스 구성 요소의 비용)은 흥미롭고 아주 유용해 보였습니다. 또 프롬프트 엔지니어링을 위한 퓨샷 러닝과 출력 구조화하기, 페르소나 지정하기를 설명합니다. 저자가 프롬프트 엔지니어링은 언어 모델의 성능을 향상시키기 위해 중요한 작업이라고 강조를 하니, 요즘 프롬프트 엔지니어를 따로 두려는 이유를 이해하게 되었어요. 

다음으로 2부에서는 LLM 활용을 위해 조금 더 딥한 내용을 다룹니다. 장기적으로 비용을 절감하기 위해 파운데이션 모델을 파인튜닝을 하는 과정, 데이커를 준비하는 방법, 실전 예제까지 제공하고 있습니다. 고급 프롬프트 엔지니어링 파트에서는 어떻게 프롬프트가 공격을 당하는지, 공격에 어떻게 대비해야하는지를 설명해줍니다. 앞서 1부에서 퓨샷 러닝 개념을 설명했다면 여기서는 코드 예제와 함께 성능을 높이는 과정도 자세하게 보여줍니다. 챗지피티 프롬프트에 요구사항을 왕창 작성하고 답변을 봤을 때 왜 그렇게 마지막 문장에만 집중해서 답변을 내놓았던 건지..챗지피티를 이해하게 되고 연쇄적 사고를 가능하게 하도록 구성(5.6 연쇄적 사고 프롬프트, 5.7 퓨삿 학습 다시보기)하는 것이 매우 중요하다는 것을 배웠네요.

여기 2부까지만 잘 익혀도 “쉽고 빠르게” LLM을 익혔다고 주장해도 될 것 같습니다. 3부는 기존 모델들을 결합해 LLM 아키텍처를 구성하는 방법, 더 정밀한 모델을 위한 파인튜닝 방법들을 설명하고 있습니다. 개인적으로 3부는 아직 어렵더라고요.. 하하 1, 2부 개념을 복습하고 코드도 직접 실행해보면서 이후에 3부를 다시 봐야겠다고 생각했습니다. 
 

3. 도서의 장단점

 

저는 이 책을 통해 우선은 LLM 개괄을 이해하는 것이 목적이었기 때문에 코드까지 깊게 확인하진 않았습니다.(사실 시간이 많이 없어서..하하) 깃허브에서 실습 데이터도 제공하고, 주피터노트북에 상세하게 주석으로 설명도 달아놓아서 이미 AI 실습을 해본 분이라면 어렵지 않게 동작시킬 수 있을 것 같습니다. 책에서 모든 코드를 설명하고 있지는 않으니 조금이라도 AI 코드 경험이 있어야 어렵지 않게 전반적인 내용을 이해할 수 있을 듯 합니다.

그리고 번역도 아주 잘되어있습니다! 간혹 특정 분야 서적들이 번역이 제대로 되어있지 않아서 불가피하게 원서까지 찾아봤다.. 라는 후기를 볼 수 있는데요, 이 책은 문장이 무슨 얘기인지 모르겠어서 다시 읽는 경우는 잘 없었습니다(다시 읽어도 제가 사전 지식이 부족해서 읽는 경우 정도..)

 

어펜딕스에서는 각종 용어 설명과 LLM과 관련된 QnA를 제공하고 있습니다. 오픈 소스 모델 배포 시 주의 사항은 무엇인지, 과적합이나 과소적합은 어떻게 다룰 수 있는지 등을 설명해줍니다.


이 책은 실용서이고 LLM이라는 방대한 개념을 근본적으로 이해시키기 위한 도서인만큼, 처음으로 LLM을 이해해보고 싶은 분이라면 강력 추천드립니다! 다만 더 나아가 LangChain 개념이나 LLM 모델의 하이퍼파라미터 튜닝 방안, LLM 모델의 거버넌스 요소(편향성, 공정성, 해석 가능성 등)까지 설명하고 있지는 않습니다. 이미 LLM을 어느 정도 이해하고 있고 다뤄본 경험이 있다면 굳이 이 책은 필요하지 않을 수 있겠네요. 그리고 딥러닝, 자연어 처리의 기본적인 개념과 파이썬 코드도 어느 정도 익힌 상태여야 잘 이해하실 것 같습니다. 책 고르실 때 고려하시길!

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

 

 

한빛미디어 서평단 <나는리뷰어다2024>에 선발되어 매달 관심 분야의 도서 한 권을 제공받고, 서평을 작성하게 되었습니다. 최근 인공지능에 대한 열기가 전세계적으로 뜨거운 만큼, 관련 도서도 잇따라 출판되고 있습니다. 전문적인 개념을 도서로 엮어 내는 시간을 고려하면, 인공지능은 특별히 빠르게 발전하고 있는 분야다보니까 조금 뒤처지는 감이 있긴 하지만, 그래도 온라인에서 얻는 정보와 오랜 기간동안 공들여 집필하고 교정한 도서에서 얻는 정보는 그 질이 다르긴 합니다. 이야기가 조금 샜는데, 하여튼 인공지능에 관심이 있는 제게는 선택지가 다양해서 리뷰할 책을 고르는 것이 즐거운 고민이었습니다. 최종적으로 고른 도서는 '쉽고 빠르게 익히는 실전 LLM'입니다.

 

 

전체 목차는 한빛미디어 홈페이지에서 확인할 수 있습니다.

 

 

ChatGPT를 시작으로 인공지능에 대한 대중의 관심이 급증하였습니다. 인공지능은 더이상 흥미로운 신기술로만 여겨지지 않고, 우리의 일상 곳곳에도 파고들었습니다. 그러면서 인공지능을 활용하는 방법을 소개하는 여러 도서들도 출판되었죠. 그런데 이 도서는 다른 도서들과는 정말 중요한 차이점이 있습니다. 단순히 인공지능의 기능에만 초점을 맞추어 뻔한 활용 방법을 나열하는 게 아니라, 인공지능을 다루는 기술을 심도있게 소개합니다. 그 깊이는 깊지만, 마냥 어렵지는 않습니다. 

 

특히 마음에 들었던 점은, 자연어 처리 분야와 언어 모델의 역사를 간단하게 정리해준 부분이었습니다. 기저에 깔린 심오한 기술은 무시하고, 인공지능의 기능적 측면에만 집중하다보면 AI를 과소평가하기 쉽습니다. 하지만 책에서는 이처럼 언어 모델의 역사를 소개해줌으로써 기술 자체의 중요성과 정통성에 대해서도 설명합니다.

 

 

 

본격적으로 언어 모델을 활용하는 방법을 소개하는 이어지는 장들도, 관련 기술을 깊이 있게 전문적으로 설명합니다. 그리고 LLM 활용 능력을 극대화할 수 있는 여러 기술을 차례대로 소개합니다. 언어 모델의 규모가 거대해져, 이제는 개인이 언어 모델을 직접 훈련하고 배포하기는 어렵습니다. 하지만 사전 학습된 LLM의 API를 사용하면 비슷한 기능을 모두 구현할 수는 있는데, 이 책에서는 이런 부분에 집중합니다. LLM이라고 하기에는 조금 부족할 수 있지만, BERT나 GPT-2와 같은 언어 모델을 파인튜닝하는 방법도 소개해주며, API를 사용하는 데서 그치지 않고 인공지능 모델을 내가 원하는 대로 직접 조작하는 방법도 소개합니다.

 

 

 

 

책이 단순히 ChatGPT와 같이 코드를 통해 조작할 수 없는 서비스를 활용하는 방법(프롬프트 엔지니어링)을 소개하는 게 아니라, 언어 모델을 코드를 통해 직접 파인튜닝한다는 점에서 특별함을 있다고 생각합니다. 개인적으로 AI 모델에 사용된 기술에 대해 잘 모르는 상태에서 인공지능 서비스를 활용하는 방법을 마구잡이로 소개하는 걸 좋아하지 않는데, 이 책은 IT 전문서적으로서의 역할을 제대로 하고 있어서 특히 유익합니다.

ChatGPT가 세상에 나오고 LLM의 힘을 보여주면서 사람들은 NLP가 모든 것을 해결해 줄 수 있는 만능의 도구처럼 생각했습니다.

하지만, 실제로 LLM을 이용한 제품이나 서비스를 구현하려고 하면 어디서부터 어떻게 시작해야 할 지 막막할 따름입니다.

'쉽고 빠르게 익히는 실전 LLM'은 개발자나 개발자가 아닌 모두에게 LLM의 개념뿐만 아니라, 이를 이용하여 실제로 제품화를 할 수 있도록 안내해주는 훌륭한 가이드입니다.

저자의 이 분야에 대한 오랜 경험을 바탕으로 LLM의 개념에서부터 LLM을 효과적으로 사용하는 데 필요한 모든 정보를 제공합니다.

Transformer와 Encoder / Decoder 설명으로부터 시작하여, Transfer Learning, Fine Tuning, Embedding, Attention, Tokenizing 등과 같이 NLP 분야의 핵심 개념들을 친절하게 설명해 줍니다.

이 책의 진짜 가치는 기본 개념 설명이 아니라, 다양한 사례를 실제로 개발한다는 것입니다.

예를 들어, VQA(Visual Question Answering) Model을 개발하는 사례를 설명하는 부분이 있습니다.

총 3개의 Open Source Model을 Fine Tuning하여 VQA Model을 개발하는 과정을 설명하고 있는데, 전체적인 과정에서 중요한 지점을 놓치지 않고 설명하며, 나아갈 방향을 정확하게 짚어줍니다.

결과가 어떤지 설명하기보다는 어떻게 LLM을 이용해서 제품을 개발하는지 전체적인 Process 설명을 좀 더 중요하게 다루고 있다는 느낌입니다.

이와 함께 최근의 기술 흐름도 놓치지 않고 소개하면서, 구현에 필요한 중요 사항들도 실제 사례 위주로 설명하는 것도 잊지 않고 있습니다.

실제 Model 개발 사례들 중에는 매우 도전적인 과제들도 있는데, 이런 과제를 수행하면서 기존 Open Source Model들을 어떻게 Customize하는지에 대한 작가 본인의 Know-How도 친절하게 전달하고 있습니다.

마무리 부분에서는 실제 개발이 완료된 Model을 제품에 적용할 경우에 현실적으로 고려해야 할 사항들을 꼼꼼하게 짚어주며 책이 끝이 납니다.

LLM을 이용해서 제품 구현을 하려는 분들에게 좋은 가이드가 아닐까 생각합니다.

제가 생각하는 이 책의 단점이라고 하면, Deep Learning, PyTorch, NLP, 특히 Transfomer에 대한 사전 지식이 있어야 이 책을

쉽게 읽어갈 수 있을 것 같습니다.

기본적인 Deep Learning 학습 방법과 PyTorch 기본 문법, Python 등의 사전 지식이 필요하다는 점이 제가 느낀 유일한 단점이었습니다.

이번에 리뷰하게 된 책은 쉽고 바르게 익히는 실전 LLM이라는 책이다.

ChatGPT, 구글 제미나이(Bard), 네이버 하이버클로바X 등 다양하게 서비스들이 많이 등장하고 있는 시점에 해당 내용을 다룬 책이라 재미있게 읽을 수 있었다.

 

책의 Part는 크게 3개로 나눠져있다.

- Part1. LLM 기본 소개

- Part2. LLM 활용

- Part3. LLM 고급

 

이 책은 다음과 같은 목표를 가지고 있다.

모델 선택, 데이터 형식, 파인튜닝 파라미터, 그리고 더 많은 것에 대해 가장 좋은 선택을 내릴 수 있도록 모델의 내부 작동 원리에 대한 충분한 통장력을 제공하는 동시에 모든 종류의 LLM을 실용적인 애플리케이션을 위해 어떻게 사용하고 훈련하며 최적화할지에 대한 방법을 안내하는 것

 

 

Part.1에서는 LLM에 대한 기본 소개를 해준다.

비전공자가 읽을 수 있도록 최대한 간단하면서도 자세하게 설명해주는 느낌을 받을 수 있었다.

BERT와 GPT 계열에 대한 차이점을 그림으로 설명해주니 이해하기가 더 쉬웠다.

 

Part.2에서 부터는 파인튜닝을 통해 LLM을 커스터마이징 할 수 있는 작업을 진행한다.

파인튜닝
LLM을 작업에 특화된 상대적으로 작은 크기의 데이터셋에서 훈련시켜, 특정 작업을 위한 파라미터를 조정하는 것

 

이러한 작업을 통해 원하는 카테고리에 대한 LLM을 만들 수 있고, 모델을 통해 서비스에 적용해볼 수 있지 않을까 하는 생각을 하게 되었다. 나중에 나에게 맞는 카테고리를 만들게 된다면 컴퓨터 혹은 게임에 대한 내용으로 만들고 싶다는 생각이 들었다.

 

Part.3 부터는 고급 LLM에 대해서 다루고 있다.

텍스트 처리 뿐 아니라 비전 트랜스포머를 통한 이미치 처리 등에 대해서 다룬다.

 

정리

LLM에 대한 정리들이 잘 되어 있는 책이다. Part.1에서 LLM에 대한 간단한 소개를 시작으로 활용, 고급에 대해서 다루고 있다. 뒤로 가면 갈수록 어려운 내용들이 많이 있지만 코드 제공을 통해 파인튜닝된 LLM을 만들어 볼 수 있다는 점에서 신기하고 재미있는 책이었다. 본인의 카테고리에 대해서 LLM을 파인튜닝하여 모델링 해보고 싶은 사람이 있다면 읽어보면 좋을 책이다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
쉽고 빠르게 익히는 실전 LLM
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
쉽고 빠르게 익히는 실전 LLM
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
쉽고 빠르게 익히는 실전 LLM
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1