Model I/O

LLM은 아주 다양한 일을 처리할 수 있는 것처럼 보이기 때문에 모델 예측에 사용하는 입력 파라미터도 복잡할 것이라 생각할 수 있습니다. 하지만 사실 최근의 Generative Pretrained Transformer (GPT) 모델은 텍스트를 입력으로 텍스트를 생성하는 아주 단순한 기저를 갖고 있습니다. 즉, 일반적으로 생각하는 GPT 모델의 복잡한 산출물은 결국 입력 텍스트를 어떻게 구성하느냐에 달려 있으며 이 작업을 프롬프팅(prompting)이라고 합니다. 이렇게 프롬프트에 지시문을 담아 특정 task를 수행하도록 학습한 모델을 Instruction GPT 라고 하며 ChatGPT도 이 중 하나입니다. LangChain에서는 이러한 일련의 작업을 위해 모델과 그 입출력 구성을 Model I/O 모듈에서 제공합니다.

Prompts

ChatGPT에 역할을 부여하면 성능이 좋다던지, 예시를 보여주면 더 정확한 결과를 낸다던지 하는 얘기를 들어보신 적이 있을 것입니다. 모델이 무엇을 할지는 모두 프롬프트에 의해 결정되며 같은 목적을 갖고 있어도 어떻게 프롬프트를 구성하느냐에 따라 결과는 천차만별입니다. 최근 프롬프트 엔지니어라는 직군이 생겨난 이유이기도 합니다.

LangChain에서는 기본적인 프롬프팅을 위한 기능들을 제공합니다.

class Antonym(BaseModel):
    adjective: str = Field(description="given word")
    antonym: str = Fi

Language Models

LangChain에서는 모델 인터페이스를 LLM과 Chat model 두 형태로 제공합니다. 이 둘은 비슷하지만 API 제공 형식에서 가장 큰 차이가 있으며, 특히 최근 sLLM 모델에서는 text completion을 잘하는 모델과 채팅 형식의 어조를 쓰는 모델을 따로 학습하기도 합니다.

모델 예측을 위해 call 외에도 run, apply, generate, predict 등 입출력 형태가 조금씩 다른 다양한 메서드를 지원합니다.