반응형

1. Rule based programming

머신러닝 이전에 했던 방식으로 Input된 대상을 구별하기 위한 특징들(features)을 사람들이 직접 찾아내서, 판단할 수 있는 로직을 코딩으로 작성하여 결과(Output)을 찾아내는 방식임.

 

2. Hand designed feature based machine learning

사람들이 특징들(features)을 찾아내고, 특징들에 대한 로직은 코딩 대신 머신러닝(Machine Learning)을 통해 만들어 결과(Output)을 찾아내는 방식임.

* 머신러닝(Machine Learning)에 대한 기본 이해

  • 학습 단계1. 학습데이터 준비
    (사람들이 직접 특징 정의하고 학습 데이터 생성을 위한 코딩 작업 수행)
    1-1. 이미지 수집 → 1-2. 특징 정의 → 1-3. 학습 데이터 생성
  • 학습 단계2. 모델 학습 : 최적의 연산 집합은 모든 Try 중에 Error가 제일 작은 것!
    (오차를 최소화하는 연산을 찾아내는 것이 핵심으로, Try&Error 방식으로 최적의 연산 집합을 찾아냄)
    2-0. 예측 및 오차 : 

 

3. Deep Learning

Deep&Wide Neuralnetwork : 엄청나게 많은 연산들의 집합, 자유도가 높아 연산들의 구조를 잡고 사용
구조 예) CNN, RNN, etc

※ Deep Learning(CV, NLP 차이)

  • Computer Vision  : 두 단계로 크게 구분
     1-1 이미지 수집 → 1-2 학습 데이터 생성
  • Natural Language Processing : 세 단계로 크게 구분(토큰화 과정 추가)
     1-1 텍스트 수집 → 1-2 정의된 특징(토큰화, 의미분석에 용이한 토큰으로 쪼갬) → 1-3 학습 데이터 생성

 

반응형

4. Pre-training & Fine-tuning (GPT)

기존의 딥러닝 문제점 : 분류 대상이 (태스크가) 바뀔 때마다 다른 모델이 필요

1단계 Pre-training : 모든 Image > Features > Mapping from features > 분류 결과(>1k)

2단계 Fine-tuning : 구분을 원하는 특정 이미지들을 입력

  • Image input > Features(1단계에서 학습된 연산을 고정(Frozen)한 상태) > Mapping from features(테스크를 수행하기 위해 mapping쪽에 해당하는 연산들만 새로 학습) > 특정 이미지 Output

여전히 태스크마다 다른 모델이 필요하지만, 필요한 데이터 수가 적어지고 개발 속도가 올라가게 됨!

 

5. Big Model & zero/few shot (ChatGPT 구조)

ChatGPT를 이해하기 위해 언어 모델(Language model)에 대한 이해가 선행되어야 함.

딥러닝 초창기의 언어 처리 모델은 “RNN” 아키텍쳐로 만들어짐

  • RNN(recurrent neural network), 노드 사이의 연결고리가 cycle을 이룬다고 해서 붙여진 이름으로, 자연어과 같은 sequence 형태의 데이터를 다루는데 특화되어 있음

단순한 다음 단어 맞추기가 ChatGPT롤 발전하게 된 계기?

Emergence(2017.4) :

OpenAI에서 Alec Radford가 언어 모델을 RNN으로 만들고 있었음

그런데 특정 뉴런이 감성 분석을 하고 있음을 발견함(긍정과 부정을 구분해 내는군)

언어 모델링을 하다보면 의도하지 않은 능력이 생기게 되는게 아닐까? > “Emergence”

  • Alec Radford는 GPT논문의 1저자

 

Transformer(2017.6) :

TransformerRNN, CNN과 유사한 아키텍처의 일종

  • “Attention”이란 항목과 항목 사이의 연관성

