대규모 언어 모델(Large Language Model, LLM)의 구조와 작동 원리
대규모 언어 모델(LLM)은 최근 몇 년간 인공지능 분야에서 눈부신 발전을 이루었습니다. 이 포스팅에서 LLM의 기본 구조와 작동 방식, 그리고 이 모델들이 어떻게 훈련되는지에 대해 간단히 정리합니다. 기본적인 내용은 "Andrej Karpathy" 님의 유튜브 영상의 내용을 참고 하였습니다.
LLM 구조와 동작원리
LLM의 기본 구조
LLM은 크게 두 가지 주요 파일로 구성됩니다: 파라미터 파일과 이 파라미터를 실행하는 코드입니다. 예를 들어, Llama2 70b 모델은 700억 개의 파라미터를 포함하고 있으며, 이는 메타 AI에 의해 개발된 모델입니다. 이러한 파라미터는 신경망의 'Weight'을 나타내며, LLM의 가장 핵심적인 부분입니다. 각 파라미터는 모델이 언어를 처리하고 이해하는 방식에 영향을 미칩니다.
LLM의 작동 방식
LLM의 작동 방식을 이해하려면 두 가지 주요 요소를 살펴보아야 합니다: 파라미터와 코드입니다. 파라미터는 신경망의 뉴런에 해당하며, 코드는 이러한 뉴런들이 어떻게 상호작용할지 결정합니다. 코드는 주로 C나 파이썬과 같은 프로그래밍 언어로 작성됩니다. 이 코드는 파라미터를 활용하여 모델이 언어를 처리하고 생성하는 방식을 결정합니다. 이러한 과정을 통해 모델은 입력된 텍스트에 기반하여 다음 단어를 예측할 수 있습니다
이 이미지는 신경망이 어떻게 문장의 다음 단어를 예측하는지를 나타내는 다이어그램입니다. "The cat sat on the"라는 문장을 입력으로 받아, 신경망은 이에 대한 다음 단어로 "table", "chair", "mat" 중 하나를 예측할 수 있습니다. 이 예측은 훈련 데이터에 기반하여 이루어집니다. 신경망은 이전에 학습한 텍스트의 맥락보고, 주어진 입력에 대한 가능성 있는 다음 단어를 제안합니다.
LLM(대규모 언어 모델)에서는, 이런 예측은 수십억 개의 파라미터를 통해 수행되는 복잡한 계산의 결과입니다. 파라미터는 모델이 훈련 과정에서 언어의 구조, 문법, 사용 패턴 등을 학습하는 데 사용되는 변수들입니다. 입력 문장은 모델의 첫 번째 층, 즉 입력층으로 전달되며, 여기에서 추출된 특성들이 중간층(은닉층)을 통과합니다. 은닉층에서는 높은 수준의 추상화와 패턴 인식이 일어나며, 이는 최종적으로 출력층으로 전달되어 다음 단어를 예측하는 데 사용됩니다.
각 예측 결과는 신경망의 웨이트(weights)와 활성화 함수를 통해 계산되며, 모델이 가장 가능성이 높다고 판단하는 단어가 선택됩니다. 예를 들어, "mat"이 가장 높은 확률로 선택될 수 있는데, 이는 "The cat sat on the" 다음에 주로 "mat"이 오는 패턴을 모델이 훈련 데이터에서 많이 관찰되었기 때문입니다.
LLM의 훈련 과정
LLM의 훈련 과정은 인터넷의 거대한 데이터를 처리하여 모델의 파라미터를 조정하는 것을 포함합니다. 이 과정은 상당히 복잡하고 시간이 많이 소요되며, 대량의 컴퓨팅 자원이 필요합니다. 예를 들어, Llama2 70b 모델의 경우, 약 10테라바이트의 텍스트 데이터를 처리하여 140GB 크기의 파라미터 파일을 생성합니다. 이 과정은 '손실 압축'으로 볼 수 있으며, 인터넷에서 수집된 데이터를 요약하고 압축하는 과정입니다. 이렇게 함으로써, 모델은 훈련 데이터에 포함된 지식과 패턴을 학습하고 내재화 합니다.
LLM 의 기본모델과 파인튜닝
"Pretraining"과 "Fine-tuning"은 인공지능, 대규모 언어 모델(Large Language Models, LLMs)과 관련된 두 가지 중요한 개념입니다. 이들은 모델의 성능을 개선하고 특정 작업이나 응용 프로그램에 더 적합하게 만드는 과정과 기술을 말합니다.
어시스턴트 모델 생성의 개요
대규모 언어 모델(Large Language Models, LLMs)을 특정 작업에 맞게 조정하여 어시스턴트 모델을 생성하는 과정은 복잡하며 여러 단계를 포함합니다. 아래에서 이 과정을 단계별로 설명하겠습니다.
- 사전 훈련(Pre-training) 단계:
- 이 단계에서는 대규모 데이터셋을 사용하여 모델의 기본 구조와 가중치를 학습합니다.
- 데이터셋은 인터넷의 광범위한 텍스트에서 수집되며, 다양한 주제에 대한 일반적인 이해를 모델에 제공합니다.
- 이 과정은 모델이 언어의 기본적인 문법과 구문, 단어 사이의 관계 등을 학습하도록 합니다.
- 특정 모델(Llama2)의 기준으로 약 ~10TB 의 인터넷 text 를 모아서 6K GPU 를 이용해서 10일 이상 학습합니다.
- 미세 조정(Fine-tuning) 단계:
- 사전 훈련된 모델을 특정 작업이나 도메인에 맞게 조정합니다.
- 예를 들어, 고객 서비스 챗봇을 생성하는 경우, 관련 대화 데이터셋을 사용하여 모델을 추가적으로 훈련합니다.
- 미세 조정은 모델이 특정 작업에 필요한 뉘앙스와 전문 지식을 이해하도록 돕습니다.
- 평가 및 반복:
- 미세 조정된 모델을 테스트하여 특정 작업에 대한 성능을 평가합니다.
- 성능이 만족스럽지 않은 경우, 훈련 데이터를 조정하거나 모델 구조를 변경하고 미세 조정 과정을 반복합니다.
Meta에서 출시한 Llama 2 시리즈와 같이, 일부 모델들은 기본 모델과 어시스턴트 모델 두 가지 형태로 존재합니다. 기본 모델은 직접적인 답변을 생성하지 않으며, 주로 데이터 샘플링에 사용됩니다. 반면, 어시스턴트 모델은 질문에 대한 답변을 제공하는 데 직접적으로 사용할 수 있습니다.
참고 영상
'인공지능 > LLM' 카테고리의 다른 글
GPT 구조에 대한 초간단 리뷰 (0) | 2024.02.09 |
---|---|
Whisper large v3 모델 실행하기 (0) | 2024.01.20 |
LLM 학습과정에서 RLHF 란? (0) | 2024.01.18 |
LLama.cpp 설치하고 실행해보기 (0) | 2024.01.14 |