서론
ChatGPT, Claude, DeekSeek 과 같은 LLM 에 대한 대중적인 관심이 높아지면서 일상적으로 LLM을 쓰는 사람도 예전보다 훨씬 늘어났고 그에 따라 어떻게 활용하면 좋을지에 대한 고민도 많아진 것 같습니다. 개인적으로는 LLM이 기본적으로 어떤 방식으로 구축되는지에 대한 이해가 있어야 LLM의 기본적인 매커니즘과 그 한계를 알고 LLM을 더 나은 방식으로 보다 더 적합한 분야에 적용할 수 있을 것이라고 생각합니다. 여기서는 LLM을 구축할때 거치는 단계에 대해 간략하게 정리해보았습니다.
1. Pretraining Stage
- 기본적으로 원천이 되는 엄청큰 데이터가 필요함.
- 데이터 수집, 전처리, 토큰화 등의 과정을 거침.
1.1 데이터 수집 및 전처리
The FineWeb Pipeline
https://huggingface.co/datasets/HuggingFaceFW/fineweb
1.1 URL Filtering
- 학습이 대상이 되면 안되는 웹사이트들이 있음(너무 폭력적이거나 불법적인 내용을 포함하는 사이트)
1.2 Text Extraction
- 기본적으로 웹의 거의 모든 컨텐츠는 HTML 형식으로 되어 있음.
- HTML 태그를 제거하고 텍스트만 추출하는 과정이 필요함.
1.3 Language filtering
- 데이터 셋의 양은 학습 비용과 시간에 영향을 미침.
- 특정 언어의 데이터를 제거하거나 필터링하는 과정이 필요함.
- ex) 영어의 비율이 40% 이상인 사이트만 수집
1.4 PII Masking
- 개인정보 마스킹
1.2 Tokenization
문자열을 토큰으로 분리하는 과정. 토큰은 단순히 숫자로된 인덱스 값임. BPE, WordPiece, SentencePiece 등의 알고리즘이 사용됨.
여기까지 거치면 모델의 입력으로 사용할 토큰이 준비됨.
2. Training Stage
기계학습에서의 학습은 기본적으로 가중치 조정을 통해 모델을 최적화하는 과정을 의미함.
2.1 Model Architecture
Transformer 아키텍처가 기본이 됨.
- Multi-head Self Attention
- Feed Forward Neural Networks
- Layer Normalization
- Residual Connections
2.2 Embedding and Weight
LLM에서 모델은 기본적으로 확률 모델임.

모델 학습과정에서의 입력값은 토큰이며, 이 토큰은 임베딩 레이어를 통과해 벡터로 변환됨.
1. 토큰 입력
2. 임베딩 변환 단계:
이 토큰들이 모델의 임베딩 레이어를 통과하면서 벡터로 변환됩니다.
ex) 768차원의 임베딩을 사용할 경우 768차원의 벡터로 변환됨.
3. Transformer 레이어 처리:
-
이렇게 변환된 임베딩 벡터들이 Transformer 레이어들을 통과하면서 반복적으로 새로운 임베딩으로 업데이트됨
-
각 레이어는 입력 임베딩을 받아서 새로운 임베딩을 출력

4. 최종 출력:
- 마지막 레이어에서 임베딩 형태의 출력이 나옴.
- 언어 모델링의 경우: 최종 임베딩은 다시 선형 레이어를 통과해 vocabulary 크기의 로짓(logit)으로 변환되어 다음 토큰을 예측
- 임베딩 추출의 경우: 중간단계나 최종단계의 임베딩을 추출하여 다른 모델에 입력으로 사용
Concept
- Token : 텍스트를 모델이 처리할 수 있는 기본 단위로 나눈 것. 사전의 색인처럼 각 단어나 단어의 일부를 고유한 숫자로 매핑한것. 토큰화 방식에는 단어 단위(Word), 문자 단위(Character), 단어와 문자의 중간형태인 서브워드(Subword) 단위가 있음
- Embedding : 토큰을 다차원 벡터 공간에 표현한 것. 각 토큰에 대한 좌표값처럼 작동하며, 의미가 비슷한 단어들은 벡터 공간에서 서로 가까운 위치에 있게 됨. 임베딩은 학습 과정에서 계속 업데이트되며, 최종적으로는 각 토큰에 대한 최적의 벡터 표현을 찾게 됨. 기본적으로 임베딩은 데이터 분포를 압축한 표현으로 볼 수 있음. 따라서 학습데이터의 품질과 성격이 임베딩의 품질에 큰 영향을 미침
- Weight : 신경망이 입력을 처리하는 과정에서 사용하는 학습 가능한 파라미터. 여러 곳에 존재하며, 데이터를 가장 잘 표현할 수 있는 값으로 조정됨
정리
- 원시데이터를 필터링 및 가공해서 토큰화.
- 모델의 입력은 기본적으로 토큰(숫자)임. 정확히는 context window 라고 불리는 토큰들의 시퀀스임
- 이 토큰은 모델 내부에서 임베딩 레이어를 통과해 벡터(임베딩)로 변환됨
- 이 벡터는 Transformer 레이어를 통과하면서 업데이트됨
- 최종 출력은 임베딩과 학습된 가중치
- 태스크에 따라 임베딩을 그대로 사용하거나, 추가 변환을 거쳐 확률이나 다른 형태로 출력될 수 있음
이 시점에서 모델은 텍스트의 의미를 벡터 공간에서 표현하고 처리할 수 있게끔 준비됨.
2.3 Baseline Model
Baseline Model은 처음 학습을 시작할 때 기준이 되는 모델을 의미. 보통 더 작은 규모의 검증된 모델 아키텍처를 시작점으로 사용
3. Post Training Stage
학습된 모델을 목적에 맞게 최적화 수행 크게 Fine-tuning, Reinforcement Learning, Model Compression 등의 방법이 있음.
- Knowledge Distillation: 큰 모델의 지식을 작은 모델로 전달
- Quantization: 모델 가중치의 정밀도를 낮춰 모델 크기 축소. 모델 경량화
- Pruning: 중요도가 낮은 파라미터를 제거
Fine-tuning
특정 태스크나 도메인에 맞게 모델을 조정하는 과정
- Prompt Tuning: 프롬프트 자체를 학습 가능한 파라미터로 설정
- LoRA(Low-Rank Adaptation): 적은 파라미터로 효율적인 미세조정
- P-tuning: 연속적인 프롬프트 임베딩을 학습
Reinforcement Learning
보상 시스템을 통해 모델을 학습하는 방식
- RLHF(Reinforcement Learning from Human Feedback): 인간의 피드백을 보상으로 활용하는 학습 방식
- Prompt-based RL: 프롬프트를 통해 보상을 제어하는 방식
- Policy Network: 주어진 상태에서 행동을 결정하는 네트워크
4. Inference Stage
추론의 단계해서 생각해볼만한 컨셉들
4.1 Prompt Engineering
4.2 Vector DB
- 임베딩 벡터를 저장하는 데이터베이스
- KNN, ANN 등의 알고리즘을 사용해 유사한 벡터를 검색