실전! 프로젝트로 배우는 딥러닝 컴퓨터비전 (ebook)
28,000원
중급
도서 소개
트랜스포머 기반 언어 모델을 살펴보고 NLP 및 컴퓨터비전 작업을 탐구하면서 문제를 효과적으로 해결해 보자!
BERT, T5, GPT, DALL-E, ChatGPT 같은 트랜스포머 기반 언어 모델이 자연어 처리(NLP) 연구를 주도하며 새로운 패러다임을 형성하고 있다. 정확하고 빠른 미세조정 능력 덕분에 이 모델들은 까다로운 자연어 이해(NLU) 문제에서 전통적인 머신러닝 기반 접근 방식을 능가하는 성능을 보여준다.
트랜스포머는 NLP뿐만 아니라 현재 빠르게 성장 중인 다중 모달 학습과 생성형 AI 분야에서도 주목할 만한 성과를 내고 있다. 이 책을 통해 독자는 다양한 텍스트 기반 NLP 작업은 물론이고 텍스트-이미지 변환을 포함한 다중 모달 솔루션과 트랜스포머 기반 컴퓨터비전(CV) 솔루션도 익히고 구현할 수 있다. 이 책은 먼저 다양한 트랜스포머 모델을 소개하고, GPT나 XLNet 같은 자기회귀 언어 모델을 훈련하는 방법을 설명한다. 모델의 성능을 개선하는 방법과 텐서보드(TensorBoard) 도구모음을 이용해서 모델 훈련 과정을 추적하는 방법도 익힐 수 있다. 책의 후반부에서는 비전 트랜스포머(ViT)를 활용해 컴퓨터비전 문제를 해결하는 데 초점을 맞춘다. 마지막으로는 트랜스포머의 능력을 시계열 데이터의 모델링과 예측에 적용하는 방법을 살펴본다.
이 책을 통해 독자는 트랜스포머 모델을 이해하고, NLP와 컴퓨터비전 분야의 여러 작업을 트랜스포머로 해결하는 방법을 터득하게 될 것이다.
★ 이 책에서 다루는 내용 ★
- 간단하거나 복잡한 여러 NLP 문제를 파이썬을 이용해서 해결하는 데 집중한다.
- 전통적인 NLP 접근 방식으로 분류/회귀 문제를 해결하는 방법을 익힌다.
- 언어 모델을 학습시키고 하위 작업에 맞게 미세조정하는 방법을 이해한다.
- 생성형 AI와 컴퓨터 비전 작업에 트랜스포머를 활용하는 방법을 익힌다.
- 허깅 페이스의 Transformers 라이브러리를 이용해 트랜스포머 기반 NLP 앱을 구축한다.
- 기계번역과 대화형 AI 등 다국어 언어 생성 작업을 수행한다.
- 트랜스포머 모델의 추론 속도를 높이고 지연 시간을 단축하기 위한 효율성 개선 기법을 설명한다.
도서 소개

