Spoken Language Processing
LLM - Large Language Models에 대해서 (OpenAI 특강) (1) 연구자들이 가져야 할 자세, 언어모델 구조 기초
햇농nongnong
2023. 9. 7. 15:06
이 글은 OpenAI의 정형원 박사님의 ChatGPT Large Language Model 강연을 정리한 글입니다.
먼저, 학자들이 갖춰야 할 자세에 대해 좋은 말씀을 해주셔서 정리해보았습니다.
Perspecive of "yet"
- This idea does not work --> This idea does not work yet
- we are used to operating in an environment where underlying axioms do not change.
- 과학 실험에서도 지금 안되는 것 3년 후 30년 후 안되는 것 알고 있을 때가 있다. --> underlying axioms
- 언어모델에서도 이러한 axioms? = the most capable model now.
- GPT4가 나왔을 때 이게 가장 capable model 이라 이 모델 위로 다양한 여러 실험들 발전, 하지만 더 진보된 모델이 나오면 다 outdated 되어버림
- 따라서 need for constant unlearning
- constantly unlearn the intuition based on such an invalidated idea.
- AI에서 아주 많은 경험의 필드 사람들보다 새로 진입한 사람들의 새로운 아이디어로 실험한 것이 생각보다 좋은 결과를 가져온 경우가 많다. 이는 이 전에 안될거야 라고 생각했던 많은 경험의 필드 사람들에 비해, 새로운 사람들이 일단 도전해보고 되는 경우가 있기에, 어느정도 unlearn concept 을 갖춰야 함.
Going ahead of the scaling curve
- 내가 지금은 insufficient intelligence 때문에 잘 생각이 안나거나 reasoning 이 불가해도, 일단 둬라. 새로운 모델이 나오거나 새로운 적용가능한 것이 나왔을 때 emergent idea로 다시 할 수 있으니 failure 라고 declare 하지 마라. not yet!
- Document experiments that failed because of insufficient "intelligence"
- Do not declare failure yet and make it easy to rerun in the future.
- As soon as the new model comes out, rerun them
- Learn what works and what does not.
- Update your intuition ion emergent abilities and scale.
How is the scaling actually done?
- All LLMs so far use Transformer architecture.
- a "functional" viewpoint on the Transformer
- 트랜스포머 내부는 sequence-to-sequence mapping 계산이고, 다 matmul multiplications 들로 구성된다.
- scaling 이 일어나는 때는 pretraining, 즉 inference가 아닌 training 과정 이니, 여기서는 학습 과정에 대해서 말함.
- input, output 은 d-model(width), batch, length 로 길이가 서로 같음.
- 처음에 문장이 들어간 후 Tokenization을 통해 토큰화되면서 단어마다 숫자로 바뀜. 길이는 단어의 길이인 length.
- 그 이후 word2vec과 같은 모델을 통해 워드임베딩으로 바뀌는 과정. 모델이 뱉어내는 벡터 사이즈에 따라 d_model, length 로 바뀜
- 이제 진짜 major computation 이 일어나는 단계 : N Transformer layers
- 여기도 사실 그냥 단지 sequence-to-sequence mapping 일뿐.
- 하지만, 여기서는 everything is about "scale".
- scaling needs to have as little assumptions as possible.
- each sequence token wants to interact with other tokens. 근데 이 때 우리의 생각 넣지 않고, 그냥 모델이 알아서 하게 냅둠. 토큰들이 알아서 잘 interact 하도록.
- 트랜스포머에서는 let them able to do the dot product. 자기들 토큰들끼리 서로 dot product 하게 냅두는 것이 전부. 이제 그러면서 모델이 어떤 토큰을 dot product 하면 좋은지 학습..
- Loss function : 그냥 maximum likelihood on next token predictions.
- 그냥 뒤에 어떤 token이 나올지 맞추는 문제로 maximum likelihood의 loss function이고, 이를 거치면 single number 가 나오고 이를 통해 backpropagation 하며 학습.
- 실제로는 이런식으로 batch 로 진행됨. 나중에는 batch들끼리 평균내서 구하는 것. 똑같음.
Reference
- Large Language Models (in 2023) - Hyung Won Chung (OpenAI)