이 글은 대형 언어 모델(LLM)의 구성 설정에 대한 개요를 제공하며, 큰 컨텍스트 윈도우의 장단점을 심층적으로 다룹니다. 또한 이러한 설정을 조정할 때 다양한 작업에서 LLM 출력에 어떤 영향을 미치는지 보여주는 실용적인 예제를 제공합니다.
소개
대형 언어 모델은 훈련 데이터, 프롬프트, 설정을 바탕으로 확률을 사용해 가장 가능성 높은 다음 토큰이나 단어를 결정합니다. 이전 논의에서는 프롬프팅 기술이 LLM에 인간과 유사한 추론을 주입하는 방법을 강조했으며, Retrieval Augmented Generation과 같은 기술은 외부 지식 소스에 접근할 수 있게 하여 LLM의 능력을 향상시킵니다.
그럼에도 불구하고, 제공된 컨텍스트와 프롬프트와 관계없이 LLM 설정이나 파라미터를 조정하는 것은 최종 출력에 상당한 영향을 미칠 수 있습니다. 이러한 설정을 마스터하는 것은 대형 언어 모델을 효과적으로 활용하고 원하는 동작으로 이끄는 데 중요합니다. 이 글에서는 temperature, top P, max tokens, 컨텍스트 윈도우와 같은 기본적인 LLM 파라미터를 살펴보고, 이들이 모델 출력에 어떻게 영향을 미치는지 설명합니다.
LLM Temperature란 무엇인가?
간단히 말해, temperature는 0에서 1까지의 값으로 설정되는 파라미터로, 대형 언어 모델(LLM)이 생성하는 응답의 무작위성 수준을 결정합니다. temperature가 높을수록 더 다양하고 창의적인 출력이 나오며, 낮을수록 더 보수적이고 예측 가능한 응답이 생성됩니다.
temperature를 0으로 설정하면 동일한 프롬프트에 대해 LLM이 항상 동일한 출력을 생성합니다. temperature를 높이면 모델의 창의성이 향상되어 더 넓은 범위의 출력을 얻을 수 있습니다. 그러나 지나치게 높은 temperature는 일관성이나 의미가 없는 출력으로 이어질 수 있습니다.
기본 temperature 설정은 모델 유형, API 또는 웹 인터페이스를 통해 접근하는지 여부 등 요인에 따라 LLM마다 다릅니다. 예를 들어, ChatGPT-3.5 및 4에 대한 논의에서는 일반적으로 기본 temperature 설정이 약 0.7에서 0.8 정도로 언급되지만, 정확한 값은 공개되지 않는 경우가 많습니다.
Temperature 설정
temperature 파라미터는 일반적으로 0에서 1 사이의 숫자 값(때로는 이 범위를 초과할 수도 있음)으로, 모델이 단어 선택에서 얼마나 위험을 감수하거나 보수적으로 행동할지에 영향을 줍니다. 이는 다음 단어의 확률 분포를 조정합니다.
다음은 대형 언어 모델의 다양한 temperature 파라미터에 대한 설명입니다:

