메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

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

허깅페이스 개발팀이 알려주는 자연어 애플리케이션 구축

한빛미디어

번역서

판매중

  • 저자 : 루이스 턴스톨 , 레안드로 폰 베라 , 토마스 울프
  • 번역 : 박해선
  • 출간 : 2022-11-30
  • 페이지 : 484 쪽
  • ISBN : 9791169210508
  • 물류코드 :11050
초급 초중급 중급 중고급 고급
4.9점 (29명)
좋아요 : 1

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

 

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

 

 

700px_트랜스포머를 활용한 자연어 처리.jpg

 

루이스 턴스톨 저자

루이스 턴스톨

허깅페이스의 머신러닝 엔지니어입니다. 스타트업과 기업을 위해 NLP, 위상 기반 데이터 분석(topological data analysis), 시계열 분야의 머신러닝 애플리케이션을 만들었습니다. 이론 물리학으로 박사 학위를 받고 호주, 미국, 스위스에서 연구를 수행했습니다. 현재는 NLP 커뮤니티를 위한 도구를 개발하며 이를 효율적으로 사용하는 방법을 가르치는 일에 열중합니다.

레안드로 폰 베라 저자

레안드로 폰 베라

허깅페이스 오픈소스 팀의 머신러닝 엔지니어입니다. 산업 분야에서 NLP 프로젝트를 제품화하는 데 머신러닝 스택 전반에 걸쳐 다년의 경험을 쌓았으며, 트랜스포머와 강화 학습을 결합해 인기 있는 파이썬 라이브러리 TRL을 만들었습니다.

토마스 울프 저자

토마스 울프

허깅페이스의 최고 과학 책임자이자 공동 설립자입니다. 그가 이끄는 팀은 NLP 연구를 촉진하고 민주화하는 임무를 수행합니다. 허깅페이스를 공동 설립하기 전에 물리학 박사 학위를 취득하고 나중에 법학 학위를 받았습니다. 한때 물리학 연구원과 유럽 변리사로 일했습니다.

박해선 역자

박해선

기계공학을 전공했으나 졸업 후에는 줄곧 코드를 읽고 쓰는 일을 했다. 지금은 머신러닝과 딥러닝에 관한 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있다. 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020)과 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했고, 『케라스 창시자에게 배우는 딥러닝(개정 2판)』(길벗, 2022), 『핸즈온 머신러닝(2판)』(한빛미디어, 2020)을 포함한 다수의 머신러닝 책을 우리말로 옮겼다.

 

CHAPTER 1 트랜스포머 소개

_1.1 인코더-디코더 프레임워크

_1.2 어텐션 메커니즘

_1.3 NLP의 전이 학습

_1.4 허깅페이스 트랜스포머스

_1.5 트랜스포머 애플리케이션 둘러보기

__1.5.1 텍스트 분류

__1.5.2 개체명 인식

__1.5.3 질문 답변

__1.5.4 요약

__1.5.5 번역

__1.5.6 텍스트 생성

_1.6 허깅페이스 생태계

__1.6.1 허깅페이스 허브

__1.6.2 허깅페이스 토크나이저

__1.6.3 허깅페이스 데이터셋

__1.6.4 허깅페이스 액셀러레이트

_1.7 트랜스포머의 주요 도전 과제

_1.8 결론


CHAPTER 2 텍스트 분류

_2.1 데이터셋

__2.1.1 허깅페이스 데이터셋 처음 사용하기

__2.1.2 데이터셋에서 데이터프레임으로

__2.1.3 클래스 분포 살펴보기

__2.1.4 트윗 길이 확인

_2.2 텍스트에서 토큰으로

__2.2.1 문자 토큰화

__2.2.2 단어 토큰화

__2.2.3 부분단어 토큰화

__2.2.4 전체 데이터셋 토큰화하기

_2.3 텍스트 분류 모델 훈련하기

__2.3.1 트랜스포머를 특성 추출기로 사용하기

__2.3.2 트랜스포머 미세 튜닝하기

_2.4 결론

 

CHAPTER 3 트랜스포머 파헤치기

_3.1 트랜스포머 아키텍처

_3.2 인코더

__3.2.1 셀프 어텐션

__3.2.2 피드 포워드 층

__3.2.3 층 정규화 추가하기

__3.2.4 위치 임베딩

__3.2.5 분류 헤드 추가하기

_3.3 디코더

_3.4 트랜스포머 유니버스

__3.4.1 트랜스포머 가계도

__3.4.2 인코더 유형

__3.4.3 디코더 유형

__3.4.4 인코더-디코더 유형

_3.5 결론

 

CHAPTER 4 다중 언어 개체명 인식

_4.1 데이터셋

_4.2 다중 언어 트랜스포머

_4.3 XLM-R 토큰화

__4.3.1 토큰화 파이프라인

__4.3.2 SentencePiece 토크나이저

_4.4 개체명 인식을 위한 트랜스포머

_4.5 트랜스포머 모델 클래스

__4.5.1 바디와 헤드

__4.5.2 토큰 분류를 위한 사용자 정의 모델 만들기

__4.5.3 사용자 정의 모델 로드하기

_4.6 NER 작업을 위해 텍스트 토큰화하기

_4.7 성능 측정

_4.8 XLM-RoBERTa 미세 튜닝하기

_4.9 오류 분석

_4.10 교차 언어 전이

__4.10.1 제로 샷 전이가 유용할 때

__4.10.2 다국어에서 동시에 미세 튜닝하기

_4.11 모델 위젯 사용하기

_4.12 결론

 

CHAPTER 5 텍스트 생성

_5.1 일관성 있는 텍스트 생성의 어려움

_5.2 그리디 서치 디코딩

_5.3 빔 서치 디코딩

_5.4 샘플링 방법

_5.5 탑-k 및 뉴클리어스 샘플링

_5.6 어떤 디코딩 방법이 최선일까요?

_5.7 결론

 

CHAPTER 6 요약

_6.1 CNN/DailyMail 데이터셋

_6.2 텍스트 요약 파이프라인

__6.2.1 요약 기준 모델

__6.2.2 GPT-2

__6.2.3 T5

__6.2.4 BART

__6.2.5 PEGASUS

_6.3 요약 결과 비교하기

_6.4 생성된 텍스트 품질 평가하기

__6.4.1 BLEU

__6.4.2 ROUGE

_6.5 CNN/DailyMail 데이터셋에서 PEGASUS 평가하기

_6.6 요약 모델 훈련하기

__6.6.1 SAMSum에서 PEGASUS 평가하기

__6.6.2 PEGASUS 미세 튜닝하기

__6.6.3 대화 요약 생성하기

_6.7 결론

 

CHAPTER 7 질문 답변

_7.1 리뷰 기반 QA 시스템 구축하기

__7.1.1 데이터셋

__7.1.2 텍스트에서 답 추출하기

__7.1.3 헤이스택을 사용해 QA 파이프라인 구축하기

_7.2 QA 파이프라인 개선하기

__7.2.1 리트리버 평가하기

__7.2.2 리더 평가하기

__7.2.3 도메인 적응

__7.2.4 전체 QA 파이프라인 평가하기

_7.3 추출적 QA를 넘어서

_7.4 결론

 

CHAPTER 8 효율적인 트랜스포머 구축

_8.1 의도 탐지 예제

_8.2 벤치마크 클래스 만들기

_8.3 지식 정제로 모델 크기 줄이기

__8.3.1 미세 튜닝에서의 지식 정제

__8.3.2 사전 훈련에서의 지식 정제

__8.3.3 지식 정제 트레이너 만들기

__8.3.4 좋은 스튜던트 선택하기

__8.3.5 옵투나로 좋은 하이퍼파라미터 찾기

__8.3.6 정제 모델 벤치마크 수행하기

_8.4 양자화로 모델 속도 높이기

_8.5 양자화된 모델의 벤치마크 수행하기

_8.6 ONNX와 ONNX 런타임으로 추론 최적화하기

_8.7 가중치 가지치기로 희소한 모델 만들기

__8.7.1 심층 신경망의 희소성

__8.7.2 가중치 가지치기 방법

_8.8 결론

 

CHAPTER 9 레이블 부족 문제 다루기

_9.1 깃허브 이슈 태거 만들기

__9.1.1 데이터 다운로드하기

__9.1.2 데이터 준비하기

__9.1.3 훈련 세트 만들기

__9.1.4 훈련 슬라이스 만들기

_9.2 나이브 베이즈 모델 만들기

_9.3 레이블링된 데이터가 없는 경우

_9.4 레이블링된 데이터가 적은 경우

__9.4.1 데이터 증식

__9.4.2 임베딩을 룩업 테이블로 사용하기

__9.4.3 기본 트랜스포머 미세 튜닝하기

__9.4.4 프롬프트를 사용한 인-컨텍스트 학습과 퓨-샷 학습

_9.5 레이블링되지 않은 데이터 활용하기

__9.5.1 언어 모델 미세 튜닝하기

__9.5.2 분류기 미세 튜닝하기

__9.5.3 고급 방법

_9.6 결론

 

CHAPTER 10 대규모 데이터셋 수집하기

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

__10.1.1 대규모 말뭉치 구축의 어려움

__10.1.2 사용자 정의 코드 데이터셋 만들기

__10.1.3 대용량 데이터셋 다루기

__10.1.4 허깅페이스 허브에 데이터셋 추가하기

_10.2 토크나이저 구축하기

__10.2.1 토크나이저 모델

__10.2.2 토크나이저 성능 측정하기

__10.2.3 파이썬 코드를 위한 토크나이저

__10.2.4 토크나이저 훈련하기

__10.2.5 허브에 사용자 정의 토크나이저 저장하기

_10.3 밑바닥부터 모델을 훈련하기

__10.3.1 사전 훈련 목표

__10.3.2 모델 초기화

__10.3.3 데이터로더 구축하기

__10.3.4 훈련 루프 정의하기

__10.3.5 훈련 실행

_10.4 결과 및 분석

_10.5 결론

 

CHAPTER 11 향후 방향

_11.1 트랜스포머 확장

__11.1.1 규모의 법칙

__11.1.2 규모 확장의 어려움

__11.1.3 어텐션 플리즈!

__11.1.4 희소 어텐션

__11.1.5 선형 어텐션

_11.2 텍스트를 넘어서

__11.2.1 비전

__11.2.2 테이블

_11.3 멀티모달 트랜스포머

__11.3.1 스피치-투-텍스트

__11.3.2 비전과 텍스트

_11.4 다음 목적지는?

자연어 처리 애플리케이션을 만드는 큐브, 트랜스포머

 

