앞 글에서는 Temperature, Top-P, Max Tokens, Stop Sequence, Penalty 같은 모델 매개변수가 각각 무엇을 의미하는지 정리했다. 이번 글에서는 한 단계 더 나아가, 같은 프롬프트를 사용하더라도 매개변수 설정에 따라 GPT의 답변이 어떻게 달라지는지 직접 비교해보려고 한다.
모델 매개변수는 단순히 옵션을 바꾸는 기능이 아니다. 실제 서비스에서는 답변의 안정성, 창의성, 길이, 반복 정도, 출력 형식을 조절하는 핵심 도구다. 따라서 개념만 아는 것보다, 직접 실험해보고 결과를 비교하는 과정이 훨씬 중요하다.
이번 글의 핵심
하나의 프롬프트를 고정해두고, Temperature, Top-P, Max Tokens, Stop Sequence, Penalty 값을 하나씩 바꿔보며 답변의 정확성, 다양성, 일관성, 길이, 반복도가 어떻게 달라지는지 비교한다.

1. 실험 목표
이번 실험의 목표는 단순히 “어떤 값이 좋다”를 찾는 것이 아니다. 실제로 중요한 것은 어떤 작업에서 어떤 매개변수가 어떤 방향으로 영향을 주는지 이해하는 것이다.
예를 들어 코드 생성이나 문서 요약처럼 정확성이 중요한 작업에서는 답변이 너무 자유롭게 튀면 곤란하다. 반대로 블로그 제목 추천이나 아이디어 발상처럼 다양한 표현이 필요한 작업에서는 너무 안정적인 답변만 나오면 재미가 없다.
| 실험 항목 | 확인하고 싶은 것 | 주요 평가 기준 |
|---|---|---|
| Temperature | 답변이 얼마나 안정적이거나 창의적으로 바뀌는가 | 다양성, 일관성 |
| Top-P | 후보 단어 범위를 제한했을 때 답변이 어떻게 바뀌는가 | 안정성, 표현 다양성 |
| Max Tokens | 출력 길이 제한이 답변 품질에 어떤 영향을 주는가 | 길이, 완성도 |
| Stop Sequence | 원하는 지점에서 답변을 멈출 수 있는가 | 형식 제어 |
| Penalty | 반복 표현을 얼마나 줄일 수 있는가 | 반복도, 표현 다양성 |
주의할 점
매개변수를 실험할 때는 한 번에 여러 값을 바꾸지 않는 것이 좋다. 예를 들어 Temperature와 Top-P를 동시에 바꾸면 결과가 달라졌을 때 어떤 값 때문인지 판단하기 어렵다. 따라서 실험에서는 하나의 매개변수만 바꾸고 나머지는 고정하는 방식이 가장 좋다.
2. 공통 프롬프트 설정
실험에서는 하나의 공통 프롬프트를 사용한다. 프롬프트가 계속 바뀌면 매개변수의 영향인지, 질문 자체의 영향인지 구분하기 어렵기 때문이다.
이번 실험에서는 다음과 같은 프롬프트를 사용한다고 가정한다.
데이터 엔지니어가 하는 일을 처음 배우는 사람에게 쉽게 설명해줘.
비유를 사용하고, 5문장 이내로 답해줘.
이 프롬프트를 선택한 이유는 간단하다. 설명형 답변이면서도 비유를 요구하기 때문에 안정성과 창의성의 차이를 비교하기 좋다. 또 “5문장 이내”라는 조건이 들어 있어 Max Tokens나 Stop Sequence 실험에서도 변화를 관찰하기 쉽다.
기본 설정값
실험의 기준이 되는 기본값은 다음과 같이 둔다.

{
"temperature": 0.7,
"top_p": 1.0,
"max_tokens": 300,
"frequency_penalty": 0,
"presence_penalty": 0
}
3. Temperature 실험
Temperature는 답변의 무작위성과 창의성을 조절하는 값이다. 값이 낮으면 모델은 확률이 높은 표현을 더 강하게 선택하고, 값이 높으면 더 다양한 표현을 선택할 가능성이 커진다.
같은 프롬프트에 대해 Temperature만 바꿔보자.



