dspy.LM — 언어 모델 클라이언트 구성
dspy.LM — 언어 모델 클라이언트 구성 (LM / Client)
dspy.LM(model: str, model_type: Literal['chat', 'text', 'responses'] = 'chat', temperature: float | None = None, max_tokens: int | None = None, cache: bool = True, callbacks: list[BaseCallback] | None = None, num_retries: int = 3, provider: Provider | None = None, finetuning_model: str | None = None, launch_kwargs: dict[str, Any] | None = None, train_kwargs: dict[str, Any] | None = None, use_developer_role: bool = False, **kwargs)
언어 모델을 DSPy 모듈과 함께 쓰기 위해 만들어진 클라이언트 객체예요. chat 또는 text 완성 요청을 지원하는 언어 모델 인스턴스를 만들어 줘요. DSPy 프로그램에 어떤 LLM을 쓸지는 이 dspy.LM으로 한 곳에서 정해요.
파라미터
| 이름 | 타입 | 설명 | 기본값 |
|---|---|---|---|
model |
str |
사용할 모델. "llm_provider/llm_name" 형태의 문자열로, LiteLLM이 지원하는 형식이에요. 예: "openai/gpt-4o" |
필수 |
model_type |
Literal['chat', 'text', 'responses'] |
모델의 타입. 예를 들어 "chat", "text", "responses" |
'chat' |
temperature |
float | None |
응답 생성 시 사용할 샘플링 온도 | None |
max_tokens |
int | None |
응답당 생성할 최대 토큰 수 | None |
cache |
bool |
성능 개선과 비용 절감을 위해 응답을 캐시해 재사용할지 | True |
callbacks |
list[BaseCallback] | None |
각 요청 전후에 실행할 콜백 함수 목록 | None |
num_retries |
int |
네트워크 오류·속도 제한 등으로 일시 실패 시 재시도할 횟수. 지수 백오프로 재시도해요 | 3 |
provider |
Provider | None |
사용할 프로바이더. 지정하지 않으면 모델로부터 추론돼요 | None |
finetuning_model |
str | None |
파인튜닝할 모델. 일부 프로바이더는 파인튜닝용 모델이 추론용과 달라요 | None |
rollout_id |
같은 요청의 캐시 항목을 구분하기 위한 선택적 정수. 값이 다르면 DSPy의 캐시를 우회하되, 같은 입력·롤아웃 ID의 이후 호출은 계속 캐시돼요. rollout_id는 temperature가 0이 아닐 때만 생성에 영향을 줘요. 이 인자는 프로바이더로 보내기 전에 제거돼요 |
필수 | |
**kwargs |
그 외 추가 옵션(최신 BaseLM 인터페이스의 옵션 등) |
어떻게 쓰나요
보통 모듈에 서명을 넘길 때, 어떤 LM을 쓸지는 전역 또는 개별 설정으로 지정해요. dspy.LM 인스턴스를 만들어 모듈에 할당하면, 그 모듈의 모든 predictor가 해당 클라이언트로 요청을 보내게 돼요.
import dspy
lm = dspy.LM("openai/gpt-4o-mini")
program = dspy.Predict("question -> answer")
program.set_lm(lm)
여기서 "openai/gpt-4o-mini"처럼 provider/model 형태로만 지정하면 LiteLLM이 프로바이더와 클라이언트를 알아서 연결해 줘요. 프로바이더별 API 키·엔드포인트는 환경 변수나 **kwargs로 넘기게 돼요.
더 알아보기 (Learn more)
- BaseLM — 임베딩·채팅·텍스트 요청을 아우르는 상위 인터페이스
- LM 설정 직관적으로 이해하기 — 어떤 모델을 어떻게 고르는지
- 커스텀 LM 엔진 — 나만의 LM 클라이언트 만들기
- dspy.Predict — LM 요청을 실제로 만드는 기본 모듈