SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
PaLM
Scaling Language Modeling with Pathways
Tae Young Lee
Pathways Language Model (PaLM)
연구 포인트
1> Model Scale Hyperparameters가 확장되려면 병렬 처리 엔지니어링 필요
이 모델을 학습시킨 Pathways라는 머신러닝 워크플로우를 논문으로 공개함
2> 학습 방식
거대 언어 모델의 스케일을 증가시켜도 풀기 어려운 문제는 추리(Reasoning)관련 NLP문제
이번에 PaLM은 Chain-of-thought Prompting이라는 방식을 통해
생각의 흐름을 함께 학습시켰더니 큰 폭의 성능향상을 보임
https://jiho-ml.com/weekly-nlp-54/
사전 지식 소개
https://wikidocs.net/31379
Encoder Self Attention
Attention 함수는 주어진 ‘쿼리(Query)’에 대해서 모든 ‘키(Key)’와의 유사도를 각각 구한다. 그리고 구해낸 이 유사도를
가중치로 하여 키와 맵핑되어 있는 각각의 ‘값(Value)’에 반영해 준다. 그리고 유사도가 반영된 ‘값(Value)’을 모두 가중합하여
리턴한다.
Q : 입력 문장의 모든 단어 벡터들
K : 입력 문장의 모든 단어 벡터들
V : 입력 문장의 모든 단어 벡터들
'그 동물은 길을 건너지 않았다. 왜냐하면
그것은 너무 피곤하였기때문이다.' 라는
의미가 됩니다. 그런데 여기서 그것(it)에
해당하는것은 과연 길(street)일까요? 동물
(animal)일까요? 우리는 피곤한 주체가
동물이라는것을 아주 쉽게 알 수 있지만
기계는 그렇지 않습니다. 하지만 셀프
어텐션은입력 문장 내의 단어들끼리유사도를
구하므로서그것(it)이 동물(animal)과
연관되었을확률이 높다는 것을 찾아낸다
https://wikidocs.net/31379
각각의 Linear Layer에는 동일한 Emb+Pos가 입력됨
여기서 Linear 연산을 거치는 이유를 두가지로 설명한다면,
1> Linear Layer가 입력을 출력으로 매핑하는 역할을 하고
2> Linear Layer가 행렬이나 벡터의 차원을 바꿔주는 역할
Linear Layer연산을 거치는 이유는 Query,Key,Value 각각의
차원을 줄여서 병렬 연산에 적합한 구조를 만들려는 목적
Linear Layer
Attention Score
코사인 유사도
공식
두 벡터가 유사할 수록
값이 1에 가까워짐
두 벡터가 서로 다를수록
-1에 가까워짐
코사인 유사도는 벡터의 곱을
두 벡터의 L2 norm곱,
즉 스케일링으로 나눈 값이다.
벡터A와 벡터B의 유사도를
구하는 벡터 유사도임
행렬A와 행렬B의 유사도로 행렬 유사도의 경우
행렬 간의 곱으로 발생하는 차원 충돌을 피하기
위해 행렬B를 전치행렬처리 해 준다
Attention Score Scaling
Scaling & Softmax
Scaling링이 필요한 이유는 dot-product계산은 특성상 문장의
길이(d)가 길어질수록 더 큰 숫자를 가지게 된다. 문제는
이것들에 나중에 softmax처리를 해야 할 때, 큰 값들 사이에서
Softmax는 특정값만 과도하게 살아남고 나머지 값들은
사라지는 과한 정제가 이루어진다는 점이다. 작은 값들은 작은
gradient로 작용하게 되고 결국 학습도 느려지게 된다.
Softmax가 비슷한 값들 사이에서 이루어지도록 원래값을
scale-down해주면 Softmax 이후에도 살아남는 gradient가
충분히 많아짐. 따라서 Scale연상을 수행하여 gradient를
보존해 준다. 그 다음으로 행렬 Attention Score의 유사도에
0에서 1사이 값으로 normalize하기 위해 Softmax함수를
사용한다.
Multi-head Attention
한 번의 Attention을 하는 것보다 여러번의 Attention을 병렬로
사용하는 것이 더 효과적이라고 판단 dmodel/num_heads의 차원을
가지는 Q, K, V에 대해서 num_heads개의 병렬 어텐션을 수행함
논문에서는 하이퍼파라미터인 num_heads의 값을 8로
지정하였고, 8개의 병렬 어텐션이 이뤄지게 된다. 위에서 설명한
어텐션이 8개로 병렬로 이루어지게 되는데, 이때 각각의 어텐션
값 행렬을 어텐션 헤드라고 부름.
병렬 어텐션으로 얻을 수 있는 효과는 여러 시점에서 상대방을 볼
수 있다는 것이다. 어텐션을 병렬로 수행하여 다른 시각으로
정보들을 수집하겠다는 것.
From Encoder To Decoder
인코더는 총 num_layers만큼의 층 연산을 순차적으로 한
후에 마지막 층의 인코더의 출력을 디코더에게 전달.
인코더 연산이 끝났으면 디코더 연산이 시작되어 디코더
또한 num_layers만큼의 연산을 하는데, 이때마다
인코더가 보낸 출력을 각 디코더 층 연산에 사용합니다.
트랜스포머는 문장 행렬로 입력을 한 번에 받으므로 현재
시점의 단어를 예측하고자 할 때, 입력 문장 행렬로부터
미래 시점의 단어까지도 참고할 수 있는 현상이 발생
여기서 발생하는 문제를 해결하기 위해 디코더에서는 현재
시점의 예측에서 현재 시점보다 먼 미래에 있는 단어들을
참고하지 못하도록 look-ahead mask를 도입.
‘미리보기에 대한 마스크'
https://wikidocs.net/31379
look-ahead mask는 디코더의 첫번째 서브층에서 이루어진다. 디코더의 첫번째
서브칭인 멀티 헤드 셀프 어텐션 층은 인코더의 첫번째 서브층인 멀티 헤드 셀프
어텐션 층과 동일한 연산을 수행한다. 다른 점은 어텐션 스코어 행렬에서
마스킹을 적용한다는 점.
셀프 어텐션을 통해 어텐션 스코어 행렬을 얻은 후 자기 자신보다 미래에 있는
단어들은 참고하지 못하도록 마스킹을 수행. 마스킹 된 후의 어텐션 스코어
행렬의 각 행을 보면 자기 자신과 그 이전 단어들만을 참고할 수 있음을 볼 수
있다. 그 외에는 근본적으로 셀프 어텐션이라는 점과, 멀티 헤드 어텐션을
수행한다는 점에서 인코더의 첫번째 서브층과 같다.
Self Attention & Look-Ahead Mask
https://wikidocs.net/31379
Encoder-Decoder Attention
디코더의 두번째 서브층은 멀티 헤드 어텐션을 수행한다는 점에서는 이전의 어텐션들(인코더와 디코더의 첫번째 서브층)
과는 공통점이 있으나 이번에는 셀프 어텐션이 아니다. 셀프 어텐션은 Query, Key, Value가 같은 경우를 말하는데, 인코더-
디코더 어텐션은 Query가 디코더인 행렬인 반면, Key와 Value는 인코더 행렬이기 때문입니다. 다시 한 번 각 서브층에서의
Q, K, V의 관계를 정리해보면
인코더의 첫번째 서브층 : Query = Key = Value
디코더의 첫번째 서브층 : Query = Key = Value
디코더의 두번째 서브층 : Query : 디코더 행렬 / Key = Value :
인코더 행렬
두 개의 화살표는 각각 Key와 Value를 의미하며 이는 인코더의 마지막 층에서 온 행렬로부터 얻습니다. 반면 Query는
디코더의 첫번째 서브층의 결과 행렬로부터 얻는다는 점이 다름
Query가 디코더 행렬, Key가 인코더 행렬일 때, 어텐션 스코어 행렬을 구하는 과정은 위와 같다.
https://wikidocs.net/31379
Pathways
Data Parallelism
여러대의 gpu에 데이터를 분석하여 시간을 단축하는 방법
weight parameter를 업데이트할 때마다 여러 gpu가 학습한
결과를 종합한 후 다시 나누는 synchronization(all-reduce)
필요
Model Parallelism
모델 사이즈가 너무 커서 하나의 gpu메모리에 다 들어가지
않는 경우 여러 gpu에 모델 파라미터를 나누어 연산
일반적으로 tensor parallesim과 pipeline parallelism으로
나누어짐
Model & Data Parallelism
Tensor & Pipeline Parallelism
Tensor Parallelism 커다란 행렬을 여러 gpu로 나누어 연산한 후 그 결과값을 concat하는 방식
Pipeline Parallelism 여러 gpu가 활성화되지 않는 bubble 존재
마이크로배치들/weight를 계속해서 올리는 과정에서 higher memory bandwidth를 요구함
Pathway 인프라
https://arxiv.org/pdf/2203.12533.pdf
PaLM에서는 pipeline을 사용하지 않으면서 540B나 되는 큰 모델을 6144개의 칩으로 확장시키기 위해 다음의 전략 사용
첫째, 각 TPU v4 Pod은 full copy of the model parameters를
가진다. 이때, 각 weight tensor는 12-way model
parallelism을 통해 3072개의 chip에 나누어져 있고,
마찬가지로 데이터도 256-way fully sharded data
parallelism을 통해 분산되어 있다.
둘째, 각 pod 단위에서 two-way data parallelism을 적용하기
위해, client-server architecture를 이용한다.
component A는 각 pod의 forward+backward computation결과
component B는 optimizer update정보를 담고 있으며 cross-pod
gradient transfer가 존재한다. The Pathways program은 처음에
각 pod으로 하여금 component A를 연산하게 하고, 각 결과를
pod끼리 공유하게 한다. 마지막으로 component B를 연산한다.
Pathways system은 여러 대의 accelerator chip를 활용하여
모델을 훈련시킬 수 있는 특징들을 가진다.
Pathways system은 여러 대의 accelerator chips를 활용하여 모델을 훈련시킬 수 있는 특징들을 가진다.
1. aysnchronous gang-scheduling를 각 pod scheduler에 적용, 즉, 여러 대의 프로세스가 소통하면서 동시에 작동하도록
함으로써, latency를 줄임
2. shared-dataflow execution model을 사용하기 때문에 data transfer 시간을 줄임
Training Efficiency
연구자들은 성능을 평가하기 위해 MFU(model FLOPs utilization)라는 새로운 지표를 소개한다.
이는 관측된 throughput, 즉, 일초당 처리할 수 있는 토큰의 수와 이론적 최대 throughput과의 비율이다.
다시 말해, 기대되는 최대 throughtput과 현실 사이의 비교라고 할 수 있다.
https://velog.io/@tobigs-nlp/PaLM-Scaling-Language-Modeling-with-Pathways-2
Reasoning
chain-of-throught prompting
최근의 연구들에 따르면, reasoning의 중간 단계를 함께
만들게 함으로써 답변의 질이 비약적으로 향상되었다고
한다.
Multi-step arithmetic 이나 logical reasoning등의 문제는
LLM으로 잘 해결되지 않는 대표적인 것들이었다.
Chain of Thought, CoT는 few shot prompting의 일종으로, 한
개의 답을 차근차근 나눠 예시를 제공하는 것입니다.
이 기법은 특히 PaLM처럼 초대형 언어 모델과 결합했을 때,
앞서 언급한 어려운 문제들에 대해 엄청난 성능 향상을
가져왔다. https://arxiv.org/abs/2201.11903
LLMs are Zero-Shot Reasoners
https://arxiv.org/abs/2205.11916
Abstract
사전학습을 시킨 Large Language Model (LLM) 들은 특정 과제에 특화된 few-show learing을 통해서 쓰이고 있습니다.
Chain of Tought Prompting
CoT 기술은 arithmetic reasoning과 symbolic reasoning 양쪽
모두 SOTA를 달성한 바 있다.
또한 CoT Prompting을 이용하면 이전까지 잘 해결하지
못했던 system-2 task, 그러니까 왼쪽 그림과 같은 초등학교
수준의 계산 문제의 답을 추론하는 문제들도 해결할 수 있다.
이는 대부분 few-shot learning의 성과로 여겨졌지만, 본
논문에서는 프롬프트에 “Let’s think step by step”이라는
문장을 추가하기만 해도 꽤 괜찮은 수준의 zero shot
learning이 가능하다는 것을 발견했다.
여러 logical문제들을 기준으로 평가 결과 기존의 제로샷
러닝보다 훨씬 나은 결과를 보였다.
(MultiArith accuracy의 경우 17.8%에서 78.7%까지 상승)
Introduction
매번 모델을 특정 task에 특화시키는 대신, 약간의 예시를
주거나(few-shot), 예시를 주지 않아도 문제를 설명하고 답을
구하도록 지시를 주는(zero-shot) 행위를 prompting이라
한다.
LLM은 prompting을 통해 위에서 살펴본 것처럼 다양한
문제를 해결할 수 있다.
직관적이고 단순한 system-1 문제들에서 few shot, 또는
zero-shot learning을 통해 매우 훌륭한 성능을 보여줬던 것과
달리, 100B 이상의 파라미터를 보유한 모델도 system-2
문제를 쉽게 해결하지 못했다.
이를 설명하기 위해 Chain of Thought 개념이 제시되었다.
질답을 포괄적으로 제시하는(a) 대신, 단계별로 과정을 나눠
제시하는(b) 기법입니다. CoT가 5400억개의 파라미터를
가진 PaLM모델과 결합되었을 때, 압도적인 성능 향상을
보였다.
(GSM8K 17.9% → 58.1%)
본 논문에서는 Let’s think step by step 이라는 문장을
사용하면, 기존 방식(b)처럼 문제마다 설명을 따로 할 필요가
없다는 것을 발견했다. 또한 이 방법은 실험에 사용한 모든
문제에 대해 적용할 수 있다.
Background
Large Language models and prompting
language model은 기본적으로 텍스트의 확률분포에 대한
모델
LLM은 초대량의 데이터를 학습한 pre-trained 모델로, NLP
분야에서 대부분의 downstream task에 있어 과거의
fine-tuning기법 대비 훌륭한 성능을 발휘했다.
이런 고성능은 문제에 대한 상세하고 구체적인 가이드라인을
제공하는 prompt에서 나오는데,
구체적인 문제 풀이 과정의 예시를 제공하는 것을 few-shot
prompt
문제와 해답 템플릿만을 제공하는 것을 zero-shot prompt
Chain of Tought Prompting
Multi-step arithmetic 이나 logical reasoning 등의 문제는
LLM으로 잘 해결되지 않는 대표적인 것들이었다.
Chain of Thought, CoT는 few shot prompting의 일종으로, 한
개의 답을 단계별로 차근차군 나눠 예시를 제공하는 것이다.
이 기법은 특히 PaLM처럼 초대형 언어 모델과 결합했을 때,
앞서 언급한 어려운 문제들에 대해 엄청난 성능향상을
가져왔다.
Zero shot Chain of Thought
본 논문에서는 Zero-shot Chain of Thought 기법을 제시한다. 기존의 few shot prompting은 문제별로 구체적인 예시를
제공해야 하지만,
Zero-shot CoT는 그럴 필요가 없다. zero-shot CoT를 사용하면 한 개의 템플릿만으로 광범위하게 응용할 수 있고 단계적
추론 활용 가능
Two-stage prompting
Zero-shot CoT는 왼편 그림처럼 prompting을 두번 사용한다는 점에서
조금 미묘한 부분이 있다. 이는 그림 오른편에서 보듯이 원하는
포맷으로 답을 추출하기 위해 the answer is prompting을 사용하기
때문이다. CoT, 또는 standard few-shot learning는 개별 문제에 대한
구체적인 예시를 사용하기 때문에 답안 추출 단계가 필요없다. 즉
few-shot learning은 엔지니어가 직접 문제별로 포맷팅을 해야 하는
반면, zero-shot CoT는 human-engineering이 필요없는 대신
inference과정이 두번 필요
1st prompt - 본 논문에서는 단순성을 위해 Greedy decoding을 사용
2nd prompt - self augmented가 이뤄짐. 동일한 언어모델에서 추출한
결과 문장을 뒷 프롬프트에서 사용하기 때문이다. 본 논문에서는
문제에 따라 트리거 문장에 약간씩 변형을 주어 사용했음
Zero-Shot Learning
https://deep-learning-study.tistory.com/873
https://arxiv.org/abs/2011.08641
Zero-Shot Learning(ZSL) vs Generalized ZSL(GZSL)
일반적으로 딥러닝은 training에 사용된 class만을 예측할 수
있다. 따라서 unseen data가 입력되면 seen class로
예측하는 바보가 되버리는데, Zero shot은 train set에
포함되지 않는 unseen class를 예측하는 분야이다.
즉 unseen data를 입력 받아도, seen data로 학습된 지식을
전이하여 unseen data를 unseen class로 예측할 수 있다.
open set recognition은 unseen data를 unseen으로 몰아놓는
반면에, ZSL은 unseen data의 구체적인 class를 예측한다.
ZSL은 test시에 unseen data만을 입력 받아 class를
예측하고, GZSL은 test시에 unseen, seen data를 둘 다 입력
받아 예측을 수행한다.
How It Works
training set에 포함되지 않는 unseen data를 예측할 수 있는 이유는 semantic information에 있다.
semantic information은 여러 종류가 될 수 있는데, 한 가지 예시를 들면 data의 class를 word embedding으로 사용하는
것이다.
one-hot vector를 class로 주어 학습된 딥러닝 모델은 강아지와 고양이의 관계를 모르지만, class를 word embedding된
sentence로 주어 학습한다면 이 딥러닝 모델은 강아지와 고양이의 관계를 알 수 있다.
이렇게 seen data와 semantic information으로 학습된 지식을 unseen data를 예측하는데에 사용하는 것이다.
따라서 ZSL 모델은 seen data에 overfit될 수 있는데 이로부터 문제점이 발생한다. 또한 GZSL 환경에서 성능이 저하된다. 즉,
unseen data를 seen class로 예측할 수 있다는 말이다. 발생하는 문제점은 아래에서 살펴보겠다.
다른 semantic information은 객체의 attributes가 될 수 있는데 이것은 객체의 특성(크기, 색상, 다리 갯수) 등을 label하여
하나의 벡터로 표현해 class로 입력해주는 것이다. 그러면 사람이 또 annotation 해야 하는데 대량의 데이터셋은 적합하지
않다. word embedding 방법을 사용하면 word2Vec이나 BERT의 사전 학습된 word vector를 가져올 수 있으므로 semantic
information은 word vector가 적합하다.
Generalized Zero Shot Learning(GZSL)
Transductive GZSL
Transductive GZSL은 seen,unseen의 visual feature와
semantic information을 모두 활용한다. 실제 환경에서는
unseen에 대한 visual feature를 얻는 것이 불가능하므로 real
word환경에서 적합하지 않다
Transductive semantic GZSL
unseen의 visual feature가 없을 때는 generative-based methods
에서 unseen에 대한 image를 생성한다.
generative model로 생상한 unseen data를 training에 넣어 함께
학습시켜 unseen에 대한 예측도 수행할 수 있도록 하는 방법
이 generative based method는 real visual feature의 실제
분포에서
unseen class에 대한 visual feature를 제대로 생성해내지 못함.
inductive GZSL
seen의 visual feature와 semantic information만을 입력받아 학습이 진행된다.
위 그림처럼 GZSL방법은 정말 다양하다. 큰 범주로 나누면 embedding-based
method
와 generative-based methods로 볼 수 있다.
GZSL은 seen class의 저차원 visual feature를 그에 해당하는 semantic vector로
mapping/embedding하는 함수를 학습하는 것으로 볼 수 있다.
visual feature 사이에는 큰 variation이 존재하는데, 강아지와 고양이의 visual feature
의 연관성이 적기 때문이다. semantic information은 둘의 연관성을 잘 알고 있으므로
variation을 줄일 수 있다.
a) visual → semantic embedding : visual space의 vector를 semantic embedding으로 mapping
b) Semantic → visual embedding : semantic vector를 visual embedding으로 mapping하는 함수를 학습하는
방법
c) Latent Embedding : visual feature와 semantic representation을 common space L로 projection하여 동일한
클래스에 해당하는 visual, semantic vector는 commnon space L내에서 가깝게 project하는 함수를 학습하는 방법
Embedding Space
Challenging Issues
hubness problem
ZSL와 GZSL은 visual feature를 semantic space로 project하고, 고차원 space에서 nearest neighbor search를 하여
unseen에 대한 class를 예측하므로 nearest neighbors에 치명적인 차원의 저주문제가 발생함 차원이 높아질수록 data
사이의 거리가 멀어지는 문제
domain shift problem
seen class의 data로 ZSL,GZSL의 mapping함수가 학습되었기에
unseen class에 대한 adaption이 없다면 domain shift problem이
발생 (아무런 정보 없이 학습하는 inductive based method에서 발생)
biased towards the seen classes
GZSL 방법은 seen class의 data로 모델을 학습하여 unseen과
seen class를 분류하기 때문에 biased towards the seen classes
문제가 발생(unseen class의 data를 seen class로 분류하는 것)
참고 링크
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (https://arxiv.org/abs/2201.11903)
https://jiho-ml.com/weekly-nlp-54/
https://wikidocs.net/31379
https://velog.io/@tobigs-nlp/PaLM-Scaling-Language-Modeling-with-Pathways-2
Large Language Models are Zero-Shot Reasoners (https://arxiv.org/abs/2205.11916)
https://velog.io/@nochesita/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Large-Language-Models-are-Zero-
Shot-Reasoners
https://deep-learning-study.tistory.com/873
A Review of Generalized Zero-Shot Learning Methods (https://arxiv.org/abs/2011.08641)
https://www.blossominkyung.com/deeplearning/transformer-mha

Mais conteúdo relacionado

Mais procurados

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会Takayuki Kyowa
 
Advanced nGrinder
Advanced nGrinderAdvanced nGrinder
Advanced nGrinderJunHo Yoon
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기Ji-Woong Choi
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015devCAT Studio, NEXON
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐Terry Cho
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐Terry Cho
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인Jae Young Park
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성Hyunjik Bae
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론Terry Cho
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulSeungYong Oh
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스Terry Cho
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 

Mais procurados (20)

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
 
Advanced nGrinder
Advanced nGrinderAdvanced nGrinder
Advanced nGrinder
 
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
Hive on Tezのベストプラクティス
Hive on TezのベストプラクティスHive on Tezのベストプラクティス
Hive on Tezのベストプラクティス
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론
 
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 SeoulElastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
Elastic Stack 을 이용한 게임 서비스 통합 로깅 플랫폼 - elastic{on} 2019 Seoul
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 

Semelhante a PaLM Paper Review

Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsKyeongUkJang
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_pptseungwoo kim
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)Bong-Ho Lee
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
Metric Learning 세미나.pptx
Metric Learning 세미나.pptxMetric Learning 세미나.pptx
Metric Learning 세미나.pptxDongkyunKim17
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model serviceTae Young Lee
 
Efficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingEfficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingHoon Heo
 
Metric learning 세미나
Metric learning 세미나Metric learning 세미나
Metric learning 세미나ssuser198c901
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터JEEHYUN PAIK
 
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&Csys4u
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작DACON AI 데이콘
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java유리 하
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxssuser4b2fe7
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Trainingpko89403
 
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017)    2 2(2)Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)정훈 서
 

