ChatGPT의 인기에 힘입어

이제는 AI/ML을 공부하지 않는 분들도 누구나 알고 있다는 트랜스포머(Transformer)

 

너무나 훌륭한 공부 자료들이 많기에

여기에서는 그 자료들을 알아보도록 하겠다.

 

 

1. Paper

- "Attention Is All You Need"

  . https://arxiv.org/abs/1706.03762#

- 2017년도에 Ashish Vaswani 외 7명이 작성한 15 pages, 5 figures 구성된 논문

  . 논문에 포함된 그림의 수준이 정말 '역시 구글'이다.

 

model architecture

 

 

2. Review

- [딥러닝 기계 번역] Transformer: Attention Is All You Need (꼼꼼한 딥러닝 논문 리뷰와 코드 실습)
  . https://www.youtube.com/watch?v=AA621UofTUA 

  . 구독자가 16만명이 넘는 "동빈나"님의 멋진 리뷰

 

- Transformer 외에도 나동빈님의 많은 리뷰들이 담겨있다.

  . https://github.com/ndb796/Deep-Learning-Paper-Review-and-Practice#natural-language-processing-자연어-처리

 

 

동빈나 - Transformer 리뷰

 

- Code Practice

  . https://github.com/ndb796/Deep-Learning-Paper-Review-and-Practice/blob/master/code_practices/Attention_is_All_You_Need_Tutorial_(German_English).ipynb 

  . 위 링크에서 "Open in Colab"을 선택하면 Colab을 통해서 실행해볼 수 있다.

  . "Drive로 복사" 선택

Colab

 

  . 오래 전에 만들어진 코드이다 보니 지금 실행하면 맞지 않는 부분이 있으니 아래와 같이 수정하자.

import spacy

# spacy_en = spacy.load('en') # 영어 토큰화(tokenization)
# spacy_de = spacy.load('de') # 독일어 토큰화(tokenization)

spacy_en = spacy.load('en_core_web_sm')
spacy_de = spacy.load('de_core_news_sm')

 

 

3. More Detail

- 트랜스포머(Transformer) 심층 분석

  . https://wandb.ai/wandb_fc/korean/reports/-Transformer---Vmlldzo0MDIyNDc
  . 아래와 같이 몇 몇 부분에 대한 개선 방안을 엿볼 수 있다.

 

 

sample

 

- Transformer Positional Encoding

  . https://hongl.tistory.com/231

  . Positional Encoding에서 사용되는 sin/cos 함수에 대한 고찰

 

Transformer Positional Encoding

 

- Tensorflow 공식 가이드

  . https://www.tensorflow.org/text/tutorials/transformer?hl=ko

 

tensorflow

 

  . Colanb에서 실행을 선택하면 아래와 같이 예쁘게 표현된 encoder-decoder 애니메이션을 볼 수 있다.

 

encoder-decoder

 

 

4. Visualize

- Jay Alammar: The Illustrated Transformer

  . https://jalammar.github.io/illustrated-transformer/

 

The Illustrated Transformer

 

 

5. Extra

- Hugging Face

  . https://huggingface.co/

  . 자연어 처리를 공부/활용하는 분이라면 누구나 아는 그 곳

 

Hugging Face

 

- Transformers (신경망 언어모델 라이브러리) 강좌

  . https://wikidocs.net/book/8056

  . Hugging Face 사용법을 배울 수 있는 너무나 좋은 교재

 

Transformer 강좌

 

- Transformers.js

  . 트랜스포머를 브라우저에서 실행할 수 있도록 해주는 JS

  . https://xenova.github.io/transformers.js/

  . BERT, ALBERT, DistilBERT, T5, T5v1.1, FLAN-T5, GPT2, BART, CodeGen, Whispe 등 지원

 

Transformer.js

 

여기까지~

반응형

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가 아니라 참고 자료도 제공해주고, 어떤 의미가 있는지도 친근하게(?) 정리해준다.

 

아키텍처

 

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

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

 

 

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

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

 

 

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

반응형

 

파이썬으로 자연어 처리를 하고 싶다면

공부해볼만한 책 한 권을 소개하고자 한다.

 

표지

 

원서 제목은 다음과 같다.

"Blueprints for Text Analytics Using Python"

 

초판

 

발행한지 얼마 안된 따끈따끈한 책이다.

 

원서는 2020년 12월에 출간되었으니

약 2년의 시차가 있어서 조금 아쉽기는 하지만

지금 공부하기 해서 활용하는데에는 부족함이 없다.

 

독자

 

이 책은 텍스트 분석에 대해서 처음 접하는 분들이 아니라

텍스트 분석을 실제 구현하고자 하는 분들을 위한 책이다.

 

제약

 

다만, 기본적으로 영어를 기반으로 하기 때문에

한글 텍스트 분석을 위해서는

추가적인 학습이 필요하긴 하다.

 

원서와 2년의 차이가 있는데,

