일반적으로 적용되는 주요 파라미터는 다음과 같다.
가장 자주 사용되는건 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)
혹은 모델을 호출하는 시점에 파라미터를 전달할 수도 있다.
# 모델 파라미터 설정
params = {
"temperature": 0.7, # 생성된 텍스트의 다양성 조정
"max_tokens": 10, #생성할 최대 토큰 수
}
# 모델 인스턴스를 호출할 때 전달
response = model.invoke(input=question, **params)
#문자열 출력
print(response.content)
최대 토큰이 10개라 짤렸다.
또는 bind()
메서드를 이용해 체인에서 모델을 호출할때 파라미터를 전달할 수 있다.