| 실험 | Temperature | 예상 결과 |
|---|---|---|
| 실험 A | 0.2 | 안정적이고 정형화된 답변 |
| 실험 B | 0.5 | 자연스럽고 적당히 다양한 답변 |
| 실험 C | 0.8 | 창의적이지만 다소 산만할 수 있는 답변 |
예상 응답 차이
Temperature가 낮을 때는 데이터 엔지니어를 “데이터를 수집하고 정리하는 사람”처럼 가장 일반적인 표현으로 설명할 가능성이 높다. 반면 Temperature가 높아지면 “공장의 물류 관리자”, “데이터 도로를 만드는 사람”, “정보의 수도관을 설계하는 사람”처럼 다양한 비유가 나올 수 있다.
| Temperature | 답변 느낌 | 해석 |
|---|---|---|
| 0.2 | 정확하고 무난함 | 정보 전달용 답변에 적합 |
| 0.5 | 자연스럽고 읽기 좋음 | 일반 챗봇이나 블로그 초안에 적합 |
| 0.8 | 표현이 다양하지만 흔들릴 수 있음 | 아이디어 발상에는 좋지만 정확성 검토 필요 |
4. Top-P 실험
Top-P는 모델이 다음 단어를 고를 때 후보로 둘 단어의 범위를 조절한다. Temperature가 확률 분포의 모양을 바꾸는 값이라면, Top-P는 후보 명단에 누구까지 올릴지 정하는 값에 가깝다.
이번에는 Temperature를 0.7로 고정하고 Top-P만 바꿔본다.



| 실험 | Top-P | 예상 결과 |
|---|---|---|
| 실험 A | 0.3 | 후보 단어가 좁아져 보수적인 답변 |
| 실험 B | 0.8 | 안정성과 다양성의 균형 |
| 실험 C | 1.0 | 넓은 후보군에서 더 자유로운 답변 |
Top-P가 낮으면 모델은 가능성이 높은 표현 위주로만 답변한다. 그래서 설명은 안정적이지만 비유나 표현이 단조로울 수 있다. Top-P가 높으면 더 많은 후보를 고려하기 때문에 표현이 자연스럽고 다양해질 수 있지만, 작업에 따라 답변 방향이 조금 흔들릴 수도 있다.
실험 팁
Temperature와 Top-P는 둘 다 다양성에 영향을 준다. 그래서 두 값을 동시에 크게 바꾸면 결과 해석이 어려워진다. 처음 실험할 때는 Temperature를 고정한 뒤 Top-P만 바꿔보는 것이 좋다.

5. Max Tokens 실험
Max Tokens는 모델이 생성할 수 있는 최대 출력 길이를 제한한다. 간단히 말해, 답변지를 얼마나 길게 쓸 수 있는지 정하는 값이다.
이번에는 Temperature와 Top-P를 고정하고 Max Tokens만 바꿔본다.
| 실험 | Max Tokens | 예상 결과 |
|---|---|---|
| 실험 A | 50 | 매우 짧거나 중간에 끊길 수 있음 |
| 실험 B | 300 | 조건에 맞는 적당한 길이의 답변 |
| 실험 C | 1000 | 더 긴 설명이 가능하지만 불필요하게 길어질 수 있음 |
Max Tokens가 너무 작으면 답변이 중간에 끊길 수 있다. 반대로 너무 크게 잡으면 답변이 필요 이상으로 길어질 수 있고, 출력 토큰이 늘어나 비용도 증가할 수 있다.
Max Tokens는 답변 품질을 직접 높이는 값이라기보다, 답변의 길이와 비용을 관리하는 값에 가깝다. 짧은 챗봇 응답은 작게, 긴 문서 생성은 크게 설정하는 식으로 목적에 맞게 조정해야 한다.
6. Stop Sequence 실험
Stop Sequence는 모델이 특정 문자열을 만나면 답변 생성을 멈추게 하는 설정이다. 쉽게 말하면 “여기까지만 말하고 멈춰”라고 알려주는 종료 신호다.
이번에는 프롬프트를 조금 바꿔서 목록 생성 상황을 실험해보자.
데이터 엔지니어 공부를 시작할 때 알아야 할 개념을 번호 목록으로 10개 추천해줘.
목록을 정확히 10개까지만 받고 싶다면 Stop Sequence에 11.을 넣을 수 있다. 그러면 모델이 11번째 항목을 생성하려는 순간 그 앞에서 출력을 멈출 수 있다.
{
"stop": ["11."]
}


