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

한빛출판네트워크

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

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

한빛미디어

번역서

판매중

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

챗GPT처럼 자연어를 찰떡같이 알아듣는 트랜스포머 완벽 해부

 

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

 

루이스 턴스톨 저자

루이스 턴스톨

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

레안드로 폰 베라 저자

레안드로 폰 베라

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

토마스 울프 저자

토마스 울프

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

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 텐서 플로우 블로그(tensorflow.blog)를 운영하고 있고, 머신러닝과 딥러닝에 관한 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『인공지능 전문가가 알려 주는 챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 개정 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『파이토치로 배우는 자연어 처리』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗, 2021), 『딥러닝 일러스트레이티드』(시그마프레스, 2021), 『GAN 인 액션』(한빛미디어, 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 설립자

표지 그림이 인상적인 O’reilly 의 Natural Language Processing with Transformers의 번역본으로 요즘 핫한 chatGPT계열이나 BERT의 기본이 되는 트랜스포머를 다양한 Task를 기반으로 설명하고 있으며 NER이나 MRC관련 내용들도 상세히 다루고 있습니다.기본적으로 자연어처리(Natural Language Processing, NLP) 분야에서 가장 많이 사용되는 프로그래밍 언어 중 하나인 파이썬을 중심으로 다양한 주제들을 다루고 있습니다. 파이썬은 NLP 분야에서 자주 사용되는 라이브러리들과 함께 적절한 환경을 제공하여, 다양한 데이터 분석 및 모델링 작업을 보다 쉽게 수행할 수 있습니다. 이 서평에서는 파이썬을 활용하여 NLP 분야에서의 다양한 작업들을 다루며, 이를 통해 독자들은 자연어처리에 대한 전반적인 이해를 얻을 수 있을 것입니다.또한, 허깅페이스(Hugging Face)라는 NLP 분야에서 매우 인기있는 오픈소스 라이브러리를 사용합니다. 이 라이브러리는 다양한 NLP 모델과 데이터를 제공하며, 이를 활용하여 자연어처리 작업을 수행할 수 있습니다. 따라서 이번 서평은 허깅페이스를 경험해보고자 하는 독자들에게 큰 도움이 될 것입니다.

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

 

나는 이 책의 제목을 보고 트랜스포머 구조에 대해 설명을 하는 책일 것이라 생각했다.

 

그래서 책 표지 중간 쯤에 있는 "허깅페이스 개발팀이 알려주는 자연어 애플리케이션" 라는 부분을 무심코 지나갔었는데, 실제로는 허깅페이스를 통해서 자연어 애플리케이션을 구축하는 책이다

 

그렇다고 자신들의 프레임워크만을 알려주는.. 소위 '약'을 파는 책은 아니다.(허깅페이스 자체가 실제 우리에게 매우 유용할뿐더러)

 

나에게 있어서는 3장의 트랜스포머 파헤치기 장이 매우 좋았다. 애초에 트랜스포머에 대한 이해를 기대하였기에 그에 부응하는 설명이었다.

 

또한 11장의 향후방향 또한 의미있고 다른 도메인에 있어서 쉽게 흥미를 갖을 수 있도록 설명을 잘 해주고 있어 좋았다.

 

당연하겠지만 이 책을 읽고 트랜스포머에 대해 다 알게되었다는 착각은 하지 말기를 바란다.

 

우리가 조금 더 나은 환경에서 연구할 수 있는 프레임워크에 대한 학습과 도메인 지식에 대한 습득에 의의를 두자.

 

 

IMG_0979.jpeg

 

IMG_0980.jpeg

 

[트랜스포머를 활용한 자연어 처리]는 허깅페이스의 Transformers가 제공하는 소스코드 라이브러리와 사전 훈련된 모델 가중치, 데이터 셋, 평가 지표를 위한 스크립트, 관련 문서를 제공하는 허브를 모두 다루는 허깅페이스 생태계(에코시스템)을 활용한 자연어 처리(NLP) 방법을 설명합니다.

 

이 책을 읽는 독자는 일반적인 파이썬 코드를 읽을 수 있는 수준의 언어 지식과, 일반적인 딥러닝의 개념과 텐서플로 등 관련 라이브러리를 한 번이라도 다루어 본 경험이 있는 인공지능에 관심 있는 자를 대상으로 합니다. 책을 펼쳐보면 수식도 나오고 이를 설명한 그림과 삽화가 등장하며, Transformers에서 제공하는 데이터 셋과 소스코드를 이용해 결과물을 도출하는 과정이 각 챕터별로 구성되어 있습니다.

 

저는 몇개의 챕터를 제외하고는 매우 빠르게 읽었습니다. 자동차 회사가 타이어를 만들지는 않습니다. 타이어는 여러 회사 중에 하나를 선택하여 고를 수 있는 재료 중 하나이기 때문입니다. 라이브러리도 마찬가지라고 생각합니다. 응용 소프트웨어를 만드는 데 모두가 깊은 수학 기반의 지식이 필요하지는 않습니다. 누군가는 빠르고 효율적이게 라이브러리를 조합하고 일부 딥러닝 모델을 도메인과 상황에 맞게 파인튠 정도만 할 수 있으면 됩니다. 그런 의미에서 본 도서는 딱 적당한 수준의 내용을 담고 있습니다. 만일 딥러닝에 대한 기본적인 이해가 있는 상태에서 최신의 라이브러리와 NLP 기법에 관심이 있는 사람이라면 전체 내용이 더 없이 좋을 것 입니다.

 

본 도서는 철저한 기반 지식 안내와 깃허브를 통해 제공하는 예제를 설명해 줍니다. 제목과 같이 트랜스포머의 개념을 잘 소개해 주고 Transformers를 통해 잘 설명해 줍니다. 개인적으로는 저자분들께서 허깅페이스의 생태계에 조금 더 치우친 내용의 또다른 도서를 출간해 준다면 더 좋을 것 같습니다.

 

포괄적이고 실용적인 접근 방식으로 딥러닝과 응용 시스템 전문가를 모두 만족시킬 수 있는 도서입니다. Transformers의 허깅페이스 상태계를 사용하여 NLP 기술을 이애하고 적용하고자 하는 사람들에게 탄탄한 기초를 제공합니다. 또한 트랜스포머에 대한 실용적인 접근 방식, 다양한 개발 팁, 코드를 통해 빠르게 실습해 볼 수 있어, NLP에 대한 기술을 업그레이드하고 싶은 모든 이에게 도움됩니다.

 

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

● 코딩의 패러다임이 바뀌고 있다.

- 불과 3~5년 전만 해도 코딩 공부는 이랬다.

언어를 하나 정하고 (ex. python)

기초 명령어를 여러 개 익힌 후 (ex. print, if ~ else, for 등등)

- 명령어 묶음을 반복해서 사용할 수 있는 함수 작성법과 사용법을 익히고

- 본격적으로 객체를 다루는 클래스 사용법을 배운 다음

- 여러 라이브러리를 사용해 확장성을 넓히는 법을 배웠다.

- 이쯤 배우면 날갯짓을 시작한 아기새처럼 웹에 떠도는 정보를 익히며 스스로 배울 수 있었다.

- 전형적인 상향식(bottom-up) 학습 방식이다.

- 여기에 익숙해져 있다 보니 하향식(top-down) 학습 서적을 봤을 때 매우 당혹스러웠다.

 

● 발전 속도를 따라잡을 수 없게 되어버렸다.

- 알파고의 여파로 머신러닝에 강제 입문한 2017년에도 별반 다르지 않았다.

- 그런데 이후 월 단위로 새로운 알고리즘이 나와서 따라잡을 수 없게 만들더니

- 이제는 일 단위, 시 단위로 굵직한 결과물들이 터져나온다.

- 상향식 학습으로는 절대로 이 속도를 따라잡을 수 없어서 평생 공부만 하다 자연사할 것 같다.

- 이런 연유로 2~3년 전부터 하향식 학습이 주류를 이루게 되었다.

- 우선 전문가들이 만들어 공개한 라이브러리나 API를 사용해 원하는 목적을 이루고,

- 자세한 내용은 프로그램을 만들면서,

- 또는 일단 만든 후 성능을 개선하면서 어떻게 더 좋게 할까?라는 의문을 던지며 습득하는 식이다.

 

● Transformer와 Huggingface

- 이 글을 쓰고 있는 시점(2023.3.) 기준으로 ChatGPT의 열풍이 뜨겁다.

- ChatGPT는 2022년 11월 공개된 기술이지만 완성도가 상당히 유사한 GPT-3는 이미 2021년 커뮤니티를 달궜고

- 이 바닥에는 2017년에 공개된 Transformer라는 딥러닝 모델이 있다.

- CNN, RNN을 사용할 때만 해도 라이브러리를 불러 레이어를 한 겹씩 쌓아 모델을 만들었는데

- ResNet 무렵부터는 직접 만드는 것보다 사전학습된(pretrained) 모델을 받아 쓰는 것이 당연해졌다.

- 이와 동시에 내 컴퓨터가 아니라 클라우드에 접속해서 머신 러닝 모델을 실행하는 것이 당연해졌다.

- 학습을 위해 작성하는 간단한 코드마저도 내 컴퓨터가 아닌 Google Colab에서 실행하게 되었으며

- 처음에는 낯설었지만 이제는 모두가 사전학습모델과 클라우드 컴퓨팅에 익숙해졌다.

- 그리고 언어 모델의 중심에 Transformer, 모델 및 데이터셋 공유 플랫폼의 중심에 Huggingface가 있다.

- 기존에 내가 살아온 분야에서는 상상할 수 없는 개방과 공유를 통해 발전을 가속시키는 구심점들이다.

- 널리 쓰이는 github이 코드 공유의 중심이라면 Huggingface는 응용성이 한 단계 더 높다고 볼 수 있다.

- 딥러닝 입문자로서 Huggingface가 낯설게 느껴진다면, 모델 구축 방법보다 사용법을 먼저 익혀야 할지도 모른다.

 

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

- 자연어처리는 결코 만만한 분야가 아니다.

- 먼저 평생 글자로 익혀온 대상을 갑자기 벡터로 바라봐야 한다는 점에서 뇌가 꼬이는 느낌이 들고

- 학창시절에 잠깐 배우고 쓸 일이 없던 형태소, 자소 같은 용어들이 마구 등장한다.

- 영어로 조금 실습을 하다가 한글로 하려면 조사는 어떻게 되는거지? 같은 의문들이 꼬리를 문다.

- 이 책도 최근의 같이 일단 간단한 예제를 한번 실행해본 후 세부적인 기능을 짚는다.

- 문자 토큰화와 단어 토큰화를 예제와 함께 실습함으로써 단어가 숫자로 변환하며 벡터 변환의 감을 잡고

- 트랜스포머를 미세 조정해서 나에게 맞는 모델로 만들어가는 경험을 한다.

- 이후 다중 언어 처리텍스트 생성요약질문 답변을 통해 다양한 기능을 경험하고

- 마지막 단계로 효율성을 높이는 과정과 레이블 부족을 해결하는 예제, 그리고 데이터 수집 예제를 통해 나만의 서비스를 만들 준비를 탄탄히 한다.

 

● ChatGPT 시대의 코딩

- 트랜스포머 모델이 불러온 GPT-3, 그리고 챗봇의 옷을 입은 ChatGPT는 코딩을 못하는 일반인들에게도 스며들고 있다.

- 예전같이 목적도 모르고 외력에 의해서, 또는 흐름에 쓸려서 코딩을 배우는 바람직하지 못한 동기보다

- 당장 스스 겪고 있는 문제를 해결하기 위해 명확한 목적을 가지고 코딩에 입문하는 이들이 많아질 것 같다.

- 이 책에서는 트랜스포머를 다루고 있지만, 책에서 전달하고자 하는 그림은 더 큰 것으로 보인다.

- 트랜스포머가 아니더라도 허깅페이스를 통해 머신 러닝 모델을 공유하며

서로의 그림에 덧칠을 하면서 점점 더 멋진 모습을 그려나갈 수 있는 역량을 갖는 것이 이 책의 본 목적으로 생각된다.

- 앞으로 어떤 것들이 더 나올지 궁금하고 기대되는 요즘이다.

ChatGPT의 등장 이후에 자연어처리(NLP)와 자연어생성(NLG)에 대한 관심이 부쩍 많아졌는데요.

특히, 머신러닝 분야에서 일을 하는 분들의 관심이 많아졌을 것이라고 판단됩니다. 그런 분들에게 적합한 책이라고 보고요.

그래서 어느 정도 머신러닝과 딥러닝 프레임워크에 대해 기본적인 내용은 알고 있다는 가정하에 자연어 처리 특히 트랜스포머 및 그 이후에 나온 여러 인코더, 디코더 모델들에 대해서 다루고 있어요.

따라서 머신러닝에 대한 이론적, 실무적 지식이 어느정도 갖춘 상태에서 읽는 것을 권장해요.

트랜스포머를 활용한 자연어 처리는 감성 분석을 통한 텍스트 분류를 다루며, 트랜스포머 아키텍처에 대한 자세하고 친절한 설명을 해주고 있어 이해하기 어렵지 않았어요.

개인적으로 저는 알고 있는 내용을 다시 재확립해주는 좋은 기회가 되었던 것 같아요.

왜냐하면 트랜스포머에 대한 지식이 체계적으로 잡혀가며 잘 이해가 안됐던 부분이 정리되는 듯한 느낌을 받았기 때문이예요.

그래서 저처럼, 내용을 알고 있지만 더 깊이 있는 해석과 이해도를 갖고 싶은 분들에게도 꽤나 괜찮은 책이라고 생각되네요.

이 책에서 다루는 기술들은 자연어 처리에서 기본적인 내용 뿐만 아니라 나름 트랜디한 내용도 다루고 있어요.

Seq2Seq을 기반으로 하는 내용 뿐만 아니라 이 책을 통해서 알게된 헤이스택, 양자화, 레이블링 데이터가 없을 때의 모델 성능 향상 등을 다루고 있어요.

그리고 마지막은 자동완성 분야까지 다루고 있어 향후에도 당분간은 지속적으로 읽을 수 있는 책이라고 생각되기에 소장가치가 정말 높다고 생각되요.

특히 이 책의 저자는 딥러닝 분야에서는 유명한 사이트인 허깅페이스에서 근무하기에, 관련 최신 정보를 제공하고 있는 점도 좋았네요.

따라서 자연어 처리에 대해서 정리가 필요한 분, 좀 더 체계적인 지식이 필요한 분, 머신러닝은 알지만 트랜스포머가 뭔지 모르는 분 들에게 추천할 수 있는 꽤나 괜찮은 책이라고 생각해요.

감사합니다.

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

안녕하세요 마개입니다.

이번 달에 소개해 드릴 책은 "트랜스포머를 활용한 자연어 처리"입니다. 해당 책에 대해 알아봅시다.

 

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

 

도서 소개 

* 도서명 : 트랜스포머를 활용한 자연어 처리

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

* 옮긴이 : 박해선

* 출판사 : 한빛미디어

* 출간 일자 : 2022-11-30

* 페이지 : 484쪽

* 가격 : 정가 39,000원

 

핫한 ChatGPT의 핵심을 알 수 있지만 난이도가 있는 책

 

ChatGPT가 화제가 되면서 자연어 처리에 대한 관심이 많아졌습니다. 해당 책에서는 ChatGPT를 이루는 트랜스포머에 대해 알 수 있고 GPT뿐만 아니라 Bert에 대해서도 알 수 있습니다. 해당 책은 아래와 같은 내용들을 담고 있습니다.

 

* 트랜스포머 소개

* 텍스트 분류

* 트랜스포머 파헤치기

* 다중 언어 개체명 인식

* 텍스트 생성

* 요약

* 질문 답변

* 효율적인 트랜스포머 구축

* 레이블 부족 문제 다루기

* 대규모 데이터 셋 수집하기

 

해당 책에서는 인공지능과 자연어 처리에 대해 기본기가 있는 상태에서 설명을 한다고 명시되어 있습니다. 그만큼 쉽지 않은 내용이지만 친절하게 설명되어 있습니다. 개념에 대해서는 필요한 경우 그림으로 설명을 보충하여 이해하기 쉽게 도와주고 있습니다. 설명뿐만 아니라 직접 코드를 작성해 보며 예제를 따라 해볼 수 있다는 것이 이 책의 좋은 점입니다.

 

 

총평

저는 현재 데이터 엔지니어로 데이터를 다루고 있지만 자연어 처리와는 다른 영역이라서 자연어 처리에 대한 기본기가 없는 상태입니다. 이런 상태에서 해당 책을 처음 접하자 이해되지 않는 부분과 어려운 부분이 많았습니다. 그러나 그림과 추가적인 설명들을 통해 일부를 이해할 수 있고 관심이 생기게 되었습니다. 해당 책이 요즘 핫한 ChatGPT에 대해 일부를 알 수 있고 자연어 처리에 대해 알 수 있는 만큼 해당 내용에 관심이 있으신 분들은 기본기를 먼저 쌓고 보는 것을 추천드립니다. 이미 어느 정도의 지식을 가지고 계신 분들에게는 더할 나위 없이 좋은 책이라고 생각됩니다.

 

IMG_1496.jpg

 

안녕하세요 괴짜 개발자 namedboy 입니다.

 

혹시 여러분은 ChatGPT에 대해 얼마나 알고 계신가요?

openai에서 만들었고 그냥 채팅 봇정도로만 알고 계신가요?

 

ChatGPT는 산업 전반에 걸쳐서 변화를 만들어내고 있습니다.

인공지능이 하기 어려울 것이라는 창작이라는 영역이 가장 먼저 점령되고 점점 유저에게 친숙한 서비스들이 나오면서 과연 생성형 인공지능이 어느정도까지 가능할까 하는 생각마저 들게 됩니다.

 

ChatGPT는 생성형 AI라고 불리우고 있습니다.

그 이유는 ChatGPT에서 Chat을 제외한 GPT가 Generative Pre-trained Transformer의 약자이기 때문입니다.

 

이것이 의미하는 바는 말 그대로 사전에 훈련된 생성 변환기입니다.

사전에 훈련된 내용으로 생성하고 변환하는 신경망 학습모델인 것이죠. 그리고 채팅으로 대화를 하기 때문에 Chat이 붙은 것이죠.

 

이 ChatGPT를 이해 하려면 Transformer를 이해하면 된다는 말입니다. 심지어 내가 ChatGPT 같은 것을 만들 수 있기도 합니다.

 

다만 오랜 훈련의 시간과 엄청난 컴퓨팅 자원이 소모될 뿐이죠.

 

당장 내가 ChatGPT를 만들지 못한다고 해도 이 GPT를 이해하면 앞으로의 삶에 도움이 될것이 분명합니다.

 

이 책 트렌스포머를 활용한 자연어 처리에서는 트랜스포머를 이해하는 것부터 시작해서 텍스트를 처리하는 방법, 효율적으로 트랜스포머를 구축하고 텍스트를 생성하여 ChatGPT처럼 만드는 방법들을 알려주고 있습니다.

 

요즘 이슈가 되고 많은 기업에서 활용하고 있는 ChatGPT를 더 잘 이해하고 활용하고 싶거나 ChatGPT 같은 트랜포머를 활용한 생성형 AI를 만들어보고 싶다면 이 책을 한번 읽어보는 것을 추천드립니다.

 

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

책의 내용이 궁금하다면 [이곳]을 통해 확인할 수 있습니다.

 

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

 

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

(Natural Language Processing with Transformer) 

 

2.대상 독자

파이썬 프로그래밍에 능숙하고 딥러닝 프레임워크, 파이토치 or 텐서플로우의 기본을 알고 있는 사람 

모델을 GPU에서 훈련한 경험도 있는 사람 

 

3. 책의 구성

책의 목차 구성을 보면 실질적으로 기본적인 개념을 이해한 후, 아키텍처를 이해하고, 자연어 처리를 하는 스텝 바이 스텝 형식으로 내용을 풀어가고 있으며 소스코드도 제공이 된다. 

자연어 처리, 특히 요즘 가장 핫한 GPT에 대해 이해하고자 하는 사람들에게는 많은 도움이 되는 책이 아닐까 싶다.

트랜스포머 이해 -> 허깅스페이스 생태계 -> 트랜포머 아키텍처 설명 -> 다국어 텍스트 처리 -> 텍스트 요약 -> 리뷰 기반 질문 답변 시스템 -> 모델 성능 -> 레이블링된 데이터 없을때 처리 -> 파이썬 소스 코드 자동 완성하는 모델 밑바닥부터 만들기 -> 트랜스포머 모델의 전망과 분야 

 

1장 트랜스포머 소개, 용어, 이해, 허깅스페이스 생태계 

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

3장 트랜스포머 아키텍처를 자세히 설명

4장 다국어 텍스트에서 개체명을 인식하는 작업에 초점

5장 텍스트를 생성하는 트랜스포머 모델의 능력을 탐구하고 디코딩 전략과 측정 지표를 소개

6장 텍스트 요약 :  sequence to sequence 작업을 살펴보고 이 작업에 사용하는 측정 지표를 알아본다. 

7장 리뷰 기반 질문 답변 시스템을 만드는 데 초점을 두고 헤이스택을 사용한 검색 방법을 안내한다. 

8장 모델 성능에 초점을 맞춘다.(시퀀스 분류 문제의 일종인) 의도 감지 작업을 알아보고 지식 정제, 양자화, 가지치기 같은 기술을 탐색한다.

9장 레이블링된 대량의 데이터가 없을 때 모델 성능을 향상할 방법을 알아본다. 깃허브 이슈 태거를 만들고 제로샷 분류와 데이터 증식 같은 기술도 살펴봅니다.

10장 파이썬 소스 코드를 자동 완성하는 모델을 밑바닥부터 만들고 훈련하는 방법을 알려줍니다. 데이터셋 스트리밍과 대규모 훈련에 대해 배우고 사용자 정의 토크나이저도 만듭니다.

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

 

4. 예제 실습

실습 도구 

- 구글 코랩

- 캐글 노트북

- 페이퍼스페이스 그레디언트 노트북

 

예제를 실행하기 위한 깃허브 저장소

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

 

참고

- 16G 메모리의 NVIDIA Tesla P100 GPU를 사용했음

- 일부 무료 플랫폼에서 제공하는 GPU는 메모리가 작으므로 모델을 훈련할 때 배치 크기를 줄여야 함. 

 

4. 트랜스포머

구글의 연구원들이 2017년 논문에서 시퀀스 모델링을 위한 새로운 신경망 아키텍처인 ‘트랜스포머’를 제안했음

이 ‘트랜스포머’ 아키텍처는 기계 번역 작업의 품질과 훈련 비용 면에서 순환 신경망(RNN)을 능가했음 

이 ‘트랜스포머’ 아키텍처는 현재 가장 유명한 GPT와 BERT를 만드는 데 많은 영향을 끼쳤다.

GPT와 BERT는 트랜스포머 아키텍처와 비지도 학습을 결합해 어떤 작업에 특화된 모델을 만들때 밑바닥 부터 훈련하지 않더라도 거의 모든  NLP 벤치마크에서 매우 좋은 점수를 받았다. 

‘트랜스포머' 모델이 만들어진 순서를 확인해보면 아래와 같다. 현재는 GPT-4가 나온 상태

 

 

5. 트랜스포머 아키텍처의 새로운 점 3가지 

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

- 영어를 독일어로 바꿀때 인코더 블록과 디코더 블록에서 아래와 같이 처리를 해준다.

 

 

5-2. 어텐션 메커니즘

- 위에서 인코더 블록에서 처리하고 난 후에 디코더 블럭에서 인코더 블록에서 처리된 모든 상태를 처리하게되면 디코더에 한꺼번에 많은 입력이 발생하기 때문에 이를 어떻게 온 상태를 먼저 처리를 할지를 선택하는 것이 필요한데, 그 우선순위를 정해주는 것이 ‘어텐션 메커니즘’이다. 

 

 

5-3. 전이 학습 

- 합성곱 신경망 하나의 작업에서 진행한 후 다음 학습에 기존에 학습한 내용의 가중치를 적용해서 학습하는 형태, 비전 학습에서 많이 사용함. 

 

5-4. 전이학습 방법

> 사전훈련 - 언어 모델링 : 이전 단어를 바탕으로 다음 단어를 예측하는 방법 

> 도메인 적응 :  언어 모델을 대규모 말뭉치에서 사전 훈련한 후, 도메인  내 말뭉치에 적응시킨다. (아래 그림 참고)

> 미세 튜닝 : 도메인 적응 단계에서 언어 모델을 타깃 작업을 위한 분류 층과 함께 미세 튜닝을 한다. (아래 그림 참고)

 

5-5. NLP에서 셀프 어텐션과 전이 학습을 결합한 모델 릴리즈

> GPT : 트랜스포머의  아키텍처 중 디코더 부문만 사용하고 ULMFiT 같은 언어 모델링 방법을 사용한다. 

> BERT : 트랜스포머 아키텍처 중 인코더 부분을 사용하고 ‘마스크드 언어 모델링(masked language modeling)’이라는 특별한 형태의 언어 모델링을 사용 

 

책을 리뷰하면서 내용을 살펴보니까 자연어 처리의 최신버전의 기본적인 동작방법과 모델을 발전시켜 나가는 방법에 대해 

궁금하신 분들은 보시면 도움이 될 것 같습니다. 요즘 가장 핫한 GPT를 이해하는데도 도움이 되지 않을까 싶습니다. 

 

무엇이든 그냥 막 사용하는 것 보다는 원리를 이해하고 사용하면 더 잘사용할 수 있지 않을까 생각이 됩니다.

자연어처리의 원리를 이해해 보시고, 이를 바탕으로 ChatGPT같은 도구를 적절하게 사용해서 생산성 향상을 시키면 좋지 않나 싶습니다. 읽어주셔서 감사합니다. ^^

 

 

「트랜스포머를 활용한 자연어 처리(허깅페이스 개발팀이 알려주는 자연어 애플리케이션 구축) 책은 최근 ChatGPT에 관심을 갖는 분들 중 AI가 어떻게 답변을 해주고 대화를 이어가는지 그 원리를 궁금해 하는 분들이 관심을 가지고 직접 구축해 보는 실용서라고 할 수 있다.

 

2년 전에 국내 기업들 중에서도 취업을 희망하는 신입, 경력직들의 이력서를 자연어 처리와 데이터 분석툴의 개발을 통해 컨설팅을 하려는 기업에 R&D 강의를 진행한 적이 있다.

 

해당 기업의 연구원들이 해결하고자 했던 그리고 궁금해하던 내용들을 해외논문이나, 해외의 서적들을 통해 강의교안을 만들었는데, 한빛미디어에서 출판된 트랜드포머를 활용한 자연어 처리 책 한권으로 모든 것을 해결할 수 있다는 판단이 들었다.

 

앞으로 더 많은 기업들이 AI와 ChatGPT 등을 활용하거나 다양한 애플리케이션을 구축하고 기업들의 서비스에 적목할 것이다. 그에 앞서 연구진들이 가장 먼저 봐야 할 책을 추천한다면 바로 이 책을 추천하고자 한다.

 

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

 
 
 

최근 chatGPT로 인해 많은 사람들이 NLP(Natural Language Processing; 자연어 처리)에 관심을 가지고 있다. 나 또한 chatGPT를 사용해 보았고, 그 성능에 놀라지 않을 수가 없었다.

 실제 개념, 사건 등에 대한 내용 뿐만 아니라 추상적인 개념과 논리적인 사고력이 필요한 내용까지 그럴싸하게 대답을 해준다. 비록 아직 그 대답의 신뢰도에 대해서는 얘기가 많지만 불과 몇년 전까지만 해도 상상하지 못했던 수준의 모델이었다.

 

어떻게 이렇게 수준 높은 자연어 처리 작업이 가능했던 것일까? 그 기술적 바탕이 되는 model이 바로 "Transformer(트랜스포머)"다. 

 

Transformer는 2017년에 소개되었고, 그 이후 학계와 산업계에서 광범위하게 사용되고 있다. Google의 검색 엔진, OpenAI의 GPT, Github의 Copilot(코파일럿) 등에서도 모두 tranformer가 사용된다.

 

이 책은 Transformer를 쉽게 활용하여 애플리케이션을 만들 수 있는 방법에 대해 소개한다.

읽어보니 머신러닝, 딥러닝에 대한 기본은 어느 정도 잡혀 있다고 가정하고 설명을 하고 있다는 느낌을 받았다. 적어도 딥러닝에 대한 강의 하나 혹은 책 한 권 정도는 읽어 본 적이 있어야 이 책을 수월하게 읽을 수 있을 것 같다.

나의 경우에는 딥러닝에 대한 강의를 하나 본 정도의 수준이고, RNN, LTSM, Attention mechanism 에 대해서 책을 읽기 전 간단한 조사를 통해 사전 학습을 했다.

 

1장은 Transformer의 introduction이다.

transformer의 이전 model의 문제점은 무엇이었는지, 이를 해결하기 위해 transformer에는 어떤 기법이 적용되었는지 등을 간략히 살펴볼 수 있다.

또한 허깅페이스의 트랜스포머스에서 제공하는 API를 통해 NLP로 처리할 수 있는 task들에 대해 살펴본다.

 

2장은 Text classification(텍스트 분류)에 대해 얘기한다.

챕터의 이름은 텍스트 분류이지만 실제로 내용은 data를 어떻게 처리할 것인가에 더 가까웠다.

우리가 어떤 문장 "I didn't feel humilated."를 입력으로 사용할 때, 이를 model이 적절히 활용할 수 있도록 전처리를 해야 한다. 알파벳 단위로 ['i', 'd', 'i', ... , 'e', 'd', '.'] 와 같이 자르는 것이 좋을 지, 단어 단위로 ['I', 'didnt', ... , 'humilated'] 와 같이 자르는 것이 좋을 지에 대해 논의한다. 또한 잘라낸 알파벳, 혹은 단어를 어떻게 수치화하여 model에게 입력으로 넣을 지 등에 대해서도 얘기한다.

 

결국 모든 학습 과정은 data를 어떻게 처리할 지에 대한 문제인데, 이에 대해 코드와 함께 상세히 설명되어 있어 개인적으로 도움이 많이 되었다.

그 전까지 GPU에 data를 load하고 training, inference, test 등을 해본 적이 없었는데, 이번 기회로 Google Colab에서 간접적으로나마 훈련을 시켜보았다. 확실히 직접 training 코드를 돌려보고 책과 다른 예시를 넣어보면서 inference를 했을 때 결과가 나오니 더욱 흥미로웠다.

 

3장에서는 transformer의 아키텍쳐에 대해 보다 상세히 설명한다.

어떤 식으로 가중치를 학습을 하는 지에 대해서는 자세히 기술되어 있지 않지만 그 아키텍쳐의 구성 요소들이 각각 어떤 역할을 하는 지, 그래서 transformer model을 통해 어떤 task를 처리하고자 하였는 지에 대해 간략히 이해할 수 있다.

 

4장부터 7장까지는 3장까지 배운 내용을 바탕으로 transformer를 여러 task 적용해본다.

- 4장: 다중 언어 개체명 인식

- 5장: 텍스트 생성

- 6장: 요약

- 7장: 질문 답변

 

8장부터는 조금 더 디테일한 측면으로 들어가, 효율적인 프랜스포머 구축, 레이블 부족 문제 다루기, 대규모 데이터셋 수집하기, 향후 방향에 대해 설명한다.

 

Transformer가 "왜" 잘 되는 지에 대해 궁금한 독자보다

Transformer를 "어떻게" 활용할 지에 대해 궁금한 독자들이 이 책을 읽으면 더 많은 것을 얻어갈 수 있을 것 같다.

 

또한 활용의 측면에서 책을 보면 좋은 만큼 책을 읽으면서 예제 코드에서 제시된 데이터의 구조나 함수를 이해하고 직접 코드를 실행해보는 것을 강력히 추천한다.

앞으로 이 책을 읽을 독자들을 위해 예제 코드가 업로드 되어 있는 Github repository 주소를 첨부하고 글을 마무리 하고자 한다.

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

 

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

 

NLP의 최신 트렌드인  트랜스포머를 허깅페이스의 transformers 라이브러리를 통해 쉽게 pretrained 된 모델을 바탕으로 감정 분석, 질문 답변, 트랜스포머 모델 생성 등 다양한 주제에 대해 코드와 함께 담고 있다.

 

다만 이 책은 머신러닝 입문서가 아니다. 독자가 Python을 비교적 능숙하게(코딩 테스트 문제를 풀 수 있는 정도면 괜찮을 것 같다) 사용할 수 있어야 하고 A.I. 프레임워크인 Tensor flow, Pytorch에 대한 기본적인 사용방법, 인공 신경망, RNN 등 딥러닝과 자연어 처리 관련 기초 지식이 있다는 전제하에 진행된다. A.I. 필드에 대해서는 잘 모르지만 과거의 이론을 발전시켜서 새 이론이 나오는 것 같아서 초심자(필자)가 바로 덤비기엔 조금 어려울 수도 있을 것 같다. 다만 확실한 건 책 자체의 번역도 정말 매끄럽고, 이쪽에 대한 경험이 조금만 있다면 정말로 도움이 많이 되는 책이라는 느낌이 들었다.

 

NLP(Natural Language Processing)는 몰라도 ChatGPT는 아는 그런 시대이다. ChatGPT를 필두로 자연어처리는 현재 A.I. 의 여러 주제 중 가장 뜨거운 감자이고, 다시 한번 인공지능 붐을 만들었다. 그런 의미에서 자연어 처리에 대한 In Action을 담고 있는 이 책은 본격적으로 자연어처리를 코드로 풀어내기 전에 꼭 읽어보면 좋을만한 그런 책이라고 생각한다.

 

 

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

ChatGPT로 온세상이 떠들썩하다.

얼마전 발표한 GPT-4는 어지간한 인간보다 더 똑똑하다고 난리다.


이런 GPT와 같은 언어 모델의 바탕이 되는 것이 바로 트랜스포머(Transformers)이다.


과거(?) 딥러닝을 공부한다고 하면

이미지 처리를 위한 CNN 계열들 공부하고, 시계열 데이터를 다루기 위한 RNN 계열들 공부하고...

나중에 가면 음성처리 하던지 이미지 디텍션이라던지 하는 도메인별 특성에 따른 연구/공부를 하곤 했는데,

요즘은 그냥 무조건 그 끝은 전부 트랜스포머이다.

 

음성처리와 같은 것들도 그냥 End-to-End Model을 트랜스포머로 구성하곤 한다.

 

말 그대로 그냥 닥치고 트랜스포머인 세상이다.


표지

 

NLP를 공부하면서 Transformer를 공부한다고 하면

논문부터 찾아서 encoder가 어쩌고 decoder가 어쩌고 Self-attention이 뭐고.... 공부를 하곤 하는데,


우리가 직접 GPT 같은 것을 만들어야 한다면 이런 공부가 필수이겠지만

OpenAI와 같은 충분한 인력과 자본이 없다면

지금 우리에게 필요한 것은 활용이다.


초판


원서를 찾아보면 2022년 1월에 초판이 나왔고, 22년 5월에 Revised Color Edition이 나왔다.

번역본은 아마도 22년 5월에 나온 Revised Edition을 기반으로 했을테니, 아직은 1년이 되지 않은 책이다 ^^


옮긴이


옮긴이는 개인적으로 너무나 좋아하는 박해선님이다.

박해선님의 책은 무조건 추천!!! 와아~~~!!!


NLP 성장 동력


NLP 혁명의 성장 동력은 트랜스포머, 사전 훈련한 모델, 허깅페이스의 3가지라고 한다.


저자 자랑

 

결국은 책 자랑인데 ^^

트랜스포머 개발자와 허깅페이스 개발자들이 모여서 책을 썼으니

이 책은 킹왕짱 !!!


거기에다가 옮긴이가 박해선님이라니 !!!

정말 울츠라 슈퍼 초 킹왕짱 !!!


대상 독자


이 책은 절대 입문서가 아니다.

그리고 활용을 주 목적으로 한다.


예제 코드


위의 3개 사이트는 그냥 그런게 있다라고 하면 된다.

그런데, 3번째로 나와있는 '페이퍼스페이스 그레이디언트 노트북'이라는 곳은

처음 듣는 것이라 접속을 해봤더니 '404'로 페이지를 찾을 수 없었다.


https://www.paperspace.com/gradient/notebooks


위 주소로 접속할 수 있었는데, 뭐 사실 그냥 구글 코랩이면 충분하지 싶다 ^^


github


박해선님의 책을 좋아하는 이유는 정말 정말 충실한 예제 코드 제공이다.

꼼꼼히 직접 실행해보시며 만들어주시는 예제는 정말 정말 애정이다.


타임라인


정말 긴 시간인 것 같지만 Transformer가 세상에 나온지는 얼마되지 않았다.

그리고 InstructGPT/GPT-3.5 이어서 얼마전 나온 GPT-4까지 ...


전이 학습


허깅페이스를 활용해서 우리가 해볼 것은 위와 같은 전이 학습이다.


허깅페이스


허깅페이스를 통해 데이터셋을 다운로드 받을 수 있다.

별것 아닌 것처럼 보이지만, 정말 편리하다.


결론


각 챕터의 뒷 부분에는 위와 같은 결론을 제공해준다.

그냥 단순한 summary가 아니라 참고 자료도 제공해주고, 어떤 의미가 있는지도 친근하게(?) 정리해준다.


아키텍처


흔하게 볼 수 있는 이미지가 아니라,

나름의 방법으로 표현된 아키텍처를 볼 수 있어서 좋았다.



이 책을 살펴보면서 느낀점은 다음과 같다.

딥러닝 공부를 하면서 트랜스포머가 무엇인지 맛을 본 분들에게 활용에 대해서 안내해주는 친절한 가이드.



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

트랜스포머를 활용한 자연어 처리은 자연어 처리(NLP) 작업에서 트랜스포머 기반 모델의 성능을 활용하는 데 관심이 있는 연구자, 개발자 위한 훌륭한 책이며 이 분야의 많은 발전을 이끈 트랜스포머 모델에 초점을 맞춰 NLP 분야에 대한 포괄적내용을 소개 합니다.

  

이 책은 트랜스포머를 사용한 자연어 처리의 기본 및 고급 주제로 다루게됩니다.

 

언어 모델, 토큰화, 단어의 벡터 표현에 대한 개요를 제공하여 NLP를 이해하기 위한 내용이 서술되어 있고 NLP에 대한 전통적인 머신 러닝 접근 방식을 다루며, 그림과 예제 코드, 첨부되어 있는 자료들을 통해 이 분야에서 트랜스포머 모델의 중요성을 맥락에 맞게 이해하는 데 도움이 됩니다.  

 

최초의 트랜스포머부터 시작하여 트랜스포머 모델의 아키텍처와 작동 방식에 대해 자세히 설명합니다. 인코더-디코더 아키텍처에 대해 자세한 설명으로 모델을 훈련과 사용되는 다양한 최적화 기법 대해서도 설명하며 

BERT, GPT, RoBERTa, T5, DistilBERT와 같은 인기 있는 모델에 대해 심층적으로 살펴 보며 이러한 모델을 적용한 상세한 사례 또한 제공합니다.  

 

트랜스포머를 활용한 자연어 처리은 포괄적이고 체계적이며 통찰력 있는 책으로, 트랜스포머를 사용한 NLP에 관심이 있는 모든 사람에게 관련된 지식을 제공하며 이론적 개념과 실제 예제 사이의 완벽한 균형을 유지하여 초보자와 숙련자 모두에게 도움을 주는 책입니다.

 

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


NLP를 석사 전공하고 추천시스템 경험했습니다. 5년 정도 각종 시스템 개발을 하느라 ML에서 멀어져 있었는데 그 간극을 메꾸기 위한 첫 단추로 아주 좋았습니다. 이 책의 소개글처럼 전 세계를 강타한 ChatGPT의 기반인 Transformer에 대한 이해와 그 응용에 대해 잘 설명하고 있습니다. 논문을 통해 이해하려면 100편 넘게 봐야 할 분량이 책 한권으로 요약된 느낌입니다.

 

ML을 업으로 삼고 있는데 NLP는 해보신적 없는 분 혹은 Neural Network까진 어느정도 이해가 있는데 ChatGPT의 속살을 보고 싶으신 분들께 추천 드립니다. Embedding Space에 대한 이해가 있어야 하기에 word2vec 정도는 이해하고 보시면 큰 도움이 됩니다.

 

이 책에 대한 자세한 리뷰는 아래에서 확인하실 수 있습니다.

https://altari.io/2023/03/16/NLP-with-Transformers.html

 

트랜스포머 기반의 언어 애플리케이션을 만들려는 사람들은 읽어보기를 추천한다.

OpenAI의 chatGPT로 인해서 많은 사람들이 알파고 때보다 더 AI에 대해 관심을 갖고 있는 것 같다. 이 책에서 다루는 트랜스포머는 그 GPT(Generative Pretrained Transformer)의 근간을 이루는 트랜스포머에 대해 정리해 놓았다. GPT에 매료되었고, 직접 공부하면서 자신만의 애플리케이션을 만들어보려는 사람들은 한 번 읽어보기를 추천할만한 책이라고 생각이 든다.

 

 

AI 자체가 처음은 사람은 기반 지식부터 습득하고 읽어야 한다.

딥러닝이나 머신러닝 기반 지식과 관련 프레임워크(파이토치나 텐서플로)에 대해 전혀 모르는 사람이라면 이 책을 읽고 따라하는 것조차 어려울 수 있다. 책에서도 기반지식을 아래 책을 읽은 수준으로 가정하고 있기 때문에, 책에서 추천해주고 있는 아래 참고서 및 강의를 읽고 시작하는 것이 좋고, 텐서플로도 충분히 좋은 딥러닝 프레임워크지만 책에선 파이토치 API를 주로 사용하고 있기 때문에, 되도록 파이토치로 학습하는 것을 추천한다.

 

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

위와 같이 총 11개의 챕터로 되어 있는 이 책은 트랜스포머 모델을 이용하여 가능한 기능들을 소개하고 그 기능을 구현하는 소스 코드를 소개하는 형식으로 되어 있습니다. 아직 3장까지 뿐이 못 읽었습니다. 그래도 지금까지 읽어 본 느낌에 역시나 이 책은 기본적으로 딥러닝 알고리즘을 어느 정도 알고 있고 관련 기능을 개발하고 있는 연구자나 개발자를 위한 책임이 틀림없습니다.

 

사전학습모델과 트랜스포머 모델을 손쉽게 사용할 수 있는 허깅페이스를 소개하고 허깅페이스를 이용해서 NLP 처리를 할 수 있는 트랜스포머 모델을 직접 구현해볼 수 있는 소스를 알려주고 설명해줍니다.

 

자연어처리 분야 기능 개발을 준비하고 있는 저에게 딱 필요한 책 임에 틀림없으니 끝까지 다 읽어보고 다시 한 번 자세한 리뷰를 올릴 예정입니다.

출처 : 인터넷 교보문고

 

 

최근 ChatGPT가 연일 뉴스에 오르내리고 있습니다. 

IT에 문외한인 분들도 한 번쯤은 들어봤을 만큼인데요, 이 ChatGPT도 자연어에 기반한 인공지능 중 하나 입니다. 

 

인공지능 분야는 활발하게 연구가 진행되는 분야로, 최근에는 구글에서(엄밀히는 구글 연구원들이) 발표한 논문*에 새로운 신경망 아키텍처를 제안하면서 '트랜스포머'란 이름의 아키텍처가 대두 되었다고 합니다. 

* 여담으로 당시 논문은 'Attention Is All You Need' 란 제목으로 발표되었는데, 이후 'all you need' 가 붙은 논물이 쏟아졌다고 하네요.

 

이 책은 그러한 '트랜스포머'에 기반해서 책을 풀고 있습니다. 

사실 인공지능 분야는 잘 모르는 분야라 이 책을 통해 고급 내용을 접해보고 싶은 욕심이 있었는데요.

 

책에서 경고(?)를 하고 있더군요;;;

아뿔싸! 하나도 모르는 내용이잖아! ㅠㅠ
저자의 경고(?)대로 이 책은 쉬운 책은 아니었습니다.
아니 정확하게 말하면 저와 같이 전혀 모르는 입문자가 보기에는 어려운 책 입니다. 
다만, 이 책이 정말 좋았던 것은! 무려 "올컬러" 였다는 겁니다!!  

 

처음부터 끝까지 컬러로 인쇄된 책이 읽고 싶은 욕심을 뿜뿜하게 합니다. 

다만 내용이 어려워 조금 읽다가 자책하게 만들지만요 ㅠㅠ     

예제로 나오는 코드를 보다보면 '뻥을 좀 쳐서' 책을 읽는 건지 에디터를 연 것인지 헷갈릴 정도 입니다. ㅎ

그리고 책을 읽다보면 아래 깜찍한 이모티콘이 엄청 많이 나오는데, 허깅페이스 빅데이터, 머신러닝 분야에서 손에 꼽히는 업체라고 한다.

 

자연어 분야에 몸다고 있거나 관심이 있는 분들에겐 확실히 좋은 양질의 도서 같다.

하지만 나에겐 너무나 어려운 도서.. ㅠㅠ

 

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

 

 

 

"나는 리뷰어다 2023 2월"의 선정도서로

트랜스포머를 활용한 자연어 처리를 볼 수 있는 책을 받았다.

요즘 (요즘이라고 하지만 이전부터 이슈를 이끌어왔던) 핫한 ChatGPT의 기초가 되는

트랜스포머를 한번 접하고 싶었다.

그러던 중, '나는 리뷰어다'에서 보내준 책은 '트랜스포머를 활용한 자연어 처리'라는 책이었다.

이 책의 경우, 배우기 적절하다고 생각하여 공부하기 시작했고, 어느새 반 정도 읽을 수 있게 되었다.

인코더와 디코더의 기본 설명부터 텍스트 분류와 '독일어' 등과 같은 다른 언어들에 대한 변형까지 다양하게

NLP를 배우려는 사람들에게 적합한 책인 것 같다.

사실 'Natural Language Processing With Transformers' 라는 영문책을 번역한 책으로서,

허깅페이스의 머신러닝 엔지니어들이 모여 작성한 도서이다.

이 책의 장점이라고 할 수 있는 점은, 다양한 코드들과 설명들이 자세하고 한 눈에 보기 쉬운 프레임워크들이 있어 이해하기 쉽습니다.

개인적으로 딥하고 전문적으로 배우기에는 다른 참고도서가 필요할 수 있지만,

기본적인 트랜스포머와 자연어에 대한 이해를 위해서는 충분하다고 볼 수 있을 것 같습니다.

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

ChatGPT가 등장한 이후에 기존의 Rule-based Pattern Matching기반의 Context Analysis를 기반으로 했던 자연어 처리가 n-gram으로 말미암아 확률기반적 방법론으로 전향했던 것 보다 엄청난 파급효과를 불러 일으키게 되었다. 이는 2017년 등장한 논문 Attention is All You Need라는 논문에서 파생된 GPT라는 언어모델과 RLHF라는 기술의 조합으로 탄생한 ChatGPT 서비스의 파급력이 아닐까 하는 생각이 든다.

트랜스포머를 이용한 자연어 처리라는 책을 읽게 된 연유가 트랜스포머라는 Neural Net 아키텍처 기반으로 파생된 다양한 언어모델에 대한 기본적인 이해와 다시금 2017년 이후 언어 모델의 발전 방향을 살펴보고자 읽게 되었다.

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

트랜스포머 모델의 타임라인

가장 대표적인 트랜스포머 아키텍처

트랜스포머 인코더부에서 파생한 BERT 계열의 모델들의 계보도를 보면 텍스트 분류, 개체명 인식, 질문 답변에 특화된 언어 모델들을 볼 수 있다.

트랜스포머 디코더부에서 파생한 GPT계열의 모델들은 생성 모델로서 특히 문장에서 다음 단어를 예측하는데 뛰어나기 때문에 Large-scale Language Model 대용량의 데이터를 학습한 대용량 언어 모델을 통해 학습하지 않은 unseen-data를 입력값으로 받아도 답변이 생성이 가능한 Lerning 기법들이 semantic information기반으로 출현하게 되었다 바로 Zero-Shot Learning과 Few-Shot Learning과 같은 prompt방식의 기법들의 탄생이다.

이 책을 근간으로 다양한 학습을 하게 되면서 더욱 폭넓은 이해를 할 수 있게 되었다.

트랜스포머 인코더-디코더 유형에서는 NLU와 NLG분야의 새로운 어플리케이션을 만들 수 있는 언어모델이 탄생하였다.

새로운 기술이 나타날 때 마다 모두들 기술의 본질을 찾아 학습하는 것이야 말로 기반을 다지고 그 기반 위에서 자신의 영역을 확장할 수 있는 방안이 아닐까 하는 생각이 든다.

위 기술서에서 독자들이 길을 찾을 수 있기를 희망한다.

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

이번에는 요즘 실무에서 가장 많이 활용하고 있는 NLP관련된 도서를 택해서 읽어보았다.

 

아직 지식이 부족해 읽는 데 생각보다 어려움을 느낀 책이었다.

 

머릿글에서 설명이 나오는 부분이지만, 해당 도서를 구매하실 분들은 최소한의 Transformer 의 개념과 기본적인 딥러닝, LSTM 등 NLP 자연어 관련 모델링을 한번 정도는 구현을 해본 분들이 읽기에 적합한 도서 같다.

 

[ 목차 ]

 

CHAPTER 1 트랜스포머 소개

CHAPTER 2 텍스트 분류


CHAPTER 3 트랜스포머 파헤치기


CHAPTER 4 다중 언어 개체명 인식


CHAPTER 5 텍스트 생성


CHAPTER 6 요약


CHAPTER 7 질문 답변


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


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


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


CHAPTER 11 향후 방향

 

 

 크게 11가지 파트로 구성되어 있으며, Chapter 1에서는 트랜스포머의 소개와 트랜스 포머까지 도달하게 된 사전 개념들의 설명으로 시작되었다. 

 

첫 개념은 인코더 - 디코더 프레임 워크, 어텐션 메커니즘, 전이 학습 부터 시작되었다.

 

인코더 - 디코더 프레임 워크를 이해하기 위해 RNN이나 LSTM 같은 순환 신경망의 시퀀스 구조를 이해해야 한다.

그렇기에, 해당 도서에서도 가장 먼저 이에 대해 설명을 이어 나간다.

 

그렇게 기본적인 개념을 설명하고 난 후, GPT, BERT 등 현재 가장 많이 사용 되는 알고리즘에 대해 설명이 이어졌다.

 

그리고 가장 중요한 허깅페이스 트랜스포머에 대해 설명이 나왔다.

 

최근에 알게된 허깅페이스는 꽤 충격적이었다.

 

기존에 방대한 양의 데이터를 이미 학습한 언어 모델을 분석가나 사이언티스트 들이 커스터마이징 하여 사용하는 방법인데, 이러한 모델들이 허깅페이스에 올라와있다.

 

보통 Pretrained model 이라고 부르며, 정말 좋은 성능들을 보여주는 방법 중 하나이다.

 

자연어 모델을 도입하게 되면 허깅페이스는 필수라고 생각된다.

 

그렇게 분류 장에서는 데이터셋 / 토크나이저 / 트랜스포머 / 데이터셋 순서로 설명을 이어나갔다.

 

실제 데이터를 기반으로 벡터화하며 모델을 생성하는 일련의 과정을 상세히 보여주는 도서였다.

 

현재, 나의 수준으로는 읽기가 어려운 부분이 좀 많은 책이었다.

 

해당 도서를 선택하실 분들은 최소한의 자연어 모델을 구축해보신 분들이 채택했으면 한다.

 

많은 도움이 못되는 후기라 사과의 말씀을 드리며, 추후 공부를 더 한 뒤 해당 도서를 읽어봐야겠다.

이 책을 읽어야 하는 이유

작년부터 세상을 바꿀 인공지능 모델들이 소개되기 시작했다.

 

Stable-diffusion 모델은 인공지능을 누구나 사용할 수 있는 것으로 대중에게 인식시키는데 큰 기여를 했다.

모델을 그냥 공개해서 누구나 인공지능을 사용해서 그림을 그려볼 수 있게 되었고, 여러 온라인 커뮤니티들에서는 이 모델의 사용법을 공유해가며 사용법을 발전시켜나가고 있다.

 

올해는 ChatGPT가 유명해졌다. 그림이야 모두가 그리고 싶어하는건 아니니까 한정된 관심에 그쳤었는데,

ChatGPT가 나온 이후로는 정말 많은 사람들이 인공지능을 자유롭게 사용하게 된 것 같다.

 

더군다나 Stable-diffusion은 어쨌거나 자신의 GPU 를 사용하던가 해서, 세팅하는 과정까지는 필요한데 보통,

ChatGPT는 그냥 대화형 인터페이스를 공개해서 모두가 쓸 수 있게 되었으니 더 파급력이 큰 것 같아보인다.

Transformer 아키텍쳐는 용도는 다르지만 Stable-diffusion 과 ChatGPT에 모두 사용된 것 같다.

 

이 책 “트랜스포머를 활용한 자연어 처리“은 엄청난 파급력을 끼치고 있는 ChatGPT가 어떤 원리와 아키텍쳐를 기반으로 했는지 알고 싶은 사람이라면 먼저 잡고 싶은 책이지 않을까 싶다.

 

누가 읽어야 하는가

바로 본론으로 들어가는 책이다.

많은 사람들이 ChatGPT를 궁금해 할 수는 있지만 거기 들어간 원리들과 동작 방식들은 당연히 많은 단계들을 거쳐야만 이해할 수 있을 것 같다.

 

당연히 입문자가 바로 읽을 수 있는 책은 아니고, 트랜스포머 그 자체에 대해 이해가 필요한 데이터 사이언티스트, 머신러닝 엔지니어.. 를 대상으로 책을 썼다고 되어있다.

 

딥러닝 그 자체에 대한 이해가 있고, 파이썬을 다루는 데도 능숙한 사람들이 읽어야 제대로 책을 읽을 수 있을 것 같다.

파이토치, 텐서플로를 다뤄보았고, GPU를 사용해 트레이닝을 해본 사람들이어야 한다.

 

책의 특징

  • 일단 난이도가 있는 업무 관련자, 실무자들을 위한 책이라서 바로 따라가면서 써볼 수 있게 구성이 되어있다.
  • 시각화 자료가 잘 되어있다. 물론 실무자 레벨이기 때문에 다들 경험이 있어서 머릿 속으로 잘 추상화가 잘 될 수는 있지만 그래도 그래픽 자료가 잘 되어있는 건 역시 큰 장점이다.

 

 

 

 

 

  • 어떤 개념들은 유래와 비유가 중요할 수 있다. 그것이 머릿속에서 구조화하기 쉬운 방법이기 때문인지도 모른다. 그런 것들도 놓치지 않는 것 같아보인다.

 

 

 

  • 저자들은 전문가들이라 우리가 겪을만한 어려운 점들이나 나가고 싶은 방향을 이미 잘 알고 있다. 친절한 어투로 알려준다.

 

 

 

책의 구성

  • 1장은 트랜스포머 그 자체에 대한 소개로 시작한다. 이 책을 읽는 사람이라면 당연히 huggingface에 익숙하겠지만, huggingface의 library를 사용해서 하나하나 사용해보며 이해할 수 있도록 시작해준다.
  • 2장에서는 트윗의 감정을 분류하는 트랜스포머 모델의 훈련법을 배운다.
  • 3장에서는 트랜스포머 아키텍쳐를 깊게 파고 든다. 만약 트랜스포머 자체의 기본 원리에 관심이 있어서 이 책을 잡았다면 이 장으로 바로 넘어가도 될 것 같다.
  • 4장. 만약 다루는 것이 영어 말뭉치가 아니라면? 100개 언어에서 사전 훈련된 XLM-R 로 다국어에 대한 작업을 수행해볼 수 있다.
  • 5장. 텍스트 생성에 대한 개략적인 내용을 소개하고 있다. ChatGPT는 어떻게 텍스트를 생성하나요?
  • 6장. 텍스트 요약. 생성된 텍스트의 품질은 어떻게 평가해야 할까? 모델의 아웃풋을 평가하는 전통적인 지표들로는 어려울텐데 이럴 때 쓸 수 있는 BLEU, ROUGE에 대해서도 함께 설명한다.
  • 7장. 질문 답변 Question Answering (이하 QA). QA의 두 가지 방법인 추출적 QA와 생성적 QA에 대해서 설명한다. 그리고 두 가지 검색 알고리즘 BM25와 DPR 에 대해서 설명한다.
  • 그 다음 차례로 실무적으로 필요한 내용들을 소개하고 있다. 직접 트랜스포머를 구착할 때 어떻게 효율적으로 할 것인가
  • 또한 직접 수행할 때 만나게 될 문제 : 레이블 부족 문제는 어떻게 다룰 것인가, 어떻게 대규모 데이터셋을 수집할 것인가에 대한 내용을 다룬다.

 

 

 

 

 

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

오늘 서평을 써 볼 책은 그 유명한 "트랜스포머를 활용한 자연어 처리" 다. 사실상 자연어 딥러닝의 끝판왕이라고 볼 수 있는 이 책은 사내에서도 언급이 되었었는데, 실제로 책을 들여다보니 정말 좋았다. 실제로 huggingface를 어떻게 써서 어떤 모델을 만들 수 있고, 어떤 task 에 적용해볼 수 있는지 자세히 코드가 구성되어 있어 이 책만 보고도 자연어 모델을 구성하는데 큰 문제가 없을 거라고 생각되었다. 실제로 감성분석을 classification 후 feature 를 추출하여 저차원으로 projection 해서 시각화 한 부분도 있었다. 실제로 한 눈에 결과를 보여주려면 단순한 수치 값보다 더 중요한 게 시각화 그래프인데, 해당 부분에 대한 수요도 잘 반영한 실무자 중심의 책이라고 할 수 있었다.

​※ "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 또한 , 이 글은 저의 주관적인 생각이 담겼습니다.

 원본 리뷰 : https://blog.naver.com/heyggun/223044608392

 

 
 
나는 눈떠보니 어느덧 3년차 AI 개발자? 엔지니어? 다.
  
ML 기반 예측 모델, 추천 시스템 개발에 관심이 있고,
 
작년 부터는 nlp를 활용해서 모델링을 하고 있다.
 
 
 
2개월 전에 데이터바우처 사업을 이용해서
 
사내 도메인에 맞는 자체 NER 사전 구축을 기반으로 nlp 모델링을
 
본격적으로 시작했고, 사이드 프로젝트로 챗봇 개발을 하는 등
 
 
현재 나의 관심사는 '자연어처리'이다.
 
금년에는 텍스트마이닝을 기반으로 회사 프로젝트가 진행될 예정으로,
 
 
위의 책 "트랜스포머를 활용한 자연어처리"는 현재 시점에
 
나에게 가장 필요한 책이었다.
 
 
 
특히 '허깅페이스'의 개발팀이 알려주는 이라는 소개에서
 
나는 이 책을 읽지 않을 수가 없었다.
 
나는 사이드프로젝트로 챗봇을 개발하면서
 
'트랜스포머(transformer)' 라는 언어 모델을 사용했고,
 
허깅 페이스에서 공유된 트랜스포머 모델 학습 스크립트, 트레이너를 사용해서
 
직접 구현해야 하는 수고로움을 덜 수 있었다!
 
 
 
 

 
책의 구성을 간략하게 본다면,
 
Chapter 1 에서는 트랜스포머를 본격적으로 소개하면서,
 
인코더-디코더와 어텐션 메커니즘 설명과 허깅페이스의 생태계에 대해서 소개된다.
 
 
그 뒤로는 nlp의 과업들인 텍스트 분류, 텍스트 생성, 요약 등이 나오고
 
큰 챕터로 NER (개체명 인식), QA(질문 답변),
 
효율적인 트랜스포머를 구축하는 방법 과 대규모 데이터를 수집하는 방법으로 구성되어 있다.
 
이 책의 특장점은
 
연구 기반의 모델을 실전에 활용할 수 있도록 예제 코드가 충분하고,
 
다양한 nlp 모델에 대한 이해도와 모델 개발 및 배포에 감을 잡게 도와준다는 것이다.
 
 
 
필요한 부분에만 개념이 나오고, 실용적인 사례에 초점이 맞춰진 책이라서,
 
나는 책에 나온 내용들을 실무에 응용하는 데 많은 도움을 받았다.
 
 
단순 개념서가 아니라, 자기 업무에 맞춰 그러니까 실무에 맞춰서
 
적용할 수 있는 가이드를 제시해주는 책이라서,
 
nlp 초급 개발자 그리고 놓치고 있는 부분이 있는 것 같은데
 
아리까리(?) 한 nlp 엔지니어들이 보면 좋을 것 같다.
 
 

 
 
특히 자연어처리 라는 큰 범주에서 현재 핫한
 
'트랜스포머'에 주력해서 내용이 진행되서 현재 nlp 에 필수적인
 
정보를 제공받을 수 있다.
 
 

 
본격적으로 nlp 모델링을 한지는 5개월 남짓 되지 않아서,
 
아직까지 나에게는 모델링 경험이 부족하다.
 
알아야 할 것도 많고 시행착오도 많을 것이다.
 
 
하지만 최근 nlp의 성과를 활용할 방법을, 라이브러리를 만든
 
사람들이 설명하고 오랜 연구와 개발을 통해 축적한 지식을
 
해당 책을 통해서 도움을 받을 수 있어서 추천한다.
 
 

 

 

머신러닝에 대한 이해도가 있는 분들에게는 어느 다른책 보다 쉽게 작성된 책 입니다.

 

수식 설명은 최소화 되어 있고, 각각의 모델 개념을 칼라로 구성된 개념도를 활용하여, 수학 비전공자 에게도 흥미가 떨어지지 않고 진행할 수 있도록  잘 구성되어 있습니다.

 

한가지 단점은 첫장 첫 페이지에서 언급하고 있는 내용으로, 파이썬 기초만으로는 이해하기가 어렵고, 대신 머신러닝 Seq2Sqe, CNN, RNN 정도의 기본 모델은 숙지한 상태에서 고급 과정으로 넘어가기 위한 내용들로 구성되어 있다는 것입니다.  

 

딥러닝에 대한 기본 개념들을 이해한 상태에서, 고급으로 넘어가는데는 큰 도움이 되어 줄 책 입니다.

 

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

 

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

장점

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권 시리즈를 먼저 한번 보시는 것을 추가로 추천합니다.

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

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

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

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

허깅페이스(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 등 일부 도서는 인증이 제한됩니다.

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

닫기

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

자료실