[도서리뷰] 한빛미디어 '트랜스포머를 활용한 자연어 처리'

이 포스트는 한빛미디어에서 출간한 '트랜스포머를 활용한 자연어 처리'을 읽고 작성한 서평입니다.

INTRO

자연어 처리(NLP) 관련 업무를 하시는 분들에게는 버트(BERT)트랜스포머(Transformer)는 새로운 세대의 출현이라고 할만큼 중요하고 필수적인 지식이 되었습니다. 특히, 최근 트랜스포머(Transformer)에서 파생되는 다양한 모델들은 문서 요약, 생성, 분류 등 다양한 곳에 활용되고 있는데, 이러한 모델들을 손쉽게 활용할 수 있도록 활용성을 높여주는 집단이 바로 이 책의 저자들이 속한 허깅페이스(Hugging Face) 입니다.

세계적으로 인정받는 허깅페이스(Hugging Face)의 개발팀이 집필하고, IT분야 집필/번역 전문가이신 박해선님이 작업해주신 멋진 책이라 기대할 수 있는 책이며, 아래에서는 개인적으로 책을 읽고 느낀 내용을 작성하였으니 필요하신 분들에게 도움이 되었으면 좋겠습니다.

[출처] 한빛미디어 추천사

책 소개

자연어를 찰떡같이 알아듣는 트랜스포머 완벽 해부하기

트랜스포머는 우리 주변에 가득하다! 트랜스포머 아키텍처는 순식간에 자연어 처리 분야를 지배했다. 기자처럼 뉴스를 작성하고, 프로그래머의 코드를 자동 완성하며, 사람들이 원하는 그림을 그려내고 있다. 이 책은 데이터 과학자나 프로그래머가 트랜스포머 모델을 훈련하고 확장할 수 있도록 허깅페이스의 트랜스포머스 라이브러리를 활용하는 실용적인 방법을 안내한다. 허깅페이스에서 트랜스포머스 라이브러리를 개발한 엔지니어들이 직접 예제 코드를 설명하며 트랜스포머의 작동 원리와 이를 사용한 문제 해결법, 실제 애플리케이션 도입법까지 차근차근 소개한다. 나만의 트랜스포머를 훈련시키는 방법을 배우고 자연어 처리를 정복해보자.

이 책의 구성

  • 트랜스포머를 입맛에 맞게 조정하고 싶은 데이터 과학자와 머신러닝 엔지니어
  • 자기만의 자연어 처리 애플리케이션을 만들고 싶은 개발자

주요 내용

  • 텍스트 분류, 개체명 인식 등 NLP 작업을 위한 트랜스포머 모델을 빌드 및 디버깅, 최적화하는 방법
  • 언어 간 전이 학습에 트랜스포머를 사용하는 방법
  • 레이블링된 데이터가 부족한 상황에서 트랜스포머를 적용해 모델 성능을 높이는 방법
  • 지식 정제와 양자화, 가지치기 같은 기술을 사용한 트랜스포머 모델 효율화 방법
  • 대규모 트랜스포머 모델을 밑바닥부터 훈련하고 여러 GPU 및 분산 환경으로 확장하는 방법

목차

CH1. 트랜스포머 소개

  1. 인코더-디코더 프레임워크
  2. 어텐션 메커니즘
  3. NLP의 전이 학습
  4. 허깅페이스 트랜스포머스
  5. 트랜스포머 애플리케이션 둘러보기
  6. 허깅페이스 생태계
  7. 트랜스포머의 주요 도전 과제
  8. 결론

CH2. 텍스트 분류

  1. 데이터셋
  2. 텍스트에서 토큰으로
  3. 텍스트 분류 모델 훈련하기
  4. 결론

CH3. 트랜스포머 파헤치기

  1. 트랜스포머 아키텍처
  2. 인코더
  3. 디코더
  4. 트랜스포머 유니버스
  5. 결론

