[리뷰] Do it! BERT와 GPT로 배우는 자연어 처리

2022. 2. 27. 23:44·책


1. 책을 고른 이유

 저자는 이기창 님으로 ratsgo 블로그를 운영하고 한국어 임베딩이라는 책을 내신 분입니다. 한국어 임베딩을 통해 많은 걸 배웠지만 코드가 도커, 텐서플로우로 되어 있어 파이토치만 썼던 제게는 실습이 익숙하지 않았고 이해 없이 따라 하는 느낌이 강했습니다. 하지만 이 책은 파이토치의 huggingface로 이루어져 있어 실습을 하기에 수월해 보여서 선택하게 되었습니다. 또한 BERT와 GPT 베이스가 되는 Transformer의 이론적인 부분에 대해 다루기 때문에 Transformer 논문을 읽으며 어려움을 겪었던 저의 입장에서는 끌릴 수밖에 없었습니다.

2.  도움이 된 점

1. 한국어 기반 데이터셋

from ratsnlp.nlpbook.classification import ClassificationTrainArguments
from ratsnlp.nlpbook.qa import QATrainArguments

args = ClassificationTrainArguments(
    pretrained_model_name="beomi/kcbert-base",
    downstream_corpus_name="nsmc",
    downstream_model_dir="/gdrive/My Drive/nlpbook/checkpoint-doccls",
    batch_size=32 if torch.cuda.is_available() else 4,
    learning_rate=5e-5,
    max_seq_length=128,
    epochs=3,
    tpu_cores=0 if torch.cuda.is_available() else 8,
    seed=7,
)

args = QATrainArguments(
    pretrained_model_name="beomi/kcbert-base",
    downstream_corpus_name="korquad-v1",
    downstream_model_dir="/gdrive/My Drive/nlpbook/checkpoint-qa",
    max_seq_length=128,
    max_query_length=32,
    doc_stride=64,
    batch_size=32 if torch.cuda.is_available() else 4,
    learning_rate=5e-5,
    epochs=3,
    tpu_cores=0 if torch.cuda.is_available() else 8,
    seed=7,
)

다양한 한국어 데이터셋(NSMC, KLUE-NLI, 한국해양대(NER), KorQuad)을 사용해볼 수 있어서 지루하지 않았습니다. 또한 사용하기 쉽게 저자가 만든 ratsnlp 패키지를 활용만 하면 되어서 실습이 어렵지 않았습니다. 하지만 그 외에 데이터셋을 사용하지 못한다는 단점이 있습니다. 실습하기 쉽게 huggingface를 wrapper 형태로 만들었기 때문에 더 깊이 알지 못한다는 점이 아쉬웠습니다. 이 부분은 따로 huggingface를 공부해야 할 것 같습니다.

 

2. 다양한 task에 적용해 볼 수 있는 실습

이 책에서는 총 5개의 task를 실습해 볼 수 있습니다. 실습은 주로 task에 따라 어떻게 BERT, GPT모델을 변형하는지 코드를 통해 단계별로 보여줍니다. 평소 BERT만 사용해봤는데 GPT를 사용해 문장 생성에 적용하는 점이 특히 마음에 들었습니다. 또한 Colab에서 실습할 수 있도록 QR코드를 제공하며 파이토치를 이용한 간편한 학습과 간편한 웹 배포까지 보여주는 등의 엔지니어 적인 요소도 포함되어 있어 추후에 토이 프로젝트나 캐글과 같은 경진대회에서 매우 유용할 것이라고 생각합니다. 하지만 책의 절반이 실습으로 이루어져 있고 갈수록 코드만 반복되는 느낌이 드는 점은 아쉬웠습니다.

 

3.  얇지만 가볍지 않은 설명

책 분량이 250p 정도로 두껍지 않은 편이지만 이 책의 핵심인 transformer, self-attention에 대한 부분은 이해가 정말 쉽게 되어있습니다. 또한 챕터마다  추가 학습을 위한 논문과 블로그 등이 쓰여있어 이 부분까지 학습한다면 transformer에 대한 이해는 충분하다고 생각합니다. 

3. 이 책을 추천하는 사람

- huggingface 사용에 어려움이 있는 사람

- nlp 개념을 어느 정도 익히고 캐글, 프로젝트 등에 nlp를 사용해보고 싶은 사람

- 여러 task에 적용해보고 싶은 사람

- transformer 논문을 읽었는데 이해가 잘 안 되는 사람

'책' 카테고리의 다른 글

[서평] 자연어 처리를 위한 허깅페이스 트랜스포머 하드 트레이닝  (1) 2025.01.30
[리뷰] 딥워크 - 몰입의 중요성  (1) 2023.12.31
[리뷰] 영화를 빨리 감기로 보는 사람들  (0) 2023.03.12
[리뷰] 행복의 기원  (0) 2022.05.29
'책' 카테고리의 다른 글
  • [서평] 자연어 처리를 위한 허깅페이스 트랜스포머 하드 트레이닝
  • [리뷰] 딥워크 - 몰입의 중요성
  • [리뷰] 영화를 빨리 감기로 보는 사람들
  • [리뷰] 행복의 기원
gunuuu
gunuuu
주로 AI, ML에 관한 글을 씁니다.
  • gunuuu
    gunuuu
    gunuuu
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • AI/ML (11)
        • NLP (8)
        • RAG (1)
      • Pytorch (5)
      • Python (11)
      • SQL (2)
      • Causal Inference (3)
        • DoWhy (1)
      • 일상 (3)
      • 책 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    sparse vector
    인과추론
    nlp
    허깅페이스
    bm25
    미니어처 라이프 서울
    KoAlpaca
    Chain of Thought
    DetectGPT
    Tree of Thought
    line_profiler
    onnx
    인과 추론
    Low-Rank Adaptation
    벡터 db
    크레마S
    DoWhy
    itertuples
    모델경량화
    FAISS
    대규모언어모델
    window function
    SQL
    TALLRec
    PEFT
    Hybrid search
    DataDistributedParallel
    cython
    DAPT
    TAPT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gunuuu
[리뷰] Do it! BERT와 GPT로 배우는 자연어 처리
상단으로

티스토리툴바