티스토리 뷰

728x90
반응형

생성형 AI 기반 애플리케이션을 만들 때 가장 중요한 요소 중 하나는 언어 모델(LLM) 선택입니다. LangChain은 자체 모델을 제공하지 않고, 다양한 외부 LLM을 손쉽게 연결해 사용할 수 있도록 해주는 오케스트레이션 프레임워크입니다. 이 글에서는 OpenAI APIHugging Face를 LangChain과 연동하는 방법을 살펴보고, 특히 Hugging Face의 장단점과 다양한 활용 옵션을 자세히 다루겠습니다.


왜 외부 LLM 연동이 필요한가?

LangChain은 주로 흐름 관리(Orchestration) 역할을 담당합니다. 즉, 문서를 불러오고, 전처리하고, 검색하고, 프롬프트를 구성하는 등 데이터와 모델 사이의 파이프라인을 만들어주는 역할을 합니다. 하지만 실제 텍스트를 생성하는 엔진은 외부 모델이 필요합니다.

  • LangChain = 파이프라인과 체인 관리
  • OpenAI/Hugging Face = 언어 모델 엔진

따라서 어떤 모델을 연결하느냐에 따라 서비스의 성능, 비용, 배포 방식이 크게 달라집니다.


OpenAI API 연동하기

1. 환경 설정

먼저 OpenAI에서 API 키를 발급받아 환경 변수로 설정합니다.

export OPENAI_API_KEY="your_api_key_here"

2. LangChain에서 사용하기

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4", temperature=0.7)

response = llm.invoke("LangChain은 무엇인가요?")
print(response.content)
  • model: 사용할 GPT 계열 모델 지정 (gpt-3.5-turbo, gpt-4)
  • temperature: 창의성 제어 (0 = 사실 기반, 1 = 창의적 응답)

👉 Tip: 테스트 및 학습 단계에서는 비용 절감을 위해 gpt-3.5-turbo를 권장합니다.


Hugging Face 연동하기

Hugging Face는 오픈소스 모델의 집합소로, 누구나 다양한 모델을 다운로드하거나 API 형태로 사용할 수 있습니다. GPT-4처럼 강력하진 않지만, 비용 절감배포 유연성에서 큰 장점이 있습니다.

1. 설치

pip install huggingface_hub transformers

2. LangChain에서 Hugging Face 모델 사용

from langchain_huggingface import HuggingFaceEndpoint

llm = HuggingFaceEndpoint(
    repo_id="google/flan-t5-base",
    temperature=0.5,
    max_length=256
)

response = llm.invoke("LangChain을 사용하면 무엇을 할 수 있나요?")
print(response)

3. Hugging Face의 장점

  • 무료 또는 저비용: 많은 모델이 무료로 제공되며, API 사용 시에도 OpenAI 대비 저렴한 편입니다.
  • 로컬 실행 가능: 모델을 직접 다운로드 받아 GPU/CPU 환경에서 실행할 수 있습니다.
  • 다양한 모델 선택: 번역, 요약, 질의응답, 코드 생성 등 특화된 모델을 고를 수 있습니다.
  • 커뮤니티와 생태계: 수많은 연구자와 개발자들이 기여하는 방대한 모델 저장소.

4. Hugging Face의 단점

  • 성능 격차: GPT-4 같은 최신 상용 모델에 비해 추론 능력이 떨어질 수 있습니다.
  • 추론 속도: 클라우드 API 사용 시 속도가 느릴 수 있으며, 로컬 실행 시에는 하드웨어 자원이 필요합니다.
  • 설정 다양성: 모델마다 지원하는 옵션과 성능이 달라 최적 모델을 찾는 데 시간이 필요합니다.

5. 주요 옵션 정리

  • repo_id: 사용할 모델 이름 (google/flan-t5-base, tiiuae/falcon-7b 등)
  • temperature: 출력 다양성 조절
  • max_length: 응답 토큰 길이 제한
  • top_p, top_k: 샘플링 전략 제어

👉 Hugging Face는 “비용을 줄이면서 다양한 실험을 하고 싶을 때” 강력한 선택지가 됩니다.


OpenAI와 Hugging Face 혼합 사용

실무에서는 종종 두 플랫폼을 조합하는 전략을 씁니다.

예: Hugging Face 모델로 문서 요약을 먼저 수행하고, OpenAI GPT로 최종 답변을 생성.

from langchain_openai import ChatOpenAI
from langchain_huggingface import HuggingFaceEndpoint
from langchain.chains import SimpleSequentialChain

hf_llm = HuggingFaceEndpoint(repo_id="google/flan-t5-small")
openai_llm = ChatOpenAI(model="gpt-4")

chain = SimpleSequentialChain(chains=[hf_llm, openai_llm])

result = chain.run("LangChain 프로젝트의 핵심 개념을 간단히 요약해 주세요.")
print(result)

이렇게 하면 비용은 낮추면서 품질을 높일 수 있습니다.


마무리

  • OpenAI API는 성능과 안정성에서 최적이지만 비용이 발생합니다.
  • Hugging Face는 비용 절감과 배포 유연성에서 매력적입니다.
  • LangChain은 이 둘을 손쉽게 연결하고, 상황에 맞게 혼합 사용할 수 있도록 돕습니다.

👉 다음 글에서는 문서 로딩과 전처리를 통해 실제 RAG 파이프라인을 준비하는 방법을 다루겠습니다.

728x90
반응형