Загружаем каталог…
Загружаем каталог…
1장. LLM과 ChatGPT는 어떻게 탄생했을까? ChatGPT는 갑자기 등장한 기술이 아니다. 자연어 처리 기술은 오랜 시간 동안 다음과 같이 발전해왔다. 규칙 기반 NLP ↓ 통계 기반 NLP ↓ 머신러닝 ↓ 딥러닝 ↓ RNN / LSTM ↓ Attention ↓ Transformer ↓ LLM ↓ ChatGPT 이번 장에서는 이 흐름을 따라가면서 LLM과 ChatGPT가 어떻게 만들어졌는지 알아본다. 1. LLM과 자연어 처리 LLM이란? LLM(Large Language Model) 은 대규모 언어 모델 이라는 뜻이다. 쉽게 말하면, 엄청나게 많은 글을 학습해서 인간이 사용하는 언어의 패턴을 익힌 AI 라고 생각하면 된다. 대표적인 LLM에는 GPT, Llama, Gemini, Claude 계열 모델 등이 있다. LLM은 문장을 읽고 답변하거나, 글을 작성하거나, 요약하거나, 번역하는 등 다양한 언어 작업을 할 수 있다. 하지만 LLM의 가장 기본적인 원리는 생각보다 단순하다. 나는 오늘 학교에 라는 문장이 주어졌을 때 갔다 왔다 간다 등 다음에 어떤 단어가 올 가능성이 높은지를 계산한다. 즉 LLM의 핵심은 앞의 내용을 보고 다음 토큰(Token)을 예측하는 것 이다. Token이란? LLM은 문장을 그대로 읽는 것이 아니라 Token 이라는 작은 단위로 나눠서 처리한다. 예를 들어 ChatGPT는 정말 재미있다. 라는 문장이 모델에 따라 Chat GPT 는 정말 재미 있다 . 처럼 나뉠 수 있다. 즉 Token은 LLM이 문장을 읽고 생성할 때 사용하는 기본 단위 라고 생각하면 된다. 자연어 처리(NLP) NLP(Natural Language Processing) 는 자연어 처리 라는 뜻이다. 자연어란 우리가 일상생활에서 사용하는 언어를 말한다. 예를 들면 한국어, 영어, 일본어 등이 모두 자연어다. 따라서 NLP는 컴퓨터가 인간의 언어를 분석하고 이해하고 생성할 수 있도록 만드는 기술 이다. 대표적인 NLP 작업에는 다음과 같은 것들이 있다. 작업 설명 감성 분석 문장이 긍정인지 부정인지 판단 번역 한국어를 영어 등 다른 언어로 변환 문서 분류 뉴스 등을 정치, 경제, 스포츠로 분류 요약 긴 글을 짧게 정리 질의응답 질문에 맞는 답변 생성 문장 생성 새로운 글 생성 ChatGPT 역시 자연어 처리 기술이 오랫동안 발전한 결과라고 볼 수 있다. 2. 규칙 기반에서 통계 기반 NLP로 최초의 AI 챗봇 ELIZA 1960년대에는 ELIZA 라는 초기 AI 챗봇이 등장했다. ELIZA는 지금의 ChatGPT처럼 문장의 의미를 이해하지는 못했다. 대신 사람이 미리 만들어둔 규칙에 따라 대답했다. 예를 들어 사용자가 저는 요즘 우울해요. 라고 말하면 우울 이라는 키워드를 찾아 왜 우울하다고 생각하시나요? 처럼 미리 만들어둔 답변을 출력하는 방식이다. 작동 과정은 대략 다음과 같다. 사용자 문장 ↓ 키워드 찾기 ↓ 미리 정의된 규칙 검색 ↓ 문장 분해 ↓ 다시 조합 ↓ 답변 생성 이를 규칙 기반(Rule-Based) 방식 이라고 한다. 규칙 기반 방식의 한계 문제는 모든 규칙을 사람이 직접 만들어야 한다는 것이다. 예를 들어 다음 문장들은 모두 비슷한 의미다. 배고파 밥 먹고 싶어 허기져 뭐 좀 먹고 싶다 점심을 아직 안 먹었어 사람은 쉽게 같은 의미라는 것을 알 수 있다. 하지만 규칙 기반 프로그램은 각각의 표현에 대응하는 규칙을 사람이 직접 만들어줘야 한다. 새로운 표현이 생길 때마다 새로운 규칙도 만들어야 한다. 결국 연구자들은 이런 생각을 하게 된다. 사람이 규칙을 하나하나 만드는 대신 데이터를 분석해서 컴퓨터가 규칙을 찾게 하면 어떨까? 여기서 통계 기반 자연어 처리 가 발전하기 시작한다. N-gram 대표적인 통계 기반 기법이 N-gram 이다. N-gram은 문장에서 연속된 N개의 단어나 토큰을 하나의 묶음으로 보는 방법 이다. 예를 들어 나는 오늘 학교에 간다 라는 문장이 있다고 하자. 1-gram 나는 오늘 학교에 간다 2-gram 나는 오늘 오늘 학교에 학교에 간다 3-gram 나는 오늘 학교에 오늘 학교에 간다 과거 데이터에서 학교에 간다 학교에 갔다 학교에 도착했다 라는 표현이 많이 등장했다면, 나는 오늘 학교에 ___ 뒤에 간다 혹은 갔다 가 올 확률이 높다고 예측할 수 있다. 즉, 앞에서 등장한 단어를 이용해 다음 단어가 나타날 확률을 계산하는 방식 이다. N-gram의 희소성 문제 하지만 N-gram에는 희소성(Sparsity) 문제가 있다. N이 커질수록 더 많은 문맥을 사용할 수 있다. 2-gram → 오늘 학교 5-gram → 나는 오늘 친구와 함께 학교 더 많은 단어를 보면 정확한 문맥을 파악하는 데 도움이 된다. 하지만 단어 조합이 길어질수록 학습 데이터에서 정확히 같은 문장이 등장할 가능성은 줄어든다. 따라서 N 증가 → 문맥 정보 증가 → 예측에는 도움 하지만 N 증가 → 동일한 단어 조합 감소 → 희소성 증가 라는 Trade-off 관계 가 생긴다. HMM과 CRF 통계 기반 NLP에는 N-gram 외에도 HMM 과 CRF 가 사용되었다. HMM(Hidden Markov Model) HMM은 은닉 마르코프 모델 이다. 현재 상태를 이용해서 다음 상태를 확률적으로 추정한다. 대표적으로 과거의 품사 분석 등에 사용되었다. 나는 → 대명사 사과를 → 명사 먹었다 → 동사 겉으로 보이는 단어를 이용해서 그 뒤에 숨어 있는 품사와 같은 상태를 추정하는 것이다. CRF(Conditional Random Field) CRF도 연속적인 데이터를 분석하는 확률 모델이다. HMM보다 주변 문맥을 조금 더 자유롭게 사용할 수 있다는 장점이 있다. 예를 들어 나는 서울에 살고 있다. 에서 서울 이라는 단어만 보는 것이 아니라 앞뒤 단어나 문장 속 위치 등을 함께 고려할 수 있다. HMM과 CRF는 당시 매우 유용했지만 복잡한 문맥을 이해하는 데 한계가 있었고 데이터 희소성 문제도 존재했다. 3. 머신러닝과 딥러닝의 등장 통계 기반 모델 이후에는 머신러닝이 자연어 처리에 활용되기 시작했다. 머신러닝(Machine Learning) 은 사람이 모든 규칙을 직접 입력하는 것이 아니라 데이터를 보고 컴퓨터가 규칙을 학습하는 기술 이다. 대표적인 머신러닝 모델에는 SVM Random Forest Logistic Regression Naive Bayes 등이 있다. 예를 들어 스팸 메일 데이터를 학습한다고 생각해보자. 무료 당첨 이벤트 클릭 같은 단어가 스팸 메일에서 자주 등장한다면 머신러닝 모델은 새로운 메일을 보고 스팸일 확률 95% 처럼 판단할 수 있다. 딥러닝 이후 딥러닝(Deep Learning) 이 등장한다. 딥러닝은 인공신경망을 여러 층 쌓아 복잡한 데이터의 특징을 학습하는 기술 이다. 기존 머신러닝에서는 사람이 중요한 특징을 직접 만들어주는 경우가 많았다. 반면 딥러닝에서는 모델이 학습을 통해 중요한 특징 자체를 찾아낼 수 있다. 자연어 처리에서는 대표적으로 CNN RNN LSTM Transformer 등의 신경망 구조가 사용되었다. CNN CNN(Convolutional Neural Network)은 합성곱 신경망 이다. 원래 이미지 처리에서 많이 사용하는 구조다. 이미지를 작은 필터로 훑으면서 눈 귀 윤곽 모서리 같은 특징을 찾는다. 자연어 처리에서도 사용할 수 있다. 먼저 단어를 Embedding 이라는 과정을 통해 숫자로 변환한다. 나는 → [0.1, 0.5, 0.2] 고양이를 → [0.7, 0.2, 0.4] 좋아한다 → [0.3, 0.8, 0.1] 그리고 CNN의 필터가 문장을 훑으면서 정말 재미있다 매우 좋았다 완전 별로다 같은 특징을 찾는다. 하지만 CNN은 가까운 단어끼리의 관계 를 찾는 데 강하고 긴 문장에서 멀리 떨어진 단어들의 관계를 이해하는 데에는 한계가 있었다. 그래서 RNN 이 사용되기 시작한다. 4. RNN과 LSTM RNN RNN(Recurrent Neural Network) 은 순환 신경망 이다. RNN의 가장 중요한 특징은 이전 단계의 정보를 다음 단계로 전달한다는 것 이다. 예를 들어 나는 → 오늘 → 학교에 → 간다 라는 문장을 앞에서부터 하나씩 처리한다. RNN은 이전에 읽은 정보를 Hidden State(은닉 상태) 에 저장한다. 쉽게 말하면 작은 메모장과 비슷하다. 나는 ↓ [나는 읽었음] ↓ 오늘 ↓ [나는 오늘 읽었음] ↓ 학교에 ↓ [나는 오늘 학교에 읽었음] 이전 정보를 다음 단어를 처리할 때 사용할 수 있기 때문에 문장의 순서를 이해하는 데 유리했다. RNN의 문제 문장이 길어지면 문제가 발생한다. 문장의 앞부분에 있는 정보가 여러 단계를 지나면서 점점 약해진다. 이를 장기 의존성(Long-Term Dependency) 문제 라고 한다. 또한 학습 과정에서는 기울기 소실(Vanishing Gradient) 문제가 발생할 수 있다. 딥러닝은 학습할 때 Gradient라는 값을 이용해서 모델의 가중치를 수정한다. 그런데 이 값이 여러 단계를 거치면서 1 ↓ 0.5 ↓ 0.25 ↓ 0.125 ↓ 0.0625 처럼 너무 작아지면 앞부분의 정보가 제대로 학습되지 않는다. 이 문제를 개선하기 위해 LSTM 이 등장했다. LSTM LSTM(Long Short-Term Memory) 은 RNN보다 긴 정보를 잘 기억하도록 만든 구조다. LSTM의 핵심은 중요한 것은 기억하고 필요 없는 것은 버리자 이다. 이를 위해 세 가지 Gate를 사용한다. Forget Gate 과거 정보 중 필요 없는 정보를 버린다. 이 정보는 이제 필요 없는가? Input Gate 새로운 정보 중 무엇을 기억할지 결정한다. 새로운 정보 중 무엇을 저장할까? Output Gate 현재 기억하고 있는 정보 중 무엇을 출력할지 결정한다. 지금 어떤 정보가 필요한가? LSTM은 RNN보다 장기적인 정보를 더 잘 처리했지만 여전히 문제가 있었다. 문장을 나는 → 오늘 → 학교에 → 간다 처럼 순서대로 하나씩 계산해야 한다. 따라서 병렬 처리가 어렵고 학습 속도가 느렸다. 매우 긴 문장을 처리할 때에도 여전히 한계가 있었다. 5. Attention과 Transformer RNN과 LSTM의 한계를 해결하기 위해 중요한 기술이 등장한다. 바로 Attention 이다. Encoder와 Decoder Attention을 이해하려면 먼저 Encoder와 Decoder를 알아야 한다. 번역을 생각하면 쉽다. 나는 사과를 좋아한다 ↓ Encoder ↓ 문장의 정보 ↓ Decoder ↓ I like apples Encoder 는 입력 문장을 읽고 이해하는 역할을 한다. Decoder 는 이해한 정보를 이용해서 새로운 문장을 만드는 역할을 한다. 쉽게 말하면 Encoder = 읽기 Decoder = 쓰기 라고 생각하면 된다. Seq2Seq의 문제 초기의 Encoder-Decoder 모델에서는 문장 전체의 정보를 하나의 Context Vector 에 압축했다. 쉽게 말하면 책 한 권의 내용을 포스트잇 한 장에 전부 정리하는 것 과 비슷하다. 짧은 문장은 괜찮지만 문장이 길어질수록 중요한 정보가 사라질 수 있다. 그래서 등장한 것이 Attention 이다. Attention Attention은 말 그대로 집중 이라는 뜻이다. 핵심은 모든 단어를 똑같이 보지 말고 지금 필요한 단어에 더 집중하자 이다. 예를 들어 철수는 사과를 먹었다. 그것은 매우 달았다. 에서 그것 이 무엇인지 이해하려면 철수 보다 사과 에 더 집중해야 한다. 철수 → 중요도 낮음 사과 → 중요도 높음 ★★★★★ 먹었다 → 중요 Attention은 이런 방식으로 단어마다 중요도를 계산한다. Transformer Attention이 등장했어도 초기에는 여전히 RNN을 함께 사용했다. 따라서 순서대로 계산해야 하는 문제는 남아 있었다. 연구자들은 여기서 이런 생각을 한다. RNN을 없애고 Attention만 사용하면 안 될까? 그리고 2017년 Google 연구진이 발표한 Attention Is All You Need 논문에서 Transformer 가 등장한다. Transformer의 핵심 특징은 RNN 없이 Attention을 중심으로 문장을 처리한다는 것 이다. 기존 RNN이 나는 → 오늘 → 학교에 → 간다 처럼 순서대로 계산했다면, Transformer는 여러 단어를 한꺼번에 계산할 수 있다. 덕분에 GPU를 이용한 병렬 연산 이 가능해졌고 대규모 데이터를 훨씬 빠르게 학습할 수 있게 되었다. Self-Attention Transformer의 핵심이 Self-Attention 이다. Self-Attention은 같은 문장 안에서 각각의 단어가 다른 단어와 얼마나 관련되어 있는지 계산하는 것 이다. 예를 들어 철수는 영희에게 책을 주었다. 그는 집으로 돌아갔다. 라는 문장이 있을 때 그는 이라는 단어가 어떤 단어와 관련 있는지 계산한다. 철수 ← 관련성 높음 영희 ← 관련성 낮음 책 ← 관련성 낮음 이를 통해 문장의 관계를 이해할 수 있다. Self-Attention에서는 대표적으로 세 가지 값이 사용된다. 개념 쉬운 의미 Query 내가 찾고 싶은 정보 Key 내가 어떤 정보를 가지고 있는지 알려주는 표지 Value 실제 정보 도서관에서 책을 찾는 것과 비슷하다. Query = "AI 책 찾아주세요." Key = 책 제목과 분류 Value = 실제 책 내용 Query와 Key를 비교해서 관련성이 높은 정보를 찾고 해당 Value를 사용하는 방식이다. Multi-Head Attention Transformer에서는 Self-Attention을 한 번만 사용하는 것이 아니라 여러 번 동시에 수행한다. 이를 Multi-Head Attention 이라고 한다. 예를 들어 철수가 영희에게 어제 학교에서 책을 주었다. 라는 문장이 있으면 Head 1 → 누가 행동했는지 Head 2 → 누구에게 주었는지 Head 3 → 언제 일어났는지 Head 4 → 어디에서 일어났는지 처럼 여러 관점에서 문장을 바라볼 수 있다. Positional Encoding Transformer는 여러 단어를 동시에 처리하기 때문에 단어의 순서를 따로 알려줘야 한다. 예를 들어 철수가 영희를 좋아한다. 와 영희가 철수를 좋아한다. 는 단어는 비슷하지만 뜻은 다르다. 그래서 단어마다 위치 정보를 추가한다. 철수가 [1번] 영희를 [2번] 좋아한다 [3번] 이것이 Positional Encoding 이다. 즉, Transformer에게 단어의 순서를 알려주는 기술 이라고 생각하면 된다. 6. BERT와 GPT Transformer가 등장한 이후 이를 이용한 다양한 모델이 만들어졌다. 대표적인 것이 BERT와 GPT 다. 단순화하면 다음과 같이 이해할 수 있다. Transformer │ ├── Encoder 중심 → BERT │ └── Decoder 중심 → GPT BERT BERT는 Transformer의 Encoder 구조를 중심으로 사용하는 모델 이다. 따라서 문장을 읽고 이해하는 작업 에 강하다. 대표적으로 감성 분석 문서 분류 개체명 인식 문장 의미 분석 등에 활용할 수 있다. BERT의 대표적인 학습 방법은 Masked Language Modeling 이다. 나는 오늘 학교에 갔다. 에서 특정 단어를 가린다. 나는 오늘 [MASK]에 갔다. 그리고 모델이 학교 를 예측하게 한다. 즉 앞뒤 문맥을 함께 보고 가려진 단어를 맞히는 방식 이다. GPT GPT는 Generative Pre-trained Transformer 의 약자다. Generative = 생성 Pre-trained = 사전 학습 Transformer = Transformer 기반 GPT는 Transformer의 Decoder 구조를 중심으로 사용하는 모델 이다. GPT의 기본 학습 방식은 이전 토큰을 보고 다음 토큰을 예측하는 것 이다. 예를 들어 나는 이 주어지면 오늘 을 예측한다. 그리고 나는 오늘 이 주어지면 학교에 를 예측한다. 다시 나는 오늘 학교에 가 입력되면 갔다 를 예측한다. 이 과정을 매우 많은 데이터에서 반복한다. BERT와 GPT의 차이 BERT GPT Encoder 중심 Decoder 중심 문장 이해에 강함 문장 생성에 강함 가려진 단어 예측 다음 토큰 예측 앞뒤 문맥 활용 이전 토큰을 이용해 다음 토큰 생성 여기서 주의할 점이 있다. 문장의 특정 단어를 가리고 맞히는 방법은 대표적으로 BERT의 학습 방법이다. GPT는 기본적으로 다음 토큰을 예측한다. GPT의 Masked Self-Attention GPT에서도 Mask 라는 표현이 사용되기 때문에 BERT와 혼동하기 쉽다. 하지만 의미가 다르다. GPT는 다음 단어를 예측해야 하므로 미래에 등장할 단어를 미리 보면 안 된다. 예를 들어 나는 오늘 학교에 갔다 에서 학교에 다음에 무엇이 나올지 예측할 때 정답인 갔다 를 미리 보면 안 된다. 그래서 나는 오늘 학교에 → 갔다 처럼 현재 위치보다 뒤의 단어는 볼 수 없도록 막는다. 이를 Causal Masking 이라고 한다. 7. GPT에서 ChatGPT까지 GPT가 많은 텍스트를 학습했다고 해서 바로 좋은 챗봇이 되는 것은 아니다. 기본 GPT는 다음 토큰을 잘 예측하는 모델 이다. 하지만 ChatGPT는 사용자의 질문이나 명령을 이해하고 적절하게 대답해야 한다. 그래서 추가적인 학습 과정이 필요하다. 초기 InstructGPT와 ChatGPT의 학습 과정을 단순화하면 다음과 같다. 1. Pre-training ↓ 2. Supervised Fine-Tuning ↓ 3. 인간 선호 데이터 수집 ↓ 4. Reward Model 학습 ↓ 5. Reinforcement Learning Pre-training 먼저 엄청난 양의 텍스트를 학습한다. 책 웹 문서 기사 코드 기타 텍스트 등을 이용해 다음 토큰을 예측하는 능력을 학습한다. 쉽게 말하면 엄청나게 많은 글을 읽으며 언어 공부를 하는 단계 다. Supervised Fine-Tuning 다음은 SFT(Supervised Fine-Tuning) 다. 사람이 만든 질문과 좋은 답변을 이용한다. 질문 대한민국의 수도는 어디인가요? 좋은 답변 대한민국의 수도는 서울입니다. 이를 통해 모델은 사용자가 질문하면 이런 식으로 답해야 하는구나. 를 학습한다. 즉 선생님이 모범답안을 보여주는 단계 와 비슷하다. 인간의 선호도와 Reward Model 하나의 질문에 AI가 여러 답변을 만들었다고 생각해보자. 답변 A Python은 프로그래밍 언어입니다. 답변 B Python은 배우기 쉬운 프로그래밍 언어로 웹 개발, 데이터 분석, AI 등에 사용됩니다. 답변 C Python은 뱀입니다. 사람이 좋은 답변 순서를 선택한다. B > A > C 이 데이터를 이용해서 사람의 평가 기준을 학습하는 Reward Model 을 만든다. 쉽게 말하면 AI의 답변을 채점하는 AI 다. 강화학습과 RLHF 강화학습(Reinforcement Learning) 은 행동의 결과에 따라 보상을 주면서 더 좋은 행동을 학습시키는 방식이다. 좋은 답변 → 높은 보상 좋지 않은 답변 → 낮은 보상 이 과정을 반복하면서 모델이 더 좋은 답변을 생성하도록 한다. 사람의 평가를 이용한 이런 방식은 RLHF 라고 부른다. RLHF(Reinforcement Learning from Human Feedback) 즉, 인간의 피드백을 이용한 강화학습 이다. 초기 InstructGPT/ChatGPT에서는 PPO라는 강화학습 알고리즘이 사용되었다. PPO는 모델의 행동을 한 번에 크게 바꾸기보다는 조금씩 안정적으로 개선하도록 돕는다. ※ 최신 상용 LLM의 전체 학습 방법은 모두 공개되어 있지 않으며 모델마다 학습 방식에는 차이가 있다. 8. Open LLM과 LLM 활용 사례 Open LLM과 Closed LLM LLM은 공개 방식과 서비스 방식에 따라 크게 Open Model과 Closed Model로 나누어 생각할 수 있다. 다만 흔히 오픈소스 LLM 이라고 부르는 모델 중에서도 실제로는 모든 소스 코드와 학습 데이터가 공개된 것이 아니라 모델 가중치만 공개된 Open-Weight 모델 인 경우도 있다. Open LLM Open LLM은 직접 모델을 실행하거나 수정할 수 있다는 장점이 있다. 예를 들어 회사 내부 서버에 모델을 구축할 수 있다. 사용자 ↓ 회사 내부 서버 ↓ LLM 장점은 다음과 같다. 자유로운 커스터마이징 자체 서버 구축 가능 외부 API 의존성 감소 내부 데이터 통제 가능 예를 들어 법률 전문 LLM 의료 전문
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
[RAG]LLM과 ChatGPT는 어떻게 탄생했을까?. 1장. LLM과 ChatGPT는 어떻게 탄생했을까? ChatGPT는 갑자기 등장한 기술이 아니다. 자연어 처리 기술은 오랜 시간 동안 다음과 같이 발전해왔다. 규칙 기반 NLP ↓ 통계 기반 NLP ↓ 머신러닝 ↓ 딥러닝 ↓ RNN / LSTM ↓ Attention ↓ Transformer ↓ LLM ↓ ChatGPT 이번 장에서는 이 흐름을 따라가면서 LLM과 ChatGPT가 어떻게 만들어졌는지 알아본다. 1. LLM과 자연어 처리 LLM이란? LLM(Large Language Model) 은 대규모 언어 모델 이라는 뜻이다. 쉽게 말하면, 엄청나게 많은 글을 학습해서 인간이 사용하는 언어의 패턴을 익힌 AI 라고 생각하면 된다. 대표적인 LLM에는…
Открыть источник