이 책은 머신러닝 지식을 갖춘 엔지니어와 연구자를 대상으로 직접 모델을 구현하며 트랜스포머를 업무에 적용하는 실용적인 방법을 전달한다. 트랜스포머를 이용하는 데 필요한 기본적인 이론과 방법을 소개한 뒤, 다국어 텍스트의 개체명 인식(NER)을 비롯해 텍스트 생성, 텍스트 요약, 질문 답변(QA) 같은 목적에 맞는 다양한 자연어 처리 모델을 훈련해본다. 다양한 트랜스포머 모델에 표준화된 인터페이스를 제공하는 라이브러리인 허깅페이스 트랜스포머스를 개발한 팀의 안내를 따라 내게 필요한 모델을 구축해보자.

 

 

대상 독자

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

 

주요 내용

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

 

추천사

 

인공지능의 놀라운 가능성은 트랜스포머 구조의 등장으로 다시 한번 재조명되었습니다. 그리고 허깅페이스가 구축한 오픈소스 생태계는 트랜스포머 구조를 근간으로 한 다양한 머신러닝 모델과 이를 훈련하기 위한 환경의 사실상 산업 표준으로 자리잡았습니다. 더불어 자연어를 넘어, 이제는 비전, 오디오, 정형 다양한 분야에서 활용되고 있으며, 허깅페이스에서도 이런 변화를 적극적으로 수용하고 있습니다. 또한 허깅페이스는 인공지능 민주화를 목표로 오픈소스 생태계를 빠르게 구축, 확장하여 다양한 산업이 인공지능의 혜택을 누리게 하는 데 집중하고 있습니다. 이 책을 통해 인공지능의 혁신이 일어나는 허깅페이스의 철학과, 미려하게 설계된 다양한 라이브러리의 API를 확인하고, 실제 작동하는 애플리케이션까지 모두 한눈에 확인하는 기회를 얻어가기를 바랍니다.

_박찬성, 허깅페이스 펠로우

 

트랜스포머는 딥러닝 중 가장 중요한 모델들 중 하나이고, 허깅페이스는 이 트랜스포머를 쉽게 사용할 수 있도록 해줍니다. 이 두 가지는 딥러닝 관련 업무를 한다면 반드시 잘 알아야 하는 부분인데 박해선 님이 번역한 이 책을 통해 쉽게 이해할 수 있습니다. 특히 간략한 소개 후 2장에서 바로 텍스트 분류를 통한 핸즈온을 진행해 트랜스포머와 허깅페이스를 어떻게 사용하는지 이해할 수 있고, 이어지는 딥 다이브와 다국어 개체명 인식, 텍스트 생성과 요약, QA 등 많이 사용하는 NLP 문제는 깊은 지식을 전달합니다. 무엇보다도 박해선 님의 번역 문체는 심플하면서도 이해하기 쉬워서 읽는 내내 즐거웠습니다. 올해 딥러닝 기술 관련 한 권의 책을 추천한다면 바로 이 책을 주저없이 추천할 것입니다.

_김성훈, 업스테이지 대표

  

트랜스포머는 현재 딥러닝 산학계를 휩쓸고 있는 가장 중요한 아키텍처입니다. 특히 자연어 처리에서는 피해 갈 수 없는 존재입니다. 이 책은 이렇게 중요한 트랜스포머를 자연어 처리에서 활용하는 방법을 다양한 태스크를 통해 자세히 다룹니다. 또한 자연어 처리에서 점점 표준이 되어가는 허깅페이스를 활용하므로, 실전에서의 활용도도 더욱 증대될 것입니다. 마지막으로 역자의 많은 딥러닝 분야 서적 집필 및 번역 경험에서 우러나오는 전달 방식은 원서 저자의 의도를 독자들에게 충분히 잘 전달해줍니다. 이 책을 통해 독자들은 자연어 처리 분야에서 트랜스포머를 활용하여 실전 능력을 키울 수 있을 것입니다.

_김기현, 『김기현의 자연어 처리 딥러닝 캠프』 저자

 

최신 NLP에 필수인 트랜스포머스 라이브러리를 놀랍도록 명확하고 예리하게 설명하는 가이드입니다. 추천합니다!

_크리스토퍼 매닝, 스탠퍼드 대학 머신러닝 교수

 

사전 훈련된 트랜스포머 언어 모델은 NLP 세상에 폭풍을 몰고왔습니다.  트랜스포머스 같은 라이브러리는 이런 모델을 손쉽게 사용하도록 해줍니다. 최근 NLP의 성과를 활용할 방법을, 이 라이브러리를 만든 사람보다 더 잘 설명할 사람이 있을까요? 『트랜스포머를 활용한 자연어 처리』는 저자들이 오랜 연구와 엔지니어링에서 축적한 지식을 모은 역작입니다. 상당히 폭넓고 깊은 통찰력을 제공하며 최신 연구와 실전 애플리케이션을 절묘하게 융합한 보기 드문 책입니다. 또 다국어부터 효율적인 모델 개발까지, 질문 답변부터 텍스트 생성까지 현재 NLP에서 가장 주요한 방법과 애플리케이션에 대한 정보를 담았습니다. 각 장은 실전 고려사항과 모범 사례를 강조하고, 연구 기반 모델을 실전에 활용할 수 있게 풍부한 예제 코드를 바탕으로 설명합니다. NLP를 처음 배우는 사람이든 베테랑이든 누구나 이 책을 통해 분야 이해도를 높이고 최첨단 모델을 빠르게 개발하고 배포할 수 있을 것입니다.

_세바스찬 루더, 구글 딥마인드

 

트랜스포머는 NLP 작업을 변화시켰으며 허깅페이스는 트랜스포머를 제품과 연구에 활용하는 방법을 개척했습니다. 시의적절하게도 허깅페이스의 루이스 턴스톨Lewis Tunstall, 레안드로 폰 베라Leandro von Werra, 토마스 울프Thomas Wolf는 이 중요한 주제를 편리하고 실용적으로 소개하는 책을 썼습니다. 이 책은 트랜스포머 메커니즘의 개념을 기초부터 자세히 설명하고, 다양한 트랜스포머 모델과 트랜스포머 애플리케이션을 소개하고, 트랜스포머를 훈련하고 제품에 투입할 때 발생할 수 있는 실전 문제를 소개합니다. 이 책을 읽어보니 내용의 깊이와 명쾌한 그림 덕분에 트랜스포머, 특히 자연어 처리를 배우려는 모든 사람에게 최고의 자료가 되리라 확신합니다.

_델립 라오, 『파이토치로 배우는 자연어 처리』 저자

 

복잡한 것이 단순해졌습니다. 이 책은 NLP, 트랜스포머와 이를 둘러싼 생태계를 다룬 보기 드문 귀중한 책입니다. 그저 유행어로 알고 있든, 이미 확실한 내용을 모두 알고 있든 관계없이 저자들은 유머와 과학적 엄격함, 풍부한 예제 코드를 사용해 여러분에게 이 최신 기술에 있는 은밀한 비밀을 소개합니다. 바로 사용할 수 있는 사전 훈련된 모델부터 밑바닥부터 만드는 사용자 정의 모델까지, 또한 성능에서부터 레이블이 없는 경우에까지, 저자들은 ML 엔지니어의 문제를 실용적으로 해결하고 최신 솔루션을 제공합니다. 이 책은 향후 수년 동안 현장에서 표준으로 자리매김할 것입니다.

_루카 페로치, 액센추추어의 데이터 과학과 머신러닝 부관리자

 

탁월한 모델인 트랜스포머를 위한 탁월한 책입니다!

_제러미 하워드, fast.ai 설립자

 

"한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다"

장점

1.   Attention기반의 딥러닝 모델에 대한 이해를높일 수 있으며 트랜스포머 모델의 구조를 이해할 수 있으며 도메인에 맞게 fine tuning하여 텍스트분류, 개체명 인식, 질의 응답, 요약, 번역 등을 적용해 볼 수 있음

2.   모든 예제들이 NLP 데이터 기반으로 진행되기때문에 텍스트 처리 방법을 배울 수 있으며 텍스트 기반의 데이터 증식, 대규모 텍스트에 대한 토크나이저등을 배울 수 있음

3.   요즘 딥러닝에 쓰이는 제로샷 방식과 가중치 가지치기, 디코딩방법, 멀티모달 딥러닝 방법에 대해서 이해 할 수 있음

후기

1.   요즘 GPT, BERT, 하이퍼클로바와 같이트랜스포머 기반의 모델들이 많이 사용되어 관심이 생겨 읽게 되었다. 해당 서적을 읽으면서 RNN계열에서 왜 트랜스포머로 전환이 되는지와 대규모 텍스트를 학습하기 위한 텍스트 처리 기법 그 외에도 효율적으로트랜스포머 모델을 구축하는 방법과 이미 학습된 트랜스포머 기반의 모델들을 도메인에 맞게 튜닝하는 방법을 알 수 있어서 유익하다.

 

 

KakaoTalk_20230103_112621757.png

 

인공지능 자연어처리(NLP, Natural Language Processing) 분야 책을 검색해 보면, 입문서와 정말 아주 어렵고 두꺼운 심화학습서가 나오는데, 간만에 입문서를 뗀 독자가 바로 이어서 다음 단계로 나가도록 안내해주는 실용적인 심화학습서가 나왔다.