저자 소개
사바슈 이을드름 (Savaş Yıldırım)
사바슈 이을드름은 이스탄불 공과대학교 컴퓨터공학과를 졸업하고 트라키아 대학교에서 자연어 처리(NLP) 분야로 박사 학위를 받았다. 현재 터키 이스탄불 빌기 대학교의 부교수이자 캐나다 라이어슨 대학교의 방문 연구원으로 재직 중이다. 머신러닝(기계학습), 딥러닝, 자연어 처리 분야에서 20년 이상의 강의 경력을 가진 적극적인 강사이자 연구자이다. 여러 오픈소스 소프트웨어와 자료를 개발해서 터키 NLP 커뮤니티에 중요한 공헌을 해왔다. 또한 AI 기업들의 R&D 프로젝트에 대해 포괄적인 자문도 제공한다. 여가 시간에는 단편 영화를 쓰고 연출하며 요가를 즐긴다.
메이삼 아스가리지헤낙흘루 (Meysam Asgari-Chenaghlu)
메이삼 아스가리지헤낙흘루는 타브리즈 대학교에서 박사 학위를 취득했으며 현재 Ultimate 사(ultimate.ai)에서 AI 연구원으로 근무 중이다. 딥러닝, AI, NLP에 중점을 두고 검색 엔진부터 생성형 AI와 대규모 언어 모델에 이르는 다양한 프로젝트를 성공적으로 완수했다. 이 분야의 연구 논문을 다수 저술해서 NLP 커뮤니티에 크게 기여하고 있다.
역자 소개
307번역랩
전문 번역가의 효율적인 번역 작업을 위해 초벌 번역 및 자료 정리 서비스를 제공하는 번역 엔지니어 집단이다. 급변하는 IT 분야의 가치 있는 외국 서적을 발빠르게 국내 독자에게 전달하는 데 보람을 느낀다.
류광
커누스 교수의 《컴퓨터 프로그래밍의 예술》 시리즈를 비롯해 90여 권의 다양한 IT 전문서를 번역한 전문 번역가이다. 이 책과 연관된 번역서로는 《딥러닝을 위한 수학》 《파이썬으로 배우는 자연어 처리 인 액션》 (이안 굿펠로의) 《심층 학습》 등이 있다.
목차
- [01부] 이 분야의 최근 발전 상황, 실습 준비, 그리고 첫 번째 헬로 월드 프로그램
- ▣ 01장: BoW(단어 주머니)에서 트랜스포머까지
- 1.1 NLP 접근 방식들의 진화 과정
- 1.2 전통적인 NLP 접근 방식의 요약
- __1.2.1 언어 모델의 설계와 생성
- 1.3 딥러닝 활용
- __1.3.1 RNN 모델을 사용한 단어 순서 고려
- __1.3.2 LSTM 및 게이트 순환 유닛
- __1.3.3 문맥적 단어 임베딩과 전이 학습
- 1.4 트랜스포머 아키텍처의 개요
- __1.4.1 주의 메커니즘
- __1.4.2 다중 헤드 주의 메커니즘
- 1.5 트랜스포머를 이용한 전이 학습(TL) 활용
- 1.6 다중 모달 학습
- 요약
- 참고문헌
- ▣ 02장: 실습 환경 준비와 기본 지식
- 2.1 기술적 요구사항
- 2.2 아나콘다로 Transformer 라이브러리 설치
- __2.2.1 리눅스에 아나콘다 설치
- __2.2.2 Windows에 아나콘다 설치
- __2.2.3 macOS에 아나콘다 설치
- __2.2.4 텐서플로, 파이토치, Transformer 설치
- __2.2.5 구글 코랩에서 Transformers 설치 및 사용
- 2.3 언어 모델과 토크나이저 다루기
- 2.4 커뮤니티 제공 모델 활용
- 2.5 다중 모달 트랜스포머 활용하기
- 2.6 벤치마크와 데이터셋 활용
- __2.6.1 주요 벤치마크
- __2.6.2 GLUE 벤치마크
- __2.6.3 SuperGLUE 벤치마크
- __2.6.4 XTREME 벤치마크
- __2.6.5 XGLUE 벤치마크
- __2.6.6 SQuAD 벤치마크
- __2.6.7 API를 이용한 데이터셋 접근
- 2.7 datasets 라이브러리를 이용한 데이터 다루기
- __2.7.1 정렬, 첨자 접근, 뒤섞기
- __2.7.2 캐싱과 재사용성
- __2.7.3 filter 함수를 이용한 필터링
- __2.7.4 map 함수를 이용한 데이터 처리
- __2.7.5 지역 파일 다루기
- __2.7.6 모델 학습을 위한 데이터셋 준비
- 2.8 속도와 메모리 사용량 벤치마크
- 요약
- [02부] 여러 가지 트랜스포머 모델: 오토인코더에서 자기회귀 모델까지
- ▣ 03장: 오토인코딩 언어 모델
- 3.1 기술적 요구사항
- 3.2 BERT: 오토인코딩 언어 모델의 하나
- __3.2.1 BERT 언어 모델의 사전 훈련 작업
- __3.2.2 자세히 살펴본 BERT 언어 모델
- 3.3 임의의 언어를 위한 오토인코딩 언어 모델의 훈련
- 3.4 커뮤니티와 모델 공유하기
- 3.5 그 밖의 오토인코딩 모델들
- __3.5.1 ALBERT 소개
- __3.5.2 RoBERTa 모델
- __3.5.3 ELECTRA
- __3.5.4 DeBERTa 모델
- 3.6 토큰화 알고리즘 다루기
- __3.6.1 BPE
- __3.6.2 WordPiece 토큰화
- __3.6.3 SentencePiece 토큰화
- __3.6.4 tokenizers 라이브러리
- 요약
- ▣ 04장: 생성형 모델에서 LLM(대규모 언어 모델)으로
- 4.1 기술적 요구사항
- 4.2 GLM 소개
- 4.3 GLM 다루기
- __4.3.1 GPT 모델 계열
- __4.3.2 Transformer-XL
- __4.3.3 XLNet
- 4.4 텍스트 투 텍스트 모델 다루기
- __4.4.1 T5를 이용한 다중 작업 학습
- __4.4.2 T0 모델을 이용한 제로샷 텍스트 일반화
- __4.4.3 BART: 또 다른 잡음 제거 기반 seq2seq 모델
- 4.5 GLM 훈련
- 4.6 자동회귀 모델을 이용한 자연어 생성
- 요약
- 참고문헌
- ▣ 05장: 텍스트 분류를 위한 언어 모델 미세조정
- 5.1 기술적 요구사항
- 5.2 텍스트 분류 개요
- 5.3 단일 문장 이진 분류를 위한 BERT 모델 미세조정
- 5.4 네이티브 파이토치를 사용한 분류 모델 훈련
- 5.5 다중 클래스 분류를 위한 BERT 모델 미세조정 (커스텀 데이터셋 활용)
- 5.6 문장 쌍 회귀를 위한 BERT 모델 미세조정
- 5.7 다중 레이블 텍스트 분류
- 5.8 run_glue.py를 활용한 모델 미세조정
- 요약
- 참고문헌
- ▣ 06장: 토큰 분류를 위한 언어 모델 미세조정
- 6.1 기술적 요구사항
- 6.2 토큰 분류 소개
- __6.2.1 NER의 이해
- __6.2.2 품사 태깅의 이해
- __6.2.3 질의응답(QA(Question Answering))의 이해
- 6.3 개체명 인식을 위한 언어 모델 미세조정
- 6.4 토큰 분류를 이용한 질의응답
- 6.5 다양한 작업을 위한 질의응답
- 요약
- ▣ 07장: 텍스트 표현
- 7.1 기술적 요구사항
- 7.2 문장 임베딩 소개
- __7.2.1 교차 인코더 대 이중 인코더
- 7.3 문장 유사도 모델의 벤치마킹
- 7.4 BART 모델을 이용한 제로샷 학습
- 7.5 FLAIR를 이용한 의미 유사성 실험
- __7.5.1 평균 단어 임베딩
- __7.5.2 RNN 기반 문서 임베딩
- __7.5.3 트랜스포머 기반 BERT 임베딩
- __7.5.4 SBERT 임베딩
- 7.6 SBERT를 이용한 텍스트 군집화
- __7.6.1 BERTopic을 이용한 주제 모델링
- 7.7 SBERT를 이용한 의미 검색
- 7.8 지시문 미세조정 임베딩 모델
- 요약
- 더 읽을거리
- ▣ 08장: 모델 성능 향상
- 8.1 기술적 요구사항
- 8.2 데이터 증강을 통한 성능 향상
- __8.2.1 문자 수준 증강
- __8.2.2 단어 수준 증강
- __8.2.3 문장 수준 증강
- __8.2.4 데이터 증강을 통한 IMDb 텍스트 분류 성능 향상
- 8.3 모델을 도메인 적응시키기
- 8.4 최적의 초매개변수를 결정하기 위한 HPO 기법
- 요약
- ▣ 09장: 매개변수 효율적 미세조정
- 9.1 기술적 요구사항
- 9.2 PEFT 소개
- 9.3 여러 유형의 PEFT
- __9.3.1 가산적 방법
- __9.3.2 선택적 방법
- __9.3.3 저계수 미세조정
- 9.4 PEFT 실습
- __9.4.1 어댑터 조정을 통한 BERT 체크포인트 미세조정
- __9.4.2 NLI 작업을 위한 FLAN-T5의 효율적 미세조정 (LoRA 이용)
- __9.4.3 QLoRA를 이용한 미세조정
- 요약
- 참고문헌
- [03부] 고급 주제들
- ▣ 10장: LLM(대규모 언어 모델)
- 10.1 기술적 요구사항
- 10.2 LLM이 중요한 이유
- __10.2.1 보상 함수의 중요성
- __10.2.2 LLM의 instruction-following 능력
- 10.3 대규모 언어 모델의 미세조정
- 요약
- ▣ 11장: NLP와 설명 가능한 AI(XAI)
- 11.1 기술적 요구사항
- 11.2 주의 헤드의 해석
- __11.2.1 exBERT를 사용한 주의 헤드 시각화
- __11.2.2 BertViz를 이용한 주의 헤드의 다중 스케일 시각화
- __11.2.3 탐침 분류기를 이용한 BERT 내부 구조 이해
- 11.3 모델 결정 설명하기
- __11.3.1 LIME을 이용한 트랜스포머 결정 해석
- __11.3.2 SHAP(SHapley Additive exPlanations)을 이용한 트랜스포머 결정 해석
- 요약
- ▣ 12장: efficient transformer
- 12.1 기술적 요구사항
- 12.2 효율적이고 가볍고 빠른 트랜스포머 모델 소개
- 12.3 모델 크기 축소
- __12.3.1 DistilBERT를 이용한 지식 증류
- __12.3.2 트랜스포머 모델의 가지치기
- __12.3.3 양자화
- 12.4 효율적인 자기주의 메커니즘 활용
- __12.4.1 고정 패턴 기반 희소 자기주의
- __12.4.2 학습 가능 패턴
- __12.4.3 저계수 분해, 핵 방법 및 기타 접근 방식
- 12.5 bitsandbytes를 이용한 좀 더 쉬운 양자화
- 요약
- 참고문헌
- ▣ 13장: 교차 언어 및 다국어 언어 모델링
- 13.1 기술적 요구사항
- 13.2 번역 언어 모델링과 교차 언어 지식 공유
- 13.3 XLM과 mBERT
- __13.3.1 mBERT 모델
- __13.3.2 XLM
- 13.4 교차 언어 유사성 작업
- __13.4.1 교차 언어 텍스트 유사성
- __13.4.2 언어 간 텍스트 유사성의 시각화
- 13.5 교차 언어 분류
- 13.6 교차 언어 제로샷 학습
- 13.7 대규모 다국어 번역
- __13.7.1 미세조정한 다국어 모델의 성능
- 요약
- 참고문헌
- ▣ 14장: 트랜스포머 모델의 서비스 제공
- 14.1 기술적 요구사항
- 14.2 FastAPI를 이용한 트랜스포머 모델 서비스 제공
- 14.3 API의 도커화
- 14.4 TFX를 이용한 좀 더 빠른 트랜스포머 모델 서비스 제공
- 14.5 Locust를 이용한 부하 테스트
- 14.6 ONNX를 이용한 더 빠른 추론
- 14.7 SageMaker 추론
- 요약
- 더 읽을거리
- ▣ 15장: 모델 추적 및 모니터링
- 15.1 기술적 요구사항
- 15.2 모델 지표 추적
- __15.2.1 텐서보드를 이용한 모델 훈련 추적
- __15.2.2 W&B를 이용한 실시간 모델 훈련 추적
- 요약
- 더 읽을거리
- [04부] NLP 이외의 트랜스포머 활용
- ▣ 16장: 비전 트랜스포머(ViT)
- 16.1 기술적 요구사항
- 16.2 비전 트랜스포머(ViT)
- 16.3 트랜스포머를 이용한 이미지 분류
- 16.4 트랜스포머를 이용한 의미론적 분할과 물체 검출
- 16.5 시각적 프롬프트 모델
- 요약
- ▣ 17장: 생성형 다중 모달 트랜스포머
- 17.1 기술적 요구사항
- 17.2 다중 모달 학습
- __17.2.1 생성형 다중 모달 AI
- 17.3 텍스트-이미지 생성을 위한 스테이블 디퓨전
- 17.4 스테이블 디퓨전을 이용한 이미지 생성
- 17.5 MusicGen을 이용한 음악 생성
- 17.6 트랜스포머를 이용한 텍스트-음성 생성(음성 합성)
- 요약
- ▣ 18장: 시계열 데이터를 위한 트랜스포머 아키텍처의 재고찰
- 18.1 기술적 요구사항
- 18.2 시계열 데이터의 기본 개념
- 18.3 트랜스포머와 시계열 모델링
- 요약
예제 코드
- GitHub 저장소: https://github.com/wikibook/transformer
- ZIP 형식으로 다운로드: https://github.com/wikibook/transformer/archive/refs/heads/main.zip