와미의 일상/AI 정복하기

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (학습과 파인튜닝)

와미쀼 2023. 12. 6. 22:56

GPT는 그 자체로도 개발하는데 많은 비용이 들어가지만, 또 데이터를 학습시키는 것도 만만치 않은 일이라고 하는데요. 오늘은 챗GPT가 어떻게 데이터를 학습하는지, 그리고 특정 영역에 특화된 GPT 모델은 어떻게 개발되는지 알아보겠습니다.

 

 

챗GPT 학습과 파인튜닝 fine tuning


 

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (학습과 파인튜닝)

 

목차

 

1. GPT가 학습하는 원리

2. GPT가 300페이지 책 한 권을 학습하는 데 소요되는 시간?

3. 학습률이란?

4. GPT도 전공이 있다 - 파인튜닝

이전글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

GPT가 학습하는 원리

지난 포스팅에서 알아본 것처럼, GPT는 Attention 기법을 활용해 학습된 데이터를 기반으로 재생산하는 transformation 모델인데요.

 

그렇다면 어떻게 이 방대한 양의 데이터를 학습시킬 수 있을까요?

 

말뭉치(코퍼스, corpus) 는 GPT 가 학습하는 텍스트 덩어리입니다.
텍스트 코퍼스는 다양한 소스에서 수집된 대량의 텍스트 데이터를 말하는데, 그 출처는 인터넷, 책, 뉴스, 논문, 블로그, 소셜 미디어 등 아주 다양합니다. 이는 우리가 사용하는 다양한 언어와 문체를 포함하고 있습니다.

 

 

이러한 말뭉치를 텍스트로 만들어 GPT 모델에 입력하면, GPT는 아래의 방법으로 학습을 합니다.

 

  • 자기 지도 학습(Self-supervised learning)
    GPT는 자기 지도 학습 방식을 주로 사용하는데요. 지도 학습과는 달리 레이블된 데이터가 필요하지 않으며, 모델이 스스로 학습 데이터에서 패턴을 발견하도록 하는 방식입니다.
  • 마스크드 언어 모델 학습(Masked Language Model, MLM)
    입력 문장에서 임의의 단어를 가리고, GPT가 해당 단어를 예측하는 방식으로 학습합니다. 이를 통해 GPT가 스스로 문맥을 이해하고 문장 내의 단어 간의 상호 작용을 학습합니다.

    예를 들어, "나는 [MASK] 에 갔다"라는 문장에서 "[MASK]" 부분에 어떤 단어가 들어갈지를 모델이 추측하는 거죠. 문맥을 파악하여 가능한 단어를 추론한다는 개념입니다.

  • 다음 문장 예측(Next Sentence Prediction, NSP)
    GPT에 두 가지 문장을 입력했을 때, 첫 번째 문장이 두 번째 문장의 연속인지를 예측합니다. 이를 통해 모델은 문장 간의 의미적 관계를 학습할 수 있습니다.

    예를 들어, "오늘 날씨가 좋다. 그래서 나는 밖으로 나갔다."라는 두 문장이 주어졌을 때, GPT가 두 번째 문장이 첫 번째 문장 뒤에 오는 것이 자연스럽다는 것을 학습하는 거죠.

 

GPT가 300페이지 책 한 권을 학습하는 데 소요되는 시간?

 

GPT가 300페이지 책 한 권을 학습하는데 소요되는 시간은 얼마나 될까요? 물론 학습환경에 따라 다르겠지만요.

 

그 환경은 다양한 요소에 의해 결정됩니다.

 

  1. 모델 크기: GPT 모델은 다양한 사이즈로 구성될 수 있습니다. 작은 모델부터 매우 큰 모델까지 다양하게 있으며, 모델의 크기가 학습 시간에 큰 영향을 미칩니다.

  2. 학습 데이터의 크기: 모델이 학습하는데 사용되는 데이터 양도 중요합니다. 더 많은 데이터를 사용할수록 모델은 보다 일반적인 언어 패턴을 학습하게 됩니다.

  3. 하드웨어 자원: 학습에 사용되는 하드웨어(그래픽 카드, CPU 등)의 성능도 학습 시간에 영향을 줍니다. 빠른 GPU를 사용할수록 학습 시간이 단축될 수 있습니다.

 

여기서 그래픽 카드 이야기가 나오네요.

 

유명한 미국 주식인 엔비디아 NVIDIA 가 왜 암호화폐나 생성형 AI와 관련이 있는지 몰랐는데, 채굴과 학습에 그들의 리소스가 필요한 것이었어요.

 

아무튼 얼마나 좋은 기계와 모델로 학습하는지에 따라 다르겠지만, 구글 바드가 대답하기로는 (챗GPT는 끝까지 정량적인 답변을 주지 않네요)

 

평균적인 수준에서 300페이지 책 한 권을 읽는 데 1초 미만, 
그리고 해당 책을 완전히 학습하는 데에 1분 미만이 걸릴 것이라고 하네요.

 

 

 

학습률이란?

 

우리도 책을 여러 번 읽어야 그 내용이 완벽히 이해되는 것처럼, GPT 모델도 읽는 것과 학습하는 것에 그 차이를 두는 것 같아요.

 

그렇다면, 그저 읽는 횟수를 늘리는 것으로 학습이 되는 것인지, 매번 환경을 조정하는지가 궁금해졌습니다.

 

학습률 (learning rate)