살짝 두툼한 편이면서도 다루는 범위에 비하면 얇다고 본다. 다시 말해, 입문서를 잘 떼고 이 책을 보지 않으면 본 적은 있는데 활용할 줄은 모르겠는 부분이 주루루루룩 나오게 된다. 파이토치로 배우는 자연어 처리(https://www.hanbit.co.kr/store/books/look.php?p_code=B1231887279) 같은 입문서를 통독하고 전부 실습했다면 더 준비할 게 없다 싶고, 한국어 텍스트를 다룬 더 쉬운 입문서를 하나 더 찾아 읽어도 좋겠다.


2022년 12월을 기준으로 이 책의 미덕 중 하나는 허깅페이스(https://huggingface.co/)를 친절하게 설명했다는 점이다. 잘 몰라도 회원 가입해서 이럭저럭 쓸 수는 있지만, 주먹구구라는 한계가 분명하다. 이 책이 헤매는 시간을 줄이는 데에 도움이 될 것이다.


더불어 텍스트 데이터는 언제나 한 단계 더 내려가면 부족하기 마련이고 한국어라면 기가 찰 정도로 더욱 부족한 현실을 극복하는 방법들을 제안했다. 내가 처한 환경과 딱 들어맞지는 않을지라도 이 정도면 부딪쳐볼 만하다는 느낌을 받게 한다.


한국인 저자가 아니라 한국어에 대한 접근이 어쩔 수 없이 아쉽기는 하다. 형태소 분석 말고도 현장에서는 한국어 특유의 꼼수를 쓸 수 밖에 없는 상황을 종종 맞닥뜨리게 된다. 그래도 이 책으로 기초를 단단히 했다면 방법을 찾아 나가는 데에 큰 어려움은 없으리라 믿는다.

 
 

 책에서 권장하는 대상 독자는 머신러닝을 알고 있는 사람이며 이미 파이썬 프로그래밍에 능숙하고, 딥러닝 프레임워크에 익숙하며 GPU에서 훈련한 경험이 있는 사람들을 가정하고 있습니다.

 

 즉 최신 트랜드를 사용하고자 하는 전문가들에게 쉽고 빠르게 한권으로 최신 트랜드를 소개하고 맞보여주는 책이라고 생각합니다. 그렇지만 반드시  전문가가 아니더라도 충분히 접근할만한 내용이라고 생각합니다.

 

 두껍지 않지만 400페이지를 훌쩍 넘는 양으로 다양한 종류의 트랜스포머 모델을 실습하고 사용해볼 수 있는 가이드가 되는 충분하고 다양한 내용을  제공합니다.

 

 트랜스포머에 대한 정리 뿐만 아니라 허깅페이스 트랜스포머스 라이브러리 사용법에 대하여 다양한 방면으로 알려주고 있습니다.

 

 파이토치 AP를 주로 다루지만 텐서플로 예제로 바꾸는 방법도 소개 한다고 하지만.. 충분한지는 아직 검증이 덜되어서 아쉬운 마음이 있습니다.

 

 실습 내용은 GPU를 사용하여 진행한 내용이라고 하니 만약 환경이 다를 경우 돌아가지 않을 예제도 있을 수 있다는 생각은 필요한 것 같습니다. (책의    독자에 대한 전제 조건을 생각하면 그럴 수 없어야 하는게 정상인 것 같습니다.)

 

 텍스트분류, 개체명 인식, 질답, 요약, 번역, 텍스트 생성 등 다양한 기능에 대한 예제와 설명을 제공하며 성능 측정과 효율적인 모델 구축을 위한 팁    제공과 레이블 부족 이슈에 대한 대응 방법 또한 함께 제공됩니다.

 

 예제 코드 또한 깃헙으로 제공하고 이를 바탕으로 책의 내용까지 함께 한다면 필요한 부분은 이미 충분한 것 같습니다.

 

 필요한 내용을 발췌하여 읽든 시간내어 천천히 하나씩 보든 도움이 되리라 생각합니다.

 

 

Attention is all you need 논문으로 큰 주목을 받은 Transformer로 자연어처리에서 좋은 성능을 내며 주목을 받고 있다. 요즘 나오는 초거대모델을 보면 곧 내 일자리를 잃지 않을까 혹은 지금까지 해왔던 자연어 공부가 무용해지는게 아닐까 싶을 정도로 초거대모델의 성능은 눈부시다. 광고문구, 비즈니스메일, 내용 요약 등 나보다도 작문을 잘하고 요약을 잘 하는 모습을 보면 놀라움을 감출 수 없다. 또, 요즘 나오는 모델은 API 사용법도 과거 모델에 비해 추상화가 잘 되어 있어 복잡한 내부를 잘 모르더라도 간단한 API 몇 가지를 읽히면 제법 그럴듯한 모델을 만들 수 있다.

하지만 그래도 기본을 닦고 관련 내용을 좀 더 알고 있다면 간단한 API라도 해당 모델에 맞게 전처리를 해주거나 튜닝을 해준다면 더 나은 성능을 낼것이다.

그런면에서 이 책은 트랜스포머에 대한 동작 원리를 이해하고 직접 모델을 사용해보는 예시가 풍부해서 트랜스포머를 익히기에 딱 좋을 뿐만아니라 한줄기 빛과도 같은 책이다.

주요 내용으로는 기본적인 텍스트 분류부터, 개체명 인식, 전이학습 활용법, 파인튜닝, 모델 평가하고 성능을 높이는 방법등 실무에 필요한 팁들을 정리하고 있다.

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

또, 최근 생성모델이 많은 주목을 받고 있는데 텍스트 생성시 고려할 디코딩 방법등에 대해 소개하고 있다. 질문 답변에서의 활용방법이나 효율적인 모델 구축방법을 소개하고 있으며, 데이터셋 구축이나 레이블 부족문제와 같은 실무에서 고민했던 문제에 대해 다루는 부분도 인상적이다.

앞으로의 연구방향이나 여러 어텐션 방법 등에 대해 컬러 예제를 통해 이해를 돕는 것도 좋다. 또, 꼼꼼하신 역자분이 번역해주셔서 어려운 내용을 좀 더 쉽게 읽어볼 수 있는 것도 감사한 점이다. 개인적으로 자연어처리에 관심이 많은데 상세한 설명과 함께 컬러 도표와 함께 볼 수 있어서 너무나 좋았던 책이다.

역자분이 깃헙에 소스코드도 너무 친절하게 정리해 주셔서 이해에 정말 큰 도움이 되었다.

https://github.com/rickiepark/nlp-with-transformers

트랜스포머 관련 정리된 책이 많지 않은데 이렇게 한권의 꼼꼼하게 번역된 책으로 배울 수 있다는게 얼마나 행운인지 모른다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

 

표지.jpg

 

 

자연어처리 모델을 만들거나, 개발을 하는데 있어서 트랜스포머 라이브러리는 절대적입니다. 원래는 트랜스포머 아키텍처를 의미하는 것이었지만, 허깅페이스가 이를 라이브러리로 만들어서, 제공합니다. 이 책은 그에 대해서 실습을 통해 도와줍니다. 트랜스포머 라이브러리를 개발한 사람들이 직접 쓴 책이니깐, 이것과 공식문서를 학습한다면 자연어처리 개발에 대한 능력치를 높일 수 있습니다. 

 

이 책은 자연어처리에 대한 기본 공부를 먼저하고 오셔야 합니다. NLP의 흐름을 설명하는 책 또는 강의를 보셔서 RNN,LSTM 까지는 이론과 실습을 몇 번 훏어보고 오셔야 하며 파이토치로 모델을 구현해서 학습시켜본 경험이 이 책을 습득하기 위한 최소한의 경험입니다. NLP에 대한 기본기를 갖추신 분들이 봐야할 책입니다.

 

책의 컬러와 편집은 가독성이 좋게 잘 만들어져 있습니다. 각 코드별 주석과 이에 대한 설명이 친절합니다. 실습은 코랩이나 캐글 노트북으로 진행하기에 GPU가 달린 데스크탑이 없어도 학습하는데 지장이 없습니다.

 

이 책에 대한 실습과 코드에 대한 이해, 모델까지 어느정도 다뤄보았다면, 그 다음으로는 NLP 논문에 대한 다양한 모델들을 허깅페이스 허브 등을 이용해서 찾아보고 스터디가 가능할 수 있다고 생각합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

O'REILLY

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

       루이스 턴스톨, 레안드로 폰 베라, 토마스 울프 지음

       박해선 옮김,



이 책은 머신러닝 계의 혁신이라고 하는 "트랜스포머 모델" 에 대해 소개하고 설명하는 책 입니다.

트랜스포머 모델은 2017년 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로 기존의 seq2seq의

구조 인코더-디코더를 따르면서, 어텐션 (Attention)만으로 구현한 모델 입니다.

트랜스포머 아키텍처는 인코더-디코더를 따르면서도 순환 신경망 (RNN) 보다 우수한 성능을 보여는 모델 입니다.

이 책은 머신러닝 기초 책이 아니기 때문에 기반 지식이 없다면 바로 학습 하기에는 무리가 있습니다.


# 대상 독자

책에서도 제시한 것처럼 이 책은 머신러닝 입문서가 아닙니다.

  - 파이썬 프로그래밍에 능숙

  - 딥러닝 프레임워크 (파이토치, 텐서플로)의 기본 

딥러닝 프레임워크의 기본을 알아야 책을 보면서 이해할 수 있습니다.

책에서는, 아래의 책들을 통해서 먼저 선행 학습 후 이 책을 학습하기를 권장하고 있습니다.


# 책 구성

이 책은 총 11장으로 구성되어 있습니다.

1장, 트랜스포머 소개

  이 장에서는 인코더-디코 프레임워크 소개 및 장단점, 어텐션 메커니즘에 대한 소개 및 트랜스포 모델에서의 셀프 어텐션에 의한 변화, NLP 전이 학습에서 전통적인 지도 학습과 전이학습의 비교, 허깅페이스 트랜스포머의 등장 배경, 트랜스포머 어플리케이션 둘러보기에서 트랜스포머 예제를 통한 해석하고 그 결과를 생성하는 과정 등에 대해 학습 할 수 있습니다.

2장, 텍스트 분류

  이 장에서는 NLP에서 일반적인 작업인 텍스트 분류 예제를 통하여 허깅페이스 생태계의 핵심 라이브러리인 데이터셋, 토크나이저, 트랜스포머 사용해 보면서 트랜스포머가 동작 하는 것을 학습 할 수 있습니다.

3장, 트랜스포머 파헤치기

  이 장에서는 2장에서 예제를 통하여 맛보았던 트랜스포머에 대해 좀더 상세하게 트랜스포머 아키텍처를 깊게 학습 할 수 있습니다.

4장, 다중 언어 개체명 인식

  이 장에서는 다국어 텍스트에서 개체명을 인식하는 방법에 대해 소개하고 그 방법을 학습 할 수 있습니다.

5장, 텍스트 생성

  이 장에서는 텍스트 생성하는 트랜스포머 모델, 디코딩 전략과 측정 지표 소개 하고 있습니다.

6장, 요약

  이 장에서는 텍스트 요약 이라는 seq2seq 를 살펴 보고, 이 작업에 사용되는 측정 지표를 학습 할 수 있습니다.

7장, 질문 답변

  이 장에서는 QA의 두 가지 방법 "추출적 QA"와 "생산적 QA" 와 두 가지 검색 알고리즘 "BM25"와 "DPR"에 대해서 학습 할 수 있습니다.

8장, 효율적인 트랜스포머 구축

  이 장에서는 예측 속도를 높이고, 트랜스포머 모델의 메모리 사용량을 줄이는 기술 네 가지 "지식 정제", "양자화", "가지치기", "그래프 최적화"에 대해서 학습 할 수 있습니다.

9장, 레이블 부족 문제 다루기

  이 장에서는 레이블이 전혀 없거나 조금만 있는 경우, 모델을 만드는 방법을 학습 할 수 있습니다.

10장, 대규모 데이터셋 수집하기

  이 장에서는 충분한 데이터와 컴퓨팅 자원이 있을 때, 자신만의 모델을 밑바닥부터  사전 훈련하는 방법에 대해 학습 할 수 있습니다.

11장, 향후 방향

  이 장에서는 모델들이 당면한 과제와 이를 극복하기 위한 연구활 동 동향을 알 수 있습니다.



# 결론,

이 책을 보기전 책에서 선행 학습 하면 좋을 것 같은 목록의 내용들을 학습 후 보는 것이 좋습니다.

기반 지식 없이는 이해하기 어려운 책 입니다.

이론과 설명은 어려우나, 실습 위주로 책이 구성되어 있기에 따라하며 학습 하다 보면 조금씩 알아 갈 수 있을 것 같습니다.

트랜스포머를 이용한 자연어 처리에 대해서는 깊이 있게 다루고 있어서 실무에 많은 도움이 될 것 같습니다.

요즘 ChatGTP 가 화제이다, 인공지능과 자연어처리와 전혀 상관없는 주변 지인들(IT전문가들)도 이것저것 샘플 돌려보며 신기에 하는 걸 보면...


최근 발표된 ChatGPT가 GPT-3.5를 기반으로 만들어졌다. 그리고 그 GPT의 근간은 Transformer(이하 트랜스포머)이다.


인공지능을 야매로 공부한 현업개발자이자 해당 분야 종사자이긴 하지만 지금까지 NLP라고 불리우는 자연어처리 분야의 가장 큰 변곡점은 트랜스포터가 아닐까 싶다.


트랜스포머는 2017년 구글에 의해 "Attention is All You Need"란 이름으로 제안된 신경망 아키텍처로 이후 다양한 파생모델이 양산되어었으며 그중 GPT와 BERT는 그 흐름의 중심에 있다.


임... 이전까지 자연어처리와 관련된 내용의 책들을 보면 일반적인 딥러닝 책에 RNN이나 LSTM쪽을 다루면서 한두 챕터 간단하게 소개하거나 자연어처리만 소개하는 책도 트랜스포머와 이후의 모델을 깊게 다루지는 않고 있다, 맛보기 수준...


이번에 한빛미디를 통해 번역출간된 "트랜스포머를 활용한 자연어 처리"는 이 트랜스포머에 집중해서 다루는 책이다, 아마 자연어처리와 관련된 분들에게 가뭄의 단비와 같은 책이 되지 않을까 싶다.


총 11장으로 구성된 이 책은 실습위주로 구성되어 있다, 실용적 사례를 통해 주요 트랜스포머 모델을 다루다 보니 최근 자연어처리 활용분야 대부분에 필요한 내용에 대한 충분한 학습이 가능할 것이라 생각한다.


나 역시도 현재 Seq2Seq를 거쳐 이제 막 트랜스포머 모델을 적용하기 위해 노력중인데 이 책의 내용이 attention과 전이 학습에 대한 이해도를 높여주고 이를 어떻게 접목해 활용할지에 대한 인사이트를 얻었다는 점에서 자연어처리 분야에 몸담고 있거나 학습을 해보고자 하는 분들에 엄청난 도움을 줄 것이라 확신한다.


기다리고 갈망하던 책을 만나게 되서 너무 기분이 좋다, 아마 이 책으로 공부하고 자연어처리 최신 논문들을 보면 엄청난 도움이 될 듯 하다.


※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.



[도서 소개]

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

트랜스포머는 우리 주변에 가득하다! 트랜스포머 아키텍처는 순식간에 자연어 처리 분야를 지배했다. 기자처럼 뉴스를 작성하고, 프로그래머의 코드를 자동 완성하며, 사람들이 원하는 그림을 그려내고 있다. 이 책은 데이터 과학자나 프로그래머가 트랜스포머 모델을 훈련하고 확장할 수 있도록 허깅페이스(

아는 사람은 알겠지만 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를 줄이던지 하는 방법이 필요하겠다.)

원서 사이트 : 링크 

코드 repo: 원서역서

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

이 책은 머신러닝으로 자연어 처리하고자 한다면 가장 탁월한 책이자 필독서이다.

 

최근의 핫한 OpenAI의 ChatGTP를 이해할 수 있으며, 자연어 관련 트랜스포머 모델을 총망라하여 알 수 있었다.

BERT, XLM, RoBERTa, T5, BART, GPT, GPT-2, GPT-3, GPT-Noe, ...

그리고 허깅페이스의 트랜스포머스를 사용하여 몇 줄의 코드로 너무나 쉽게 구현할 수 있다는 것이 믿기지 않을 정도이다.

 

책의 구성은 트랜스포머 소개(1장)로 시작하여 텍스트 분류(2장), 트랜스포머 아키텍처(3장), 개체명 인식(4장),

텍스트 생성(5장), 텍스트 요약(6장), 질문 답변(7장) 등의 머신 러닝 분야에서 자연어 처리로 할 수 있는 응용 분야를 설명하고 있으며, 8장에서는 효율적인 트랜스포머 구축 방안과 레이블이 부족할 경우 대처 방안(9장), 

밑바닥부터 모델을 훈련하는 대규모 데이터셋 수집하기(10장), 마지막으로 향후 트랜스포머 발전 방향까지 다루고 있다.

 

각 장은 해당 주제에 대한 어려운 점이나 고려할 점을 먼저 설명하고, 해결 방안을 제시한다. 

그리고, 다양한 해결 방안은 예제를 통해 실습할 수 있으며, 소스 코드도 상세히 설명하고 있다. 

특히 각각의 해결 방안(모델)에 대해서도 장단점을 설명하고 성능을 통하여 결과를 보여주며, 결론으로 마무리한다.

 

다만, 저자도 언급하지만 머신러닝 입문서는 아니다.

파이토치나 텐서플로를 알고 있어야 하며, 특히 예제는 파이썬 중급이상이어야 한다.

그럼에도 NLP 분야의 트랜스포머 모델을 빠짐없이 다루고 있으며, 관련된 개념도 비교적 자세하게 설명한다.

 

구글 BERT의 정석(한빛미디어, 2021.11)이 이론서라면, 이 책은 실습 위주로 구성되어 있다. 실습 위주의 이론도 매우 풍부하다.

 

개인적으로는 3.4 트랜스포머 유니버스에서 트랜스포머 모델의 설명이 매우 좋았으며, 실습 중간마다 미세튜닝 꿀팁들이 인상깊었다. 

특히 실습에서 사용하는 라이브러리에 대한 설명이 감동이다.

그리고 궁금했던 자연어 처리 관련(텍스트 분류, 개체명 인식, 텍스트 생성, 요약, 질문 답변) 처리 방법론과 대용량 처리 극복 방법, 경량 모델 구축 방법도 이해할 수 있어서 좋았다.

 

또한 책 중간마다 삽입되는 컬러풀한 프로세싱 그림들 덕분에 다른 책들보다 이해하기 수월했다.

간혹 보이는 수식은 아직도 적응하기 힘들지만, ㅠㅠ

 

이 책을 읽고 난 이후 트랜스포머의 능력을 다시 깨닫게 되었으며, 

빠른 시간내에 애플리케이션을 만들고 싶게 만든 소중한 책이어서 감사하다는 말을 전하고 싶다.

 

품질 평가하기 - 트랜스포머 또한 은탄환이 아니다.

 

평가 지표가 나쁘면 모델의 성능 저하를 눈치채지 못하고, 평가 지표가 비즈니스 목표에 맞지 않으면 어떤 가치도 창출하지 못합니다.

 

업무 특성상 자연어처리(NLP, Natural Language Procecssing)와는 거리가 있어서 이쪽 분야는 간간히 동향만 전해듣는 수준이었다. 특별히 관심을 갖고 살펴보기에는 내 분야에서 배워야 할 것들도 넘치는 것 같았기 때문이다. 하지만 최근 GPT-3와 ChatGPT, stable-diffusion 등 가히 혁명적인 기술들이 속속들이 발표되고, 공개되고, 활용되는 것들을 보게 되면서 최신 기술들에 대해서도 조금 더 관심을 가지게 되었다.

그러던 중 이 책을 만나게 되면서 자연어 처리에 대해서도 배움에 대한 갈망이 조금씩 자리잡게 되었다. 사실 배운다고 표현하는 것보다는 잘 사용하는 방법을 익힌다고 말하는 것이 더 정확한 표현일 것 같다. 이 책의 저자들(허깅페이스 개발자 3인)이 목표하는 바 또한 그러한 것이었다.

(pg 15) "이 책의 목표는 여러분이 자신만의 언어 애플리케이션을 만들도록 돕는 것입니다." 라고 말하고 있으니 말이다.

 

  이 책은 총 11장으로 구성되어있다. 1장에서는 트랜스포머의 등장의 전/후 배경에 대해 설명하고, 트랜스포머의 파급력과 그 의의에 대해 간략하게 정리해두었다. 또 이를 잘 활용할 수 있게 해주는 허깅페이스 생태계[1]에 대해서 소개하고 있다. 또, 트랜스포머로 할 수 있는 일들(어플리케이션)에 대해 간략히 설명해준다. '텍스트분류', '개체명 인식', '질문답변', '요약', '번역', '텍스트 생성' 문제를 다룰 수 있다.

  이후 2장에서는 '텍스트분류'에 대해, 3장에서는 트랜프포머의 상세한 구조와 그 원리에 대해 다루고, 4장에서는 '다중 언어 개체명 인식', 5장에서는 '텍스트 생성', 6장에서는 '요약', 7장에서는 '질문 답변' 어플리케이션에 대해 다루고 있다.

  8장에서는 기존 딥러닝 모델들에 비해 규모가 큰 트랜스포머 모델을 효율적으로 줄일 수 있는 방법들에 대해 다룬다. '지식 정제', '양자화', 'ONNX를 활용한 추론 최적화', '가지치기' 방법에 대해 다뤘다.

  9장에서는 레이블 부족 문제를, 10장에서는 대규모 데이터셋 수집하는 방법에 대해 다루고, 마지막 11장 에서는 트랜스포머의 현재와, 미래에 대한 의견을 제시하였다.  

 

  개인적으로 친숙하지 않은 분야이기에 앞에서부터 차근차근 살펴보고 있다. 옮긴이 박해선님이 친절하게 깃허브 저장소[2]에 코드를 정리해주셔서 로컬환경이나 코랩에서 바로바로 테스트 해볼 수 있다는게 참 좋은 것 같다. 빠르게 배우고 적용해보기 좋은 세상이다.

  이쪽 분야 공부가 많이 필요해서 개인적으로 트랜스포머의 기본 원리를 다룬 3장과 최적화 관점의 8장을 더 자세하게 살펴볼 예정이다. 아직 모두 살펴보고 테스트해보지는 못했지만, 이미 머릿속에 만들어볼 어플리케이션들 리스트가 생기고 있어서 조금 설레이기도 하다. 연말과 내년초 조금 여유로운 시간에 차근차근 더 살펴보아야겠다.

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

자연어 처리는 모든 사람이 관심을 두는 분야입니다.


트랜스포머 하면 무엇이 떠 오르시나요?

영화 트랜스포머를 떠올리는 분들도 계실 겁니다.


트랜스포머는 자동차 로봇이 아닌 이 책의 트랜스포머는 라이브러리를 의미합니다.


살펴볼 책은 ‘트랜스포머를 활용한 자연어 처리’입니다.


자연어 처리 분야에서 사용되는 신경망 알고리즘으로 Hugging face 오픈 소스 개발자들이 공동 집필한 책인데요.

최근 RNN에서 트랜스포머 라이브러리로 완전히 대체되고 있습니다.


2가지 정도 요약해 보도록 하겠습니다.


22.jpg

 

 

1) 자연어 처리 텍스트 분류 어려운 점

일반적으로 언어는 복잡하기 때문에 기계가 인간의 언어를 이해하기는 어렵습니다.

그 이유로 언어는 매우 복잡한 구조로 되어 있으며, 시간과 장소, 상황, 의도 등을 고려하여 사용됩니다.


또한 기계는 인간의 생각과 감정을 이해하지 못하고 가지고 있는 데이터를 바탕으로 판단합니다.


이 판단을 사전 학습을 통해서 할 수도 있고 알고리즘을 통해 알아서 계산할 수도 있습니다.


33.jpg

 

 

2) 트랜스포머 라이브러리 알아보기