Transformer는 여러모로 성능이 좋았음. 계산 효율이 기존의 RNN 등에 비해 대단히 높았던게 이점, 게다가 결과의 품질도 더 좋음 > 이후 비전, 추천, 바이오 등 다른 모든 분야에서 쓰는 기술이 됨.

Alec Radford도 자연스럽게 Transformer를 가지고 실험하기 시작함.

 

GPT(2018.6) :

Alec Radford와 동료인 Ilya Sutskever 등이 RNN에서 Transformer로 넘어가며 출판

“Generative pretraining(GP)”을 하는 Transformer(T)

Pretraining-finetuning 패러다임의 대표적인 논문 큰 스케일에서 언어 모델링을 통해 사전학습 모델을 만들고, 이 모델을 파인튜닝하면 다양한 NLP 태스크에서 좋은 성능을 보임.

 

GPT-2(2019.2) :

Ilya Sutskever가 오랫동안 주장했던 믿음은 데이터를 많이 부어 넣고 모델 크기를 키우면 신기한 일들이 일어난다였음

Transformer 전까지는 큰 모델의 학습을 어떻게 할 것인가가 문제였는데, Transformer가 계산 효율이 높아 스케일링에 유리

모델을 키우고(117M > 1.5B)데이터를 왕창 부음(4GB > 40GB) -> GPT-2의 탄생

생성에 너무 뛰어나서 해당 모델이 가짜 정보를 다량 생성할 위험성이 크다고 판단, OpenAIGPT-2를 공개하지 않는다고 함

언어 생성을 아주 잘하게 될 뿐더러 emergence!가 또 보임

GPT2는 방대한 데이터를 기반으로 세상에 대해 많이 배운 모델

  • emergence!:Zero-shot learning : 예시를 전혀 보지 않고, 모델 업데이트 없이 새로운 태스크를 수행
    “Unsupervised multitask learners, 하나를 가르쳤는데 열을 아네”
    독해, 번역, 요약 Q&A 등에 대해 zero-shot 능력이 꽤 있음! 
    Zero-shot인데도 특정 태스크는 기존의 SOTA 모델들을 짓눌러버림
  • SOTA란 state-of-the-art, 즉 현존하는 제일 좋은 모델

 

GPT-3(2020.6) :

여기서 한 번 더 크기를 키운 것이 GPT-3(모델 1.5B > 175B, 데이터 40GB > 600GB+)

많은 데이터로 pretraining해서 더욱 놀라운 생성 능력을 갖추게 됨

역시 여러 측면으로 “emergence”를 확인:

지식을 포함?(world knowledge), 학습 없이 태스크를 배우는 능력?(few-shot learners)

  • “Emergence”: In-context learning, Few-shot도 모델 파인튜닝 없이 되네? : 프롬프트에 예시 몇 개(“few-shot”)를 넣어주면 모델 업데이트 없이 새로운 태스크를 수행

 

GPT-4 출현 : 

CLIP(2021.1) : “zero-shot” 이미지 분류

DALL-E(2021.1): 주어진 텍스트로부터 이미지 생성

Codex(2021.8) : 코드 생성을 위한 모델

InstructGPT(2022.1) : 명령에 대한 파인튜닝과 강화학습 > 이미 지식은 다 있다, 어떻게 뽑아낼 것인가

 

※ 위 정보는 fastcampus.co.kr의 업스테이지 '모두를 위한 ChatGPT UP!'의 강의 내용에서 요약 정리한 것입니다. 구체적인 내용을 배우시려면 업스테이지 강의를 들으시면 많은 도움이 되실 겁니다!

반응형
반응형

최근 AI비서, ARS 등 언어 처리에 대한 분야에서 많이 사용되는 딥러닝 아키텍처인 Transformer에 대해 공부중이다.
공부한 내용을 정리하면 좀 더 기억이 잘 되기에 기록을 남겨본다.