| Stop Sequence | 결과 | 활용 상황 |
|---|---|---|
\n |
줄바꿈이 나오기 전 멈춤 | 한 줄 답변이 필요할 때 |
### |
구분자 앞에서 멈춤 | 문서 구간을 나눌 때 |
11. |
10번까지 출력 후 멈춤 | 목록 개수를 제한할 때 |
Stop Sequence를 너무 일반적인 문자로 설정하면 답변이 예상보다 빨리 끊길 수 있다. 예를 들어 마침표 하나를 Stop Sequence로 지정하면 첫 문장이 끝나자마자 답변이 멈출 수 있다.
7. Penalty 실험
Penalty는 모델이 같은 단어나 표현을 반복하는 정도를 조절하는 설정이다. 대표적으로 Frequency Penalty와 Presence Penalty가 있다.
이번에는 반복이 잘 발생할 수 있는 프롬프트를 사용해보자.
생성형 AI의 장점을 8가지 설명해줘.
각 항목은 한 문장으로 작성해줘.
Frequency Penalty 실험



Frequency Penalty는 이미 여러 번 나온 단어일수록 다시 나올 확률을 낮춘다고 하지만, 해당 프롬프트로는 확인이 어렵다.
다만, 같은 표현이 반복되는 것을 줄이고 싶을 때 사용한다.
{
"frequency_penalty": 0.8,
"presence_penalty": 0
}
Presence Penalty 실험
Presence Penalty는 단어가 몇 번 나왔는지보다, 한 번이라도 등장했는지를 기준으로 다시 등장할 확률을 낮춘다. 그래서 새로운 표현이나 새로운 관점을 유도하는 데 더 가깝다.