트랜스포머 라이브러리는 인공 신경망에서 순환 신경망(RNN)과 같은 순차적인 정보가 중요한 작업을 처리할 때 우수한 성능을 보입니다.


트랜스포머는 입력 시퀀스를 처리할 때 순차적인 정보가 중요한 작업에 적합한데요.

입력 시퀀스에서 각 요소가 서로 어떻게 영향을 주고받는지를 모델링할 수 있게 도와줍니다.


사용하는 예로는 뉴스 내용을 요약하는 모델과 상품에 대해 질문하면 답변을 주는 모델도 구축하며 배울 수 있습니다.


내부 핵심은 러스트 언어로 작성되어 빠르게 동작합니다.


 

11.jpg

 

 

Ps

트랜스포머 라이브러리에 대한 모델 활용법을 소개해줍니다.


소개된 모델을 활용해 실습도 해보며 다양한 모델을 구축해볼 수 있습니다.


모델을 구축해보며 효율적인 모델은 어떻게 만드는지와 상황에 따른 해결법도 알려줍니다.


이 책은 트랜스포머 라이브러리에 대해서 익히는 데 큰 도움이 됩니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

트랜스포머 등장으로 기계 번역 작업에서의 성능이 매우 증가했고, 그 이후 다양한 트랜스포머 모델들이 등장해  NLP 분야에서 좋은 성능을 나타냈다. 이 책에서는 이러한 트랜스포머의 구조, 트랜스포머 모델을 쉽게 활용할 수 있는 허깅페이스 라이브러리, 그리고 트랜스포머를 이용하여 해결할 수 있는 택스트 분류, 개체명 인식 등을 설명한다.  텍스트 분류, 개체명 인식, 텍스트 생성, 텍스트 요약, 질문 답변 태스크를 코드 한줄씩 자세하게 설명하고 진행하는 과정을 자세히 설명해서 실전 자연어 처리 문제를 학습할 수 있다. 또한, 효율적인 트랜스포머 구축, 레이블 부족 문제 다루기, 대규모 데이터셋 수집하기의 챕터를 통해 더 학습을 효율적으로 할 수 있는 방안도 제시한다. 자연어 처리를 처음 학습하거나 자연어 처리 분야에 관심있는 모든 사람들에게 추천한다.

 

