최근 사내 스터디를 위해 같이 공부할만한 책을 찾다가 알게 된 책인데요,
다양한 서적, 자료 등을 접해본 경험을 근거로, 이 책이 단연 최고의 LLM 도서 중 하나라는 생각을 하게 됐습니다.
(인공지능 관련 도서 중 최고를 꼽자면 밑바닥부터 시작하는 딥러닝, 그 다음 이 책인 것 같습니다..!)
[도서 링크]
- 교보문고: https://product.kyobobook.co.kr/detail/S000213834592
- 알라딘: https://www.aladin.co.kr/m/mproduct.aspx?ItemId=343185652
- YES24: https://m.yes24.com/Goods/Detail/129081594
[깃허브 링크]
- https://github.com/onlybooks/llm
저한테 돈 떨어지는 건 없지만 상당히 감동을 많이 받은 책이라서 링크도 포함했습니다.
아직 책을 끝까지 보지 못했지만 훑어본 내용들 & 지금까지 공부해본 내용들을 바탕으로 후기를 남겨보겠습니다.
1. 비개발자, AI를 잘 모르는 사람도 읽으면 도움이 될까요?
아니요. 상당한 배경 지식이 필요하다고 생각합니다.
만약 파이썬으로 코드를 작성해보지 않았거나, AI 모델을 직접 학습해본 경험이 없어서 코드에 대한 이해도가 낮다면 얻어가는 게 적을 것 같더라고요.
(코드가 꽤나 많이 작성되어 있습니다..!)
대신 AI에 대해서 어느 정도 이해도가 있거나, 관련된 작업들은 많이 해봤는데 디테일들에 대해서는 잘 모른다, 하는 분들에게 정말 큰 도움이 될 것 같습니다.
사실 책이 다루고자 하는 내용이 꽤나 많기도 해서 깊지 못한 내용들도 있는데요, 제가 생각하기에 LLM을 이해하는 데 필요한 정말 기초적인 배경부터 가장 트렌디한 것들까지 폭넓게 잘 커버하고 있는 것 같습니다.
솔직히 말해서 LLM으로 어플리케이션을 만든다고 하면 LLM이 뭔지 알 필요도 딱히 없긴 합니다.
그냥 OpenAI API 연결만 해서 만들어도 그만이고, 실제로 그렇게 쉽게 활용할 수 있도록 작성된 자료나 책들도 꽤 많은 것 같습니다.
그런데 이 책은 기본적인 개념과 원리에 대해서도 이해하게 쉽도록 직관적인 그림들을 이쁘게 그리기도 하고 설명도 자세히 적어놨더라고요.
개인적으로는 예전에 밑시딥을 공부하면서, '그래, 이정도는 되어야 책이지' 하면서 말 그대로 "감동"을 받은 적이 있었는데 비슷한 인상을 받았습니다.
그러나 코드를 직접 실행해 보는 것에 관심이 없거나..
low level 까지의 이해가 불필요하다고 생각하시는 분들에게는 쓸 데 없는 내용이 많은 것처럼 보일 수도 있을 것 같습니다.
2. 무슨 내용을 배울 수 있나요?
이 책은 16개의 챕터로 구성되어 있습니다.
그리고 불꽃을 통해 난이도를 표시해봤어요.
괄호 안의 숫자는 주차를 뜻해요.
총 12주차에 걸쳐 학습할 수 있도록 묶음을 만들어 봤어요.
예를 들어 (1)은 1주차이므로 1주차에는 두 개의 내용을 커버할만하다고 판단한 것입니다.
- (1) LLM 지도 🔥
- LLM에 대한 high-level 설명
- 간단히 각자 읽어도 충분할 것 같음. 1주 분량 x
- (1) LLM의 중추, 트랜스포머 아키텍처 🔥🔥🔥
- 임베딩, 어텐션, 정규화, 피드 포워드, 인/디코더 구현
- 어텐션 이후 코드가 설명과 함께 제시됨. 충분한 컨텍스트 없으면 아주 어렵게 느껴질 수 있음.
- 목적이 애플리케이션이라면 임베딩만 이해해도 충분함
- (2) 트랜스포머 라이브러리🔥🔥🔥
- 허깅페이스 라이브러리 사용한 학습 및 추론
- 모델 로드, 데이터셋 세팅, 학습, 추론 과정을 예제로 경험
- 단순 클론 코딩 난이도는 높지 않음. 그러나 배경이 없다면 이해하고 배우는 것은 불가능. 단순 라이브러리 활용 방안 습득 목적이라면 괜찮음.
- (3) 말 잘 듣는 모델 만들기 🔥
- fine-tuning, instruction-tuning, RLHF, DPO 등의 개념 위주 설명
- 줄글로 따라 읽는 내용. 1주 분량 x
- 딥하게 들어가고 싶은 경우 추가로 학습할 자료가 필요함
- (3) GPU 효율적인 학습 🔥🔥
- 자료형, GPU 사용량, gradient accumulation, 분산 학습, LoRA, QLoRA
- 실전 개발과 관련된 내용
- (4) sLLM 학습하기🔥🔥🔥
- Text2SQL 데이터셋
- 평가 파이프라인: OpenAI API를 이용한 평가 코드
- fine-tuning 후 결과 확인
- (5) 모델 가볍게 만들기 🔥🔥
- GQA, Quantization, KD, 이론 위주. 코드 x
- 디테일한 내용을 공부하고 싶으면 다른 자료 참조 필요
- (5) sLLM 서빙하기 🔥🔥
- 배치, Flash Attention, RoPE, vLLM
- 대부분 이론적. 마찬가지로 디테일을 원하면 다른 자료 필요
- (6) LLM 애플리케이션 개발하기🔥🔥🔥
- llama index를 활용한 RAG 구현
- OpenAI API 캐시 구현
- 데이터 검증, 로깅
- 본격적인 애플리케이션 시작
- (7) 임베딩 모델로 데이터 의미 압축하기🔥🔥🔥
- 인코딩, 임베딩 모델 기초 개념
- sentence transformer, faiss, bm25, 하이브리드
- (8) 자신의 데이터에 맞춘 임베딩 모델🔥🔥🔥
- contrastive learning, 임베딩 모델 학습, reranking
- (9) 벡터 데이터베이스🔥🔥🔥
- KNN → ANN, faiss, NSW
- 임베딩 생성 후 pinecone 으로 저장 → 라마인덱스에서 db로 연결
- 파인콘을 활용한 멀티 모달 검색 구현, gpt-4o로 이미지 설명 생성, DALL-E 3 이미지 생성
- (10) LLM 운영하기 🔥
- MLOps, LLMOps
- LLM 평가 - 벤치마크, 사람, LLM
- 개념, 이론 중심 설명
- 사실 LLM은 평가가 진짜 어려운데 이에 대해 너무 high-level 설명이라 조금 아쉽
- (10) 멀티모달 LLM 🔥🔥
- CLIP 이론, 트랜스포머로 로딩 및 추론, DALL-E, LLaVA 개념
- 이후 세대 모델들에 대한 이해를 높이는 데 도움은 될 수 있을 듯?
- 실습 난이도도 높지는 않음
- (11) LLM 에이전트🔥🔥🔥
- 에이전트 개념, AutoGen 실습 (OpenAI API) → RAG 에이전트, 멀티모달 에이전트
- 에이전트 구현 난이도 꽤 있어 보임. 그러나 향후 LLM 사용 방향성에 대해 많이 고민하고 배울 수 있는 내용
- (12) 새로운 아키텍쳐🔥🔥🔥
- SSM, Mamba 설명 및 Mamba 코드
- 개념 위주에 내용이 어려우나 몰라도 상관 없는 내용
내용을 보면 아실 수 있는 것처럼, 사실 어플리케이션을 만드는 내용의 비중이 엄청 크지는 않더라고요.
그래서 LLM 자체에 대해서도 조금 딥하게 공부해보고 싶은 분들께 적합한 내용 구성이 아닐까 싶습니다.
3. 어떻게 공부하는 게 좋을까요?
이것 역시 책을 통해서 얻고자 하는 바에 따라 크게 달라질 것 같습니다.
그래도 기본적으로는 '코드를 최대한 많이 실행해보는 것'이 좋다고 생각해요.
책에 적힌 내용을 눈으로 볼 때는 그냥 너무 당연하게 생각되던 것들이, 막상 직접 코드를 작성하려고 하면 아무 것도 떠오르지 않을 때가 많잖아요?
내용을 충분히 이해했는지 확인하기 위해서, 그리고 실제로 결과물을 얻기 위해서는 코드를 직접 실행하는 것 외에는 방법이 없는 것 같습니다.
권장 드리는 순서는
1. 책의 내용 읽기
2. 책의 내용을 따라 코드 실행해보기 (깃허브 참고)
3. 코드에 주석 및 해설 달아보기
입니다.
직접 코드를 전부 타이핑해보는 게 좋을 때도 있긴 한데요,
위에서 말씀드린 것처럼 이 책에 담긴 코드의 양이 적지가 않더라고요.
그래서 효율이 좀 떨어질 것 같고..!
대신 눈으로만 코드를 읽거나 무지성으로 shift + enter 실행을 하게 되면 남는 게 거의 없다보니.
이에 대해서 본인이 추가적인 설명이나 글을 작성해보는 방법이 나쁘지 않은 것 같습니다.
왼쪽은 깃허브에 업로드된 코드, 오른쪽은 제가 이에 대해서 해설을 추가한 코드입니다.
코드를 실행해서 결과도 확인해보고 필요하다면 주석, 필요하다면 해설 등을 작성하니 확실히 이해도가 올라가는 기분이더라고요.
특히나 초반에 트랜스포머 아키텍쳐에 대한 코드도 디테일하게 다루게 되는데,
그동안 LLM은 그냥 Decoder 아님? 정도로 생각했던 분들에게 많은 영감을 줄 수 있는 포인트들이 존재하는 것 같더라고요 😂
마치며..
제가 그동안 강의, 책 등등 여러 수단으로 공부하면서 그 자체에 대한 리뷰를 남긴 적은 거의 없는 것 같아요.
사실 그런 것들은 공부하고 배우기만 해도 시간이 없다보니 ㅋㅋㅋ
근데 이런 자료들이 선뜻 구매하기엔 또 비싸기도 하고, 사놓고 잘 안보는 경우도 엄청 많고 그렇잖아요.
(저는 사장님돈으로 구매했습니다... 감사합니다 🙏🏻)
그래서 한 번 살 때 굉장히 신중한 고민을 하게 되는 것 같은데 정말 추천할만한 책이라는 생각이 들어서 글을 하나 쓰게 됐네요.
당연히 LLM 잘알러에게는 필요 없으니 본인의 니즈에 맞는 소비를 하시길 바랍니다..!
다들 완독까지 화이팅~!
'딥러닝' 카테고리의 다른 글
Welcome Llama 3 - Meta’s new open LLM (HuggingFace 블로그 Llama 3 - ChatGPT 한글 번역) (1) | 2024.04.19 |
---|---|
[대학원생 필수!] 논문 관리 프로그램 Zotero 추천 (WebDAV 연결, iPad annotation 싱크 관리) (10) | 2024.03.18 |
인공지능 최신 논문/뉴스 follow-up 꿀팁 대공개!! (NLP, LLM 위주 😄) (12) | 2024.02.05 |
GPT-4의 토큰별 예측 확률을 확인할 수 있을까? (부분적으로 가능하다!) (0) | 2024.02.03 |
<KD, Hallucination> [Idk Dataset] Can AI Assistants Know What They Don't Know? (2024.01) (1) | 2024.01.28 |