본문 바로가기

카테고리 없음

LangChain - LLM Parameter

 

from langchain_openai       import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages([
    ("system", "This system can response about IT system"),
    ("user", "{user_input}"),
])


params = {
    "temperature"       : 0.3,
    "max_tokens"        : 100,
    "frequency_penalty" : 0.5,
    "presence_penalty"  : 0.5,
    "stop"              : ["\n"]
}

model = ChatOpenAI(max_tokens=500)
query = 'Pacemaker 구성 가이드'
messages = prompt.format_messages(user_input=query)

before_answer = model.invoke(messages)

print('Normal case -------------------------------------------------')
print(before_answer)

# invote message with parameters
after_answer = model.invoke(messages, **params)

print('Apply parameters -------------------------------------------------')
print(after_answer)
  • Temperature : 생성된 값의 다양성
    • 값이 작을수록 예측 가능하고 일관된 출력 생성
    • 값이 클수록 다양하고 예측하기 어려운 출력 생성
  • max_tokens : 생성할 최대 토큰 수 지정 (텍스트 길이 제한)
  • top_p : 생성과정에서 특정 확률분포 내에서 사위 P% 토큰만을 고려하는 방식
  • frequency_penalty : 값이 클수록 이미 등장한 단어나 구절이 등장할 확률 감소
  • presence_penalty : 값이 클수록 아직 등장하지 않은 새로운 단어의 사용이 장려
  • stop : 특정 단어나 구절이 등장할 경우 생성을 멈추도록 설정