#nlp
- 1. argmax 분해와 Greedy자연어 생성에서 decoding이 정확히 뭘 하는 과정인지, 그리고 왜 문장 전체를 한 번에 구하지 않고 토큰을 하나씩 뽑아 나가는지 정리해봤다. decoding이 풀려는 문제 입력 문장 x가 주어졌을 때, 출력 문장 y가 나올 확률을 최대화하는 y를 찾는 것이 decoding의...
- 2. Beam Search와 그 한계필기에 내가 적어둔 메모 중에 2³개...? (X) 라는 게 있었다. beam search가 매 스텝 후보를 k개씩 펼치니까 스텝이 지날수록 k 2 , k 3 , … 으로 지수적으로 폭발하는 거 아닌가 싶었던 흔적이다. 결론부터 말하면 그렇지 않다. 그게 왜 그런지 따라가보면서 b...
- 3. Sampling 기반 디코딩 - Temperature, Top-k, Top-pbeam search까지 정리하고 나니, 확률을 최대화하는 방식만으로는 단조로운 문장밖에 못 만든다는 게 분명해졌다. 그래서 필기에 이런 질문을 적어뒀었다. Question 확률이 낮은 단어를 더 혹은 덜 뽑히게 할 수 있을까? 확률분포에 따라 단어를 random sampling하...
- Input Embedding과 Positional EncodingTransformer 입력을 정리하다가, 수식으로는 분명 행렬곱인데 PyTorch는 행렬곱을 안 한다는 부분에서 한 번 멈췄었다. 그런데도 학습이 된다는 게 처음엔 어 이게 왜 되지 싶었다. 그 부분과 positional encoding의 scaling factor를 같이 정리해봤...
- LoRA를 사용하는 이유LoRA의 메커니즘 자체는 머릿속에 잘 그려져 있었다. 큰 weight 행렬을 두 개의 작은 행렬로 쪼개 덧붙이는 것. 그런데 정작 LoRA가 왜 PEFT 중에서 가장 널리 쓰이는지, 그 결정적 장점은 정리해두지 못했었다. 그 부분까지 채워봤다. 메커니즘 - low-rank 분해...
- Casual LM을 사용하는 이유최근 LLM이 대부분 Decoder-Only 구조라는 게 처음엔 의아했다. 그런데 학습 효율 관점에서 보면 납득이 됐다. 문장 하나가 주어지면 매 토큰 위치마다 다음 토큰이라는 학습 신호가 생기므로, 사실상 문장 하나로 거의 모든 토큰에서 학습이 일어난다. 이 점을 정리하면서 두...
- Pretrained LM과 LLM둘 다 대량의 코퍼스로 사전학습한 언어모델인데, 왜 Pretrained LM과 LLM을 굳이 나눠 부르는지가 처음엔 잘 와닿지 않았다. 핵심은 모델 크기보다 하나의 모델로 몇 개의 태스크를 푸느냐에 있었다. Pretrained LM BERT, GPT-1/2 같은 모델이 여기에 속한...
- Pretrain Corpus 정제와 MemorizationLLM은 온라인에서 긁어모을 수 있는 최대한 많은 텍스트로 사전학습한다. 그런데 그 원시 데이터를 그대로 쓰지 않고 굳이 정제 작업을 거치는 이유가 무엇인지 정리해봤다. Corpus와 원시 데이터 코퍼스는 사전학습을 위한 대량의 텍스트 데이터 집합이다. 원시 데이터는 블로그, 뉴스...
- Static, Dynamic Embedding과 VectorDB, RAGWord2Vec 같은 Static Embedding의 한계와 문맥에 따라 변하는 Dynamic Embedding, 학습되지 않은 정보를 다루기 위한 VectorDB와 RAG에 대한 내용을 짧게 정리해보았다. Static Embedding의 한계 Word Embedding과 Word...
- Word, Character, Subword 토큰화와 BPE텍스트를 어떤 단위로 쪼갤지에 따라 Word / Character / Subword level 토큰화가 나뉜다. 각각의 장단점과, Subword 방법의 대표적인 BPE의 동작 원리를 정리해봤다. Word-level 토큰화 Token을 단어(Word) 단위로 구분하는 방식이다. 일반...
- Word Embedding과 Word2Vec단어를 벡터로 표현하는 두 방식(One-Hot Encoding과 Word Embedding)을 비교하고, Word Embedding을 만드는 대표적 방법인 Word2Vec의 원리와 forward 구현까지 정리한다. One-Hot Encoding과 Word Embedding One-...
- Tokenizer 이해하기Transformer에 문장을 넣기 전, 텍스트를 어떻게 숫자로 바꾸는지 tokenizer를 정리한다. 왜 필요한가 Transformer에 넣을 입력이 numeric 데이터가 아니라면 그대로 넣을 수 없다. 텍스트를 숫자로 바꾸는 과정이 필요한데, 그게 tokenizer가 하는 일...