본문 바로가기
스터디

[책] 트랜스포머를 활용한 자연어처리

by 수목원 2023. 3. 28.

한빛미디어의 트랜스포머를 활용한 자연어처리를 소개하고자 합니다.

표지 그림이 인상적인 O’reilly 의 Natural Language Processing with Transformers의 번역본으로 요즘 핫한 chatGPT계열이나 BERT의 기본이 되는 트랜스포머를 다양한 Task를 기반으로 설명하고 있으며 NER이나 MRC관련 내용들도 상세히 다루고 있습니다.

기본적으로 자연어처리(Natural Language Processing, NLP) 분야에서 가장 많이 사용되는 프로그래밍 언어 중 하나인 파이썬을 중심으로 다양한 주제들을 다루고 있습니다. 파이썬은 NLP 분야에서 자주 사용되는 라이브러리들과 함께 적절한 환경을 제공하여, 다양한 데이터 분석 및 모델링 작업을 보다 쉽게 수행할 수 있습니다. 이 서평에서는 파이썬을 활용하여 NLP 분야에서의 다양한 작업들을 다루며, 이를 통해 독자들은 자연어처리에 대한 전반적인 이해를 얻을 수 있을 것입니다.

또한, 허깅페이스(Hugging Face)라는 NLP 분야에서 매우 인기있는 오픈소스 라이브러리를 사용합니다. 이 라이브러리는 다양한 NLP 모델과 데이터를 제공하며, 이를 활용하여 자연어처리 작업을 수행할 수 있습니다. 따라서 이번 서평은 허깅페이스를 경험해보고자 하는 독자들에게 큰 도움이 될 것입니다.

내용

본 서적은 아래와 같이 11개의 챕터로 구성되어 있고 각 챕터는 다음의 내용을 두고 있습니다.

  1. 트랜스포머 소개
    • 인코더/디코더 및 트랜스포머에 대한 기본적은 부분을 설명
    • 허깅페이스를 이용하여 텍스트분류/NER(개체명인식)/MRC(질의응답)/요약 모델등을 설명
    • 더블어 허깅페이스 생태계를 이루고 있는 허브/토크나이저/데이터셋/액셀러레이터 등을 다룸
  2. 텍스트분류
    • 텍스트를 분류하고 정제 하는데 있어 어떤 데이터를 어떻게 수집하고 가공(토크나이저)하여 트레이닝 하는 부분을 설명
    • NLP를 위해 인간이 이해하는 자연어를 기계가 인지할 수 있는 부분을 설명
  3. 트랜스포머 파헤치기
    • 트랜스포머 아케텍처 소개
    • 인코더와 디코더의 자세한 부분을 설명하며 각 모듈의 사용이유와 방법
  4. 다중언어 개체명 인식
    • NER을 위해 토큰화 파이프라인 소개
    • 텍스트를 분류 하고 NER모델을 위한 토큰 과정 설명
    • 교차 언어 전이 부분이 흥미로운데 제로샷 전이와 다국어 튜닝 부분에 대한 설명
  5. 텍스트 생성
    • 대표적인 생성모델의 어려움과 GTP방식의 다양한 디코더(그리디 서치, 빔 서치)
    • 탑-k 및 뉴클레어스 샘플링
  6. 요약
    • CNN/DailyMail 데이터셋을 활용하여 허깅페이스를 활용한 요약 파이프라인 설명
    • 요즘 핫한 GTP및 BART에 관련한 내용을 개괄적으로 이해시켜줌
    • 생성모델을 통해 생성된 텍스트의 품질을 평가하는 방법
    • 요약모델 Train하고 미세 튜닝
  7. 질문 답변
    • 리뷰기반의 QA시스템을 구축하기 위해 질문에 대한 답변을 하는 기계학습
    • QA파이프라인을 통해 응답을 개선하여 품질을 높이기 위한 노력
  8. 효율적인 트랜스포머 구축
    • 의도 탐지 예제 및 모델을 만드는데 있어 제약과 최적화를 해야하는 이유와 과정을 개괄적으로 설명
    • 모델 속도를 높이는 방법과 벤치마킹 이슈 설명
  9. 레이블 부족 분제 다루기
    • 모델 학습 못지 않게 중요한 라벨링의 이슈중에 학습 데이터셋이 부족한 케이스의 이해와 설명
    • 레이블 데이터가 없거나 적은 경우 대응방안
  10. 대규모 데이터셋 수집하기
    • LLM모델이 NPL성능을 결정하지만 결국 데이터셋이 없다면 무용지물 이런 이슈를 대응할 수 있는 방법 설명
    • 토크나이저 구추구 및 바닥부터 모델 훈련시키도록 방법 소개
  11. 향후 방향
    • 트랜스포머의 확장과 비젼, 테이블 같이 데이터를 확장하는 부분에 대한 소개

이 책의 장점

  • 트랜스포머와 LLM의 발전과 함께 대규모언플(?)로 많은 관심이 쏟아지고 있어 AI붐이라고 해도 과언이 아닌 상황에서 거품을 걷어내고 원론적인 이해를 도울 수 있었음
  • 허깅페이스의 사용과 함께 상대적으로 쉽게 데이터를 핸들하고 모델을 사용하며 학습 및 평가까지 한큐에 할 수 있는 가이드를 제공
  • 어렵게 느껴질 법한 부분은 차트등의 시각화 를 통해 이해를 도움
  • 허깅페이스라는 강력한 생태계에 입문하여 헤엄칠 수 있도록 많은 내용을 다룸 명불허전 오렐리!


아쉬운점
  • 어렵다..AI에 관심은 있었지만 NPL관련 용어나 자연어처리에 익숙하지 않거나 파이썬이 생소한 독자라면 좀 더 쉬운 서적을 추천
  • 번역본이다 보니 아무래도 한글화를 진행하며 생소하거나 어색한 부분들이 존재 간략한 일례로 목차6의 ‘요약’ 이부분은 Text Summarization with Attention mechanism에 대한 부분인데 한글로 ‘요약’ 이라고 되다보니 본문요약으로 오해 pruning는 ‘가지치기’, ‘역방향 패스에서 점수 S에 대한 손실 L의 그레이디언트도 추척합니다’ 등의 문장들은 한장한장 넘김에 많은 고민이 필요했음
권장 독자

이 책은 자연어처리 분야에서 가장 핫한 기술인 트랜스포머를 다양한 Task를 기반으로 설명하고 있어, 자연어처리에 관심이 있는 독자라면 꼭 추천하고 싶은 책이며 특히, 최근에 자연어처리 분야에서 가장 많은 관심을 받고 있는 chatGPT계열이나 BERT 등의 기본이 되는 트랜스포머에 대한 이해를 돕는 책으로, 해당 기술에 대한 전반적인 이해를 할 수 있게 됩니다.

 

또한, 책에서는 허깅페이스라는 NLP 분야에서 인기 있는 라이브러리를 사용하며, 텍스트 분류, 개체명 인식, 질문 응답 등 다양한 Task에 대한 구체적인 예시와 함께 설명하고 있어, 실제로 모델을 구현하고 적용해보고자 하는 독자들에게 큰 도움이 될 것입니다.

책에서는 파이썬과 허깅페이스 라이브러리에 대한 기본적인 이해를 필요로 하기 때문에, 프로그래밍이 익숙하지 않은 독자라면 좀 더 기초적인 책을 먼저 공부한 후에 읽는 것을 추천합니다. 그러나, 자연어처리에 대한 관심과 기본적인 프로그래밍 지식이 있다면, 이 책은 매우 유익하고 가치있는 자료가 될 것입니다.