이 글은 간단한 트랜스포머 동작 원리와 Pytorch 기반 비전 트랜스포머 ViT를 소개한다.
개념
트랜스포머트는 국부적인 특징을 캡쳐해 학습하는 CNN과는 다르게, 전체 데이터 영역의 특징을 학습한다. 간단한 동작 순서는 다음과 같다.
1. 주어진 데이터를 토큰으로 분해한 후, 임베딩 기법으로 유일한 값으로 수치화한다.
2. 수치화된 토큰은 라벨링된 토큰 순서열(앞의 텍스트 프롬프트에 대한 다음 텍스트 예측이라면, 텍스트 자체가 입력 및 라벨링 데이터를 포함하게 됨)의 확률을 학습하는 데 사용한다.
3. 학습은 토큰이 다음에 출연할 토큰의 확률을 계산하는 방향으로 진행된다. 이를, 어텐션(attension)이라 한다.
4. 이를 계속 반복한다.
다음 그림은 이 과정을 보여준다.
트랜스포머 모델은 이미 텍스트 예측, 비전 분류 등에서 SOTA를 달성하였다. GPT는 이 기술을 적극 활용한 도구이다.
ViT 소개
Transformer는 ChatGPT, BERT 등과 같은 자연어 처리 분야에서 발전되었다. 이를 사용해, 비전 분류에서 Vision Transformer (ViT)가 구현되었다. 이는 분류에서 SOTA를 달성했다(다만, YOLO등에 비해 실행 자원 등을 많이 사용하는 단점이 있다).
트랜스포머 개념 및 논문 설명
ViT 트랜스포머 기술은 다음 같이 오픈소스를 통해 이미 공유되어 있다.
PyTorch로 구현하는 방법은 다음과 같다.
마무리
트랜스포머는 다양한 비정형 데이터를 학습, 분류, 예측할 수 있는 가능성을 열어준다. 이를 통해, 멀티모달 학습모델 생성 및 사용이 가능하다. GPT4는 대중이 사용하는 멀티모달 트랜스포머 모델의 시작이 될 것이다.
댓글 없음:
댓글 쓰기