IT 현업개발자가, 별도의 광고료 없이 한빛미디어의 책만 제공받아서 작성한 서평입니다.
이번에 리뷰한 책은 핸즈온 LLM
입니다. 이 책의 특징을 한마디로 정리하면 Sentence-Transformer 와 OpenAPI 활용한 LLM 세부내용을 그림으로 설명하는 책 입니다. 이 책을 2번 이상 살펴보았고, 반복 할 때마다 Sentence-Transformer 와 OpenAPI 활용한 LLM 에 대하여 그동안 내가 잘 몰랐거나, 놓쳤던 부분이 어디고, 해당 부분이 어떠한 원리로 동작을 하고 있었는지 발견하는 내용이 많아서 좋았습니다.
파이썬을 활용한 LLM 및 자연어 처리모델에 관련한 도서들을 보면 크게 3가지 종류로 나눌 수 있습니다.
OpenAPI
사의 ChatGPT 서비스를 활용한 입문자용 도서Rule Based
기반으로 파이썬 기본 알고리즘과 머신러닝을 활용한 중급자 자연어 분석Huggingface
학습모델을 다운받아서 전이학습 하면서 LLM 모델링 실습하는 고급자 대상의 도서
파이썬과 관련한 자연어 분석 및 AI 모델링 분야는 위 나열한 순서대로 초급자, 중급자 그리고 고급자 대상의 분들이 접근하시는 내용들이 큰 틀에서 다르지 않을 것입니다. 2020년대 초반만 해도 2번의 Rule Based
기반의 내용들이 한 부분을 차지하고 있었지만 최근에는 Bert 학습모델
을 활용한 LoRA
등의 전이학습 기법이 활발해 짐에 따라 점점 그 비중이 줄어들고 있습니다.
때문에 대학교 전학년 실습과정 등이 아니면 Tf-IDF
및 Word2Vec
등의 인코딩 기법 등의 내용을 거의 다루지 않습니다. 한빛미디어
에서 최근에 출간된 쉽고 빠르게 익히는 실전 LLM(2판) 에서도 Word2Vec
와 관련한 내용은 그저 지나간 100인의 위인 이름처럼 언급만 되었을 뿐, 실질적인 내용은 다루지 않고 있습니다.
이번에 리뷰한 핸즈온 LLM 에서는 위 사진과 같이 Word2Vec
알고리즘의 Skip Gram
방식의 인코딩 및 학습 기법에 대하여, 구체적으로 어떠한 형태로 동작을 하고 있는지에 대하여 저자가 재 해석한 이미지를 중심으로 설명을 하고 있어서, 구체적인 수학적인 공식 및 논문의 이미지에 대하여 익숙하지 않은 독자여도, 작동원리에 대하여 대략적인 형태 및 내용에 대하여 이해를 할 수 있도록 도와주는 책 입니다.
대부분의 자연어처리와 관련한 책들 에서는 관련 논문의 이미지와 공식들을 근거로 설명을 합니다. 저자가 관련 내용을 재 해석 하려다 보면 의도치 않은 오류등이 발생할 수 있기 때문입니다.
이 책의 저자는 이러한 두려움(?)을 과감하게 극복하고, 저자가 세부내용을 재 구성하여 단계별 작동원리 및 내용을 설명하고 있어서 공식 및 개념에 익숙하지 않은 독자들에게도 도움이 되고, 해당 내용들에 대하여 들어봤거나 학습한 기억이 있었던 저에게도 아 이런 내용들이 있었구나?
그리고 아 내가 미처 놓친 부분으로는 이러한 내용이 있었네
와 같이 해당 내용을 새로운 시선으로 바라볼 수 있었습니다. 공식에 갇히지 않고 마치 해당 알고리즘의 내부로 들어가서 동작하는 원리들을 생생한 애니매이션으로 보는 듯한 경험을 전달해 주는 점이 좋았습니다. 때문에 1회독 2회독 할 때마다 어려운 내용에 접근한다는 두려움 보다는, 영화를 보는 듯한 재미를 전달해 주어서 좋았습니다.
아래의 책 페이지에서 보이는 것처럼 고등학교 수학
에서 다루는 수학기호 개념 까지만 활용하고 있습니다. 다른 자연어 딥러닝 도서들 처럼 어려운 공식들을 여러개 나열하며, 각각의 공식 사이의 연관관계를 설명하는 내용 까지는 다루지 않으면서도 각각의 개념들의 동작 내용을 이해할 수 있도록 정리를 해 주고 있다는 점이 이 책의 가장 큰 특징 입니다. 그러면서도 텍스트 인코딩
및 프롬프트 엔지니어링
, RAG
그리고 멀티모달 대규모 언어모델
까지 각각의 동작 내용을 대략적으로 나마 이해할 수 있도록 도와주고고, transformer 를 활용한 Python 실습코드 까지 설명하고 있습니다.
전체적으로 2번이상 책을 살펴보고 나서 느낀점은, 초보자 분들일수록 빠르게 내용들을 훝어보며 전체적인 흐름을 익히신다면 많은 도움이 되어줄 것입니다. 요즘에는 Cursor 및 ChatGPT 등에서 프롬프트 엔지니어링 으로 문장구성만 잘 하면 전체적인 실행코드는 자동으로 생성가능한 시대가 되었습니다. 따라서 대략적인 개념 및 작동내용에 대하여 익숙해 지신다면 “챗봇 만들어 줘” 와 같은 질문 대신에 다음 과 같은 질문을 하실 수 있으실 겁니다.
“sentence.csv 파일의 데이터를 KoBert 를 활용하여 인코딩 하고, “Phi-3” 모델을 활용하여 LoRA 전이학습으로 챗봇 모델을 생성해줘. 그리고 4bit 양자화로 배포 가능하도록 작게 가공해줘. 마지막으로 FastAPI 를 활용하여 해당 모델을 RestAPI 운영 가능한 코드까지 작성해 줘
마무리
세부 파트들의 작동에 대하여 **부분의 설명에 대한 이미지들이 숫자가 많고 내용이 상세하다 보니 자칫 전체적인 내용 중 해당 페이지에서 설명하는 내용
이 어느 부분에 대하여 다루고 있는지가 애매해 질 수 있어 보였습니다. 초보자가 아닌 저도 전체적인 그림만 제공하고 나머지는 공식으로 이루어진 책들에 익숙해 져서 그런지 전체적인 흐름 속에서 부분을 설명하는 내용에서는 이 내용이 어디에 해당하는 내용인가 자칫 놓치기 쉬웠습니다.
앞에서도 언급 했었던 쉽고 빠르게 익히는 실전 LLM(2판) 에서 “Chapter 1 LLM의 세계로” 를 보면 각각의 트랜스포머, BERT, GPT 에대한 전체적인 그림을 대략 20페이지 남짓으로 잘 정리하고 있습니다. 해당 내용들을 먼저 익히신 다음에 핸즈온 LLM 이 책을 중심으로 작동원리 및 내용과 실습코드를 연습하신다면 지치지 않고 흥미롭게 트랜스포머, Bert 그리고 GPT 모델에 대하여 이해하고 실습하실 수 있습니다.
그리고 완전 초보자 분들 보다는 딥러닝 기초 : CNN, RNN 에 대해서는 어느정도 이해가 있으신 분들이라면 이 책의 내용들을 거의 대부분 소화하실 수 있습니다.
예전에 밑바닥 부터 시작하는 머신러닝과 딥러닝… 시리즈가 스터디 주요한 교재로 활용되던 적이 있었습니다. 지금은 GPT 가 세부적인 코드를 작성 가능한 수준까지 다가왔기 때문에, 이때처럼 Hard Coding 이 중요하진 않게 되었습니다. 대신 이 책과 같이 전체적인 얼개 및 동작원리들을 이해한다면, 필요한 프롬프트를 보다 상세하게 정의할 수 있고, 수정 및 보완이 필요한 부분이 어떠한 내용을 같고있는지 이해한다면 해당 코드와 함께 추가하는 프롬프트가 보다 상세하고 정확하게 접근할 수 있습니다.
이와 같은 이유로 이 책과 같이 구체적인 논문내용과 공식
에 대한 설명보다는, 대략적인 동작원리 및 구체적인 연결관계
에 대한 이해를 돕는 내용들과 함께 각각의 내용과 관련한 실습코드를 제공하여 독자의 이해를 돕는 책들이 앞으로도 더욱 많아졌으면 좋겠습니다.