<한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.>

스크린샷 2022-12-30 오후 9.16.31.png

 

 

 

 

주변에서 요즘 chatGPT가 난리입니다. GPT는 트랜스포머의 디코더를 사용했습니다.

 

트랜스포머 알고리즘은 이 책의 제목처럼 단지 자연어처리를 위해서만 사용되지 않습니다.

다양한 Task에서 트랜스포머가 활용되고 있습니다.

 

최근에 온디바이스에서 동작하는 모델을 개발하게 되었습니다. 

처음에는 많이 쓰는 모델인 MobileNet을 검토했습니다.

 

그리고 혹시나 하는 생각에 온디바이스에서 동작하는 트랜스포머 모델이 있을까 싶어 찾아 봤더니,

MobileVit 라는 모델이 있더군요.

코드를 한땀한땀 추가한 후, 확인을 해보니 오히려 안정적인 결과를 보여 줬습니다.

 

이렇듯 저의 경우만이 아니더라도 다양한 도메인과 테스크에서 트랜스포머의 개념은 큰 성고를 나타내고 있습니다.

 

이 책은 이런 트랜스포머를 쉽게 익숙해질 수 있도록 허깅페이스를 이용한 텍스트분류 부터 시작합니다.

그리고 트랜스포머의 아키텍처에 대해서 구체적으로 설명하고 있습니다.

 

그리고 효율적인 트랜스포머 구축 방법, 미세튜닝을 이용한 레이블 부족 문제를 다루는 방법 그리고 대규모 데이터셋 구축하기 등 트랜스포머를 다양한 각도에서 설명하고 있습니다.

 

이 책은 자연어 처리를 중심으로 설명하고 있지만, 이 책의 다양한 방법을 통해 트랜스포머를 익히면 조금 더 수월하게 다른 도메인과 테스크에 적용할 수 있다고 생각합니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

[나의 한줄 추천사]

- 자연어 처리 관련 문제 풀려면 "트랜스포머" 랭귀지 모델(LM) 사용해야하는데, "트랜스포머" 자유롭게 쓰기 위한 레시피가 나왔다.

[책 추천 이유]

- 허깅페이스(Hugging Face) 에서 만든 라이브러리 "Transformer" 이용하여 자연어 처리(NLP) 하는데 잘 모르겠다. 그리고 좀더 깊이 있게 사용하고 싶다고 하면 이 책을 보면 된다.이 책의 예제코드들은 "영어" 기반의 자연어 처리이며, 바로 실무에 적용할 수 있도록 설명과 코드들을 제공하고 있다.

[내가 찾고자 했던 질문들]

1. Transformer 이용해서 풀수 있는 자연어 처리 문제는 어떤거 있나?

- 텍스트 분류 (Classification)

- 텍스트 객체명 인식 (NER)

- 텍스트 생성 (NLG)

- 텍스트 요약 (Summary)

- 텍스트 질문과 답변 (QA)

2.허깅페이스 "Transformer" 쓰면 좋은점?

- Trainer API 를 이용해서 "Transformer" 의 밑바닥부터 large dataset 훈련할 수 있다.

- 다른 사람들이 만들어 올린 "Pretrain Model" 를 허깅페이스 허브 통해서 다운로드 받아서 fine-tuning

할수 있다.

- API 인터페이스 추상화를 통해서 basic code 조금만 수정하면 여러 문제를 풀 수 있는 코드로 바뀔 수 있다. 

3. 챕터 실습을 하고 싶다면?

https://github.com/rickiepark/nlp-with-transformers

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

본 책은 인공지능과 딥러닝에 대한 배경지식이 있는 것을 전제하고 설명을 합니다. 그러므로 관련 지식을 익힌 사람이 자연어 처리를 익힐려고 하는 경우에 적합합니다. 본 책의 저자는 트랜스포머를 개발한 사람들입니다. 그렇기에 트랜스포머 가이드로써는 이 책이 최고이지 않을까 싶습니다. 트랜스포머는 GitHub에서 약 77,000개의 별(Star)을 받았고 자연어 처리 분야에서 유명한 라이브러리입니다. 이런 라이브러리를 가장 잘 설명할 수 있는 사람은 그것을 개발한 사람들이라고 생각합니다. 게다가 번역서의 경우 번역 품질이 중요한데 역자가 수십권의 저서 및 번역서 경력이 있는 베테랑입니다.

컴퓨터를 사려고 하면, 이런 얘기를 듣게 됩니다.

"1년만 기다리면, 더 좋은 성능의 컴퓨터를 더 저렴하게 살 수 있다" 라고 말이죠.

컴퓨터 뿐만 아니라, 핸드폰도 그렇죠.

기술의 발전은 더 좋은 것들을 더 저렴하게 사용할 수 있도록 해 줍니다.

물론 그렇지 않은 것들도 있죠. 자동차 같은 경우, 10년 전에는 준중형 차를 1500만원~2000만원 정도에 구입할 수 있었지만, 요즘은 3000만원은 줘야 살 수 있는 것 처럼 말입니다.

시간이 갈수록 더 비싸지는 것들이 있고, 더 저렴해지는 것들이 있습니다.

오늘날 인공지능 기술은 시간이 갈 수록 더 저렴해지는 기술이라고 할 수 있습니다. 20년 전에는 뉴럴넷 하나를 만들려고 해도 실제 한줄 한줄 다 직접 코드를 만들어야 했지만, 10년 전에는 Weka나 rapidMinder 같은 패키지들이 생기기 시작했고, 요즘은 공개된 라이브러리들을 무료로 받아서, 함수를 호출하는 것 하나로, 어지간한 인공지능 모델들을 순식간에 만들어낼 수 있습니다.

옛날에는 소수의 엘리트들만 하던 것들이 요즘은 일반인도 손쉽게 할 수 있게 된 것이죠.

자연어 처리 문제의 경우는 인공지능 관련에서도 꽤 고급 도메인이었습니다만, 요즘은 일반인도, 적당한 수준의 컴퓨터만 갖고 있다면, 혹은 클라우드 컴퓨터를 빌릴 수 있을 정도의 비용만 지불한다면, 수준급의 자연어 처리 기능을 구현해낼 수 있습니다.

하지만, 문제는 그렇게 접근이 쉬워질 수록, 일반인은 그 기능의 근간이 되는 기반 기술에 더 소외되는 경향이 존재합니다. 마치, 자동차에 오토 미션이 당연하게 될 수록, 운전자들이 자동차의 기계적 구조에 대해 더 모르게 되는 것처럼 말입니다.

이 책은, 자연어처리 기능을 손쉽게 가능하게 해 주는 허깅페이스 자연어 모델들이 만들어지는 기반 기술에 대한 설명을 해 주는 책입니다.

