Andrej Karpathy의 "ChatGPT와 같은 LLM에 대한 심층 분석"
요약
Andrej Karpathy의 영상을 통해 LLM의 아키텍처와 작동 원리를 심층 분석합니다. 베이스 모델과 채팅 모델의 차이, 사후 학습(Post-training)의 중요성, 그리고 GPU를 활용한 학습 메커니즘을 다룹니다.
핵심 포인트
- 베이스 모델은 확률적 텍스트 생성기이며 자동 완성 엔진과 유사함
- 사후 학습을 통해 모델이 인간과 대화하는 방식을 학습함
- 모델 학습 시 손실(Loss) 수치가 낮을수록 예측 능력이 향상됨
- 병렬 연산에 특화된 GPU가 LLM 훈련의 핵심 인프라임
저는 LLM의 근본적인 아키텍처 (architecture)와 기능에 대해 더 깊이 파고들어 배우고 싶었습니다. 그러던 중 Andrej Karpathy의 YouTube 영상인 "ChatGPT와 같은 LLM에 대한 심층 분석 (Deep Dive into LLMs like ChatGPT)"을 발견했는데, 매우 유익할 뿐만 아니라 스스로 계속 학습할 수 있는 리소스들로 가득 차 있었습니다.
소프트웨어 엔지니어로서, 저는 코드를 작성하고, 아키텍처 다이어그램 (architecture diagrams)을 생성하며, 문제를 조사하고, Jira 티켓을 완료하고, 단위 테스트 (unit test)를 수행하는 등 기본적으로 제 엔지니어링 역할의 모든 기능에 Claude Code를 사용합니다. 저는 개념을 더 깊이 파고들고, 주제를 조사하며, 글쓰기를 개선하기 위해 ChatGPT를 사용합니다. 하지만 이 모델들은 어떻게 그렇게 똑똑해질 수 있는 걸까요? 예를 들어 코딩과 같은 특정 작업을 위해 어떻게 최적화될 수 있을까요? 새로운 모델이 출시되면 무엇이 개선되는 걸까요? 저는 LLM을 최대한 활용할 수 있도록 LLM의 내부 작동 원리에 대해 더 이해하고 싶었습니다.
이 영상에서 배운 몇 가지 사항은 다음과 같습니다:
-
베이스 모델 (base model)과 채팅 또는 지시 모델 (chat or instruct model)의 차이점입니다. 저는 근본적으로 베이스 모델이 텍스트의 확률적 생성기 (stochastic generators)라는 것을 배웠습니다. 모델은 자아에 대한 지식이 없으며 채팅 어시스턴트로서 기능하지 않습니다. 이는 기본적으로 모델이 학습한 인터넷 데이터셋으로부터 나온 자동 완성 엔진 (autocomplete engine)과 같습니다. 왜냐하면 인간과 상호작용하거나 ChatGPT와 같은 제품에서 우리가 기대하는 어시스턴트 같은 출력을 제공하도록 최적화되지 않았기 때문입니다.
-
이 모델들이 '채팅 가능하게' 되기 위해서는 사후 학습 (post-trained)이 필요합니다. 모델에 인간의 대화 예시를 입력하여 다양한 프롬프트 (prompts)에 어떻게 답할지(또는 답하지 않을지)를 시간이 지남에 따라 학습하게 합니다. 모델은 이미 인터넷과 기타 학습 데이터에 대한 지식을 가지고 있지만, 사후 학습은 기초적인 수준에서 LLM이 인간과 대화하고 유용한 방식으로 정보를 전달하는 법을 가르칩니다.
-
모델/신경망 (neural networks)을 학습시키기 위해 데이터 센터 (data centers)와 GPU가 왜 필요한지에 대한 기초적인 내용을 더 배웠습니다. 신경망은 한 번에 한 번의 패스 (pass)를 거치며 학습하고, 모델이 예측을 더 잘할 수 있도록 각 반복 (iteration)마다 모든 파라미터 (parameters)를 재계산합니다.
이 과정에서 손실(loss)은 주목해야 할 수치입니다. 이 숫자가 낮을수록 좋습니다. 모델이 훈련됨에 따라 손실은 감소해야 하며, 따라서 모델의 예측 능력도 향상됩니다. 모델은 확률적(stochastic) 토큰 예측기에서 시작하여 결국 시퀀스 내 다음 토큰을 잘 예측하는 좋은 예측기가 되며, 그 결과 글쓰기, 코딩, 연구 등 다양한 분야에 유용하게 사용될 수 있습니다.
-
왜 이 훈련에 GPU 대신 CPU를 사용해야 하나요? GPU는 병렬 컴퓨팅(parallel computations)을 매우 효율적으로 처리할 수 있으며, LLM 훈련에 필요한 유형의 수학적 계산에 특화된 기능을 제공합니다. 이것이 데이터 센터에서 수백 또는 수천 개의 GPU를 보유하고 AI 훈련 및 추론에 필요한 확장 가능한 컴퓨팅, 메모리, 네트워킹을 제공하는 이유입니다. 참고: TPU는 언급되지 않았지만, LLM 추론 및 훈련에 점점 더 많이 사용되고 있으며, 이는 텐서 연산(tensor operations)과 AI/ML 워크로드에 최적화되어 있습니다.
-
새로운 모델이 출시될 때 무엇이 공개되나요? 저희는 Anthropic, OpenAI, DeepSeek, xAI 등 회사에서 새 모델이 출시된다는 이야기를 자주 듣습니다. 하지만 실제로 이것에는 어떤 것들이 포함되는 걸까요? 기본 모델(base model)과 명령어/채팅 모델(instruct/chat model)의 차이로 돌아가 보면, 두 가지 모두 서로 다른 사용 사례를 위해 동시에 출시될 수 있습니다. Andrej는 또한 오픈 소스(open source)와 클로즈드 소스(closed source) 모델의 출시 간의 차이점도 설명합니다. 오픈 소스 모델의 경우, 신경망을 통과하는 '순전파(forward pass)'에 대한 소스 코드와 신경망의 파라미터(n억 개의 숫자 목록)가 포함되는 경우가 많습니다. 반면, 클로즈드 소스 모델은 기본이 되는 모델의 파라미터, 가중치 또는 아키텍처를 알지 못해도 상업용 제품(예: ChatGPT)을 사용할 수 있습니다. 일반적으로 API나 회사가 자체적으로 제공하는 사용자 인터페이스를 통해 모델에 접근하게 됩니다.
-
저는 모델들이 본질적으로 개수 세기나 철자법에 능하지 않다는 것을 배웠습니다.
유명한 프롬프트인 "strawberry라는 단어에 r이 몇 개 들어있나요?"에서 보여지듯, 모델들은 이 질문에 틀린 답을 내놓는 것으로 악명이 높습니다. 토큰화 (tokenization) 과정을 통해 "strawberry"와 같은 단어는 여러 개의 별도 토큰으로 분리될 수 있으며, 따라서 LLM은 "strawberry"를 하나의 단어로 취급하여 철자를 세는 데 어려움을 겪습니다. 이러한 문제는 모델에게 특정 문자나 시퀀스의 출현 횟수를 세도록 요청하는 긴 텍스트 덩어리에서도 나타나며, 정확하게 수행하는 데 어려움을 겪습니다. 이러한 단점 중 일부는 이러한 상황에 특화된 훈련을 통해 현대의 LLM에서 해결되었습니다.
- 모델들은 본질적으로 정확한 수학적 계산에 능숙하지 않습니다. 인간과 마찬가지로, LLM은 수학 문제의 정답을 기억에서 가져오는 것이 아닙니다. 하지만 문제를 해결하기 위해 보통 수학적 알고리즘을 적용하는 인간과 달리, LLM은 훈련 과정에서 학습된 패턴으로부터 다음 토큰을 예측함으로써 응답을 생성합니다. 모델들이 새로운 문제에 대해 일반화 (generalizing)하는 능력은 뛰어나지만, 해답을 계산하는 데 필요한 수많은 단계와 정밀한 절차에 대해서는 훈련되지 않았습니다. 다시 말하지만, 현대의 모델들은 수학적 개념과 추론에 대한 강화된 사전 및 사후 훈련 (pre and post training)을 통해 수학을 더 잘 처리합니다. 일반적으로 수학은 문제를 결정론적 (deterministically)으로 해결할 수 있는 코드와 같은 도구를 사용하여 처리하는 것이 더 효과적입니다.
전반적으로, 이 영상은 이러한 LLM이 내부적으로 어떻게 구축되고 작동하는지에 대한 기초적인 이해를 제공해 주었습니다. Karpathy의 교수법은 이를 이해하기 쉽고 소화하기 쉬운 형식으로 나누어 설명했습니다. 저는 이 영상을 꼭 보시기를 추천합니다. 읽어주셔서 감사합니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기