5월 1주차 GDSC Sookmyung Weekly AI Trend
LLM을 이해하기 위한 ‘Must-Read’ 같이 읽어요 😀 (2)
에디터 | 정시은
지난주에 이어 이번주에는 본격적으로 DeepMind가 작년에 발표한 Formal Algorithms for Transformers에 대해 알아보도록 하겠습니다. Transformer가 어디에 사용되는지, Transformer의 주 아키텍쳐 구성요소들, 토큰화에 대해 다뤄보도록 하겠습니다.
논문을 이해하기 위한 notation 먼저 논문을 쉽게 이해하기 위해 읽어보면 좋을 notation입니다.
- $[N]:=\{1,2,…,N−1,N\}$ 1~N까지 정수를 포함한 집합
- $N_v: V$ vocabulary size
- $V ~= [N_v]$ vocabulary
- $V^*=U_{i=0}^{\infty} V^i$ vocabulary로 만들 수 있는 모든 sequence를 가지는 집합
- $l$ : sequence length
- $l_{max}$: maximum sequence length
- $x$: primary token sequence
- $x_n=x[1:l]=x[1]x[2]..x[l]\in V^*$
- $x[t]$: $x$의 t번째 token
- 파이썬에서와 달리 1로 시작하는 array를 사용합니다
- 행렬 $M \in R^{d*d}$
- $M[i,:] \in R^{d}$ : i 번째 행
- $M[:,j] \in R^d$ ; j 번째 열
Transformers and Typical Tasks
transformer는 주로 sequence modelling 과 sequence-to-sequence prediction, 이 두가지 테스크에 사용됩니다.
- Sequence Modelling(D Transformer)
$V$라는 단어가 주어졌을때, $x_n \in V^*$ 은 $V$에 대한 일부 분포 $P$ 로부터 독립적이고 동일하게 분포되어(i.i.d) 샘플링되는 sequence들의 dataset이라고 하겠습니다. 이때, 분포 $P(x)$ 로부터 $\hat{P}$ 추정치를 학습하는것이 목표입니다. 분포의 추정치는 체인규칙을 통해 분해되는데, 체인규칙은 이러합니다.
$\hat{P}$($x$) = $\hat{P_\theta}$(𝑥 [1]) ·$\hat{P_\theta}$(𝑥 [2] | 𝑥 [1]) · · · $\hat{P_\theta}$(𝑥 [$l$] | 𝒙[1 : $l− 1$])
이때 최종목표는 이전토큰 $x[1:t-1]$을 지정했을때 단일토큰 $x[t]$에 대한 분포를 학습하는 것입니다.
- Sequence-to-sequence(seq2seq) prediction(EDTransformer)
단어 V가 주어지고 iid한 $(z_n, x_n)$ ~$P$ 가 주어졌을때, (이때 $P$는 $V^* * V^*$ 의 분포을 따릅니다) 조건부 분포인 $P(x|z)$를 예측하는것이 Seq2seq 입니다. 이해를 위해 예를 들자면 $z$가 영어로 된 문장이고, $x$는 독어로 이뤄진 경우,( $z$가 질문이고, $x$가 그에 대한 대답인 경우)를 답할때와 , ($z$가 텍스트이고, $x$가 어떤 사람의 녹음본인 경우)의 text-to-speech를 번역하는 것을 seq2seq의 예로 들 수 있습니다.
- Classification(ETransformer)
단어 $N$이 주어지고 classes $[N_c]$ 가 주어졌을때, $(x_n, c_n) \in V^* * [N_C]$ $for\ n \in [N_{data}]$ 는 $P(x,c$)의 sequence-class pair 라고 합니다. Classification 의 목표는 $P(c|x)$ 의 추정치를 학습하는 것입니다. 예로는 감정분류, spam filtering, 독성 분류, 등이 있습니다.
Tokenization: How Text is Represented
NLP 작업의 맥락에서 토큰화 는 “My grandma makes the best apple pie.” 와 같은 텍스트가 일련의 어휘 요소(토큰)으로 어떻게 표현되는지를 나타냅니다.
- character-level tokenization
한가지 가능한 선택은 $V$를 영어 알파벳으로 하는 것 입니다. 위의 예시에서는 36개의 시퀀스를 얻을 수 있습니다. [’M’,’y’, .. ]. 문자 수준 토큰화는 매우 긴 시퀀스를 생성하는 경향이 있습니다.
- word-level tokenization
또 다른 선택은 $V$가 모든 영어 단어로 구성되도록 하는 것입니다. 위의 예에서는 7개의 시퀀스를 얻을 수 있습니다. [’My’, ‘Grandma’, ‘makes’, .. ]. 단어 수준의 토큰화는 매우 많은 어휘를 필요로 하는 경향이 있으며 테스트 시간에 새로운 단어를 처리할 수 없습니다.
- subword tokenization
subword tokenization은 오늘날 실제로 많이 사용되는 방법입니다. 이때 사용되는 $V$는 ‘cious’,’ing’,’pre’,’is’ 와 같이 일반적으로 발생하는 단어 세그먼트의 집합입니다. 모든 단어를 표현할 수 있도록 $V$에도 단일문자가 포함되어 있습니다.
- final vocabulary and text respresentation
토큰화와 어휘에 대한 선택권이 주어졌을때 각 어휘 요소에 $\{1,2, .. N_v-3\}$의 고유 인덱스가 할당됩니다. 그런 다음 여러개의 특수 토큰이 어휘에 추가됩니다. 다음은 특수 토큰들 입니다.
- mask_token $N_v-2$ : 마스크 언어 모델링에 사용됨
- bos_token $N_v-1$ : 시퀀스의 시작을 나타냄
- eos_token $N_v$ : 시퀀스의 끝을 나타냄
전체 어휘는 $N_v = |V|$ 의 요소를 갖게 됩니다. 텍스트는 하위 단어에 해당하는 일련의 인덱스($token ID$ 라고 함) 으로 표시되며, 그 앞에는 bos_token, 뒤에는 eos_token이 나오게 됩니다.
Architectural Components
다음은 transformer가 만들어지는 신경망의 구성요소입니다.
- Algorithm 1. token embedding
token embedding은 $R^{d_e}$ 에서 각 어휘 요소를 벡터로 표현하는 방법을 학습합니다
- Algorithm 2. Positional embedding
positional embedding은 $R^{d_e}$의 벡터로 시퀀스에서 토큰의 위치를 나타내는 방법을 학습합니다.
첫번째 토큰의 위치는 학습된 벡터 $W_p[: ,1]$로 표시되고, 두번째 토큰의 위치는 벡터 $W_p[: ,2]$ 로 표시됩니다.
positional embedding의 목적은 트랜스포머가 단어 순서를 이해할 수 있도록 하는 것입니다. 토큰의 위치 임베딩은 일반적으로 토큰의 초기 임베딩을 형성하기 위해 토큰 임베딩에 추가됩니다.
시퀀스 $t$의 $x$번째 토큰은 다음과 같습니다.
$e=W_e[:,x[t]] + W_p[:,t]$
- Algorithm 3. Basic single-query attention
attention은 트랜스포머의 주요 아키텍쳐 구성요소입니다. 신경망은 현재 토큰을 예측하기 위해 컨텍스트 정보(ex, 이전 텍스나나 주변 텍스트)를 사용할 수 있습니다.
현재 예측중인 토큰은 $q \in R^{d_{attn}}$ 쿼리벡터(q)에 매핑되고, 컨텍스트의 토큰은 키 벡터 $k_t \in R_{d_{attn}}$와 값 벡터 $v_t \in R^{d_{value}}$에 매핑됩니다.
내적 결과 $q^Tk_t$는 토큰 $t\in V$가 현재 토큰 q를 예측하는데 중요한 정도로 해석됩니다.
- Algorithm 4. $\tilde{V} Attention(X,Z|W_{qkw}, Mask)$
- bidirectional / unmasked self-attention
- 토큰이 주어지면 각 토큰에 attention을 적용하여, 시퀀스의 모든 토큰을 컨텍스트로 처리합니다
- unidirectional / masked self-attention
- 토큰이 주어지면 각 토큰에 attention을 적용하여 자신을 포함하여 이전의 모든 토큰을 컨텍스트로 처리합니다. 향후 토큰은 마스킹됩니다.
- cross-attention
- 토큰의 두 시퀀스가 주어지면, cross-attention은 기본 토큰 시퀀스 X의 각 토큰에 attention을 적용하여 두번째 토큰 시퀀스 Z를 컨텍스트로 처리합니다.
- Algorithm 5. $\tilde{V} \leftharpoonup MH Attention(X,Z|W_{qkw}, Mask)$
지금까지 제시된 attention 알고리즘들은 self-attention head의 작동을 설명합니다. 실제로 트랜스포머는 multiple attention head를 병렬로 실행하고 출력을 결합합니다. 이를 multi head attention이라고 합니다.
- Algorithm 6. $\hat{e} \leftharpoonup layer_\_norm(e|\gamma,\beta)$
layer normalization은 개별 신경망 활성화의 평균과 분산을 명시적으로 제어합니다. 일부 트랜스포머는 RMS 표준화(root mean square layer normalization)이라고 하는 layer normalization의 보다 간단하고 계산 효율적인 버전을 사용합니다.
- Algorithm 7. Unembedding
unembedding은 토큰과 토큰 컨텍스트의 벡터 표현을 어쉬요소를 통한 분포로 변환하는 법을 학습합니다. 이 알고리즘은 독립적으로 학습된 unembedding 행렬을 설명하지만, 때때로 unembedding 행렬의 전치로 고정되기도 합니다.
transformer의 작업들과 토큰화, 그리고 주요 알고리즘에 대해서 알아보는 시간을 가졌는데요, Algorithm 1~7 번을 바탕으로 transformer 모델 구조, 다양한 train 방법에 대한 pseudocode도 논문에 제시돼있으니 참고하시면 좋을것 같습니다 :)
References
알아서 다 해줄게! AutoGPT에게 맡겨보라구😤
에디터 | 조유림
AutoGPT란?
ChatGPT의 등장으로 다양한 GPT 관련 서비스들이 나오고 있습니다. 오늘 소개해드릴 AutoGPT 역시 그 중 하나입니다. AutoGPT란 무엇일까요? AutoGPT는 오픈 소스 AI 서비스입니다. GPT-4를 사용하여 자체 코드를 작성하고, 파이썬 스크립트를 실행할 수 있는 시스템입니다.
AutoGPT는 ‘Auto’라는 단어에 걸맞게 자율적으로 행동을 반영하고, 개선할 수 있는 능력을 가지고 있습니다. 계획, 비판, 행동, 피드백 및 계획 재설계의 일련의 루프를 통해 목표를 달성하고자 합니다. 사용자가 설정한 목표를 LLM “생각”에 연결하여 자율적으로 목표 달성을 이루어내고자 하는 것입니다.
🤷♀️ AutoGPT로 할 수 있는 것에는 무엇이 있을까?
- 인터넷 정보 검색
- API를 사용하여 다른 웹사이트 및 서비스와 상호작용
- 텍스트 작성, 편집 및 번역
- 창의적인 콘텐츠 생성(시, 코드, 대본, 음악 작품, 이메일 등)
🤔 ChatGPT랑 뭐가 다를까?
ChatGPT는 프롬프트에 대화 문맥을 입력받아 대화형 응답을 생성합니다. AutoGPT는 텍스트 프롬프트를 사용합니다. AutoGPT는 창의적인 텍스트를 출력하는 데에 유용하고, ChatGPT는 지시에 따라 대화형 텍스트를 생성하는 데에 있다고 볼 수 있습니다. 특히 ChatGPT와 AutoGPT의 큰 차이점은 AutoGPT의 경우 별도의 인간 개입 없이 자체적으로 모든 하위 문제를 처리하고, 스스로 프롬프트 할 수 있다는 점입니다.
🚀 AutoGPT Quickstart
References
- AUTO-GPT VS CHATGPT: HOW DO THEY DIFFER AND EVERYTHING YOU NEED TO KNOW
- AUTOGPT: THE AI THAT CAN SELF-IMPROVE IS SCARY!
Generation Model 어디까지 활용될 수 있을까? :: 이제 영화도 AI로 만든다?
에디터 | 손수경
an animated feature film of adorable mushroom warriors marching through the forest, spears, chibi, cute, textured, masterpiece, ultra-detailed, 8k --upscale --interpolate
위 문장을 영상으로 만들면? 링크로 들어가서 확인하기
👉🏻https://twitter.com/IXITimmyIXI/status/1652098312403578880?s=20
an animated feature film of adorable clouds shaped kittens playing in paradise with god rays and intricate details, masterpiece, --upscale --interpolate
위 문장을 영상으로 만들면? 링크로 들어가서 확인하기
👉🏻 https://twitter.com/ixitimmyixi/status/1649807857246777344?s=46&t=YSY4NLgRt-x9AS9oXDXUIA
그 외 Gen2로 만들어진 영상 확인하기
👉🏻 https://twitter.com/heyBarsee/status/1651961773157908485
Text-to-Videos Generator Model의 성능이 점점 좋아지고 있다. 최근에 Gen2가 출시되면서 해당 모델을 통해 만들어진 영상이 이슈이다.
Gen2가 왜 이슈일까? :: Gen2 기능 알아보기
1. Text to Video
Introducing Gen-2: Text to Video | Runway 영상 확인하기 👉🏻https://youtu.be/trXPfpV5iRQ
2. Text + Image to Video
이미지와 텍스트를 통해서 원하는 느낌의 video를 생성한다.
A low angle shot of a man walking down a street, illuminated by the neon signs of the bars around him.
해당 이미지를 바탕으로 Input Text를 기반으로 영상이 만들어진다.
3. Image to Video
Input Image를 통해서 이미지를 찍을 때의 풍경 등을 video로 생성해준다.
예를 들어서 해변 풍경을 Input Image로 넣어준다면 해당 이미지의 풍경을 영상으로 찍은 것처럼 영상을 생성해준다. (구름의 움직임, 파도의 움직임 등)
4. Stylization
Source Video를 Driving Image의 frame으로 분위기를 변환해준다.
5. Storyboard
모형을 정형화된 애니메이션 랜더링으로 변환한다.
6. Mask
7. Render
입력 이미지를 적용하여 질감이 없는 랜더링을 사실적인 출력으로 전환한다.
Gen2의 기능에 대해서 소개를 했다. 독자들은 Gen2를 통해서 어디까지 대체가 가능하다고 생각하는지 궁금하다. 더불어 해당 링크를 통해서 영상까지 직접 봄으로써 Gen2의 기능을 체감해봤으면 좋겠다🤗
References
‘비디오 LDM’ 엔비디아의 비디오 생성 AI
에디터 | 송지빈
인공지능(AI) 기술의 발전으로 다양한 AI기업에서 비디오 생성 AI 기술을 연구하고 공개하고 있습니다. 비디오 생성 AI란, 입력된 텍스트나 이미지를 바탕으로 자동으로 비디오를 생성하는 기술입니다. 엔비디아에서는 4월 23일 비디오 생성 AI 모델인 ‘비디오LDM(Video Latent Diffusion Model)’을 공개했습니다. ‘비디오LDM’은 텍스트로 입력한 설명에 따라 최대 2048x1280 픽셀 해상도의 동영상의 최대 4.7초까지 생성할 수 있는 비디오 생성 AI입니다.
이 모델은 “스테이블 디퓨전’을 기반으로 텍스트에서 이미지를 생성하도록 사전 훈련된 잠재 확산 모델(LDM)을 수천개의 비디오로 fine-tuning하여 이미지를 애니메이션화하는 방법을 학습했습니다. 비디오 생성 AI는 다양한 분야에서 활용될 수 있습니다. 예를 들어, 마케팅 분야에서는 제품 소개나 광고 등을 비디오로 제작할 때, 비디오 생성 AI를 사용하여 보다 짧은 시간 내에 높은 퀄리티의 비디오를 제작할 수 있습니다. 또한, 교육 분야에서는 수업 내용을 비디오로 제작하여 더욱 효과적으로 학생들에게 전달할 수 있습니다.
하지만, 비디오 생성 AI는 아직 완전히 정교하게 동작하지 않는 문제점이 있습니다. 생성된 비디오가 현실적이지 않거나 일관성이 없는 경우입니다. 따라서, 비디오 생성 AI는 아직 발전이 필요한 기술이지만, 앞으로 더욱 발전하여 다양한 분야에서 더욱 널리 활용될 것으로 기대됩니다.
References