인공 신경망 모델이 학습을 진행할 때 각각의 가중치(weight)를 얼마나 업데이트할지 결정하는 하이퍼파라미터.

매개변수 업데이트 시의 크기를 조절하여 모델이 적절한 방향으로 수렴할 수 있도록 도와줍니다.

 

여기에는 학습률이라는 개념이 등장하는데요.

 

쉽게 말하면 입력된 값을 학습할 때 얼마나 자율성을 부여하는지에 대한 것이라고 이해했습니다.

 

그래서 학습 단계별로 학습률을 조정하는데요. 조정단계는 아래와 같이 구분됩니다.

 

  1. Warmup(웜업) 단계
    • 학습 초기에는 학습률을 매우 작게 설정하고, 이후 점진적으로 증가시키는 단계입니다. 모델이 초기에는 미세한 업데이트를 받아 데이터에 대한 전반적인 경험을 얻게 됩니다.
  2. Constant(상수) 단계
    • Warmup 이후에는 학습률이 일정하게 유지됩니다. 이 단계에서는 학습률이 일정하게 유지되면서 모델이 데이터의 세부 사항을 더 자세히 파악하고 학습합니다.
  3. Decay(감쇠) 단계
    • 학습률을 점차 감소시키는 단계입니다. 모델이 최적의 지점에 가까워질수록 학습률을 감소시켜 더 정교한 조정을 하게 됩니다.

 

그래서 학습률이 무조건 높다고 좋은 것은 아니고 단계에 맞게 조정되는 것이 필수적이라고 합니다.

 

 

GPT도 전공이 있다 - 파인튜닝 (fine tuning)

 

Fine-tuning은 사전에 학습된(pre-trained) 모델을 특정한 작업에 맞게 조정하는 과정을 의미하는데요.

 

이 과정에서는 새로운 작업에 필요한 데이터를 사용하여 모델의 일부 변수를 업데이트하고, 새로운 데이터에 대해 잘 수행되도록 모델을 조정하는 작업을 합니다.

 

예를 들어, 번역 전문으로 활용가능한 GPT 모델을 튜닝한다고 가정해 보면

 

  1. 데이터 수집 및 준비:
    • 데이터 수집: 한 언어의 문장과 해당 문장의 번역인 다른 언어의 문장을 쌍으로 수집합니다. 
    • 데이터 전처리: 데이터를 정제하고 정규화하여 모델이 학습하기 쉽도록 준비합니다. 문장 정렬, 특수 문자 제거, 토큰화 등의 작업을 수행합니다.
  2. 모델 및 학습 설정:
    • Pre-trained 모델 선택: 언어의 일반적인 특성이 사전에 학습된 GPT 또는 Transformer 모델을 선택합니다.
    • Fine-tuning을 위한 설정: 번역 작업에 필요한 새로운 데이터로 모델을 Fine-tuning 하기 위한 변수를 설정합니다.
  3. Fine-tuning:
    • 모델 Fine-tuning: 사전에 학습된 모델을 번역 작업에 맞게 Fine-tuning 합니다. 이 과정에서는 번역 데이터를 사용하여 모델을 새로 학습시킵니다. 이때 모델은 입력 문장을 받아 번역 문장을 출력하는 방식으로 훈련됩니다.
    • Loss 계산 및 역전파: 모델은 입력 문장을 번역하는 데 사용된 데이터에 대해 Loss(손실)을 계산하고, 이를 토대로 역전파하여 모델의 변수를 다시 업데이트합니다.
  4. 평가 및 조정:
    • 성능 평가: Fine-tuning을 마친 후에는 모델의 성능을 측정합니다. 주어진 테스트 데이터에 대해 번역 결과를 평가하여 모델의 정확도를 측정합니다.
    • 모델 조정: 모델의 성능이 부족하다면 추가적인 Fine-tuning을 시도하거나 모델 구조를 변경하여 성능을 향상합니다.

 

실제로, Fine-tuning은 기계 번역, 질의응답 시스템, 텍스트 생성 등 다양한 자연어 처리 작업에 다양한 작업에 대해 미리 학습된 모델을 해당 작업에 맞게 Fine-tuning 하여 사용된다고 해요.

 

이를 통해 사전에 학습된 모델을 특정 작업에 더 적합하게 만들고, 해당 작업에 더 정확하게 대응할 수 있게 된답니다.

 

 

오늘은 GPT가 어떤 방식을 통해 학습하는지, 그리고 어떻게 특정 영역에서 더 전문성을 갖게 되는지 알아봤습니다. (파인튜닝) 기술적인 영역을 겉핥기식으로 보고는 있지만 그래도 매우 흥미롭네요! 저 자신을 학습시키고, 튜닝하는 느낌이에요! 열심히 해보겠습니다.

 

이전글

 

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (GPT 모델 이해)

 

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (GPT 모델 이해)

인공지능은 우리에게 낯설지 않은 존재였지만, 이렇게까지 빠르게 제 인생에 영향을 줄지는 몰랐습니다. 챗GPT, 바드, 빙챗 등 대화형 AI 뿐만 아니라 이미지는 물론 동영상도 뚝딱 만들어주는 이

meant2b-wami.tistory.com

 

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

 

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

프롬프트 엔지니어링 두 번째 컨텐츠로, 프롬프트 디자인에 대해 알아보려고 합니다. 우리가 말을 할 때 육하원칙만 따라서 말하면 효율적인 의사전달이 되는 것처럼, 프롬프트는 어떤 사항들

meant2b-wami.tistory.com

 

반응형