본문 바로가기

카테고리 없음

[LangChain] 랭체인의 Components(구성요소) - Chat model, LLM

 

 

 

1. Langchain의 구성요소 Chat model과 LLM

  • LangChain 모델 유형에는 Chat model과 LLM이 있습니다. 두 클래스는 각각 다른 형태의 입력과 출력을 다루는 언어 모델입니다.
  • 이 두 모델은 각기 다른 특성과 용도를 가지고 있기 때문에 사용자 요구사항에 맞추어 선택하여 사용하면 되지만 Chat model 사용을 권장합니다.
  • 일반적으로 LLM은 주로 단일 요청에 대한 복잡현 출력을 생성하는데 적합하며, Chat model은 사용자와 상호작용을 통한 연속적인 대화 관리에 적합합니다.

 

2. Chat models

  • 일련의 메시지를 입력으로 사용하고 채팅 메시지를 출력으로 반환하는 언어 모델이며 최신 모델(이전 모델은 일반 텍스트를 사용하는 LLM 컴포넌트)
  • 채팅 모델은 대화 메시지에 고유한 역할을 할당하여 AI, user, system message와 같은 지침과 메시지를 구분할 수 있도록 지원합니다.
  • 기본 모델은 메시지 입력, 메시지 출력이지만, LangChain 래퍼를 사용하면 문자열을 입력으로 받을 수 있습니다. 즉, LLM 대신 채팅 모델을 쉽게 사용할 수 있습니다.
  • 문자열이 입력으로 전달되면 HumanMessage 변환된 다음 기본 모델로 전달됩니다.
  • LangChain은 채팅 모델을 호스팅하지 않고 타사 통합에 의존합니다.(Langchain 자체 채팅 모델x, GPT, Gemmini 같은 타사 채팅모델 사용)

 

1) Chat models 구성 시 표준화된 매개 변수

  • model: 모델의 이름
  • temperature: 샘플링 온도
  • timeout: 요청 시간 제한
  • max_tokens: 생성할 최대 토큰 수
  • stop: 기본 중지 시퀀스
  • max_retries: 요청을 재시도할 최대 횟수
  • api_key: 모델 공급자의 API 키
  • base_url: 요청을 보낼 엔드포인트

 

2) 유의사항

  • 표준 매개변수는 의도된 기능을 가진 매개변수를 노출하는 모델 공급자에게만 적용됩니다. 예를 들어 일부 공급자는 최대 출력 토큰에 대한 구성을 노출하지 않으므로 이러한 공급자에서는 max_tokens를 지원할 수 없습니다.
  • 표준 파라미터는 현재 자체 통합 패키지가 있는 통합(예: langchain-openai, langchain-anthropic 등)에만 적용되며, langchain-community의 모델에는 적용되지 않습니다.
  • ChatModel은 해당 통합에 특정한 다른 매개변수도 허용합니다. ChatModel이 지원하는 모든 파라미터를 찾으려면 해당 모델의 API 참조

 

3) Multimodlity(멀티모달)

  • 일부 채팅 모델은 이미지, 오디오, 심지어 비디오까지 입력으로 허용하는 멀티모달 방식입니다.
  • 이는 아직 덜 일반적이기 때문에 모델 제공업체가 API를 정의하는 "최선의" 방법을 표준화하지 않았음을 의미합니다.
  • 멀티모달 출력은 더더욱 일반적이지 않습니다. 랭체인에서는 멀티모달 추상화를 상당히 가볍게 유지했으며, 이 분야가 성숙함에 따라 멀티모달 API와 상호 작용 패턴을 더욱 견고히 할 계획이라고합니다.
  • LangChain에서 멀티모달 입력을 지원하는 대부분의 채팅 모델은 OpenAI의 콘텐츠 블록 형식으로도 해당 값을 받아들입니다.
  • 지금까지는 이미지 입력으로 제한되어 있습니다. 비디오 및 기타 바이트 입력을 지원하는 Gemini와 같은 모델의 경우, API는 기본 모델별 표현도 지원합니다.
  • 멀티모달 모델을 사용하는 방법에 대한 자세한 내용은 여기에서 관련 방법 가이드를 참조하세요.
  • 멀티모달 모델을 제공하는 LangChain 모델 공급자의 전체 목록은 이 표에서 확인하세요.

 

 

3. LLM

  • 순수 텍스트 입력/텍스트 출력 LLM은 더 오래되었거나 수준이 낮은 경향이 있습니다.  채팅이 아닌 사용 사례에서도 위에서 설명한 Chat model로 사용하는 것이 좋습니다.
  • 문자열을 입력으로 받아 문자열을 반환하는 언어 모델입니다. 이들은 전통적으로 오래된 모델입니다(최신 모델은 일반적으로 채팅 모델, 위 참조).
  • 기본 모델은 문자열 입력, 문자열 출력이지만 LangChain 래퍼를 사용하면 이러한 모델도 메시지를 입력으로 받을 수 있습니다. 따라서 채팅 모델과 동일한 인터페이스를 제공합니다. 메시지가 입력으로 전달되면 기본 모델에 전달되기 전에 내부에서 문자열로 형식이 지정됩니다.
  • LangChain은 어떠한 LLM도 호스팅하지 않으며, 타사 통합에 의존합니다.
  • LLM을 사용하는 방법에 대한 자세한 내용은 여기에서 관련 방법 가이드를 참조하세요.