{
"frequency_penalty": 0,
"presence_penalty": 0.8
}
| 구분 | 주요 효과 | 실험에서 볼 포인트 |
|---|---|---|
| Frequency Penalty | 반복 단어 감소 | 같은 표현이 덜 반복되는지 확인 |
| Presence Penalty | 새로운 표현 유도 | 관점이나 단어 선택이 다양해지는지 확인 |
8. 결과 비교표
실험 결과는 감상으로만 남기면 나중에 다시 보기 어렵다. 따라서 평가 기준을 정해 표로 정리하는 것이 좋다.
이번 실험에서는 다음 기준으로 결과를 비교한다.
- 정확성: 질문의 의도에 맞게 답했는가
- 다양성: 표현이나 관점이 다양하게 나왔는가
- 일관성: 답변 흐름이 안정적인가
- 길이: 원하는 분량에 맞는가
- 반복도: 같은 단어나 문장이 반복되지 않는가
| 실험 항목 | 설정값 | 정확성 | 다양성 | 일관성 | 길이 | 반복도 | 메모 |
|---|---|---|---|---|---|---|---|
| Temperature 낮음 | 0.2 | 높음 | 낮음 | 높음 | 적절 | 보통 | 안정적이지만 표현이 단조로움 |
| Temperature 높음 | 1.2 | 보통 | 높음 | 낮음 | 가변적 | 낮음 | 비유는 다양하지만 산만할 수 있음 |
| Top-P 낮음 | 0.3 | 높음 | 낮음 | 높음 | 적절 | 보통 | 후보 표현이 좁아져 보수적임 |
| Max Tokens 낮음 | 50 | 보통 | 보통 | 보통 | 짧음 | 낮음 | 중간에 끊길 수 있음 |
| Penalty 적용 | 0.8 | 보통 | 높음 | 보통 | 적절 | 낮음 | 반복 표현 감소 |
9. 내가 느낀 설정별 차이
직접 실험해보면 매개변수는 각각 따로 움직이는 것처럼 보이지만, 실제로는 서로 연결되어 있다는 느낌을 받게 된다. 특히 Temperature와 Top-P는 둘 다 답변의 다양성과 관련이 있기 때문에 함께 이해하는 것이 중요하다.
Temperature는 답변의 말투나 표현의 자유도를 바꾸는 느낌이 강했고, Top-P는 모델이 고려하는 후보 범위를 조절해 답변의 방향을 좁히거나 넓히는 느낌에 가까웠다.
Max Tokens는 답변의 창의성보다 길이와 비용을 관리하는 설정으로 이해하는 것이 좋았다. Stop Sequence는 특정 형식을 강제로 맞추고 싶을 때 유용했고, Penalty는 반복 표현이 거슬릴 때 확실히 효과를 확인하기 좋은 설정이었다.
| 매개변수 | 실험 후 느낀 핵심 |
|---|---|
| Temperature | 답변의 자유도와 창의성을 조절하는 느낌 |
| Top-P | 후보 단어의 범위를 조절해 답변의 방향성을 조절하는 느낌 |
| Max Tokens | 답변 길이와 비용을 관리하는 실무형 설정 |
| Stop Sequence | 출력 형식을 원하는 지점에서 끊는 제어 장치 |
| Penalty | 반복을 줄이고 표현을 다양하게 만드는 보정 장치 |
실무에서는 “무조건 좋은 설정값”은 없다. 정확한 답변이 필요한지, 창의적인 답변이 필요한지, 짧은 답변이 필요한지, 정해진 형식이 필요한지에 따라 설정값을 다르게 잡아야 한다.
10. 정리
이번 실험을 통해 같은 프롬프트라도 매개변수 설정에 따라 GPT의 답변이 꽤 다르게 달라진다는 것을 확인할 수 있다. Temperature와 Top-P는 답변의 다양성과 안정성에 영향을 주고, Max Tokens는 답변 길이와 비용을 조절한다. Stop Sequence는 원하는 지점에서 답변을 멈추게 하며, Penalty는 반복 표현을 줄이는 데 도움을 준다.
이 실험에서 가장 중요한 태도는 값을 외우는 것이 아니라, 목적에 맞게 조정하고 비교하는 것이다. 처음에는 Playground에서 값을 하나씩 바꿔보며 결과를 확인하고, 이후 API나 SDK 코드에서 같은 설정을 적용해보면 된다.
전체 흐름 한 번에 정리
| 단계 | 해야 할 일 | 핵심 포인트 |
|---|---|---|
| 1 | 공통 프롬프트를 정한다 | 질문이 바뀌면 실험 결과 비교가 어려움 |
| 2 | 기본 설정값을 정한다 | 기준점이 있어야 변화가 보임 |
| 3 | 하나의 매개변수만 바꾼다 | 원인과 결과를 분명히 보기 위함 |
| 4 | 답변 결과를 저장한다 | 나중에 비교하기 위해 필요 |
| 5 | 정확성, 다양성, 일관성, 길이, 반복도를 평가한다 | 감상이 아니라 기준으로 비교 |
| 6 | 작업 목적에 맞는 설정을 고른다 | 정답값이 아니라 목적에 맞는 값이 중요 |
정리하면, 모델 매개변수 실험은 GPT를 더 잘 이해하기 위한 가장 좋은 방법이다. 같은 질문을 던지고 설정값만 바꿔보면, 모델이 어떻게 답변을 생성하는지 훨씬 직관적으로 볼 수 있다.