ChatGPT를 한 15개월을 넘게 써본 것 같은데, 더 잘 쓸 방법을 찾아보고 싶다.
그렇다면 OpanAI Playground를 살펴봄으로써 GPT를 어떤 방식으로 조절할 지에 대한 지표를 얻을 수 있다.
ChatGPT와 OpenAI Playground
OpenAI는 두 가지 종류의 생성형 AI를 제공한다.
ChatGPT는 알다시피 일반 사용자를 위한 대화형 AI 챗봇으로, 자연어 기반으로 질문하고 답변을 받을 수 있다. 그 반면에 OpenAI Playground는 개발자/연구자를 위한 실험 플랫폼으로, 다양한 AI 모델을 지정한 뒤 응답 길이, 온도(일관성, 창의력 관련) 등을 조정함으로써 AI 모델 동작을 세밀하게 제어해볼 수 있다.
이 두 플랫폼은 가격 책정 방식도 다른데, ChatGPT는 월정액 구독 방식인 데 반해 Playground는 사용한 토큰 단위로 과금하는 결제 시스템이 갖춰져 있다.
공식 사이트: https://platform.openai.com/
생성형 AI의 기본 원리
GPT는 딥러닝을 기반으로 한 언어 모델 작동 원리를 따른다. 간단히 말해서 주어진 입력에 따라 가장 적합한 다음 단어를 예측하며 문장을 구성하는 것이다. 그리고 이 기본 기술에는 트랜스포머 모델 개념이 존재한다
트랜스포머
약 10년 전, 기존 생성형 AI는 주로 RNN, LSTM같은 모델이 존재했다. 얘네는 데이터를 순차적으로 처리하며 문맥을 이해했는데 이 속도가 느리고 긴 문맥을 기억하는 데에는 한계가 있다. 이에 비해 트랜스포머는 병렬로 데이터를 처리하고 긴 문맥도 효과적으로 학습하기에 생성형 AI의 표준으로 자리 잡은 모델이다.
이 트랜스포머 모델은 인코더-디코더 구조를 가지고 있다. GPT는 여기서 디코더 부분만 사용해서 이전 입력과 학습 데이터를 활용해 다음 단어를 예측한다. GPT가 디코더만 사용하는 이유는 주로 다음 단어를 생성하는 작업에 초점이 맞춰져 있기 때문이다.
이 과정에서 핵심은 셀프 어텐션(Self-Attention)이다. 셀프 어텐션은 문맥을 이해하기 위해 입력된 단어 간의 관계를 분석하고 중요도를 계산하여 다음에 올 단어를 결정하는 데 기여한다.
트랜스포머 기반의 학습 과정
사전 학습 (Pre-training)
미세 조정 (Fine-tuning)
입력과 응답 생성 과정
- 토큰화 (Tokenization):
- 입력된 텍스트를 작은 단위의 토큰으로 변환한다.
- 예: “강아지 귀엽다" -> "강아지", "귀엽다"
- 문맥 이해:
- 입력된 토큰을 기반으로 이전 단어들과 문맥을 분석해 확률 분포를 계산한다.
- 각 단어가 등장할 가능성을 점수화한다.
- 다음 단어 예측:
- 온도(Temperature) 및 Top-P와 같은 설정값에 따라 가장 적합한 단어를 선택하고, 이를 반복해 응답을 생성한다.
OpenAI의 핵심 파라미터
기본 동작과정을 알았고, 이제 그러면 Open의 응답을 커스텀하기 위한 주요 파라미터 설정을 볼 수 있다.
Temperature (온도)
AI가 응답하는 창의성 또는 무작위성을 결정하는 파라미터다.
- 낮은 값 (0.2~0.5): 더 안정적이고 예측 가능한 응답을 생성.
- 예: “2+2는?” → “4” (정확하고 단순한 답변).
- 높은 값 (0.7~1.0): 더 창의적이고 다양성이 높은 응답을 생성.
- 예: “강아지가 뭐야?” → “강아지는 인간의 친구야! 귀여운 외모로 모두가 좋아하지.”
마치 MBTI로 쳤을 때 T와 F를 결정지을 수 있다
Top-P (Nucleus Sampling)
Top Probability로 불리며, 생성 과정에서 확률이 높은 단어들만 선택하도록 제한하는 방식이다.
이 경우, 작동원리를 좀 이해해볼 필요가 있는데 우선 모델이 단어를 예측 할 때 각 단어의 확률을 계산한다. 그리고 확률 합이 특정 값이 될 떄까지 높은 확률 단어들을 포함시키는 방법을 취한다. 예를들어,
예: “고양이는 귀엽다”를 예측할 때 단어 확률이 다음과 같다
- 귀엽다(50%), 작다(30%), 크다(10%), 뚱뚱하다(10%).
그리고 Top-P의 값이 0.9로 주어지면 "귀엽다", "작다", "크다" 까지 합해 확률 90%를 충족시키는 것을 확인하고 이 것까지만 다음에 올 수 있는 단어로 포함시킨다.