이왕이면 실습 코드만이라도 한글 지원을 추가해줬으면

훨씬 더 좋았을 것 같다.

 

챕터 개요

 

각 챕터(장)에서 어떤 데이터셋을 사용하고

어떤 라이브러리를 이용했는지

깔끔하게 정리를 해줘서

필요할 때 손쉽게 찾아볼 수 있다.

 

추천 도서

 

이 책에서는 기본적인 이론 등에 대해서 설명해주지 않기 때문에

추가적으로 공부하면 좋을 책들을 추천해주고 있다.

 

심지어 한빛미디어 출판이 아닌 책도 추천을 해준다 ^^

 

본문

 

책은 아쉽게도 흑백이다.

컬러 추종자로써 조금 아쉽다 ^^

 

원서 eBook을 보면 컬러로 나오던데...

 

구성

 

각 챕터(장)별로

학습목표와 데이터셋에 대한 설명을 해준다.

 

해당 챕터에서 뭘 하고자 하는 것인지

어떤 데이터를 가지고 하는 것인지

설명을 해주기에 공부할 때 많은 도움이 된다.

 

 

그리고, 중요한 실습 코드 !!!

 

https://github.com/blueprints-for-text-analytics-python/blueprints-text

 

실습 코드

각 챕터별로

README.md

내용을 너무나 예쁘게 잘 작성해줘서 기분이 좋았다.

 

JupyterNotebook

 

JupyterNotebook 파일도 깔끔하게 작성되어 있다.

 

사실 책 내용을 보면 책에서 설명하고 있는 내용이

JupyterNotebook 파일에 작성되어 있으면

공부할 때 훨씬 더 손쉽게 접근할 수 있을 것 같지만...

그것까지 바라는 것은 욕심인 것 같기도 하고...

 

 

NLP에 대해서 기본적인 사항을 공부한 다음

실제 코드로 만져보고 싶은 분들에게는

엄청 유용한 도움이 될 책이다.

 

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

 

반응형

 

Deep Learning을 공부하다보면

제일 먼저 접하는 것은 이미지 데이터를 CNN을 통해 분석하는 방법이다.

 

그 다음에 공부하게 되는 것이

데이터들의 순서가 중요한 시계열 데이터를 위한 RNN이고

이러한 RNN이 필요한 가장 대표적인 데이터 유형이 바로 자연어 처리이다.

 

그런데, 반대로 생각해볼 필요가 있다.

자연어 처리는 반드시 RNN만 적용해야 하는 것일까?

 

이런 궁금증을 해결해줄 수 있는 책이 바로 이 책이다.

 

Natural Language Processing with PyTorch

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

 

표지

 

21년 6월에 초판을 찍은 아직은 따끈따끈한 책이다.

내부에도 저 예쁜 새(노랑허리상모솔새)가 컬러로 인쇄되어 있어서 깜짝 놀랐다 ^^

 

아! 이 책은 ML/DL 관련해서 공부를 해보신 분들이라면

당연히 알고 계실 `박해선`님이 번역해주셨다!

 

초판인쇄

 

책은 정말 친절하게도 Chapter 1 하나를 소개를 위한 내용으로 채워져있다.

 

목차 1

 

또한 자연어 처리를 위한 기본적인 내용들도 친절하게 소개를 해준다.

 

심지어 Neural Network에 대한 기본적인 사항들에 대해서도 소갤를 해주고 있는데,

사실 이러한 내용들에 대해서 사전에 학습되지 않은 사람들이 과연 이 책을 구매할까?라는 의문은 있다.

 

목차2

 

Deep Learning에 대한 기본적인 공부를 이 책으로 할 수 있을지는 조금 의문스럽지만,

그럼에도 불구하고 나름 꼼꼼하고 깔끔하게 잘 설명해주고 있다.

 

이미 공부를 하신 분들도 이 책을 통해서 한 번 훑어보는 것도 괜찮을 것 같다.

 

지도학습

 

이 책의 특징 중 하나는 바로 매 챕터에 `연습문제`가 있다는 것이다.

책을 눈으로만 봤다면 쉽게 풀 수 없는 문제들이다.

 

연습문제

 

 

이 책에 대해서 총평을 해보자면,

 

Deep Learning으로 자연어 처리를 어떻게 할 수 있는지

특히 PyTorch를 이용해서 자연어 처리를 해보고 싶은 사람들에게 추천할 수 있을 것 같다.

 

하지만, 초급인 분들에게는 조금 어려움이 있을 것 같다.

최소한 Deep Learning에 대해서 기본적인 지식은 있는 분들에게 적합하다고 생각된다.

 

Deep Learning에 대한 지식이나, PyTorch에 대해서 알고싶은 사람들 보다는

자연어 처리에 대해서 공부하고 싶은 분들에게 추천한다.

 

살짝 한 번 공부해본 분들이 정리하는 차원에서 봐도 좋을 책이다.

 

 

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

반응형

+ Recent posts