낮은 Temperature (<1.0) — 값이 1보다 낮게 설정되면 모델의 출력이 더 결정론적이고 반복적인 경향을 보입니다. 낮은 temperature는 가장 가능성 높은 다음 단어를 선택하는 데 우선순위를 두어 출력 변동성을 줄입니다. 이는 예측 가능하고 보수적인 응답을 얻는 데 유리할 수 있지만, 덜 창의적이거나 다양한 텍스트를 생성할 수 있어 모델이 더 기계적인 어조를 가질 수 있습니다.
높은 Temperature (>1.0) — temperature를 1보다 높게 설정하면 생성된 텍스트의 무작위성이 증가합니다. 모델은 시퀀스의 다음 단어로 가능성이 낮은 단어를 선택하는 경향이 더 커져 더 다양하고 때로는 더 창의적인 출력이 생성됩니다. 그러나 이러한 높은 무작위성은 오류나 무의미한 응답으로 이어질 수 있습니다. 모델이 훈련 데이터의 확률 분포에 덜 제약을 받기 때문입니다.
Temperature 1.0 — 이는 종종 기본 설정으로, 무작위성과 결정론 사이의 균형을 맞추는 것을 목표로 합니다. 모델은 훈련 중에 학습된 확률 분포를 활용하여 지나치게 예측 가능하지도 않고 너무 무작위적이지도 않은 텍스트를 생성합니다.
LLM Temperature 모델링의 사용 사례
모델링에서 temperature 파라미터를 미세 조정하는 것은 무작위성과 결정론 사이의 적절한 균형을 찾는 것을 포함하며, 이는 생성된 텍스트의 품질이 사용자 경험이나 의사 결정 과정에 깊은 영향을 미치는 애플리케이션에서 중요한 측면입니다.
실제 시나리오에서 temperature 설정의 선택은 원하는 결과에 따라 달라집니다. 창의성이나 다양한 응답을 요구하는 작업은 더 높은 temperature의 이점을 볼 수 있는 반면, 정확성이나 사실적 정확성이 필요한 작업은 일반적으로 더 낮은 temperature를 선호합니다.
다음은 LLM 모델의 일반적인 사용 사례와 권장 temperature 설정입니다:
창의적 글쓰기 — 더 높은 temperature를 사용하면 창의성을 자극하고 다양한 출력을 얻을 수 있어, 작가의 블록을 극복하거나 혁신적인 콘텐츠 아이디어를 생성하는 데 유용합니다.
기술 문서 — 콘텐츠의 정확성과 신뢰성을 보장하기 위해 더 낮은 temperature가 선호됩니다. 기술 문서에서는 정확성과 일관성이 가장 중요합니다.
고객 상호작용 — temperature를 조정하면 챗봇이나 가상 비서의 응답을 조직의 브랜드와 어조에 맞추고, 타겟 청중의 선호도를 충족시키도록 조정할 수 있습니다.
Top P란 무엇인가?
Top P(또는 nucleus sampling)는 LLM 출력의 무작위성에 영향을 미치는 또 다른 파라미터입니다. 이 파라미터는 LLM이 출력을 생성하는 데 사용하는 후보 집합에 토큰을 포함할 확률 임계값을 결정합니다. 이 파라미터의 값이 낮을수록 LLM이 더 정확하고 사실 기반의 응답을 생성하고, 값이 높을수록 생성된 출력의 무작위성과 다양성이 증가합니다.
예를 들어, top P 파라미터를 0.1로 설정하면 LLM의 출력이 결정론적이고 집중된 결과를 제공합니다. 반면, top P를 0.8로 높이면 덜 제약되고 더 창의적인 응답이 가능해집니다.
Max Tokens란 무엇인가?
temperature와 top P는 LLM 응답의 무작위성을 조절하지만, 모델이 수용하는 입력 크기나 생성하는 출력에 대한 제약을 설정하지는 않습니다. 반면, 컨텍스트 윈도우와 max tokens라는 두 가지 다른 파라미터는 LLM 성능과 데이터 처리 능력에 직접적인 영향을 미칩니다.
컨텍스트 윈도우는 토큰(전체 단어, 하위 단어 또는 문자일 수 있음) 단위로 측정되며, LLM이 한 번에 처리할 수 있는 단어 수를 결정합니다. 반면, max tokens 파라미터는 LLM에 프롬프트로 제공된 입력과 해당 프롬프트에 대한 응답으로 LLM이 생성한 출력 토큰을 모두 포함하는 총 토큰 수의 상한을 설정합니다.

