ChatGPT는 실제로 어떻게 작동하나요?
ChatGPT는 대규모 언어 모델(GPT-3.5 또는 GPT-4)을 기반으로 하는 챗봇입니다. ChatGPT는 인터넷에서 공개적으로 사용 가능한 방대한 양의 텍스트 데이터를 학습한 사전 학습된 신경망입니다.
이 방대한 양의 데이터를 통해 모델은 패턴, 문법, 문맥, 심지어 상식적인 지식까지 학습하여 사용자 쿼리에 대해 의미 있고 일관된 응답을 생성할 수 있습니다. ChatGPT는 사용자와의 대화형 동적 대화에 참여할 수 있는 고유한 기능을 갖추고 있어 다양한 애플리케이션에 활용될 수 있는 유망한 도구입니다.
대규모 언어 모델이란?
대규모 언어 모델은 텍스트를 읽고, 이해하고, 생성하고, 예측하기 위해 자연어 처리로 알려진 딥 러닝 기술을 사용하는 AI 알고리즘입니다.
사용자가 프롬프트에 입력하면 모델은 인터넷에서 답을 검색하지 않고 머릿속에서 떠오르는 답을 제공합니다(머리가 없긴 하지만). 한 번에 한 단어씩 답변을 생성하며, 학습된 텍스트 데이터와 지금까지 생성한 텍스트에서 파생된 확률을 기반으로 다음 단어를 결정합니다.
110억 개의 매개변수: 질문 답변, 산술, 언어 이해
어떻게 가능할까요? ChatGPT는 이미 (거의) 모든 것을 알고 있기 때문에 인터넷에서 정보를 검색할 필요가 없습니다. 인터넷에서 사용할 수 있는 모든 지식은 1,750억 개의 매개 변수를 통해 ChatGPT에 통합되어 있습니다.
620억 개의 매개변수: 번역, 상식 추론, 코드 완성
모델 매개변수의 수가 증가함에 따라 의도적으로 설계하지 않은 새로운 기능이 모델에 등장합니다.
5,400억 개의 매개변수: 논리적 추론 체인, 패턴 인식, 독해력
ChatGPT 학습 방법
ChatGPT는 수십만 권의 책, 기사, 대화 등을 학습했습니다:
- WebText2(45테라바이트가 넘는 텍스트 데이터로 구성된 대규모 라이브러리)
- Cornell 영화 대화 코퍼스(영화 대본에 등장하는 10,000명의 영화 등장인물 간의 200,000개 이상의 대화가 포함된 데이터 세트)
- 우분투 대화 말뭉치(Ubuntu 대화 코퍼스)(우분투 사용자와 커뮤니티 지원팀 간의 1,000,000개의 다회전 대화 모음)
- 수십억 줄의 GitHub 코드
먼저, GPT는 사람의 지도 없이 액세스할 수 있는 모든 데이터를 처리할 수 있도록 하여 텍스트 영역을 규정하는 규칙과 연관성을 독립적으로 파악할 수 있도록 했습니다(이를 '비지도 학습'이라고 함).
그런 다음 언어 모델을 미세 조정하기 위해 인간의 피드백을 통한 강화 학습(RLHF)이라는 기술을 적용했습니다:
- 인간 AI 트레이너가 사용자와 AI 어시스턴트 양쪽의 역할을 맡아 대화를 진행했습니다. 이들은 응답을 작성하는 데 도움이 되는 모델 작성 제안을 이용할 수 있었습니다. 모델은 대화 기록을 바탕으로 어시스턴트의 다음 메시지를 예측하기 위해 지도 미세 조정을 통해 훈련되었습니다.
- 강화 학습을 위한 보상 모델을 만들기 위해 비교 데이터를 수집했습니다. AI 트레이너는 여러 모델의 응답을 품질별로 분류하여 응답이 말이 되는지, 도움이 되는지 등을 고려했습니다. 선택된 응답은 새로운 모델 작성 메시지가 포함된 대화 데이터 세트가 되었습니다.
- 보상 모델링이라는 기법을 사용하여 보상 모델을 만들었는데, 이전 단계에서 수집한 비교 데이터를 기반으로 응답의 품질을 예측하도록 모델을 훈련시켰습니다.
결국 ChatGPT는 주어진 상황에 대응하고, 정확하고 적절한 답변을 제공하며, 잠재적으로 유해한 주제를 피하는 방법을 배웠습니다.
트랜스포머 아키텍처
ChatGPT의 훈련 과정에는 이전 단어가 주어진 문장에서 다음 단어를 예측하는 것이 포함됩니다. 이를 위해 여러 계층의 자기 주의 메커니즘으로 구성된 트랜스포머 아키텍처가 사용됩니다(참고로 ChatGPT의 T는 트랜스포머의 약자). 자기주의는 모델이 문장의 여러 단어를 중요도와 관련성에 따라 평가하여 다음 단어를 정확하게 예측할 수 있도록 합니다.
기존의 순환 신경망(RNN)은 텍스트를 왼쪽에서 오른쪽으로 읽습니다. 이는 관련 단어가 인접한 경우에는 잘 작동하지만, 문장의 반대편에 있는 경우에는 문제가 됩니다.
따라서 한 페이지 분량의 텍스트로 작업하는 RNN은 세 번째 단락이 중반에 접어들면 이미 맨 처음에 있던 내용을 '잊어버릴' 것입니다.
반면, 트랜스포머는 문장의 모든 단어를 동시에 처리하고 각 단어를 다른 모든 단어와 비교할 수 있습니다. 이를 통해 입력 시퀀스 내의 위치에 관계없이 가장 관련성이 높은 단어에 '주의'를 집중할 수 있습니다.
토큰화
트랜스포머는 개별 단어에 대해 작동하지 않는다는 점에 유의하세요(사람처럼 읽을 수 없음). 대신 입력 텍스트는 단어, 문장 부호, 특수 토큰을 포함한 개별 토큰으로 분할됩니다. ChatGPT의 토큰은 벡터(방향과 위치가 있는 숫자)로 표현되는 텍스트 덩어리입니다.
공간에서 토큰-벡터의 근접성에 따라 연관성이 결정되며, 가까울수록 연관성이 높습니다. 또한 주의는 벡터로 인코딩되어 트랜스포머 기반 신경망이 단락의 앞부분에서 중요한 정보를 유지할 수 있습니다.
사용자가 ChatGPT와 상호 작용할 때 모델은 사용자 프롬프트와 모델 생성 응답을 모두 포함하여 대화 내역을 입력으로 받습니다. 입력은 토큰화된 다음 신경망에 공급됩니다. 각 토큰은 대화의 맥락에서 그 의미를 나타내는 임베딩과 연결됩니다.
GPT-3는 약 5,000억 개의 토큰으로 학습되었기 때문에 언어 모델이 벡터 공간에 매핑하여 의미를 더 쉽게 할당하고 그럴듯한 후속 텍스트를 예측할 수 있습니다. 많은 단어가 단일 토큰에 매핑되지만, 더 길거나 복잡한 단어는 종종 여러 개의 토큰으로 나뉩니다. 평균적으로 토큰의 길이는 대략 4자입니다.
모델이 응답을 생성하는 추론 단계에서는 자동 회귀라는 프로세스가 사용됩니다. 즉, 모델은 대화 기록과 이전에 생성된 단어를 조건으로 한 번에 한 단어씩 예측합니다. 생성된 응답의 일관성과 관련성을 보장하기 위해 상위 P 샘플링 및 온도 스케일링과 같은 기술이 활용됩니다.
간단히 말해, top-p 매개변수는 모델에 선택할 수 있는 옵션(토큰) 풀을 제공하고, 온도는 특정 토큰을 선택할 확률을 결정합니다. 온도를 0으로 설정하면 모델은 가장 "인기 있는" 토큰(ChatGPT가 학습한 텍스트 데이터에서 가장 자주 함께 발견되는 단어)만 선택하게 됩니다:
항상 좋은 것은 아닙니다. 온도가 높을수록 결과가 더 다양해집니다:
ChatGPT 매개변수에 대해 자세히 알아보세요: