티스토리 뷰

Hobby/Book

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

생각많은 소심남 2022. 12. 30. 23:48

(해당 포스트에서 소개하고 있는 "트랜스포머를 활용한 자연어 처리" 책은 한빛 미디어로부터 제공받았음을 알려드립니다.)

 

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

자연어 처리 분야에 있어 표준이 된 트랜스포머 모델을 사용해 실용적인 애플리케이션을 만들고 최적화하는 방법을 안내한다. 실습 위주로 구성되어 예제 코드를 직접 실행하면서 자신만의 실

hanbit.co.kr

아는 사람은 알겠지만 transformer 아키텍처는 2017년 google이 "Attention is all you need"이란 논문을 통해서 소개했다. 사실 이전의 NLP나 signal processing에는 LSTM이나 GRU로 대변되는 RNN 계열의 신경망으로 처리하는 방식에 비하여, 이 transformer 구조는 시퀀스 데이터에서 어떠한 패턴(예를 들어서 Attention같은 것)을 찾아내고, 대용량 데이터를 처리하는데 특화된 구조이다. 더욱이 뭔가의 RNN 계열처럼 기억소자 없는 상태에서 패턴을 찾는 방식이어서 굳이 언어처리가 아니더라도, 비전이나 의사 결정과 같은 다른 분야에도 활발하게 활용되고 있다.

이 transformer를 설명하면서 빼놓을 수 없는 것이 바로 Hugging Face라는 회사다. 원래 이 회사는 2016년 10대를 대상으로 한 챗봇을 만드는 것으로 시작하다가, 현재는 이 transformer library를 유지하고 배포하는 주요 회사 중 하나가 되었다. 그리고 이 회사가 제공하는 서비스 중 하나가 바로 model hub를 통해서 pretrained transformer model을 배포하는 것인데, 아마 개인적으로 생각하기에는 transformer를 연구하고 활용하는 사람들은 대부분 이 library를 사용할 것이다. 

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

이번에 소개할 책은 앞에서 소개한 Hugging Face사의 transformers package를 바탕으로 Text Classification, Multiligual NER, Text Generation, Summarization 등의 활용 방법을 심도있게 다룬 책이다. 이전에도 동 출판사에서 출간한 "구글 BERT의 정석" (리뷰)를 통해서 Transformer 구조의 발전된 형태인 BERT에 대해서 다룬 책이 있긴 했지만, 그 책은 실제 활용에 대한 책이라기 보다는 구조나 동작 원리, 다양한 적용분야에 대한 소개에 그쳤었던데 반해, 이 책은 진짜 python "transformers" package를 통해서 주제를 직접 구현해보는 내용을 다룬다. (참고로 "구글 BERT의 정석" 책에 몇안되는 예제 중 하나도 hugging face의 transformers package를 가지고 진행한다.)

개인적으로 생각하는 이 책의 큰 장점은 하나는 transformer 구조에 대해서 다루는 책들이 시중에 별로 없는 상황에서 그 내부와 활용방안을 디테일하게 소개해놨다는 점이다. 물론 HuggingFace사에서 자사의 패키지를 활용해서 작성한 개발서이기에 어떻게 보면 딱딱하게 느껴질 수도 있겠지만, 책을 읽어보면 구조에 대한 자세한 도식화부터 코드와 내용에 대한 기술이 유기적으로 되어 있어서 자연어처리를 주업으로 하는 사람에게는 이 transformer를 접목시키는데 큰 도움이 될 것 같다는 생각이 든다. 책중 인상깊었던 부분은 8장 효율적인 트랜스포머 구축 부분인데, 단순히 transformer 활용에만 머물지 않고, 성능 개선과 최적화에 대한 내용이 들어있고, 이에 필요한 다양한 패키지들을 접목방법에 대해서 소개한 부분이 좋았다. 혹시라고 Optuna나 Quantization 같은 기법에 대해서 관심있는 사람이라면 이 부분도 유심히 보면 좋을 것 같다.

주제가 "자연어처리"이기 때문에 비전이나 강화학습 분야를 연구하는 사람은 조금 관심이 떨어질 수 있겠지만, 혹시나 transformer구조에 대해서 관심을 가져볼까? 혹은 이런 거대모델을 학습하는 방법론에 대해서 배워볼 사람이라면 추천해볼만하다.


(아! 참고로 transformer 구조 자체가 복잡하기도 하고, 요구 연산량도 크기 때문에 그래도 어느정도 고사양의 PC가 요구된다. 역자분이 실제로 실습할 때 활용한 GPU도 Nvidia P100 (16GB)인데, 이 정도면 대략 RTX 2060 정도가 될 듯하다. 만약 GPU Memory가 부족하다 싶으면 Batch size를 줄이던지 하는 방법이 필요하겠다.)

원서 사이트 : 링크 

 

Natural Language Processing with Transformers Book

“A wonderfully clear and incisive guide to modern NLP’s most essential library. Recommended!” —Christopher Manning, Thomas M. Siebel Professor in Machine Learning, Stanford University Since their introduction in 2017, transformers have quickly beco

transformersbook.com

코드 repo: 원서, 역서

 

GitHub - rickiepark/nlp-with-transformers: <트랜스포머를 활용한 자연어 처리> 예제 코드를 위한 저장소입

<트랜스포머를 활용한 자연어 처리> 예제 코드를 위한 저장소입니다. Contribute to rickiepark/nlp-with-transformers development by creating an account on GitHub.

github.com

 

GitHub - nlp-with-transformers/notebooks: Jupyter notebooks for the Natural Language Processing with Transformers book

Jupyter notebooks for the Natural Language Processing with Transformers book - GitHub - nlp-with-transformers/notebooks: Jupyter notebooks for the Natural Language Processing with Transformers book

github.com

 

댓글