컨텍스트 윈도우 이해하기
일반적으로 대형 언어 모델(LLM)의 컨텍스트 윈도우 크기는 모델이 출력을 생성할 때 유지하고 활용할 수 있는 정보의 양을 결정합니다. 더 큰 컨텍스트 윈도우는 LLM이 더 많은 컨텍스트를 기억할 수 있게 하여, 더 일관되고 정확한 응답으로 이어집니다. 그러나 입력이 컨텍스트 윈도우를 초과하면 모델은 이전 정보를 “잊기” 시작하여, 덜 관련성 있고 품질이 낮은 출력이 발생할 수 있습니다.
또한, 컨텍스트 윈도우의 크기는 프롬프트 엔지니어링 기술에 제약을 가합니다. Tree-of-Thoughts나 Retrieval Augmented Generation(RAG)과 같은 방법은 효과적으로 작동하기 위해 큰 컨텍스트 윈도우가 필요합니다. 이는 고품질 응답을 생성하기 위해 모델에 충분한 정보를 제공하는 데 의존하기 때문입니다.
LLM이 발전함에 따라 컨텍스트 윈도우도 확장되어, 한 번에 더 많은 토큰을 처리할 수 있게 됩니다. 예를 들어, GPT-4는 컨텍스트 제한이 8,192 토큰인 반면, GPT-4 Turbo와 같은 최신 모델은 최대 128K 토큰의 컨텍스트 윈도우를 지원합니다. 마찬가지로 Anthropic은 Claude 2.1 버전에서 Claude 도구의 컨텍스트 제한을 9,000 토큰에서 200K 토큰으로 늘렸습니다.
큰 컨텍스트 윈도우가 항상 더 나은 출력을 제공하지는 않는 경우
더 큰 컨텍스트 윈도우는 LLM이 더 긴 입력을 처리할 수 있게 하여 잠재적으로 더 관련성 높은 응답을 제공하지만, 컨텍스트 제한을 확장하는 것이 항상 유리한 것은 아닙니다. 고려해야 할 몇 가지 단점이 있습니다.
첫째, 더 큰 입력 데이터셋은 LLM이 응답을 생성하는 데 더 많은 시간이 필요합니다. 더 큰 컨텍스트 윈도우를 처리하는 데 따른 계산 복잡성 증가가 이 문제를 더욱 악화시킵니다.
둘째, 더 큰 컨텍스트 윈도우와 관련된 계산 비용이 비례적으로 증가합니다.
또한 Liu et al. (2023)의 연구는 또 다른 문제점을 강조합니다: 대형 언어 모델은 긴 입력 컨텍스트 내에서 정보를 효과적으로 접근하는 데 어려움을 겪는 경우가 많습니다. 그들의 연구에 따르면 LLM은 관련 정보가 입력의 시작이나 끝에 위치할 때 최적의 성능을 보입니다. 반면, 긴 컨텍스트의 중간에 있는 정보를 활용하면 모델 성능이 저하됩니다.
기타 LLM 설정
언어 모델의 출력에 영향을 미칠 수 있는 몇 가지 다른 설정으로는 중지 시퀀스(stop sequences), 빈도 패널티(frequency penalties), 존재 패널티(presence penalties)가 있습니다.
중지 시퀀스
중지 시퀀스는 모델이 출력 생성을 중단해야 하는 시점을 지정하여 콘텐츠 길이와 구조를 제어할 수 있게 합니다. 예를 들어, AI에게 이메일 작성을 프롬프트할 때 “Best regards,” 또는 "Sincerely,"를 중지 시퀀스로 설정하면 모델이 끝 인사 전에 멈추도록 하여 간결하고 집중된 이메일을 생성합니다. 중지 시퀀스는 이메일, 번호 목록, 대화 등 구조화된 형식을 따를 것으로 예상되는 출력을 생성할 때 유용합니다.
빈도 패널티
빈도 패널티는 토큰이 나타나는 빈도에 따라 패널티를 부여하여 생성된 텍스트의 반복을 억제하는 설정입니다. 텍스트에서 더 자주 발생하는 토큰은 AI가 다시 사용할 가능성이 낮아집니다.
존재 패널티
존재 패널티는 빈도 패널티와 유사하게 작동하지만, 비례적으로 패널티를 부여하는 대신 토큰이 텍스트에 나타났는지 여부에 따라 고정된 패널티를 적용합니다.

출처: novita.ai
캐릭터 가져오기(선택 사항)
일부 LLM에는 특별한 설정이 있습니다. 예를 들어, 캐릭터 가져오기 기능이 있습니다. 캐릭터 카드를 가져오면 좋아하는 캐릭터와 대화할 수 있습니다. 캐릭터가 누구든 상관없습니다.

novita.ai LLM의 캐릭터 가져오기 기능
LLM 설정을 조정하는 방법?
앞서 살펴본 것처럼, temperature, top P, max tokens와 같은 파라미터를 조정하면 LLM을 미세 조정하여 더 관련성 높고 정확한 결과를 생성할 수 있습니다. temperature나 top P를 0.1 또는 0.2와 같은 값으로 낮추면 무작위성이 줄어들어 코드 생성이나 데이터 분석 스크립트와 같은 작업에 적합한 집중된 답변을 얻을 수 있습니다. 반대로 temperature나 top P 파라미터를 0.7 또는 0.8 정도로 높이면 더 창의적이고 다양한 출력이 가능해져 창의적 글쓰기나 스토리텔링에 이상적입니다. 일반적으로 temperature 또는 top P 파라미터 중 하나만 수정하고 동시에 수정하지 않는 것이 좋습니다.
한편, max tokens 파라미터를 변경하면 LLM 출력의 길이를 사용자 지정할 수 있습니다. 이러한 유연성은 챗봇을 위한 짧은 형식의 응답이나 기사를 위한 긴 형식의 콘텐츠를 생성하도록 LLM을 조정할 때 유용합니다. 또한 max tokens 파라미터를 조정하면 소프트웨어 개발을 위한 코드 생성이나 긴 문서 요약과 같은 시나리오에서 유용할 수 있습니다.
결론
요약하면, temperature, top P, 최대 길이 등과 같은 설정에 대한 숙련도를 갖추는 것은 언어 모델을 사용할 때 중요합니다. 이러한 파라미터를 통해 모델 출력을 정밀하게 제어하여 특정 작업이나 애플리케이션에 맞게 조정할 수 있습니다. 이들은 응답의 무작위성, 길이, 반복 빈도와 같은 요소를 제어하며, 모두 AI와의 상호작용을 향상시키는 데 기여합니다.
novita.ai는 무한한 창의성을 위한 올인원 플랫폼으로, 100개 이상의 API에 접근할 수 있습니다. 이미지 생성, 언어 처리, 오디오 향상, 비디오 조작에 이르기까지, 저렴한 종량제 요금제로 GPU 유지 관리의 번거로움 없이 자체 제품을 구축할 수 있습니다. 무료로 사용해 보세요.
추천 자료
