<aside> 🔥
Agent의 뇌 부분을 담당하는 LLM 모델에 대해서 좀더 알아봅시다.
</aside>
LLM은 이미 아는 사람들도 많고 모든 것들은 이 장에 다 담을 수 없기 때문에 자세히 알고 싶으시다면 https://huggingface.co/learn/nlp-course/chapter1/1를 참고해주시길 바랍니다!
LLM은 사람의 언어를 이해하고 말할 수 있는 AI model의 한 종류입니다. Large가 붙은 만큼, 대규모의 텍스트 데이터를 학습하여 언어의 패턴, 구조, 심지어는 뉘앙스까지 학습한 모델입니다. 이러한 모델은 수억원의 파라미터(parameters)로 구성이 되어 있습니다.
대부분의 LLM은 Transformer architecture 구조를 따르고 있습니다. 특히, Transformer는 Attention 이라는 알고리즘을 기반으로 구성되어 있고, 2018년 구글에서 발표한 BERT 논문에서 특히 각광받았습니다.

Transformer Architecture (출처 : ‣)
Transformer은 크게 2가지 모듈로 나뉩니다.
두가지 모듈을 어떻게 사용하느냐에 따라 3가지로 나뉠 수 있습니다.
<aside> ⚠️
주의할 점은 각 task가 명확히 나뉘어져 있는 것이 아닙니다. 예를 들어, encoder-decoder 모델이 Translation을 한다고 해서 only-decoder 모델이 Translation을 못하는 것이 아닙니다(오히려 decoder 모델인 LLM이 훨씬 잘합니다).
</aside>
LLM은 only-decoder 모델을 base로 하고 있습니다. only-decoder 모델에 대규모의 텍스트 데이터를 학습시킨 것이 LLM입니다.
대표적인 LLM 모델은 다음과 같습니다.
| Model | Provider |
|---|---|
| Deepseek-R1 | DeepSeek |
| GPT4 | OpenAI |
| Llama 3 | Meta (Facebook AI Research) |
| Gemma | |
| Mistral | Mistral |
LLM은 only-decoder 모델에 대규모 텍스트 데이터를 학습한 모델이라고 위에서 언급했습니다.
only-decoder 모델은 입력을 임베딩 혹은 텍스트로 받고 텍스트를 출력한다고 했는데요. 이때, LLM은 입력을 텍스트로 받고 텍스트를 출력합니다. only-decoder 모델에서 text를 출력하는 것을 **생성(generate)**한다고 표현합니다.
이제 LLM이 구체적으로 어떻게 생성하는지에 대해서 자세히 알아봅니다.
LLM은 문장의 시작과 끝을 인식하기 위해서 **특수 토큰(special token)**을 사용합니다. 여기서 토큰은 단어보다 더 작은 단위이긴 하지만 이해를 돕기 위해 단어라고 해봅니다!
LLM 입력으로 SOS Token을 넣으면 LLM이 문장의 시작이라는 의미를 이해합니다. 또한, EOS Token을 입력으로 넣으면 문장의 끝이라는 의미를 이해합니다.
반대로, SOS Token을 생성하면 LLM이 문장의 앞단에 나올만한 토큰들을 생성하기 시작합니다. 또한, EOS Token을 생성하기 직전까지는 문장의 끝단에 나올만한 토큰들을 생성하다가 EOS Token을 생성하면 생성을 멈추게 됩니다.
대표적인 모델들의 EOS Token은 다음과 같습니다.
| Model | Provider | EOS Token | Functionality |
|---|---|---|---|
| GPT4 | OpenAI | `< | endoftext |
| Llama 3.3 | Meta (Facebook AI Research) | `< | eot_of_text |
| Deepseek-R1 | DeepSeek | `< | end_of_sentence |
| Gemma | <end_of_turn> |
End of conversation turn |
이러한 EOS Token은 문장의 끝을 알리기 때문에 매우 중요합니다! 안그러면 모델은 문장의 끝을 모르고 계속 토큰을 생성하기 때문에 에러가 발생할 수 있습니다! 그리고 같은 회사에서 나온 모델도 각 토큰의 이름이 달라질 수 있습니다!
decoder 모델은 자기회귀적 (autoregressive)인 모델입니다. 자기회귀라는 말은 이전에 출력했던 결과물을 다시 입력으로 사용하는 방식을 의미합니다.

Autoregressive (출처 : ‣)
위와 같은 무한 반복을 자기회귀라고 하고, 이 자기회귀는 무한정 지속됩니다. 결국엔 이 무한 반복을 끊어줄 무엇인가가 필요한데, 끊어야할 타이밍을 알려주는 것이 [2.1. LLM의 special token](https://www.notion.so/2-1-LLM-special-token-1ba1806f5bc180a09da6ca1bb584e4ef)에서 말했던 EOS Token입니다.
문장을 생성하는 방식은 2.2. Next Token Prediction(NTP)에서 말했던 것처럼 자기회귀적(Autoregressive) 방식으로 생성합니다.
그렇다면 하나의 토큰을 생성하는 방식은 어떤 방식으로 생성할까요? 자기회귀를 통해 여러 토큰들을 생성하는 것은 이해했는데 하나의 토큰을 생성하는 방식에 대해서는 아직 명확하지 않은거 같습니다.
하나의 토큰을 생성하는 방식은 확률적인 방식을 통해 생성합니다. LLM은 사실 바로 text을 생성하는 것이 아닌 어떤 logit값을 생성합니다. 그 logit 값을 이용해 확률값으로 변환한 후, 가장 높은 확률의 token을 채택하는 방식으로 진행됩니다.

token prediction (출처 : ‣)
예를 들어, Paris is the city 라는 문장을 LLM에 넣는다고 해봅시다. 자기회귀적 방식이기 때문에 Paris is the city 다음에 올 토큰을 생성해야 합니다.
어떤 토큰을 생성할지 LLM은 고민합니다. vocab이라고 하는 단어집 내에서 logit 값들을 얻습니다. vocab은 수십만의 단어로 구성됩니다.
이러한 Logit값을 softmax라고 하는 함수를 이용해 확률값으로 변환합니다.