
Transformer
Pathways
여러 태스크를 수행할 수 있는 단일 학습 모델
Today’s models are dense and inefficient. Pathways will make them sparse and efficient.
인간은 문장을 해석할 때 뇌의 극히 일부만 활용한다는 점에서 착안, 동일하게 ‘희소하게(sparsely)’ 활성화 하는 단일 모델 구축.
Pathways 학습 논문이 PaLM이다.
minGPT
Karpathy의 minGPT를 여러 방법으로 실험하고 결과 정리
Positional Encoding
PositionalEncoding1D 사용1. pos_enc
변수명이 되어야 하나 편의상 pos_emb
로 통일
tok_emb = self.transformer.wte(idx) # token embeddings of shape (b, t, n_embd)
if self.pos_type == 'pos_enc':
pos_enc = PositionalEncoding1D(48)(tok_emb) # position encoding of shape (b, t, n_embd)
else:
pos_emb = self.transformer.wpe(pos) # position embeddings of shape (1, t, n_embd)
x = self.transformer.drop(tok_emb + (pos_enc if self.pos_type == 'pos_enc' else pos_emb))
position embedding 쪽이 loss가 훨씬 더 빨리, 작게 떨어진다. 사실상 positional encoding은 사용할 필요가 없다. 하지만 position 정보 없이는 학습되지 않으며, 당연히 token embeddings 없이도 학습되지 않는다.
LayerNorm
layernorm 없이도(attention 이후, mlp 이후 2개 제거) loss가 좀 더 늦게 떨어질뿐 학습에는 문제가 없다.
파란색 nn.LayerNorm
결과. 좀 더 큰 폭으로 scailing 된다.
Attention Map
데모2는 앞에 값을 이용해 소팅된 값을 뒤에 덧붙이는 형태며, 미래의 값으로 target을 결정하지 못하도록 윗부분은 모두 0으로 마스킹 한다. attention map @ v
구조로, 이렇게 되면 이전 토큰의 정보만 볼 수 있다. 또한 사실상 메모리의 절반만 사용한다. 학습할 때 마스킹 하지 않으면 나중에 당연히 inferences를 제대로 하지 못한다. 뒤에 토큰은 보지 못하는데, 어텐션이 걸려 있기 때문. Transformer 논문에는 decoder의 첫 번째가 Masked Multi-Head Attention이다.
Fig. The current word is in red and the size of the blue shade indicates the activation level. (Image source: Cheng et al., 2016)
Scaled Dot-Product
Scaled Dot-Product attention from Transformer
\(Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V\)
scaling factor \(\frac{1}{\sqrt{d_k}}\) 없이도 학습은 가능하지만 \(d_k\) 값이 클 때 scaling은 성능을 더 높이고, “pushing softmax function into regions where it has extremely small gradients”(Vaswani et al, 2017) softmax가 매우 작은 기울기로 빠질 수 있는 문제를 방지한다.
디코더에서 인코더 값이 필요한게 아니라면 Q,K를 모두 사용하지 않고 Q만 사용해도 학습은 가능하다.
Feed Forward Layer
커널 크기가 1인 1차원 합성곱이라고도 부른다. (오픈AI 코드는 이 명명법을 따름)
config.intermediate_size
는 config.hidden_size
의 4배인 3,072
(트랜스포머를 활용한 자연어 처리, 2022)
BigBird
트랜스포머 모델은 어텐션 메커니즘에 필요한 메모리가 시퀀스 길이의 제곱에 비례한다. BigBird는 Sparse Attention을 사용해 이 문제 해결. BERT에서 512토큰인데 반해 4,096으로 크게 늘어남.
Last Modified: 2023/06/27 15:51:10