그렇기 때문에, GPT, BERT, BART, Electra, ELMO 같은 모델의 종류, Attention의 태동, 그리고 인공지능 이전의 자연어 처리 방법들과 이슈들 (형태소분석, 어근분석, Word2Vec등의 임베딩 방법들.. )에 대한 기본 지식이 없다면, 보기 힘든 내용들입니다.

물론 그런 지식들이 없어도, "(1)허깅페이스에 들어가서, 기존 모델들을 (2)이렇게 가져다 쓰면, 이런 문제들이 (3)해결될꺼야" 같은 겉핥기식 모델 사용법만 보려고 해도, 도움이 될 수 있지만, 그것들은 그냥, 인터넷에 나와있는 따라하기식 블로글 글을 읽어보는 것만으로도 충분할 수 있습니다.

이 책은 그것보다 좀 더 깊은, 허깅페이스 레포지토리의 구조, 각 언어 모델들의 차이, 언어모델의 기본이 되는 어텐션 모델과 트랜스포머 모델의 구조, 각 언어모델들을 가져와서 도메인에 맞춰 적응학습을 시키는 방법, 대표적인 자연어 처리 문제들 (개체명인식(NER), 텍스트 생성(Text Generation), 요약(Summarization), 질의응답(Question and Answering))에 대한 라이브러리 활용 방법, 그리고 적응 학습 및 추론 과정에서의 실무 이슈 해결 방법들에 대해 이야기를 해 주고 있습니다.

자연어 처리 문제에 관심을 갖고 있는 사람이라면, 반드시 봐야 하는 책이었습니다.

능력이 된다면, 허깅페이스의 문서(huggingface.co/docs)들을 직접 보는 것이 더 좋겠지만, 아직 원서에 두려움이 있는 분들이라면, 이 책이 훌륭한 대안이 될 수 있을 것입니다.

그리고, 개인적으로는 이 책을 보기 전에 "밑바닥부터 시작하는 딥러닝" 1~3권 시리즈를 먼저 한번 보시는 것을 추가로 추천합니다.

-------------

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

-------------

 

처음 도서를 훑어보았을 때, 입문자 분들에게는 난이도가 있을 것이라 생각을 하였습니다. 하지만, 책을 읽으면서 생각했던 대로 난이도가 있었으나 입문자 분들도 조금 더 노력하신다면 충분히 이해할 수 있을 정도의 설명이 제공되고 있었습니다.
 
또한, 다뤄지는 내용이 체계적이고 실용적인 부분들이 많아 어렵더라도 이 책으로 공부하시는게 좋다고 추천해 드릴 수 있을 정도였으며, 특히 자연어 처리의 처음부터 끝까지를 파이프라인 기반으로 다루면서 개념을 잡아주고 있어 다른 작업(task)을 설명하는데도 파이프라인 구조와 함께 이해할 수 있어 쉽게 이해할 수 있습니다.
 
개인적으로 자연어 처리를 깊게 이해하고 싶은 분들(입문자/중급자)에게 추천드리는 책입니다.
-->

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

허깅페이스(HuggingFace)는 자연어처리를 공부하다보면 만날 수 밖에 없는 라이브러리입니다. 2017년 "Attention Is All You Need" 논문을 통해 트랜스포머가 발표되고 이를 활용한 GPT, BERT가 발표된 이후 자연어처리는 완전히 트랜스포머의 세상이 되었습니다. 이러한 세상에서 다양한 트랜스포머 모델과 학습 스크립트를 제공하는 허깅페이스는 자연어처리 엔지니어에게 필수적인 라이브러리라고 할 수 밖에 없겠습니다. 본 책은 이런 허깅페이스를 껴안기(Hugging), 즉 이해하기에 도움을 주는 책이 아닌가 합니다.

 

4장부터 7장까지는 허깅페이스 라이브러리를 통해서 트랜스포머를 잘 이해할 수 있도록 도우면서도 다양한 자연어처리 태스크에 트랜스포머를 적용하는 방법을 잘 설명하고 있습니다. 책의 순서를 따라가는 것만으로도 개체명인식(NER), 텍스트 생성, 요약, QA 등 다양한 태스크에 트랜스포머를 적용하는 방법을 익힐 수 있습니다. 각 챕터별로 태스크에 사용할 수 있는 트랜스포머 모델을 설명하면서 (최신의 것과는 차이가 있을 수 밖에 없지만) 한 때 SOTA를 달성했던 모델에 대해 폭넓게 이해할 수 있었습니다. 특정한 태스크에 트랜스포머를 적용하기를 (특히, 허깅페이스 라이브러리를 사용기를) 원하는 독자분께서는 각 챕터를 발췌하여 읽는 것만으로도 큰 도움을 받으실 수 있을 것으로 생각합니다.

 

8장부터는 태스크에 국한되지 않고 개괄적인 내용을 설명하고 있는데요. 8장에서 트랜스포머를 효율적으로 사용하기 위한 방법으로 KD(Knowledge Distillation), 양자화(Quantization) 등을 소개하는 부분이 인상적이었습니다. 또 마지막 장에서 트랜스포머 모델의 한계점이나 향후에 발전해나가야 할 방향을 제시하면서 자연어처리를 연구하는 리서처에게 더 많은 연구거리를 제시한 점도 인상깊게 다가왔습니다.

 

트랜스포머를 사용하여 문제를 풀고 싶은 엔지니어 뿐만 아니라 향후 자연어처리를 연구하고자 하는 연구자 꿈나무라면 한 번 쯤 읽어봐야 할 책이라고 생각합니다.

추천하는 대상:

  • 파이썬과 딥러닝 프레임워크에 익숙한 리서처 & 엔지니어
  • 자연어처리 프로젝트를 진행하는 모든 분 !

Transformer와 Huggingface

어텐션(Attention) 메커니즘의 등장은 트랜스포머(Transformer) 모델 구조로 이어지며 최근 몇년 간 자연어처리 기술 발전의 근간이 되었다. 이와 더불어 허깅페이스(Huggingface)는 트랜스포머 그 자체로 동일한 이름을 가진 라이브러리가 등장시켰고, 모델에 대한 사용성과 접근성을 크게 개선했다.

트랜스포머를 활용한 자연어처리 는 허깅페이스에 대한 전반적인 소개와 사용법을 다룬다. 앞서 서술한 바와 같이 이 책은 파이썬 프로그래밍과 딥러닝 프레임워크에 익숙하며, 이미 NLP를 적용한 프로젝트에 익숙한 분들이 대상 독자로 적합하다.

책의 구성

내용의 구성은 아래와 같다.

  • 1 ~ 3장 : 트랜스포머와 허깅페이스 라이브러리, 생태계 소개
    • 2장 : 분류 (Text Classification)
  • 4 ~ 7장 : 허깅페이스를 활용한 자연어처리 태스크 별 적용 소개
    • 4장 : 개체명인식 (Named Entity Recognition)
    • 5장 : 생성 (Text Generation)
    • 6장 : 요약 (Text Summarization)
    • 7장 : 질의응답 (Question & Answering)
  • 8장 ~ 10장 : 모델 성능 향상
  • 11장 : 향후 로드맵

가장 핵심적인 장점

허깅페이스의 이름 아래 조성된 생태계는 초창기 트랜스포머 라이브러리와는 달리 매우 거대해졌다. NLP 뿐만 아니라 컴퓨터비전 문제를 해결하기 위한 모델도 허깅페이스를 통해 접할 수 있게 된 세상이다.

어디서부터 시작해야할 지 막연할 수도 있지만 허깅페이스 소속 엔지니어와 오픈소스 프로젝트에 참여한 개발자가 직접 참여한 트랜스포머를 활용한 자연어처리 는 프로젝트를 시작하거나 어플리케이션을 개발하고자 하는 분께 허깅페이스의 무엇을 어떻게 활용할 지 훌륭한 가이드가 된다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

"트랜스포머를 활용한 자연어 처리"는 자연어 처리 분야에서 가장 인기 있는 인공 신경망 기반 알고리즘인 트랜스포머(Transformer)를 소개하고 있는 책입니다. 이 책은 트랜스포머의 원리와 작동 방식, 그리고 구현 방법까지 자세히 설명하고 있습니다.

각 장마다 실습 코드가 제공되어 있기 때문에, 실제로 트랜스포머를 사용해보며 이해할 수 있습니다. 책 속에는 자연어 처리를 위한 주요 기법들도 소개되고 있기 때문에, 자연어 처리를 처음 접하는 사람도 쉽게 이해할 수 있을 것 같습니다. 전체적으로 이 책은 트랜스포머를 자세히 이해하고 실제로 사용할 수 있는 능력을 기를 수 있는 좋은 자료일 것으로 생각됩니다.

이 책을 읽게 된다면, 트랜스포머가 어떻게 자연어 처리에 적용되는지, 어떻게 구현되는지, 어떤 실제 사례들에 적용되는지 자세히 이해할 수 있을 것입니다. 이 책을 통해 트랜스포머를 이용한 자연어 처리에 대한 기본 지식과 실무 역량을 기를 수 있을 것입니다.

이 책이 적합한 읽기 자격이 있는지 확인해볼 필요가 있습니다. 이 책은 자연어 처리와 관련된 기초 지식과 기계학습의 기본 지식을 소개하고 있지 않습니다. 이러한 지식을 이미 습득하신 분들이라면 이 책을 읽기에 적합할 것입니다.

여기까지 chatGPT(Generative Pre-trained Transformer)로 작성된 리뷰입니다. :) 

--

이 책을 펼쳐보게 되면 허깅페이스 아이콘에 어질어질할 수 있는데 트랜스포머를 제공하는 Hugging Face의 로고인 점을 참고하면 좋습니다. 우선 첫 번째 챕터는 허깅페이스의 트랜스포머 모델을 쉽게 import 해서 무엇을 할 수 있는지 차근차근 안내해 줍니다. 챕터가 끝날 때쯤 되면 마치 인공지능 전문가처럼 모델을 활용해서 무엇이든  만들 수 있을 것 같은 생각이 들죠. 하지만 역시나 "은탄환은 없다"는 말로 독자를 진정시켜 줍니다. 그러면서 트랜스포머가 앞으로 풀어야 하는 숙제도 잘 설명해주고 있습니다.

첫 번째 챕터를 포함해서 책을 덮는 순간까지 예제가 아주 잘 되어 있어서 실습하는데 무리가 없습니다. 실습뿐만이 아니라 이 책은 트랜스포머를 중심으로 딥러닝의 다양한 부분을 설명해주고 있습니다. 제가 마지막으로 읽은 딥러닝과 관련된 도서는 최소 2년은 된 것 같은데요, 사실상 배경지식이 바닥인 수준이라는 거죠. 이 상태로 책을 읽으니 어려움이 많았습니다. 100% 이해하지 못한 부분도 꽤 많았고요. 하지만 머신러닝/딥러닝 씬에 계시는 분은 아주 재밌게 읽으실 수 있을 거라고 생각합니다.