Semelhante a PaLM Paper Review (20)

Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
CS294-112 18
CS294-112 18CS294-112 18
CS294-112 18
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep models
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_ppt
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
Metric Learning 세미나.pptx
Metric Learning 세미나.pptxMetric Learning 세미나.pptx
Metric Learning 세미나.pptx
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model service
 
Efficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively StackingEfficient Training of Bert by Progressively Stacking
Efficient Training of Bert by Progressively Stacking
 
Metric learning 세미나
Metric learning 세미나Metric learning 세미나
Metric learning 세미나
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터
 
Introduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&CIntroduction to Fork Join Framework_SYS4U I&C
Introduction to Fork Join Framework_SYS4U I&C
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptx
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
 
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
Understanding deep learning requires rethinking generalization (2017)    2 2(2)Understanding deep learning requires rethinking generalization (2017)    2 2(2)
Understanding deep learning requires rethinking generalization (2017) 2 2(2)
 

Mais de Tae Young Lee

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to knowTae Young Lee
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드Tae Young Lee
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platformTae Young Lee
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solutionTae Young Lee
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning modelsTae Young Lee
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation modelTae Young Lee
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various ProcessesTae Young Lee
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learningTae Young Lee
 

Mais de Tae Young Lee (20)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to know
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
Aws architecture
Aws architectureAws architecture
Aws architecture
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platform
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
Ai based on gpu
Ai based on gpuAi based on gpu
Ai based on gpu
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solution
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning models
 
