본문 바로가기
AI

OpenAI 플레이그라운드(Playground) Chat 모드와 하이퍼 파라미터

by Dev_Mook 2024. 12. 10.

플레이그라운드(Playground)는 GPT 모델을 다양한 방식으로 사용할 수 있도록 여러가지 모드를 지원해요.

이번에는 Chat 모드가 무엇인지, 화면 구성은 어떻게 되어있는지,

그리고 가장 중요한! Chat 모드에서 지원하는 하이퍼 파라미터에 대해 알아보도록 할게요.

 

# Chat 모드에 대해

 

플레이그라운드(Playground)에서 지원하는 Chat 모드가 뭘까요?

먼저 OpenAI에서 서비스 중인 ChatGPT를 떠올려봅시다!

 

많은 사람들이 궁금한게 있으면 ChatGPT에게 물어보죠?

그럼 학습된 데이터를 바탕으로 ChatGPT는 답을해요.

그리고 또 궁금한게 있으며 질문하고, ChatGPT는 또 대답을 하죠.

 

마치 사람과 ChatGPT가 대화하는 것 같지 않나요?

이처럼 사용자와 AI 간의 대화를 주고받을 수 있도록 지원하는 기능Chat 모드라고 해요.

 

ChatGPT는 '대화형 도움' 모드가 기본적으로 설정되어 있는데,

Chat 모드와 같은 기능이라고 생각하면 되요.

즉, ChatGPT처럼 사용자와 AI가 대화하며 상호작용 할 수 있도록 지원하는 모드가 바로 Chat 모드에요.!

 

 

# Chat 모드의 화면 구성

 

 

플레이그라운드(Playground)의 왼쪽에 있는 'Chat' 모드를 선택하면 위의 이미지와 같은 화면이 나타나요.

각 부분별로 어떻게 구성되어 있는지 알아볼게요.

 

상단바

 

(1) Chat 현재 사용자가 선택한 모드의 이름이 출력되요.
(2) Clear 사용자가 AI와 대화했던 내용이 모두 사라져요.
새로운 대화를 하거나, 이전 대화 기록이 필요 없을 때 사용하는 메뉴에요.
(3) Code OpenAI와 연동할 수 있는 소스코드를 보여줘요.
아래 이미지와 같이 언어를 선택하면 API와 연동할 수 있는 소스코드를 미리 확인할 수 있어요.
API 키를 발급해 소스코드에 적용만 하면 바로 사용할 수 있어요.
코드 미리보기는 curl, python, node.js, json 등으로 형식으로 보여줘요.
(4) Compare 여러 모델을 비교하고 싶을 때 사용해요.
두 가지 이상의 모델을 동시에 실행하여 결과를 비교할 수 있어요.
(5) History 이전에 입력한 대화 내용을 볼 수 있어요.
과거 대화 내용을 참고하고 싶을 때 유용합니다.

 

(3) Code 메뉴 선택시 나타나는 'View code' 화면

 

 

에디터

(1) System message 대화(Chat)를 시작하기 전에 GPT 모델에게 초기 설정을 설명해주는 부분이에요.
GPT 모델의 역할, 답변 톤(뉘앙스), 답변 스타일, 대화의 주제나 맥락, 답변 제한 사항 등 대화를 시작하기 전에 GPT가 지켜야할 규칙을 작성하면 되요.
(2) 응답 화면 사용자가 입력한 프롬프트와 GPT가 답변한 프롬프트가 출력되는 부분이에요.
(3) User 입력창 사용자로서 질문을 입력하는 화면이에요.
텍스트를 입력해 질문을 할 수 있고, 필요하면 파일을 첨부할 수도 있어요.
(4) Assistant 입력창 Assistant는 GPT의 답변을 입력하는 화면이에요.
사용자의 질문에 대답하거나 해결책을 제시하는 역할을 해요.
즉, GPT 모델 대신에 개발자가 직접 입력을 해서 사용자에게 답변을 해주는 화면이에요.

 

 

Presets