혹시 번역서라서 망설여지시나요? 번역서를 만나면 매끄럽지 않은 번역 품질 때문에 책을 중간에 덮어버리는 경우도 있었는데요. 이 책의 역자는 박혜선 님입니다. 대한민국에서 머신러닝/딥러닝을 공부하는 사람치고 이 분의 책을 거치지 않은 사람이 있을까 싶을 정도로 인공지능 관련 도서에서 독보적인 역자십니다. 그만큼 번역의 품질이 좋고 많은 사람들이 인정하고 있으므로 안심하고 읽으실 수 있을 겁니다. 

요즘 핫하다는 트랜스포머는 이 책 한 권으로 정리하시기를 바랍니다.

 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

자연어 처리 분야의 베스트 셀러인 책과 많은 번역을 하신 박해선님이 번역을 하시어, 너무나 기대되었던 책입니다.

현존하는 모델 중 Transformer 계열 모델들이 NLP에서 시작을 하였지만 CV, Recsys 등 다양한 분야에 적용되면서 한계는 어디까지 인가 라는 지칭을 많이 받는 모델입니다.

이 책은 Transformer 라이브버리의 개발자와 Hugging face 오픈 소스 개발자들이 공동 집필을 하여 더욱더 좋은 책이라 생각됩니다.

Transformer를 이제 공부하시는 분이나 이미 접해보신 분들에게도 굉장히 많은 도움이 될 책입니다.

Transformer가 구조적으로 어려워서 제대로 이해하는 것이 굉장히 중요합니다. 이책은 단계별로 Trnasformer를 잘 이해가 되도록 구성이 되어있고, 또한 활용도도 매우 좋습니다.

모든 주제가 실습 위주 방식이고, 주피터 노트북을 제공하기 때문에 매우 직관적이며 이해하기가 쉽습니다. 또한 애플리케이션에 대해서 다뤄져서 매우 활용도가 높습니다.

특히, Transformer가 중요하다고 모두 다 이야기를 하고 있지만, 참고 서적은 많이 없는 것이 학습을 하면서 굉장히 어려우신 분들이 많으셨을텐데, 그 분들에게 굉장히 도움되는 책이라 생각합니다.

또한 박해선님의 전문성이 더욱 더 드러나 물 흐르는 듯한 문장이 읽기 편하고 이해가 굉장히 쉬워 어려웠던 내용도 술술 읽힙니다.

현재 출판되어 있는 책들 중에 Transformer의 가이드 중 최고라고 생각합니다.

이 책의 저자는 허깅페이스 공동설립자 및 개발팀 2분 포함 무려 3분이나 된다. 역자는 믿보 박해선님이다.

허깅페이스는 트랜스포머 유명한 모델 현재 기준으로 50개 이상을 쉽게 사용할 수 있는 라이브러리이다. 모델 수가 계속 늘어나고 있기 때문에 머지않아 100개를 넘는 모델을 보유할 거라 생각이 든다. 라이브러리는 내부 코어를 러스트언어로 작성하여 빠르고 버그없이 엄격하게 동작한다. 추천사를 쓰신분들도 kaggle과 FASTAI설립자분 및 핸즈온머신러닝 저자분을 비롯하여 어마어마하다. 목차는 1장에서 3장까지 자연어처리와 트랜스포머를 자세히 알아보고 허깅페이스로 구현방법 및 파이토치로 저수준으로 작성해보며 4장 ~ 7장까지는 다양한 예제를 3장에 소개된 모델 들을 활용하여 구현한다. 8장에서는 효율적인 모델을 만드는 방법에 대해서 알아보고 9장~10장에서는 발생할 수 있는 문제를 포함하여 데이터를 수집해서 밑바닥부터 모델을 훈련하는 방법까지 다양하게 다룬다. 11장에는 향후 발전방향에 대해서 소개하고 있다.

이 책의 장점은 다양한 그림과 설명이 탄탄하고 밑바닥부터 하나하나 자세히 구현해 본다는 점이다. 그리고 트랜스포머 가계도를 통해 각 모델의 특성을 파악하기 쉽게 설명해 준다. 그리고 파이토치와 케라스 코드도 많이 활용하고 있다.

굳이 이 책의 단점을 들자면 한글로 처리하는 예제가 부족하고 기본지식이 없다면 읽는 속도가 상당히 느릴 수 있다는 점이다.

소스코드는 언제나 그렇듯이 자세하게 최신 버전을 반영하고 있어서 동작시켜보며 이해를 도울 수 있다.

파이토치 또는 케라스를 활용해봤고 딥러닝의 이론이 어느정도 익숙한 사람들에게 이 책은 또 하나의 무기가 될 것으로 생각되어 추천한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

오랜만에 진짜 재밌게 공부할 책을 만난 것 같아서 기분이 너무 좋았다.

여태 컴퓨터 비전 쪽으로반 생각하면서 Convolution하고만 친하게 지내다가

2년만에 자연어와의 추억도 꺼내보고, 새로운 Transformer, HuggingFace하고도 조금은 가까워 진 것 같다.

이 책은 기존에 정말 만족했던 책들 중에서도 정말 손에 꼽는 마음에 쏙 드는 책이었다.

최근 Multi Modal이란 단어가 등장했고, 단순히 이미지만, 자연어만 처리하는 것 뿐만이 아니라 이 두가지를 함께 합쳐진 태스크들도 많이 나오고 있다.

이런 것들을 접하면 늘 속으로 이미지만 하기엔 이 쪽 세계엔 재미있는게 아직은 너무 많다고 생각한다.

그러기에 지금 자연어 처리에서 가장 핫하고 널리 사용하는 Tramsforemr와 Hugging Face에 대한 책은 이 책이 유일할 것 같다.

무엇보다 코드나 내용들이 오래된 내용들이 아니라 다 최신의 것들이라 아무래도 훨씬 좋은 것 같다.

 

자세한 리뷰는 블로그를 참고해주세요

 

여러가지 인공지능 관련 책을 활발히 번역하는 박해선님이 또 새로운 책을 진행해서 읽게 되었다. 책을 읽기 시작하자마자 느낀 건 요즘엔 번역하시는 분들도 기술적으로 어지간히 잘 알지 않으면 쉽지 않겠다는 생각이었다. github repo에 가면 이제는 colab link를 아예 넣어두셔서 정말 one click으로 코드가 돌아가는 걸 볼 수 있게 해놓았다. 이렇게 좋은 책을 읽게도 해주시고 코드도 편히 테스트하게 해주시니 (물론 대가를 받고 하지만) 참 감사한 마음이 든다.

지난 몇 주간 이 분야의 최고 관심사는 단연 ChatGPT인데, transformer model은 바로 이 ChatGPT(GPT-3)의 기초이다(GPT-3뿐만 아니라 사실 다른 많은 최신 NLP model들의 기초이기도 하다). 이 책은 바로 이런 transformer model을 사용하기 쉽게 해주는 Hugging Face library를 통해 여러가지 NLP의 개념, 또 NLP application에서 transformer를 사용하는 방법을 알려준다. transformer에 대한 설명부터 시작하기 때문에 완전히 처음부터 시작하는 사람보다는 어느 정도 기초 지식이 있는 사람에게 적합하다. transformer를 세상에 소개했던 논문 “attention is all you need”처럼 이 책이 NLP를 공부하는 사람에겐 오직 단 하나라곤 할 수 없어도 몇 손가락 안에 드는 책이 되기는 충분하겠단 생각이 든다.

Ref. https://transformersbook.com/

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

와 진짜 이 책 잘 번역되었고 잘썼다. 한 책.

사실 트랜스포머라고 했을 때 구글 BERT의 정석이 제일 좋다라고 했었는데 정말 이걸 뛰어넘는 책이 나오긴 했구나.

번역이 된건 이 책이 나온지 1년만이라 일부분 코드가 조금은 올드한게 있긴 하나 트랜스포머를 이해하고 자연어 처리 관련한 파이프라인만드는데 있어서 참고하기에 딱 좋은 책.

익히 많은 책을 번역해오신 박해선님이 옮긴 책이기도 하고, 무엇보다 요즘 자연어처리 분야에서 활약하는 주요 모델들이 트랜스포머를 기반으로 동작하고 있었기 떄문에 기대하던 책이었다. 물론 인터넷에도 잘 정리된 자료들이 많지만, 책으로 한 번 제대로 정리해서 보고 싶었던 차에 아주 적절한 책인 것 같다.

이 책의 대상 독자는 이미 머신러닝 딥러닝에 대해 이해를 하고 있으며, 파이썬 프로그래밍이 가능한 사람이다.

  • 핸즈온 머신러닝

  • fastai와 파이토치가 만나 꽃피운 딥러닝

  • 파이토치로 배우는 자연어 처리

  • 허깅페이스 온라인 코드

대략 이 정도의 책과 자료들을 습득한 사람을 대상으로 한다는 것을 참고하면 자신에게 이 책이 필요한지, 적절한 수준인지 감을 잡을 수 있을 것이다.

트랜스포머를 이용해 할 수 있는 다양한 task들(텍스트 분류, 다중 언어 개체명 인식, 텍스트 생성, 요약, 질문 답변 등)을 다루고 있기 때문에 어떤 식으로 트랜스 포머를 활용하면 좋을지에 대한 조언을 얻을 수 있을 것이다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

아마존 자연어 처리 분야 베스트 셀러인 트랜스포머를 활용한 자연어처리가 출판 되었네요.

저는 트랜스포머라고 하면 자동차로봇만을 생각하고 있었는데~

이렇게 인공지능 분야에서 사용하는 자연어처리 라이브러리 라고는 생각도 못했었네요.^^

트랜스포머는 2017년에 구글 연구팀이 발표한 논문에 제안된 신경망 아키텍처로 긴 시퀀스 데이터에서 패턴을 감지하고 대용량 데이터셋을 처리하는데 뛰어난 모델으로 NLP를 넘어서 이미지 처리 등의 작업에도 사용 된다고 합니다.

이 책은 트랜스포머스 라이브러리의 개발자들과 허깅페이스의 오픈소스 개발자들이 공동 집필을 했고 박해선님이 번역을 한 트랜스포머 라이브러리와 이를 둘러싼 생태계까지 전 영역을 아우르는 책입니다.

그럼 트랜스포머를 만나러 가 보시죠~

구성

1장 : 트랜스포머 소개 및 관련 용어, 허깅페이스 생태계 소개

