Andrej Karpathy 유투브
Andrej Karpathy는 정말 뛰어난 AI 연구자이면서 교육자이죠. (OpenAI, Tesla 등) Andrej가 약 2주 전 (2/11)에 업로드한 Deep Dive into LLMs like ChatGPT 영상 https://www.youtube.com/watch?v=7xTGNNLPyMI 을 보면서 Lecture Note를 작성했습니다.
지난 Tokenizer 강의나 GPT-2 Reproduce 강의처럼 코드가 나올 것 같아서 .ipynb 노트북으로 정리하고 있었는데, 막상 코드는 하나도 나오지 않았네요. ^^; 그래도 부끄럽지만 혹시 강의 처음 보시는 분들께는 도움이 될 수 있다고 생각하며, 정리한 김에 github 링크 공유합니다.
=== 그럼에도 불구하고 렉처 노트를 다시한번 요약하자면 ===
. AI 모델 학습단계는 크게 세단계로 나눠집니다.
STEP 1. Pre-training
: 인터넷에 존재하는 모든 텍스트 데이터 (e.g. FineWeb 데이터 기준으로 약 15조개의 토큰)에 대해 다음 단어 예측이라는 학습 과정을 거침으로써 LLM이 세상에 존재하는 지식을 자연스럽게 습득하게 만듭니다.
(엄청나게 긴 학습 시간(예를 들면 3개월)을 거쳐서) >> Base Model 을 얻게 됨.
이 Base Model은 그자체로도 흥미롭지만, 다음 단어 예측 기계이기 때문에, 우리가 질문을 하면 답변을 하지 않고, 그 질문 다음에 나올만한 질문을 계속 이어나가게 됩니다.
Llama 3.1 405B Base Model에게 "Why is the sky Blue?"라고 질문을 하더라도, 그 질문에 대한 답을 내놓는 대신 "What makes a cloud? How is a hurricane born?..." 처럼 질문을 이어나가는 모습을 확인할 수 있습니다.
STEP 2. Post-training (Supervised FineTuning, SFT)
: 따라서, Base Model을 유용한 Assistan우리가 원하는 "이상적인 답변"을 얻기 위을 수 있는 Assistant 형태로 바꾸기 위해 Post-training (SFT) 과정을 거쳐야 합니다. 이상적인 답변이라 함은,
. Q&A가 가능해지고,
. Personality를 입히고,
. 부적절한 요청에 대해서는 거절_refusal을 할 수 있어야 하고
(Anthropic CEO Dario Amodei의 표현에 따르면, Constitutional AI라고 볼 수 있음. CBRN (Chemical, Biological, Radioactive, Nuclear)와 같은 위험한 질의에 대해서 구글링 이상의 intelligence를 제공하면 안됨)
. Hallucination을 완화하는 등이 되겠습니다.
단, LLM 신경망은 명시적인 rule 기반의 프로그래밍이 아니고, 우리가 원하는 이상적인 답변이 들어있는 예시 데이터를 통해서 신경망 파라미터를 학습하는 방식을 취해야 합니다. 따라서, 이를 위해 OpenAI의 경우,
(1) 수백장 분량의 "Labeling Instruction_라벨링 지침서"를 작성하고, (e.g. helpful, truthful, and harmless한 양식으로 대답할 것 등)
(2) ScaleAI와 같은 회사로부터 전문 Human labeler를 고용해서, 위 지침에 따라서 Instruction Dataset을 작성하게 만듭니다. (*단, 최근 LLM의 발전으로 인해, 이제는 사람이 이런 작업을 모두 진행하지는 않고, LLM이 만들어낸 수백만의 Synthetic Data_합성데이터를 활용하는 방향으로 변경되고 있습니다. 그러나 여전히 큐레이션 등 사람의 개입은 어느정도 필요한 단계임에는 변화가 없습니다.)
(3) 이와 같이 작성된 수십만 데이터셋으로, Step 1.의 결과물인 Base Model에 동일한 아키텍처/알고리즘을 적용함으로써 Q&A가 가능한 Assistant를 얻게 됩니다.
(데이터양이 수십만~수백만 밖에 되지 않기 때문에, 예를 들어 약 3시간 정도의 짧은 학습 시간을 거치고 나면) >> SFT Model을 얻어냅니다. (-instruct)
STEP 3. 강화학습 Post-Training (Reinforcement Learning, RL)
: 이제 마지막 단계입니다. 아래와 같은 어떠한 계산 문제가 있다고 했을 때, LLM으로 하여금 $3이라는 정답에 이르게 할 수 있는 중간 계산 과정으로 가장 적절한 것은 무엇일까요? 문제는, 우리와 LLM은 인지 체계가 다르기 때문에, LLM이 어떤 풀이 과정을 거쳐야 답변을 얻어내는데 가장 좋다는 것을 우리는 모른다는 점입니다.
따라서, 여기에 RL_강화학습을 도입하는 아이디어가 나옵니다. 질문_prompt과 정답_answer만을 쥐어주고, 중간 풀이 과정_solution을 LLM이 스스로 시도하게 합니다. 그리고 나서, 그 풀이 과정_solution 중 정답을 맞추면서 그리고, (예를 들면) 가장 짧은 효율적인 풀이 과정_solution을 다른 LLM judge가 찾아내게 하면, 질문_prompt에 대한 가장 좋은 풀이 과정_solution이라는 학습 데이터셋을 (사람의 개입 없이!) 얻어낼 수 있게 됩니다.
이미 업계에서 상당히 표준화가 진척된 Step 1. Pre-training과 Step 2. SFT 과정과 달리,
이 세번째 단계 RL 과정은 굉장히 초창기이고, 대부분의 회사에서 내부적으로만 진행해왔었는데요,
지난 1월에 DeepSeek-r1이 화제가 된 이유가, 이 Step 3. RL과정에 대해서 매우 상세히 밝히고 MIT License 오픈웨이트로 공개했다는 점입니다.
DeepSeek-r1에 따르면, (1) RL 학습을 통한 수천번의 신경망 업데이트(x축)를 진행함에 따라, 모델의 정확도(y축)가 높아진다는 것을 공개하였으며,
또한 놀라운 점은, (2) 같은 x축에 대해,
응답에서 사용되는 평균 토큰 길이 (solution의 길이, y축) 또한 길어진다는 점입니다.
즉, 위 두가지를 합치면, RL 학습을 진행함에 따라, "중간 풀이 과정_solution"이 길어짐으로써, 정확도_accuracy가 높아질 수 있었다는 것인데요,
이 내용을 아래 이미지에서 살펴보면,
(3) 스스로 "Let's reevaluate this step-by-step"이라면서 문제를 reevaluate, reframe, rethink하는, (우리로 치면 검산 과정을 거치는) 방법을 RL강화학습 과정에서 emergent 역량의 발현의 놀라운 사례를 보여줬습니다. (이런 검산 과정을 위해서 답변의 길이가 길어졌고, 결과적으로 정확도가 높아짐)
>> 이런 과정을 거쳐 RL model이 얻어지게 됩니다. (DeepSeek-r1, OpenAI o1/o3)
===
이와 같이 크게 3단계에 걸친 LLM을 만드는 방법에 대해서 Andrej Karpathy가 상술하는 3:30 길이의 영상에 대한 제 Lecture Note에 대한 다시 요약글이었습니다. ^^;
Andrej Karpathy 영상을 보실 때에 제 Lecture Note가 도움이 되기를 바라며, https://github.com/beingcognitive/--Lecture-Note---Andrej-Karpathy-_Deep-Dive-into-LLMs-like-ChatGPT-_FEB-2025 글 마칩니다. ^^