(1) Your presets 사용자가 세부 조정한 하이퍼 파라미터(Hyper Parameters)를 저장하면 이 곳에 목록이 출력되요.
즉, 사용자가 저장한 하이퍼 파라미터(Hyper Parameters)의 목록을 보고 사용 용도에 맞게 선택해서 사용하면 되요.

참고로 저장된 하이퍼 파라미터(Hyper Parameters)가 없기 때문에 예시 이미지에는 'No presets'라고
표시해주고 있어요.

 

 

하이퍼 파라미터(Hyper Parameters)

 

하이퍼 파라미터(Hyper Parameter)는 아래에서 자세히 알아볼 예정이니까

이 곳에서는 간단히 살펴볼게요.

 

먼저 Chat 모드에서 사용할 GPT 모델을 선택할 수 있어요.

그리고 GPT의 답변(Response)을 어떤 형식으로 전달 받을지 선택 가능해요.

나머지 파라미터(Functions, Temperature, Max  tokens...)는 GPT가 답변할 때

창의적으로 답변할 것인지, 답변 글자의 수를 얼마나 제한할 것인지, 단어의 반복은 얼마나 허용할 것인지

설정하는 파라미터에요.

 

 

# 지원하는 하이퍼 파라미터(Hyper Parameters)

 

하이퍼 파라미터(Hyper Parameters)세부 조정을 위한 값이라고 생각하면 되요.

플레이그라운드(Playground)는 사용 용도에 맞게 생성형 AI를 만들고 테스트하는 공간이에요.

그럼 같은 질문을 하여도 용도에 따라 답변이 조금씩 달라져야겠죠?

이 때 하이퍼 파라미터(Hyper Parameters)의 값이 중요한 역할을 해요.

각 파라미터가 어떤 역할을 담당하는지 확인해볼게요.

 

 

 

Model Chat 모드에서 사용할 GPT 모델을 선택할 수 있어요.
이미 서비스 중인 GPT 모델은 물론, 베타 테스트 중인 모델도 선택할 수 있답니다.
단, 아래 이미지처럼 '베타 테스트' 중인 모델은 하이퍼 파라미터를 지원하지 않아요.
Response format GPT의 응답 형식을 지정할 수 있어요.
단순한 '텍스트(text)' 형식으로 답변을 할 수도 있고 'JSON' 객체에 담아 답변을 할 수도 있죠.
Functions Functions는 GPT 모델이 특정 작업을 수행하도록 돕는 기능이에요.
사용자의 입력을 기반으로 특정 명령이나 함수를 호출해 작업을 자동화 할 수 있어요.
Functions는 Function Call에 대한 포스팅에서 자세히 다뤄볼게요. 
Temperature GPT가 얼마나 창의적인 답변을 하도록 허용할 것인지 설정하는 값이에요.
Temperature는 0부터 2 사이의 값을 설정할 수 있는데, 기본값은 1로 설정되어 있어요.
Temperature의 값이 클수록 예측할 수 없는 창의적인 답변을 하게되요.

만약 맞춤법 검사를 하고 싶으면 Temperature 값을 0에 가깝게 설정하고,
동화나 소설 등을 창작하고 싶으면 2에 가깝게 설정하면 되요.
물론 2에 가까울수록 정말 말도안되는 창작을 할 수도 있어요.
원하는 답변을 얻을 때까지 값을 다양하게 설정해봐야겠죠?
참고로 ChatGPT에 설정된 Temperature는 0.7이라고 해요.
Max tokens GPT 모델의 답변 길이를 제한하는 값이에요.
Max tokens의 값이 작으면 짧게 답변을 하고, 값이 크면 길게 답변하겠죠.

대신 답변되는 글자의 길이(토큰 수)가 길수록 많은 리소스가 사용될 거에요.
결과적으로 비용이 많이 발생한다는 의미에요.
Stop sequences GPT의 답변을 멈추도록 유도하는 기능이에요.
GPT가 답변을 생성하는 과정에서 특정 텍스트나 문자열을 만나면 그 즉시 답변을 멈추도록 설정할 수 있어요.