2장 : 감성 분석 작업에 초점을 두고 Trainer API 소개

3장 : 트랜스포머 아키텍처 설명

4장 : 다국어 텍스트에서 개체명을 인식

5장 : 텍스트를 생성하는 트랜스포머 모델의 능력을 탐구

6장 : 시퀀스-투-시퀀스 작업을 살펴 보고 이 작업에 사용하는 측정지표 살펴 보기

7장 : 리뷰 기반 질문 답변 시스템 구축

8장 : 모델 성능을 살펴 보고 지식정제,양자화,가지치기 기술을 탐색

9장 : 레이블링 된 대량의 데이터가 없을 때 모델 성능을 향상할 방법을 살펴 본다.

10장 : 파이썬 소스 코드를 자동 완성하는 모델을 밑바닥 부터 만들고 훈련하는 방법을 알려 준다.

11장 ; 트랜스포머 모델의 도전 과제와 흥미로운 신생 연구 분야를 소개한다.

 

서평

이 책은 파이토치를 기반으로 설명을 하였지만 텐서플로를 사용하였다고 해도 문제가 없도록 텐서플로 기반에서 어떻게 트랜스포머스를 사용하는지에 대해서 자세히 다루고 있습니다.

 

 

또한 이해하기 쉽게 필요할 때마다 그림을 삽입해서 더욱 이해도를 높여 주었습니다.

그리고 이 책은 실습 주도 방식으로 구성이 되어 있어서 직접 실습을 통해서 결과물을 눈으로 보면서 어떤 형식으로 동작하는지의 원리를 깨닫게 해 주는 구성이 좋았던 것 같습니다.

다음은 허깅페이스 허브에서 무료로 공개된 20000여개의 모델 중에서 영어를 독일어로 번역하는 모델(opus-mt-en-de)를 활용하여 단 3줄로 영어를 독일어로 번역하는 예제입니다.

 

 

코랩에서 이 세줄을 입력하여 실행을 해 보면 다음과 같이 멋지게 번역된 결과(사실 저는 번역이 완벽히 되었는지 판단을 할 수가 없다는 사실이.ㅠ.ㅠ)가 출력 됩니다.

 

왼쪽 입력 데이터, 오른쪽 출력데이터

 

 

또한 허깅페이스 허브에서 사전 학습된 모델을 사용하여 미세조정을 통해 자신이 원하는 모델을 만들어 내는 방법을 다루고 있기 때문에~

사전학습된 모델을 사용하여 자신에게 맞는 새로운 모델을 만들어서 실무에서 사용할 수 있는 활용을 원하시는 분들에게더욱  필요한 책이 아닐까 생각이 되네요.

또한 트랜스포머 아키텍처와 허깅페이스 생태계를 배우고 싶다면 이 책을 읽어보시면 좋을 것 같습니다.

이 책을 읽으면서 허깅페이스의 트랜스포머스 라이브러리의 자연어 처리 부분 뿐 아니라 딥러닝 전 영역으로의 영향력을 살펴 볼 수 있었던 것 같습니다.

 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


한빛미디어 '나는 리뷰어다' 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

Natural_Language_Processing_With_Transformer.png

 

 

0. 소개


Image 분야의 Deep Learning에 CNN 구조가 있다면, Text 분야의 Deep Learning에서의 대세는 역시 Transformer입니다.


2017년에 Google에 의해 'Attention Is All You Need' Paper가 발표되고 난 후, NLP 분야는 Transformer로 인해 그야말로 비약적인 발전을 이루게 됩니다.


Paper 발표 이후, Text Classification , Summarization , Translation , QA, NLU , NER 등 모든 Text 관련 부분에서 SOTA를 이루어 냈고, 지금도 그 위력은 여전합니다.


Transformer 구조 자체가 약간 어려운 느낌은 있지만, 대중화시킨 것은 HuggingFace의 역할이 큽니다.


누구나 Transformer 구조를 Base로 한 Pre-Trained Model을 검색하고 다운로드할 수 있으며,


Fine Tuning 하여 자신의 Project에 적용할 수 있도록 도와줍니다.


이 책은 Transformer 개발자와 HuggingFace 개발자들이 공동 집필, 이를 둘러싼 생태계까지, 전 영역을 다룹니다.


모든 주제가 실습 위주 방식이고, 주피터 노트북을 제공하기 때문에 직관적이며 이해하기 쉽습니다.


또한, 통찰력 있는 설명과 실질적 애플리케이션에 대해서 다루기 때문에 매우 실용적입니다.


Transformer를 기초부터 설명하고 실전에 사용할 수 있도록 Guide를 제시하고 있기 때문에, NLP를 처음 배우는 사람이든 전문가이든 Model을 빠르게 개발하고 배포할 수 있도록 도와줍니다.


책에는 실전에서 만날 수 있는 난관(처음부터 Model을 훈련시켜야 한다든지 Label이 있는 Dataset이 없다든지...)에 대응할 수 있는 실용적이고 즉시 사용 가능한 Solution도 제공합니다.


번역가(박해선 님)의 전문성에서 우러나오는 물 흐르는 듯한 부드러운 문장이 읽기 편하고 이해가 쉽다는 것도 장점입니다.


이 책은 현재 구할 수 있는 Transformer의 Guide 중 최고라고 생각합니다.


1. 구성

 
CHAPTER 1 트랜스포머 소개
- 흔히 Seq-To-Seq 방식이라고도 알려진 Encoder - Decoder Framework에 대한 소개
- Attention의 장점과 Attention이 어떤 방식으로 기존 방식들의 문제점들을 개선하는지 소개
- HuggingFace 소개 및 장점

CHAPTER 2 텍스트 분류
- DistilBERT를 이용한 텍스트 분류 작업을 해보면서 HuggingFace 사용법을 익힌다.
- HuggingFace에서 Dataset을 검색하고 다운로드 / Pre-Processing / EDA하는 방법 소개
- Feature Extractor로 사용하기 / Pre-Trained Model 사용법 / Fine Tuning 방법

CHAPTER 3 트랜스포머 파헤치기
- Transformer의 실질적인 구현을 알아본다.
- Transformer Model의 구분 : Encoder 유형 / Decoder 유형 / Encoder - Decoder 유형
- 다양한 Transformer Base Model들의 분류 및 소개

CHAPTER 4 다중 언어 개체명 인식
- 영어 이외의 다른 언어에서 Transformer 적용 방법을 NER을 통해서 알아본다.
- Transformer를 임의의 NLP 작업에 적용해 보기
- Body - Head 구조로 인해서 쉽게 어디든지 적용가능하다는 것을 확인
- 하나의 언어에서 학습한 Model을 다른 언어에도 적용해보는 방법을 알아보자

CHAPTER 5 텍스트 생성
- GPT-2를 이용한 Text Generation 예제를 살펴본다.
- Greedy Search 방식의 작동 방법과 문제점 그리고 그 대안과 Beam Search Decoding
- Decoding 방법과 선택에 대한 가이드

CHAPTER 6 요약
- Seq. To Seq. Model(Encoder - Decoder)과 CNN/DailyMail Dataset을 이용하여 문장을 요약하는 방법
- Baseline Model 선정 및 Model을 이용하는 방법 ( BART / GPT-2 / T5 / PEGASUS )
- 다양한 Text Summarization 품질 평가 / 방법 소개 ( BLEU / ROUGE )
- PEGASUS의 Fine Tuning 방법 소개

CHAPTER 7 질문 답변
- Text 일부를 답변으로 추출하는 방법.
- 문서(Web Page , 계약서 , News)에서 원하는 답을 찾는 방법 확인
- 수많은 Review 중 특정 질문에 대한 답을 찾는 방법 소개
- QA를 NLP 문제로 해결하기 위한 방안 모색 
- Base Model을 어떤 Model로 선택할지 Guide
- Tokenizer for QA Model
- 리트리버 / 리더 평가 방법
- 추상적(Abstractive) or 생성적(Generative) QA 소개
- RAG 소개

CHAPTER 8 효율적인 트랜스포머 구축
- Transformer 성능 향상을 위한 기법들 소개
- 질문의 의도를 파악하는 Model
- Model 배포시에 염두해야할 사항들 ( 성능 , Latency , Memory 등 )을 확인할 수 있는 방법
- 지식 정제 : 느리고 크지만 성능이 더 좋은 Teacher의 동작을 모방하도록 작은 Student Model을 훈련하는 전반적인 방법 소개
- Weight & Output Format으로 Int로 바꾸는 양자화
- ONNX로 성능 향상 시키기
- Memory가 부족한 경우에 속도 향상을 이룰 수 있는 방법
- 중요하지 않는 가중치를 줄이는 방법에 대해서 알아본다.

CHAPTER 9 레이블 부족 문제 다루기
- Labeled Data가 없거나 매우 적은 경우에 대한 Guide
- Baseline Model로 Naive Bayes을 준비한다.
- Labeled Data가 없는 경우 처리 방법 소개
- Data Augmentation 방법 소개
- Labeling 되지 않는 Data를 활용하는 방법 소개

CHAPTER 10 대규모 데이터셋 수집하기
- 원하는 Data가 모두 있는 경우에 어떤 일을 할 수 있는지 알아보자
- 사전 훈련을 위해서 대규모 말뭉치부처 만드는 다양한 방법들을 소개한다.
- Customized Tokenizer를 구축하는 방법 , 성능 측정 방법 , 훈련 방법 소개
- Model 초기화 / Data Loader 구축하기 / Train Arguments 설정 방법

CHAPTER 11 향후 방향
- Transformer가 강력하지만 현재 당면한 과제들이 어떤 것이 있는지 알아보고 연구동향을 살펴보자
- 기존의 성능이 우수한 Model들을 성능을 향상시키는 방향으로 발전시키는 방안에 대해서 모색한다. 
- Text Data 뿐만 아니라, Image , Table Data 등과 같은 Data를 활용하는 방안
- 일반적인 Text Data 뿐만 아니라 Audio Text , Vision Text 등과 같이 두 개의 Data 형식을 합치는 방안에 대한 검토
 
2. 대상 독자
저는 이 책을 Transformer라는 Model은 알고 있지만, 이 Model을 실제 Application에 적용할 자세한 Guide가 필요한 개발자 혹은
어느 정도 Deep Learning Framework에 경험이 있지만, 자신만의 Project에 Transformer를 적용하려고 하는 개발자들에게 추천합니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

도서판매처

리뷰쓰기

닫기
* 도서명 :
트랜스포머를 활용한 자연어 처리
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
트랜스포머를 활용한 자연어 처리
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
트랜스포머를 활용한 자연어 처리
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실