LLM (Large Language Model)은 대규모 데이터를 학습해 인간의 언어를 이해하고 처리하는 인공지능 모델로, 그 핵심에는 트랜스포머(Transformer) 아키텍처가 있습니다. 이 구조는 자연어 처리(NLP) 분야에서 혁명적인 발전을 가져온 핵심 기술입니다.
트랜스포머 모델은 Self-Attention 메커니즘을 기반으로 문장에서 단어 간의 관계를 학습합니다만 먼저 이를 한번 살펴보시죠
Self-Attention
Self-Attention은 문장 내의 각 단어가 다른 단어와 얼마나 관련 있는지를 계산해 각 단어가 문맥에서 차지하는 비중을 파악하는 구조입니다.
제반 구조는 다음과 같고 여기서 각각의 의미는
Q (Query) 특정 단어에 대한 질의(query)를 이 값은 입력 단어의 특징 벡터를 변환합니다.
K (Key) 각 단어가 가지고 있는 키(key) 값 Q와 K 간의 내적(dot product)을 통해 특정 단어가 다른 단어와 얼마나 연관되어 있는지를 계산
V (Value) 실제로 출력값에 사용될 벡터, 문장의 각 단어가 다른 단어와의 관계를 바탕으로 이 V를 가중합 하여 결과를 도출
d_k Key 벡터의 차원으로 스케일링 요소로 활용, Q와 K의 내적 결괏값이 너무 커져서 소프트맥스(softmax) 함수의 기울기가 급격히 작아지는 문제를 방지합니다. 이를 통해 학습 안정성을 높이는 역할
softmax Q와 K 간의 내적 결괏값에 소프트맥스 함수를 적용하여 확률 분포로 변환, 단어별 중요도의 가중치
기본수식을 봤으니 어떤 방식으로 계산되는지 한번 볼까요?
단어 벡터를 Q, K, V로 변환
입력 문장의 각 단어에 대해 W_Q, W_K, W_V라는 학습 가능한 가중치 행렬을 곱해 Q, K, V를 만듭니다.라고 말은 하는데 조금 더 쉽게 설명하면 단어를 내가 이해하기 쉽게 가공한 다음 새로 배출해 줄게 라는 느낌입니다. 컴퓨터의 이진법을 떠올리시면 쉽겠네요
유사도 계산
Query(Q)와 Key(K)의 내적을 수행하고, 스케일링을 위해 dK로 나눕니다.
위와 같은 과정이죠
여기에 위에서 설명한 소프맥스를 적용하고 가중치를 곱한 V를 넣어주면
이런 수식이 나오는 것이죠 복잡해 보이지만 핵심만을 정리하면 다음과 같습니다.
Q와 K의 내적 → 단어 간의 유사도 계산
softmax → 유사도를 확률 분포로 변환
가중합 (weighted sum) → 각 단어의 의미를 반영한 최종 출력
이러한 수식을 통해 모델은 문장의 의미를 정확히 이해하게 되는 것이죠.
사실 통상적인 이해했다는 언사를 쓸 수 있는지 애매합니다. 하지만 가장 가까운 대답을 내놓는 거라고 합시다.
엄밀하게 말하면 "이해한다"는 표현은 인간이 가진 인지적 이해와는 조금 다른 맥락으로 사용됩니다. LLM은 실제로 사람처럼 이해한다기보다는 학습된 패턴을 기반으로 가장 확률이 높은 답변을 예측하는 과정을 수행하는 것이죠. 영단어로 비유한다면, "predict"(예측하다) 또는 "approximate"(근사하다)가 더 정확한 표현이겠네요.
즉, LLM은 입력된 문장의 맥락에 맞게 다음에 올 단어나 문장을 예측할 뿐, 인간이 가진 "이해"(comprehension, 인지적 해석과 논리적 통찰)를 수행하는 것은 아닙니다. 트랜스포머기반 LLM은 이러한 수십억, 수천억 개의 파라미터를 사용해 학습하여 현제의 모델이 된 것이니까요
예를 들어 볼까요?, GPT-3의 경우 1,750억 개의 파라미터를 가지고, 방대한 양의 텍스트를 학습해 추론과 창작 능력을 지금 수준으로 올린 겁니다.
LLM의 학습 과정: 사전 학습과 미세 조정
좀 더 가봅시다 LLM은 사전 학습(Pre-training)과 미세 조정(Fine-Tuning)이라는 두 단계로 학습됩니다.
사전 학습은 대규모 공개 텍스트 데이터셋(인터넷 텍스트, 위키피디아 등)을 활용해 언어의 구조와 패턴을 학습하는 단계로, 단어의 연관성, 문법, 문맥을 이해하게 됩니다. 이후 미세 조정을 통해 사전 학습된 모델을 특정 도메인이나 작업에 맞게 최적화하는 것이죠 쉽게 말하면 데이터 라벨링 조금 더 직관적으로 사용할 것들을 정리한다 보시면 됩니다.
미세 조정은 사전 학습된 모델을 특정 도메인이나 작업에 맞게 최적화하는 단계입니다. 조금 이해하기 쉽게 예를 들어, 의료, 금융, 엔지니어링 분야에 특화된 데이터를 추가 학습시켜 해당 분야에서 높은 성능을 발휘하도록 조정하는 것이지요.
이 두 단계는 LLM이 범용적이면서도 특정한 목적에 맞게 활용될 수 있는 방식이지만 최근 gpt에서는 이러한 것들을 좀 더 잘 활용하기 위해 직직접 데이터를 제공할 수 있도록 연구합니다.
LLM의 출력 제어와 최적화
LLM은 다양한 출력을 생성하지만, 원하는 결과를 얻기 위해 하이퍼파라미터와 입력 프롬프트를 최적화해야 합니다.
온도(Temperature)라는 매개변수가 있죠, 이변수는 모델이 출력을 생성할 때 랜덤성과 창의성을 조절하는 매개변수입니다. 낮은 온도 값은 모델이 더 보수적이고 일관된 답변을 생성하도록 유도하며, 가장 확률이 높은 단어나 문장을 선택하게 합니다. 반면, 높은 온도 값은 다양한 가능성을 탐색하며 창의적이거나 예측 불가능한 출력을 생성할 수 있도록 합니다.
이를 통해 사용자는 원하는 응답 스타일에 맞춰 출력을 최적화할 수 있습니다. 모델의 출력을 창의적이거나 보수적으로 조절하는 데 사용되며, 낮은 온도는 일관된 결과를 제공하고 높은 온도는 창의적이고 다양한 답변을 유도합니다. 문제는 이러한 변수를 활용하는 난도가 높고 할루시네이션 문제도 발생하기에 적절한 조절 또한 필수적이죠
뿐만 아니라, 토큰 길이를 제한해 출력 텍스트의 길이를 조절하면 과도한 출력이나 불필요한 정보 생성을 방지합니다. 물론 이러한 자료 내에서 적절성은 또 다른 문제지만요.
할루시네이션 문제와 제어의 난이도
문제는 LLM이 창의적 출력을 생성하는 과정에서 종종 할루시네이션(근거 없는 정보 생성) 문제가 발생한다는 것입니다. 따라서 온도 조절, 토큰 제한 등의 변수를 적절히 활용하고 프롬프트 엔지니어링을 통해 모델의 출력을 정교하게 제어해야 하지만 이문제를 아직은 완전히 해결하지 못했습니다.
그렇기에 프롬포트 엔지니어링이라는 분야가 떠오르고 있는 것이지요 다음글에서는 프롬포트 엔지니어링에 대해 한번 이야기해 봅시다.
'AI > AI기초' 카테고리의 다른 글
프롬프트 엔지니어링[개념, 실제 사례, GPT4o 추천 프롬포트] (2) | 2024.12.18 |
---|---|
스마트 팩토리의 품질관리 데이터 분석 (0) | 2024.11.25 |
엣지 AI로 보는 자율주행의 미래: 클라우드 한계를 극복하는 기술 (0) | 2024.11.18 |
AI 할루시네이션이란? 문제와 해결 방법, 그리고 로버스트 AI의 필요성 (2) | 2024.11.16 |
AI의 약점을 파헤치다: 적대적 공격(Adversarial Attack)의 모든 것 (4) | 2024.11.15 |