Bayesian learning
Bayesian learningBayesian learning
Bayesian learning
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation model
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various Processes
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
Jenkins in finance
Jenkins in financeJenkins in finance
Jenkins in finance
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 

PaLM Paper Review

  • 1. PaLM Scaling Language Modeling with Pathways Tae Young Lee
  • 2. Pathways Language Model (PaLM) 연구 포인트 1> Model Scale Hyperparameters가 확장되려면 병렬 처리 엔지니어링 필요 이 모델을 학습시킨 Pathways라는 머신러닝 워크플로우를 논문으로 공개함 2> 학습 방식 거대 언어 모델의 스케일을 증가시켜도 풀기 어려운 문제는 추리(Reasoning)관련 NLP문제 이번에 PaLM은 Chain-of-thought Prompting이라는 방식을 통해 생각의 흐름을 함께 학습시켰더니 큰 폭의 성능향상을 보임 https://jiho-ml.com/weekly-nlp-54/
  • 5. Encoder Self Attention Attention 함수는 주어진 ‘쿼리(Query)’에 대해서 모든 ‘키(Key)’와의 유사도를 각각 구한다. 그리고 구해낸 이 유사도를 가중치로 하여 키와 맵핑되어 있는 각각의 ‘값(Value)’에 반영해 준다. 그리고 유사도가 반영된 ‘값(Value)’을 모두 가중합하여 리턴한다. Q : 입력 문장의 모든 단어 벡터들 K : 입력 문장의 모든 단어 벡터들 V : 입력 문장의 모든 단어 벡터들 '그 동물은 길을 건너지 않았다. 왜냐하면 그것은 너무 피곤하였기때문이다.' 라는 의미가 됩니다. 그런데 여기서 그것(it)에 해당하는것은 과연 길(street)일까요? 동물 (animal)일까요? 우리는 피곤한 주체가 동물이라는것을 아주 쉽게 알 수 있지만 기계는 그렇지 않습니다. 하지만 셀프 어텐션은입력 문장 내의 단어들끼리유사도를 구하므로서그것(it)이 동물(animal)과 연관되었을확률이 높다는 것을 찾아낸다 https://wikidocs.net/31379
  • 6.
  • 7.
  • 8.
  • 9. 각각의 Linear Layer에는 동일한 Emb+Pos가 입력됨 여기서 Linear 연산을 거치는 이유를 두가지로 설명한다면, 1> Linear Layer가 입력을 출력으로 매핑하는 역할을 하고 2> Linear Layer가 행렬이나 벡터의 차원을 바꿔주는 역할 Linear Layer연산을 거치는 이유는 Query,Key,Value 각각의 차원을 줄여서 병렬 연산에 적합한 구조를 만들려는 목적 Linear Layer
  • 10. Attention Score 코사인 유사도 공식 두 벡터가 유사할 수록 값이 1에 가까워짐 두 벡터가 서로 다를수록 -1에 가까워짐 코사인 유사도는 벡터의 곱을 두 벡터의 L2 norm곱, 즉 스케일링으로 나눈 값이다. 벡터A와 벡터B의 유사도를 구하는 벡터 유사도임 행렬A와 행렬B의 유사도로 행렬 유사도의 경우 행렬 간의 곱으로 발생하는 차원 충돌을 피하기 위해 행렬B를 전치행렬처리 해 준다 Attention Score Scaling
  • 11. Scaling & Softmax Scaling링이 필요한 이유는 dot-product계산은 특성상 문장의 길이(d)가 길어질수록 더 큰 숫자를 가지게 된다. 문제는 이것들에 나중에 softmax처리를 해야 할 때, 큰 값들 사이에서 Softmax는 특정값만 과도하게 살아남고 나머지 값들은 사라지는 과한 정제가 이루어진다는 점이다. 작은 값들은 작은 gradient로 작용하게 되고 결국 학습도 느려지게 된다. Softmax가 비슷한 값들 사이에서 이루어지도록 원래값을 scale-down해주면 Softmax 이후에도 살아남는 gradient가 충분히 많아짐. 따라서 Scale연상을 수행하여 gradient를 보존해 준다. 그 다음으로 행렬 Attention Score의 유사도에 0에서 1사이 값으로 normalize하기 위해 Softmax함수를 사용한다.
  • 12. Multi-head Attention 한 번의 Attention을 하는 것보다 여러번의 Attention을 병렬로 사용하는 것이 더 효과적이라고 판단 dmodel/num_heads의 차원을 가지는 Q, K, V에 대해서 num_heads개의 병렬 어텐션을 수행함 논문에서는 하이퍼파라미터인 num_heads의 값을 8로 지정하였고, 8개의 병렬 어텐션이 이뤄지게 된다. 위에서 설명한 어텐션이 8개로 병렬로 이루어지게 되는데, 이때 각각의 어텐션 값 행렬을 어텐션 헤드라고 부름. 병렬 어텐션으로 얻을 수 있는 효과는 여러 시점에서 상대방을 볼 수 있다는 것이다. 어텐션을 병렬로 수행하여 다른 시각으로 정보들을 수집하겠다는 것.
  • 13. From Encoder To Decoder 인코더는 총 num_layers만큼의 층 연산을 순차적으로 한 후에 마지막 층의 인코더의 출력을 디코더에게 전달. 인코더 연산이 끝났으면 디코더 연산이 시작되어 디코더 또한 num_layers만큼의 연산을 하는데, 이때마다 인코더가 보낸 출력을 각 디코더 층 연산에 사용합니다. 트랜스포머는 문장 행렬로 입력을 한 번에 받으므로 현재 시점의 단어를 예측하고자 할 때, 입력 문장 행렬로부터 미래 시점의 단어까지도 참고할 수 있는 현상이 발생 여기서 발생하는 문제를 해결하기 위해 디코더에서는 현재 시점의 예측에서 현재 시점보다 먼 미래에 있는 단어들을 참고하지 못하도록 look-ahead mask를 도입. ‘미리보기에 대한 마스크' https://wikidocs.net/31379
  • 14. look-ahead mask는 디코더의 첫번째 서브층에서 이루어진다. 디코더의 첫번째 서브칭인 멀티 헤드 셀프 어텐션 층은 인코더의 첫번째 서브층인 멀티 헤드 셀프 어텐션 층과 동일한 연산을 수행한다. 다른 점은 어텐션 스코어 행렬에서 마스킹을 적용한다는 점. 셀프 어텐션을 통해 어텐션 스코어 행렬을 얻은 후 자기 자신보다 미래에 있는 단어들은 참고하지 못하도록 마스킹을 수행. 마스킹 된 후의 어텐션 스코어 행렬의 각 행을 보면 자기 자신과 그 이전 단어들만을 참고할 수 있음을 볼 수 있다. 그 외에는 근본적으로 셀프 어텐션이라는 점과, 멀티 헤드 어텐션을 수행한다는 점에서 인코더의 첫번째 서브층과 같다. Self Attention & Look-Ahead Mask https://wikidocs.net/31379
  • 15. Encoder-Decoder Attention 디코더의 두번째 서브층은 멀티 헤드 어텐션을 수행한다는 점에서는 이전의 어텐션들(인코더와 디코더의 첫번째 서브층) 과는 공통점이 있으나 이번에는 셀프 어텐션이 아니다. 셀프 어텐션은 Query, Key, Value가 같은 경우를 말하는데, 인코더- 디코더 어텐션은 Query가 디코더인 행렬인 반면, Key와 Value는 인코더 행렬이기 때문입니다. 다시 한 번 각 서브층에서의 Q, K, V의 관계를 정리해보면 인코더의 첫번째 서브층 : Query = Key = Value 디코더의 첫번째 서브층 : Query = Key = Value 디코더의 두번째 서브층 : Query : 디코더 행렬 / Key = Value : 인코더 행렬 두 개의 화살표는 각각 Key와 Value를 의미하며 이는 인코더의 마지막 층에서 온 행렬로부터 얻습니다. 반면 Query는 디코더의 첫번째 서브층의 결과 행렬로부터 얻는다는 점이 다름 Query가 디코더 행렬, Key가 인코더 행렬일 때, 어텐션 스코어 행렬을 구하는 과정은 위와 같다. https://wikidocs.net/31379
  • 17. Data Parallelism 여러대의 gpu에 데이터를 분석하여 시간을 단축하는 방법 weight parameter를 업데이트할 때마다 여러 gpu가 학습한 결과를 종합한 후 다시 나누는 synchronization(all-reduce) 필요 Model Parallelism 모델 사이즈가 너무 커서 하나의 gpu메모리에 다 들어가지 않는 경우 여러 gpu에 모델 파라미터를 나누어 연산 일반적으로 tensor parallesim과 pipeline parallelism으로 나누어짐 Model & Data Parallelism
  • 18. Tensor & Pipeline Parallelism Tensor Parallelism 커다란 행렬을 여러 gpu로 나누어 연산한 후 그 결과값을 concat하는 방식 Pipeline Parallelism 여러 gpu가 활성화되지 않는 bubble 존재 마이크로배치들/weight를 계속해서 올리는 과정에서 higher memory bandwidth를 요구함
  • 19. Pathway 인프라 https://arxiv.org/pdf/2203.12533.pdf PaLM에서는 pipeline을 사용하지 않으면서 540B나 되는 큰 모델을 6144개의 칩으로 확장시키기 위해 다음의 전략 사용 첫째, 각 TPU v4 Pod은 full copy of the model parameters를 가진다. 이때, 각 weight tensor는 12-way model parallelism을 통해 3072개의 chip에 나누어져 있고, 마찬가지로 데이터도 256-way fully sharded data parallelism을 통해 분산되어 있다. 둘째, 각 pod 단위에서 two-way data parallelism을 적용하기 위해, client-server architecture를 이용한다. component A는 각 pod의 forward+backward computation결과 component B는 optimizer update정보를 담고 있으며 cross-pod gradient transfer가 존재한다. The Pathways program은 처음에 각 pod으로 하여금 component A를 연산하게 하고, 각 결과를 pod끼리 공유하게 한다. 마지막으로 component B를 연산한다. Pathways system은 여러 대의 accelerator chip를 활용하여 모델을 훈련시킬 수 있는 특징들을 가진다.
  • 20. Pathways system은 여러 대의 accelerator chips를 활용하여 모델을 훈련시킬 수 있는 특징들을 가진다. 1. aysnchronous gang-scheduling를 각 pod scheduler에 적용, 즉, 여러 대의 프로세스가 소통하면서 동시에 작동하도록 함으로써, latency를 줄임 2. shared-dataflow execution model을 사용하기 때문에 data transfer 시간을 줄임 Training Efficiency 연구자들은 성능을 평가하기 위해 MFU(model FLOPs utilization)라는 새로운 지표를 소개한다. 이는 관측된 throughput, 즉, 일초당 처리할 수 있는 토큰의 수와 이론적 최대 throughput과의 비율이다. 다시 말해, 기대되는 최대 throughtput과 현실 사이의 비교라고 할 수 있다. https://velog.io/@tobigs-nlp/PaLM-Scaling-Language-Modeling-with-Pathways-2
  • 22. chain-of-throught prompting 최근의 연구들에 따르면, reasoning의 중간 단계를 함께 만들게 함으로써 답변의 질이 비약적으로 향상되었다고 한다. Multi-step arithmetic 이나 logical reasoning등의 문제는 LLM으로 잘 해결되지 않는 대표적인 것들이었다. Chain of Thought, CoT는 few shot prompting의 일종으로, 한 개의 답을 차근차근 나눠 예시를 제공하는 것입니다. 이 기법은 특히 PaLM처럼 초대형 언어 모델과 결합했을 때, 앞서 언급한 어려운 문제들에 대해 엄청난 성능 향상을 가져왔다. https://arxiv.org/abs/2201.11903
  • 23. LLMs are Zero-Shot Reasoners https://arxiv.org/abs/2205.11916
  • 24. Abstract 사전학습을 시킨 Large Language Model (LLM) 들은 특정 과제에 특화된 few-show learing을 통해서 쓰이고 있습니다. Chain of Tought Prompting CoT 기술은 arithmetic reasoning과 symbolic reasoning 양쪽 모두 SOTA를 달성한 바 있다. 또한 CoT Prompting을 이용하면 이전까지 잘 해결하지 못했던 system-2 task, 그러니까 왼쪽 그림과 같은 초등학교 수준의 계산 문제의 답을 추론하는 문제들도 해결할 수 있다. 이는 대부분 few-shot learning의 성과로 여겨졌지만, 본 논문에서는 프롬프트에 “Let’s think step by step”이라는 문장을 추가하기만 해도 꽤 괜찮은 수준의 zero shot learning이 가능하다는 것을 발견했다. 여러 logical문제들을 기준으로 평가 결과 기존의 제로샷 러닝보다 훨씬 나은 결과를 보였다. (MultiArith accuracy의 경우 17.8%에서 78.7%까지 상승)
  • 25. Introduction 매번 모델을 특정 task에 특화시키는 대신, 약간의 예시를 주거나(few-shot), 예시를 주지 않아도 문제를 설명하고 답을 구하도록 지시를 주는(zero-shot) 행위를 prompting이라 한다. LLM은 prompting을 통해 위에서 살펴본 것처럼 다양한 문제를 해결할 수 있다. 직관적이고 단순한 system-1 문제들에서 few shot, 또는 zero-shot learning을 통해 매우 훌륭한 성능을 보여줬던 것과 달리, 100B 이상의 파라미터를 보유한 모델도 system-2 문제를 쉽게 해결하지 못했다. 이를 설명하기 위해 Chain of Thought 개념이 제시되었다. 질답을 포괄적으로 제시하는(a) 대신, 단계별로 과정을 나눠 제시하는(b) 기법입니다. CoT가 5400억개의 파라미터를 가진 PaLM모델과 결합되었을 때, 압도적인 성능 향상을 보였다. (GSM8K 17.9% → 58.1%) 본 논문에서는 Let’s think step by step 이라는 문장을 사용하면, 기존 방식(b)처럼 문제마다 설명을 따로 할 필요가 없다는 것을 발견했다. 또한 이 방법은 실험에 사용한 모든 문제에 대해 적용할 수 있다.
  • 26. Background Large Language models and prompting language model은 기본적으로 텍스트의 확률분포에 대한 모델 LLM은 초대량의 데이터를 학습한 pre-trained 모델로, NLP 분야에서 대부분의 downstream task에 있어 과거의 fine-tuning기법 대비 훌륭한 성능을 발휘했다. 이런 고성능은 문제에 대한 상세하고 구체적인 가이드라인을 제공하는 prompt에서 나오는데, 구체적인 문제 풀이 과정의 예시를 제공하는 것을 few-shot prompt 문제와 해답 템플릿만을 제공하는 것을 zero-shot prompt Chain of Tought Prompting Multi-step arithmetic 이나 logical reasoning 등의 문제는 LLM으로 잘 해결되지 않는 대표적인 것들이었다. Chain of Thought, CoT는 few shot prompting의 일종으로, 한 개의 답을 단계별로 차근차군 나눠 예시를 제공하는 것이다. 이 기법은 특히 PaLM처럼 초대형 언어 모델과 결합했을 때, 앞서 언급한 어려운 문제들에 대해 엄청난 성능향상을 가져왔다.
  • 27. Zero shot Chain of Thought 본 논문에서는 Zero-shot Chain of Thought 기법을 제시한다. 기존의 few shot prompting은 문제별로 구체적인 예시를 제공해야 하지만, Zero-shot CoT는 그럴 필요가 없다. zero-shot CoT를 사용하면 한 개의 템플릿만으로 광범위하게 응용할 수 있고 단계적 추론 활용 가능 Two-stage prompting Zero-shot CoT는 왼편 그림처럼 prompting을 두번 사용한다는 점에서 조금 미묘한 부분이 있다. 이는 그림 오른편에서 보듯이 원하는 포맷으로 답을 추출하기 위해 the answer is prompting을 사용하기 때문이다. CoT, 또는 standard few-shot learning는 개별 문제에 대한 구체적인 예시를 사용하기 때문에 답안 추출 단계가 필요없다. 즉 few-shot learning은 엔지니어가 직접 문제별로 포맷팅을 해야 하는 반면, zero-shot CoT는 human-engineering이 필요없는 대신 inference과정이 두번 필요 1st prompt - 본 논문에서는 단순성을 위해 Greedy decoding을 사용 2nd prompt - self augmented가 이뤄짐. 동일한 언어모델에서 추출한 결과 문장을 뒷 프롬프트에서 사용하기 때문이다. 본 논문에서는 문제에 따라 트리거 문장에 약간씩 변형을 주어 사용했음
  • 29. Zero-Shot Learning(ZSL) vs Generalized ZSL(GZSL) 일반적으로 딥러닝은 training에 사용된 class만을 예측할 수 있다. 따라서 unseen data가 입력되면 seen class로 예측하는 바보가 되버리는데, Zero shot은 train set에 포함되지 않는 unseen class를 예측하는 분야이다. 즉 unseen data를 입력 받아도, seen data로 학습된 지식을 전이하여 unseen data를 unseen class로 예측할 수 있다. open set recognition은 unseen data를 unseen으로 몰아놓는 반면에, ZSL은 unseen data의 구체적인 class를 예측한다. ZSL은 test시에 unseen data만을 입력 받아 class를 예측하고, GZSL은 test시에 unseen, seen data를 둘 다 입력 받아 예측을 수행한다.
  • 30. How It Works training set에 포함되지 않는 unseen data를 예측할 수 있는 이유는 semantic information에 있다. semantic information은 여러 종류가 될 수 있는데, 한 가지 예시를 들면 data의 class를 word embedding으로 사용하는 것이다. one-hot vector를 class로 주어 학습된 딥러닝 모델은 강아지와 고양이의 관계를 모르지만, class를 word embedding된 sentence로 주어 학습한다면 이 딥러닝 모델은 강아지와 고양이의 관계를 알 수 있다. 이렇게 seen data와 semantic information으로 학습된 지식을 unseen data를 예측하는데에 사용하는 것이다. 따라서 ZSL 모델은 seen data에 overfit될 수 있는데 이로부터 문제점이 발생한다. 또한 GZSL 환경에서 성능이 저하된다. 즉, unseen data를 seen class로 예측할 수 있다는 말이다. 발생하는 문제점은 아래에서 살펴보겠다. 다른 semantic information은 객체의 attributes가 될 수 있는데 이것은 객체의 특성(크기, 색상, 다리 갯수) 등을 label하여 하나의 벡터로 표현해 class로 입력해주는 것이다. 그러면 사람이 또 annotation 해야 하는데 대량의 데이터셋은 적합하지 않다. word embedding 방법을 사용하면 word2Vec이나 BERT의 사전 학습된 word vector를 가져올 수 있으므로 semantic information은 word vector가 적합하다.
  • 31. Generalized Zero Shot Learning(GZSL) Transductive GZSL Transductive GZSL은 seen,unseen의 visual feature와 semantic information을 모두 활용한다. 실제 환경에서는 unseen에 대한 visual feature를 얻는 것이 불가능하므로 real word환경에서 적합하지 않다 Transductive semantic GZSL unseen의 visual feature가 없을 때는 generative-based methods 에서 unseen에 대한 image를 생성한다. generative model로 생상한 unseen data를 training에 넣어 함께 학습시켜 unseen에 대한 예측도 수행할 수 있도록 하는 방법 이 generative based method는 real visual feature의 실제 분포에서 unseen class에 대한 visual feature를 제대로 생성해내지 못함.
  • 32. inductive GZSL seen의 visual feature와 semantic information만을 입력받아 학습이 진행된다. 위 그림처럼 GZSL방법은 정말 다양하다. 큰 범주로 나누면 embedding-based method 와 generative-based methods로 볼 수 있다. GZSL은 seen class의 저차원 visual feature를 그에 해당하는 semantic vector로 mapping/embedding하는 함수를 학습하는 것으로 볼 수 있다. visual feature 사이에는 큰 variation이 존재하는데, 강아지와 고양이의 visual feature 의 연관성이 적기 때문이다. semantic information은 둘의 연관성을 잘 알고 있으므로 variation을 줄일 수 있다. a) visual → semantic embedding : visual space의 vector를 semantic embedding으로 mapping b) Semantic → visual embedding : semantic vector를 visual embedding으로 mapping하는 함수를 학습하는 방법 c) Latent Embedding : visual feature와 semantic representation을 common space L로 projection하여 동일한 클래스에 해당하는 visual, semantic vector는 commnon space L내에서 가깝게 project하는 함수를 학습하는 방법 Embedding Space
  • 33. Challenging Issues hubness problem ZSL와 GZSL은 visual feature를 semantic space로 project하고, 고차원 space에서 nearest neighbor search를 하여 unseen에 대한 class를 예측하므로 nearest neighbors에 치명적인 차원의 저주문제가 발생함 차원이 높아질수록 data 사이의 거리가 멀어지는 문제 domain shift problem seen class의 data로 ZSL,GZSL의 mapping함수가 학습되었기에 unseen class에 대한 adaption이 없다면 domain shift problem이 발생 (아무런 정보 없이 학습하는 inductive based method에서 발생) biased towards the seen classes GZSL 방법은 seen class의 data로 모델을 학습하여 unseen과 seen class를 분류하기 때문에 biased towards the seen classes 문제가 발생(unseen class의 data를 seen class로 분류하는 것)
  • 34. 참고 링크 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (https://arxiv.org/abs/2201.11903) https://jiho-ml.com/weekly-nlp-54/ https://wikidocs.net/31379 https://velog.io/@tobigs-nlp/PaLM-Scaling-Language-Modeling-with-Pathways-2 Large Language Models are Zero-Shot Reasoners (https://arxiv.org/abs/2205.11916) https://velog.io/@nochesita/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-Large-Language-Models-are-Zero- Shot-Reasoners https://deep-learning-study.tistory.com/873 A Review of Generalized Zero-Shot Learning Methods (https://arxiv.org/abs/2011.08641) https://www.blossominkyung.com/deeplearning/transformer-mha