CH4. 다중 언어 개체명 인식

  1. 데이터셋
  2. 다중 언어 트랜스포머
  3. XLM-R 토큰화
  4. 개체명 인식을 위한 트랜스포머
  5. 트랜스포머 모델 클래스
  6. NER 작업을 위해 텍스트 토큰화하기
  7. 성능 측정
  8. XLM-RoBERTa 미세 튜닝하기
  9. 오류 분석
  10. 교차 언어 전이
  11. 모델 위젯 사용하기
  12. 결론

CH5. 텍스트 생성

  1. 일관성 있는 텍스트 생성의 어려움
  2. 그리디 서치 디코딩
  3. 빔 서치 디코딩
  4. 샘플링 방법
  5. 탑-k 및 뉴클리어스 샘플링
  6. 어떤 디코딩 방법이 최선일까요?
  7. 결론

CH6. 요약

  1. CNN/DailyMail 데이터셋
  2. 텍스트 요약 파이프라인
  3. 요약 결과 비교하기
  4. 생성된 텍스트 품질 평가하기
  5. CNN/DailyMail 데이터셋에서 PEGASUS 평가하기
  6. 요약 모델 훈련하기
  7. 결론

CH7. 질문 답변

  1. 리뷰 기반 QA 시스템 구축하기
  2. QA 파이프라인 개선하기
  3. 추출적 QA를 넘어서
  4. 결론

CH8. 효율적인 트랜스포머 구축

  1. 의도 탐지 예제
  2. 벤치마크 클래스 만들기
  3. 지식 정제로 모델 크기 줄이기
  4. 양자화로 모델 속도 높이기
  5. 양자화된 모델의 벤치마크 수행하기
  6. ONNX와 ONNX 런타임으로 추론 최적화하기
  7. 가중치 가지치기로 희소한 모델 만들기
  8. 결론

CH9. 레이블 부족 문제 다루기

  1. 깃허브 이슈 태거 만들기
  2. 나이브 베이즈 모델 만들기
  3. 레이블링된 데이터가 없는 경우
  4. 레이블링된 데이터가 적은 경우
  5. 레이블링되지 않은 데이터 활용하기
  6. 결론

CH10. 대규모 데이터셋 수집하기

  1. 대규모 데이터셋 수집하기
  2. 토크나이저 구축하기
  3. 밑바닥부터 모델을 훈련하기
  4. 결과 및 분석
  5. 결론

CH11. 향후 방향

  1. 트랜스포머 확장
  2. 텍스트를 넘어서
  3. 멀티모달 트랜스포머
  4. 다음 목적지는?

책을 읽고

▶ 주관적인 평점 : 4.9점 / 5.0점


처음 도서를 훑어보았을 때, 입문자 분들에게는 난이도가 있을 것이라 생각을 하였습니다. 하지만, 책을 읽으면서 생각했던 대로 난이도가 있었으나 입문자 분들도 조금 더 노력하신다면 충분히 이해할 수 있을 정도의 설명이 제공되고 있었습니다.

또한, 다뤄지는 내용이 체계적이고 실용적인 부분들이 많아 어렵더라도 이 책으로 공부하시는게 좋다고 추천해 드릴 수 있을 정도였으며, 특히 자연어 처리의 처음부터 끝까지를 파이프라인 기반으로 다루면서 개념을 잡아주고 있어 다른 작업(task)을 설명하는데도 파이프라인 구조와 함께 이해할 수 있어 쉽게 이해할 수 있습니다.

개인적으로 자연어 처리를 깊게 이해하고 싶은 분들(입문자/중급자)에게 추천드리는 책입니다.

최신 QA시스템의 리트리버-리더 아키텍처

원-핫 인코딩 vs 소프트맥스 비교

관련 링크

[1] 한빛출판네트워크 - 트랜스포머를 활용한 자연어 처리
[2] 예제 소스 - github


hanbit-media-book-review