RNN과 LSTM 네트워크는 다음 단어 예측, 기계 번역, 텍스트 생성 등의 태스크에서 사용되어 왔었다.
하지만 트랜스포머가 발표된 후에는 트랜스포머에게 자리를 내주었다고 할 수 있다.
트랜스포머가 출연하면서 자연어 처리 분야가 획기적으로 발전하고, 이를 기반으로 한 BERT, GPT-3, T5 등과 같은 아키텍처가 나오게 되었다.

트랜스포머는 RNN에서 사용한 순환 방식을 사용하지 않는다.
대신 셀프 어텐션(self-attention)이라는 특수한 형태의 어텐션을 사용한다. 
트랜스포머는 인코더-디코더로 구성된 모델이다.
인코더에 원문을 입력하면 인코더는 원문의 표현 방법을 학습시키고 그 결과를 디코더로 보낸다.
디코더는 인코더에서 학습한 표현 결과를 가지고 사용자가 원하는 문장을 생성한다.

트랜스포머 인코더 디코더 기본 구조도

인코더와 디코더의 구체적인 이해는 다음에 하기로 한다.

대신 Transformer를 기반으로 한 BERT의 특징에 대해 정리해 본다.

BERT(Bidirectional Encoder Representation from Transformer)는 구글에서 2018년 발표한 최신 임베딩 모델이다. 대량의 영어 데이터로 학습된 사전학습 언어 모델로 질문에 대한 대답, 텍스트 생성, 문장 분류 등과 같은 태스크에사 가장 좋은 성능을 도출해 자연어 처리 분야에 크게 기여해 왔다. 

반응형

BERT의 특징

  • Masked Language Model(MLM) : 어떤 문장의 특정 부분을 Masking처리하여 모델이 Masking 처리된 부분을 예측하도록 학습시키는 방식
  • Next Sentence Prediction(NSP) : 두 문장이 이어지는 문장인지 아닌지 맞히도록 학습
  • 자기지도 학습 : 학습 Label을 사람이 직접 만들지 않고 스스로 만든 데이터를 학습함으로써 언어의 기본 소양을 쌓음. 이처럼 스스로 정답이 있는 학습 데이터를 만들어 학습하는 방식을 자기지도학습(Self-supervised Learning)이라고 하고 이러한 방식으로 만들어진 언어 모델을 사전학습 모델(Pre-trained Language Model)이라고 한다.
  • 전이학습(Transfer Learning) : 사전학습 모델을 기반으로 특정 태스크를 위해 한번 더 학습하는 방식을 전이학습이라고 하고, 이 학습 단계를 파인튜닝(Fine tuning)단계라고 한다. 파인튜닝이란 사전학습 모델을 기반으로 특정 태스크를 위해 딥러닝 모델을 미세하게 조정하는 학습 과정을 말한다.

태스크 활용 사례 : 사전학습 모델은 모델 자체로 특정 기능을 수행할 수 없다. 하지만 파인 튜닝을 통해 여러 다양한 태스크에 활용이 가능하다. 

Case 1. 기계독해(MRC, Machine Reading Comprehension) 
 
Case 2. 텍스트 분류(Text Classification)
 
Case 3. 문장 유사도 분석(STS, Semantic Textual Similarity)
 
Case 4. 문서 요약 모델(Text Summarization)
 

* RNN(Recurrent Neural Networks) 순환신경망 : 긴 문장의 의미를 파악하고 해당 문장이 의미하는 것이 무엇인지 예측하기 위한 방법으로 쉽게 말해 '여러개의 단어를 입력받게 되었을 때 앞에 입력받은 단어(토큰)을 잠시 기억하고 있다가 이 단어가 얼마나 중요하지 분석해 가중치를 담아 다음 단계로 넘기는 구조로 되어 있다.

* LSTM(Long Short Term Memory)  장단기 메모리 : RNN 기법의 하나로 기존 RNN의 문제인 기울기 소멸 문제(vanishing gradient problem)를 방지하기 위해 개발되었다.

 
반응형

+ Recent posts