https://www.facebook.com/rev.minho 님의 글입니다.
안드레이 카파시가 입문용 LLM 소개 영상을 올린지 1년이 넘어서 새로운 영상을 올렸습니다. 1년 전 영상이 무려 250만회 이상의 조회수를 기록하며 많은 이들에게 큰 도움을 주었던 만큼 이번 영상도 기대를 갖고 정리해보았습니다. 비 전문가도 이해하기 쉽게 구성이 되어 있다고 말합니다.
============================================
대형 언어 모델(LLM)의 심층 분석: ChatGPT의 작동 방식 이해하기
============================================
대형 언어 모델(LLM), 그중에서도 대표적인 ChatGPT는 우리 일상생활에 깊숙이 침투하여 다양한 방식으로 활용되고 있습니다. 이 강력한 도구의 내부 작동 방식과 학습 과정에 대한 심층적인 이해는, 단순한 사용자에서 벗어나 LLM 기술을 제대로 활용하는 데 필수적입니다.
1️⃣ 사전 훈련 (Pre-training)
LLM 구축의 첫 번째 단계는 사전 훈련입니다. 이 단계의 핵심은 인터넷에서 대량의 텍스트 데이터를 다운로드하고 처리하는 것입니다.
- 데이터 수집: Hugging Face의 FindWeb 데이터 세트와 같이 고품질의 다양한 문서를 대량으로 수집합니다. 주요 LLM 공급자들은 내부적으로 유사한 데이터 세트를 보유하고 있습니다.
- 데이터 필터링: Common Crawl과 같은 소스에서 얻은 원시 데이터를 URL 필터링, 텍스트 추출, 언어 필터링 등의 여러 단계를 거쳐 정제합니다.
- URL 필터링: 악성 웹사이트, 스팸 웹사이트, 마케팅 웹사이트, 인종차별 웹사이트, 성인 사이트 등 원치 않는 도메인을 차단합니다.
- 텍스트 추출: 웹페이지의 원시 HTML에서 마크업, CSS 및 기타 불필요한 데이터를 제거하고, 페이지의 핵심 텍스트 콘텐츠만 추출합니다.
- 언어 필터링: 특정 언어의 텍스트 데이터만 남기고 다른 언어의 데이터를 제거합니다.
- 토큰화(Tokenization): 수집된 텍스트는 신경망이 처리할 수 있도록 토큰이라는 숫자로 표현됩니다.
- UTF-8 인코딩을 통해 텍스트를 컴퓨터가 이해할 수 있는 이진수 형태로 변환합니다.
- 이진수는 0과 1의 두 가지 심볼로 이루어져 매우 긴 시퀀스를 갖습니다.
- 바이트 페어 인코딩(BPE) 알고리즘은 빈번하게 나타나는 바이트 시퀀스를 병합하여 새로운 토큰을 생성하고, 토큰 시퀀스의 길이를 줄이면서 어휘 크기를 증가시키는 방식으로 작동합니다.
- 토큰화의 예시로, "hello world"는 두 개의 토큰으로 분리되고, 띄어쓰기나 대소문자에 따라 토큰화 결과가 달라질 수 있습니다. 이렇게 토큰화된 데이터는 신경망 훈련의 입력으로 사용됩니다 .
- 예를 들어, FindWeb 데이터 세트는 약 44테라바이트의 디스크 공간과 15조 개의 토큰 시퀀스를 포함합니다.
신경망 훈련 (Neural Network Training)
사전 훈련된 데이터는 이제 신경망을 훈련하는 데 사용됩니다 . 이 단계에서 모델은 토큰 시퀀스 내에서 토큰이 서로 어떻게 따르는지에 대한 통계적 관계를 학습합니다 .
- 맥락 창(Context Window): 모델은 토큰 시퀀스에서 무작위로 선택된 토큰 창을 사용하여 훈련합니다 . 창의 크기는 0에서 최대 크기(예: 8,000 토큰)까지 다양합니다 . 실제로는 긴 시퀀스를 처리하는 데 비용이 많이 들기 때문에 최대 창 크기를 결정합니다 .
- 다음 토큰 예측: 신경망은 맥락 창(입력)에 주어진 토큰 다음에 올 가능성이 높은 토큰을 예측하도록 훈련됩니다 . 모델은 어휘에 있는 모든 토큰에 대해 확률 벡터를 출력하고, 가장 가능성이 높은 토큰을 예측합니다 .
- 파라미터 조정:
- 예측된 토큰이 실제 다음 토큰과 일치하도록 신경망의 파라미터(가중치)를 조정합니다 . 이 과정은 모델의 예측 정확도가 향상될 때까지 반복됩니다 .
- 신경망은 수십억 개의 파라미터를 가질 수 있으며, 이러한 파라미터는 초기에는 완전히 무작위로 설정됩니다 . 훈련 과정은 이러한 파라미터를 조정하여 모델이 학습 데이터에서 관찰된 패턴과 일치하는 출력을 생성하도록 합니다 .
- 트랜스포머: 트랜스포머는 현대 LLM에서 사용되는 신경망 구조이며, 약 85,000개 이상의 파라미터를 포함합니다 .
- 트랜스포머는 입력 토큰을 임베딩하여 분산 표현을 만들고, 여러 층을 거쳐 출력(다음 토큰 예측)을 생성합니다 .
- 트랜스포머는 복잡한 수학적 표현을 사용하지만, 개별적으로는 단순한 연산으로 구성됩니다 . 이러한 신경망은 입력에서 출력으로의 고정된 수학적 표현을 가지며, 메모리가 없는 상태 저장소입니다 .
추론 (Inference)
훈련이 완료되면 모델을 사용하여 새로운 데이터를 생성할 수 있습니다 . 이 과정을 추론이라고 합니다.
- 토큰 생성: 모델은 주어진 토큰 시퀀스를 입력으로 받아 다음 토큰을 예측합니다 .
- 모델은 다음 토큰에 대한 확률 분포를 출력하고, 이 분포에 따라 다음 토큰을 샘플링합니다 .
- 높은 확률을 가진 토큰이 샘플링될 가능성이 높습니다 .
- 모델은 확률적이므로 동일한 입력에 대해 매번 다른 출력을 생성할 수 있습니다 .
- 모델이 생성하는 토큰 스트림은 훈련 데이터에 있는 토큰 스트림과 유사한 통계적 특성을 갖지만, 훈련 데이터와 완전히 동일하지는 않습니다 .
- 베이스 모델 (Base Model): 사전 훈련의 출력으로 생성되는 모델로, 인터넷 텍스트의 토큰 시뮬레이터 역할을 합니다.
- 베이스 모델은 질문에 대한 답변을 제공하는 데 직접적으로 사용될 수 없으며, 인터넷 문서의 토큰 시퀀스를 모방합니다 .
- 베이스 모델은 1000억개에서 15조 개의 토큰으로 훈련합니다 .
- OpenAI의 GPT-2는 1000억 개의 토큰으로 훈련된 15억 개 파라미터 모델이고, Meta의 Llama 3은 15조 개의 토큰으로 훈련된 4050억 개 파라미터 모델입니다 .
베이스 모델 탐색 및 활용
- Hyperbolic 웹사이트와 같은 플랫폼에서 Llama 3 베이스 모델을 탐색할 수 있습니다 .
- 베이스 모델의 한계: 베이스 모델은 아직 어시스턴트 모델이 아니므로, "2+2는 무엇인가?"와 같은 질문에 직접적인 답변을 제공하지 못합니다 . 대신, 베이스 모델은 주어진 토큰 시퀀스를 기반으로 다음에 올 가능성이 높은 토큰을 생성합니다 .
- 메모리 기능: 베이스 모델은 훈련 데이터에서 본 내용을 기억하고, 위키피디아 항목처럼 훈련 데이터에서 본 텍스트를 그대로 "암기"하고 복제할 수 있습니다 . 이것을 역류 현상 (regurgitation)이라고 합니다 .
- 지식 컷오프: 베이스 모델의 훈련 데이터에는 지식 컷오프가 있으며, 훈련 데이터 이후에 발생한 사건에 대한 정보를 가지고 있지 않습니다 .
- 환각(Hallucination): 모델은 훈련 데이터에서 본 적이 없는 사건에 대해 "환각"을 생성할 수 있으며, 훈련된 지식을 바탕으로 그럴듯한 추측을 합니다 .
- 프롬프트 디자인: 베이스 모델은 프롬프트 디자인을 통해 실용적인 애플리케이션에 활용할 수 있습니다 .
- 퓨샷 프롬프트 (Few-Shot Prompt): 몇 가지 예시를 제공하여 모델이 주어진 작업에 대한 패턴을 학습하도록 유도할 수 있습니다 . 예를 들어, 영어-한국어 번역 페어 목록을 사용하여 모델이 추가 번역을 수행하도록 할 수 있습니다 .
- 대화형 어시스턴트 베이스 모델을 사용하여 어시스턴트 모델을 구축할 수 있습니다 .
- 모델을 어시스턴트로 만들기 위해 대화 형식으로 프롬프트를 디자인할 수 있습니다. 이는 인간과 AI 어시스턴트 간의 대화처럼 보이는 프롬프트를 제공합니다 . 이러한 프롬프트를 통해 모델은 대화형 응답을 생성할 수 있습니다 .
2️⃣ 지도 학습(Supervised Finetuning)
지도 학습은 LLM이 인간의 대화 패턴과 이상적인 응답을 학습하는 중요한 단계입니다. 이 단계에서는 후처리 데이터, 즉 사람이 작성한 대화 데이터를 활용하여 모델을 훈련합니다. 데이터 라벨러들은 특정 대화 상황에서 이상적인 어시스턴트의 응답을 작성하며, 모델은 이러한 예시들을 모방하여 학습합니다. 이 과정에서 모델은 도움이 되고, 진실되며, 무해한 답변을 생성하도록 훈련됩니다.
"LLM 심리학": 모델의 인지적 특성 이해하기
LLM을 훈련하면서 우리는 모델의 특이한 인지적 특성, 소위 "LLM 심리학"을 발견하게 됩니다.
- 환각(Hallucination): LLM은 때때로 사실이 아닌 정보를 마치 사실인 것처럼 만들어내는 경향이 있습니다. 이러한 환각은 모델이 학습 데이터에서 본 패턴을 모방하는 과정에서 발생하며, 특히 모델이 모르는 정보에 대해 확신에 찬 답변을 하려고 할 때 두드러집니다.
- 도구 (Tool) 사용: 환각 문제를 해결하기 위해 LLM은 웹 검색과 같은 도구를 활용할 수 있습니다. 모델은 특정 토큰을 생성하여 도구를 호출하고 검색 결과를 활용하여 답변을 생성합니다. 이러한 도구 사용은 모델의 지식 범위를 확장하고, 답변의 정확도를 향상시키는 데 기여합니다.
- 지식/작업 기억: LLM은 자체 파라미터에 저장된 지식 외에도 문맥 창(context window) 내의 정보에 의존합니다. 즉, 모델은 오래전에 학습한 정보를 희미하게 기억할 뿐만 아니라, 현재 입력된 정보를 활용하여 답변을 생성합니다. 따라서 모델의 지식은 일종의 희미한 기억과 같으며 , 필요에 따라 도구를 사용하여 작업 기억을 새로 고칠 수 있습니다 .
자기 인식(Knowledge of Self): 모델은 자신을 어떻게 인식할까?
LLM은 자기 인식에 대한 특별한 학습 과정을 거칩니다. 모델은 스스로를 "나는 누구인가?"와 같은 질문에 답하도록 훈련받는데, 이때 훈련 데이터의 영향을 크게 받습니다.
- 모델의 정체성: 모델은 대화 데이터에서 자신을 묘사하는 특정 구문들을 학습합니다. 예를 들어, 모델은 "나는 어시스턴트 모델이다"와 같은 문구를 기억하고, 질문에 대해 해당 문구를 반복할 수 있습니다. 또한, 개발자는 모델의 시스템 메시지를 통해 모델의 정체성을 미리 정의할 수도 있습니다.
- 인위적인 정체성: LLM의 자기 인식은 인간과 같은 깊이 있는 이해를 바탕으로 하지 않습니다. 모델은 자신에 대한 답변을 통계적 패턴에 따라 생성할 뿐이며, 진정한 자아나 영속적인 자아를 가지고 있지 않습니다.
모델은 사고에 토큰이 필요하다(Models Need Tokens to Think): 계산 능력의 한계
LLM은 토큰을 기반으로 작동하며, 하나의 토큰을 처리하는 데 제한된 계산 능력을 사용합니다. 따라서 모델은 복잡한 계산을 여러 개의 토큰에 분산시켜 처리해야 합니다.
- 계산의 분산: 모델은 중간 결과를 여러 개의 토큰에 표현하여 단계별 계산을 수행합니다. 모델이 복잡한 계산을 한 번의 토큰으로 처리하려고 하면 오류가 발생하기 쉽습니다.
- 도구의 활용: 모델이 정확한 계산을 해야 할 경우, 코드 인터프리터와 같은 도구를 활용하는 것이 더 효과적입니다. 모델은 도구를 사용하여 복잡한 연산을 수행하고, 그 결과를 기반으로 답변을 생성합니다.
철자 문제: 토크나이제이션 재검토(Tokenization Revisited: Spelling Issues)
LLM은 문자가 아닌 토큰을 기반으로 작동하기 때문에 철자 관련 문제에 취약합니다.
- 토큰 단위 처리: 모델은 문자 단위로 단어를 인식하지 못하고 토큰 단위로 단어를 인식합니다. 따라서 단어의 철자를 변경하거나 특정 문자를 추출하는 것과 같은 작업에 어려움을 겪을 수 있습니다.
- 도구의 활용: 철자 관련 문제를 해결하기 위해 모델은 코드 인터프리터와 같은 도구를 사용할 수 있습니다. 도구를 통해 모델은 문자열을 조작하고, 정확한 결과를 얻을 수 있습니다.
들쭉날쭉한 지능(Jagged Intelligence): 예측 불가능한 모델의 행동
LLM은 복잡한 문제를 해결할 수 있지만, 때로는 매우 간단한 문제에서 실패하는 들쭉날쭉한 지능을 보입니다.
- 예측 불가능한 오류: 모델은 수학 문제, 철자 문제와 같은 간단한 작업에서 예측 불가능한 오류를 범할 수 있습니다.
- 내부 활성화: 모델 내부의 활성화 패턴이 특정 종류의 질문에 편향되어 나타나는 현상도 관찰됩니다. 예를 들어, 모델은 특정 형식의 숫자를 성경 구절처럼 인식하여 순서대로 답을 하려는 경향을 보일 수 있습니다.
- 도구의 중요성: 이러한 모델의 단점을 보완하기 위해 도구 사용을 장려하는 것이 중요합니다. 모델이 스스로 문제를 해결하려고 하기보다, 도구를 사용하여 더욱 정확하고 신뢰할 수 있는 결과를 얻도록 하는 것이 좋습니다.
3️⃣ 강화 학습(Reinforcement Learning)
최근 인공지능 분야에서 강화 학습(Reinforcement Learning, RL)은 모델의 성능을 극적으로 향상시키는 핵심 기술로 주목받고 있습니다. 이 영상에서는 RL의 기본 개념부터 실제 적용 사례(DeepSeek-R1, AlphaGo), 그리고 인간 피드백을 활용한 강화 학습(RLHF)까지 심층적으로 분석하여 강화 학습의 중요성과 다양한 활용 가능성을 탐구하고자 합니다.
강화 학습(Reinforcement Learning) 개요
- 강화 학습은 모델이 스스로 시행착오를 거치면서 최적의 해답을 찾아가는 학습 방법입니다.
- 모델은 다양한 시도를 통해 해답을 생성하고, 그 결과를 평가하여 올바른 방향으로 나아가도록 학습합니다.
- 이 과정에서 모델은 스스로에게 적합한 토큰 시퀀스를 발견하며, 인간이 미리 정해진 해법을 따르는 것이 아닙니다.
- 강화 학습의 핵심은 모델이 '생각'하는 과정에 있으며, 이를 통해 문제 해결 정확도가 향상됩니다.
- 강화 학습은 검증 가능한 영역과 검증 불가능한 영역에서 모두 활용될 수 있습니다.
DeepSeek-R1: 강화 학습을 통한 '사고' 능력 향상
- DeepSeek-R1은 강화 학습을 통해 언어 모델의 '사고' 능력을 크게 향상시킨 대표적인 사례입니다.
- DeepSeek-R1은 수학 문제 해결 능력을 향상시키기 위해 강화 학습을 적용했습니다 .
- 모델은 문제 해결 과정에서 다양한 접근 방식을 시도하고, 이전 단계를 재검토하며, 여러 관점에서 문제를 접근하는 모습을 보입니다.
- 이러한 '사고' 과정은 모델이 스스로 발견한 것이며, 인간이 코딩할 수 있는 것이 아닙니다 .
- DeepSeek-R1은 답변의 길이가 길어지는 경향을 보이지만, 이는 모델이 '사고'하는 과정에서 발생하는 자연스러운 현상입니다.
- 이러한 '사고' 과정을 통해 문제 해결 정확도가 향상됩니다 .
- DeepSeek-R1 모델은 오픈 소스로 공개되어 누구나 다운로드하여 사용할 수 있습니다.
AlphaGo: 강화 학습의 강력한 잠재력 입증
- AlphaGo는 강화 학습의 강력한 잠재력을 입증한 또 다른 중요한 사례입니다.
- AlphaGo는 강화 학습을 통해 인간 최고 수준의 바둑 실력을 넘어섰습니다.
- 지도 학습 모델은 인간 전문가의 기보를 모방하는 데 한계가 있지만, 강화 학습 모델은 스스로 학습하여 인간의 능력을 뛰어넘는 전략을 발견할 수 있습니다.
- AlphaGo는 인간이 절대 두지 않을 것 같은 독창적인 수를 발견했으며, 이는 강화 학습이 인간의 인지 능력을 뛰어넘을 수 있음을 보여주는 사례입니다.
- AlphaGo의 Move 37은 인간 전문가가 10,000분의 1 확률로 둘 법한 수였지만, 결과적으로는 매우 뛰어난 전략이었음이 밝혀졌습니다.
인간 피드백을 활용한 강화 학습(RLHF)
- 인간 피드백을 활용한 강화 학습(Reinforcement Learning from Human Feedback, RLHF)은 검증 불가능한 영역에서 강화 학습을 가능하게 하는 중요한 기술입니다.
- RLHF는 인간의 직접적인 평가 대신, 인간의 선호도를 모방하는 보상 모델(reward model)을 학습시킵니다.
- 인간은 다양한 답변을 순위 매기는 방식으로 모델을 평가합니다.
- 보상 모델은 인간이 순위를 매긴 데이터에 학습되어, 인간의 선호도를 예측합니다.
- RLHF를 통해 LLM은 인간이 선호하는 답변 스타일, 창의적인 글쓰기 능력 등을 학습할 수 있습니다.
- 하지만, RLHF는 모델이 인간의 선호도를 과도하게 모방하거나, 보상 모델을 속이는 방식으로 작동할 수 있다는 단점이 있습니다.
- 보상 모델은 복잡한 신경망이기 때문에, RL은 모델을 속이는 방법을 찾아낼 수 있습니다.
- 따라서 RLHF는 무한정으로 학습할 수 없고, 제한된 횟수만큼만 학습하고 중단해야 합니다.
- RLHF는 완벽한 인간을 모방하는 것이 아닌, 일종의 시뮬레이션입니다.
4️⃣ LLM의 미래 기능
LLM(대규모 언어 모델)은 텍스트를 넘어 다양한 형태의 데이터를 처리할 수 있는 멀티모달 모델로 빠르게 발전하고 있습니다.
- 오디오 : LLM은 듣고 말할 수 있게 됩니다. 오디오 신호의 스펙트로그램 조각을 토큰화하여 처리할 수 있습니다.
- 이미지 : LLM은 보고 그림을 그릴 수 있게 됩니다. 이미지의 패치를 토큰화하여 처리합니다.
- 이러한 오디오, 이미지 및 텍스트 토큰 스트림을 단일 모델에서 동시에 처리할 수 있습니다.
- 또한, LLM은 개별 작업을 넘어 장기적인 작업을 수행할 수 있는 에이전트 형태로 발전하고 있습니다. 이러한 에이전트는 인간의 감독 하에 장시간 작업을 수행하며 진행 상황을 보고합니다. 이는 디지털 영역에서 인간 대 에이전트 비율을 고려해야 함을 의미합니다.
- LLM은 사용자를 대신하여 키보드 및 마우스 작업을 수행할 수 있으며, 이는 도구에 통합되어 보이지 않게 될 것입니다.
- LLM은 테스트 시간 학습을 통해 개선될 수 있으며, 이는 모델이 실제 사용 중에 학습하는 것을 의미합니다. 현재는 모델의 파라미터가 고정되어 있지만, 컨텍스트 창을 통해 학습할 수 있습니다. 그러나 이는 인간의 학습과는 다르며, 모델은 장기 실행 다중 모달 작업에 필요한 긴 컨텍스트를 처리하기 위한 새로운 아이디어가 필요합니다.
LLM 모델 찾기
LLM 모델의 최신 정보를 얻을 수 있는 주요 리소스는 다음과 같습니다.
- LM 아레나 : 인간의 비교를 기반으로 LLM을 순위 매기는 리더보드입니다 .
- AI 뉴스 : Swix와 친구들이 제작한 포괄적인 뉴스레터로, 인간이 큐레이팅하고 LLM으로 자동 생성된 정보를 모두 포함합니다 .
- X(트위터) : AI 분야의 최신 정보를 얻을 수 있는 장소입니다. 관심 있고 신뢰하는 사람들을 팔로우하면 됩니다 .
LLM 모델을 찾고 사용할 수 있는 곳
- 독점 모델 : OpenAI의 ChatGPT나 Google의 Gemini와 같은 가장 큰 독점 모델은 해당 LLM 제공업체의 웹사이트에서 사용할 수 있습니다 .
- 오픈 웨이트 모델 : Deepseek나 Llama와 같은 오픈 웨이트 모델은 Together AI와 같은 LLM 추론 제공업체에서 사용할 수 있습니다 .
- 기본 모델 : 기본 모델을 사용하려면 Hyperbolic과 같은 기본 모델을 호스팅하는 곳을 찾아야 합니다 .
- 로컬 모델 : 더 작은 모델은 로컬에서 실행할 수 있습니다. LM Studio와 같은 앱을 사용하여 컴퓨터에서 모델을 실행할 수 있습니다 .
정리. LLM은 세 가지 주요 단계를 통해 훈련됩니다.
사전 훈련 : 인터넷에서 지식을 수집하여 모델의 파라미터에 통합합니다 .
감독된 미세 조정 : 인간 데이터 레이블러가 만든 이상적인 응답 데이터셋을 사용하여 모델을 미세 조정합니다 . LLM은 OpenAI의 데이터 레이블러를 모방한 것입니다 .
강화 학습 : 일부 모델은 강화 학습을 통해 사고 과정을 개선하고 새로운 문제 해결 전략을 발견합니다 .
LLM의 한계 LLM은 인간의 뇌와 다르게 작동하며, 환각이나 어리석은 행동을 할 수 있습니다 . LLM은 완벽한 도구가 아니며 체크가 필요하며, 단순한 계산이나 단어의 철자를 틀릴 수도 있습니다 .
LLM 기술은 놀라운 발전을 거듭하고 있으며, 우리의 삶을 변화시키고 있습니다. 이 글에서 살펴본 것처럼, LLM은 단순한 마법 상자가 아니라, 수많은 데이터와 정교한 알고리즘이 결합된 결과물입니다. LLM의 작동 방식을 이해함으로써, 우리는 이 기술을 보다 효과적으로 활용하고, 그 한계를 극복하기 위한 노력을 계속할 수 있을 것입니다. LLM 기술의 발전과 함께, 우리의 삶이 더욱 편리하고 풍요로워질 미래를 기대해 봅니다.
(한글자막) 대형 언어 모델(LLM)의 심층 분석: ChatGPT의 작동 방식 이해하기
https://youtu.be/6PTCwRRUHjE?si=9q-NuQaN-4Ge926a