https://www.inflearn.com/courses/lecture?courseId=333326&type=LECTURE&unitId=212605&subtitleLanguage=ko

일반적으로 적용되는 주요 파라미터는 다음과 같다.

image.png

가장 자주 사용되는건 Temperature 이다. 값이 크면 클수록 다양하지만 예측하기 어려운 출력을 생성한다.

이 값은 사실 Transformers모델에서 이전 토큰을 이용해 다음 토큰을 예측할때, 허용되는 표준편차 값의 설정으로 이 값이 커질수록 더 다양한 예측이 허용되는 행태임.

Top p 값을 작게 사용하면 허용가능한 토큰 범위가 줄어든다. 이것도 다양성과 관련있음.

Penalty 는 새 단어가 등장하게끔 하기 위해 이전에 존재하던 단어들에게 패널티 부여하는 값.

실습해보자.

모델 생성 시점에 파라미터를 전달해 모델을 생성하는 방법이 있다.

from langchain_openai import ChatOpenAI

# 모델 파라미터 설정
params = {
    "temperature": 0.7, #생성된 텍스트의 다양성 조정
    "max_tokens": 100, #생성할 최대 토큰
}

kwargs = {
    "frequency_penalty": 0.5, #이미 등장한 단어 재등장 확률 장려하는 값
    "presence_penalty": 0.5, #새 단어 도입 장려하는 값
    "stop": ["\\n"]
}

# 모델 인스턴스 생성시 설정
model = ChatOpenAI(model = "gpt-4o-mini", **params, **kwargs)

# 모델 호출
question = "태양계에서 가장 큰 행성은?"
response = model.invoke(input=question)

print(response)

image.png

혹은 모델을 호출하는 시점에 파라미터를 전달할 수도 있다.

# 모델 파라미터 설정
params = {
    "temperature": 0.7, # 생성된 텍스트의 다양성 조정
    "max_tokens": 10, #생성할 최대 토큰 수
}

# 모델 인스턴스를 호출할 때 전달
response = model.invoke(input=question, **params)

#문자열 출력
print(response.content)

image.png

최대 토큰이 10개라 짤렸다.

또는 bind() 메서드를 이용해 체인에서 모델을 호출할때 파라미터를 전달할 수 있다.