주로 자동화된 작업에서 답변을 제어하기 위해 많이 사용해요.
그리고 불필요한 정보, 즉 추가적인 정보를 제공하지 않고 싶을 때 사용할 수 있어요.
게다가 특정 형식으로 답변을 마무리할 수 있도록 설정할 수도 있어요.
Top P GPT 모델이 다음 단어를 예측할 때 후보 범위를 제한하는 기능을 해요.
예를 들어 GPT 모델이 '나는 빵을'로 시작하는 답변을 할 때, 그 뒤에 나올 단어나 문장을 예측해요.
    - 뒤에 나올 단어나 문장 : 만든다, 산다, 계산한다, 주문한다, 배달한다, etc.

그리고 Top P의 값에 따라 예측한 단어 또는 문장 중에서 출력 후보들을 선별하죠.
Top P의 값을 0.9로 설정했다면 다음 단어를 선택할 때 확률이 상위 90% 내에 포함되는 후보들만 고려해서 답변을 출력해줍니다.

Top P의 값은 0부터 1 사이의 값을 설정할 수 있어요.
값을 1로 설정하면 모든 단어가 후보가 되는 것이고, 값을 0.5로 설정하면 더 적은 후보들 중에 선택하는 방식이에요.
구체적인 확률 계산 방법은 기회가 되면 다른 곳에서 설명하도록 할게요.
Frequency penalty 같은 단어가 반복적으로 사용되는 것을 제한하기 위해 사용하는 파라미터에요.

자주 사용되는 단어나 토큰에 패널티를 부여하는데,
설정된 값이 클수록 자주 사용되는 단어를 피해 답변을 하게 되요.

Frequency penalty 값은 0에서 1 사이의 값을 설정할 수 있어요.
기본값은 0으로 설정되어 있는데, 이는 패널티를 적용하지 않고 모든 단어가 반복되는 것을 허용한다는 의미에요.
Presence penalty 이미 사용된 단어나 토큰을 다시 사용할 때, 그 단어가 다시 선택되는 것을 제한하기 위해 사용하는 파라미터에요.

'Frequency penalty'는 단어가 얼마나 자주 등장했는지에 따라 패널티를 부여하지만,
'Presence penalty'단어가 등장했는지 여부만 확인해서 패널티를 부여해요.
설정된 값이 클수록 이미 사용된 단어를 피해 답변을 하게 되요.

Presence penalty 값은 0에서 1 사이의 값을 설정할 수 있어요.
기본값은 0으로 설정되어 있는데, 이는 이전에 등장한 모든 단어가 반복되는 것을 허용한다는 의미에요.

 

베타 테스트 중인 모델을 선택하면 하이퍼 파라미터를 설정할 수 없음

 

 

# Top K

 

Top P와 유사한 역할을 하는 파라미터를 하나 더 소개해 줄게요.

바로 Top K에요.

Top P는 확률을 계산해서 상위 n%의 단어 또는 문장 중 선택하도록 설정하는 값이라고 했잖아요.

Top K 확률이 가장 높은 n개의 단어 또는 문장 중 선택하도록 설정하는 값이에요.

Chat 모드에서는 'Top K'를 설정하는 기능이 없기 때문에 이 정도의 개념만 알고 있으면 될 것 같아요.

 

 

# 마무리

 

이번 포스팅에서는 Chat 모드가 무엇인지, 지원하는 하이퍼 파라미터(Hyper Parameters)는 무엇이 있는지

알아봤어요.

 

특히 하이퍼 파라미터 중 'Functions'와 'Temperature'는 중요하기 때문에 개념을 잘 학습해두면 좋아요!

 

이제 플레이그라운드(Playground)에서 어떻게 사용할 수 있는지, 소스코드에 어떻게 적용하여 사용할 수 있는지

학습을 하며 더 자세한 사용 방법에 포스팅 해볼게요.

 

글을 읽으면서 잘못된 점이 있으면 언제든 지적해주세요.

더욱 더 공부를 하고 수정을 해나갈게요.

 

* 참고로 플레이그라운드(Playground)에 대한 정보는 대부분 ChatGPT를 통해 확인한 정보입니다.