피드로 돌아가기
Hugging Face x LangChain : A new partner package
Hugging Face BlogHugging Face Blog
Backend

Hugging Face와 LangChain이 langchain_huggingface 파트너 패키지를 출시해 Hugging Face 모델을 LangChain 에코시스템에 통합

Hugging Face x LangChain : A new partner package

2024년 5월 14일7beginner

Context

LangChain의 기존 Hugging Face 관련 클래스들은 커뮤니티에 의해 개발되었으나, 시간이 지나면서 내부 관점이 부족해 일부 기능이 deprecated되었다. Hugging Face 생태계의 새로운 기능을 LangChain 사용자에게 제공하는 데 시간이 오래 걸렸다.

Technical Solution

  • HuggingFacePipeline 클래스: text-generation, text2text-generation, summarization, translation 4가지 text-centric 작업을 지원하며, from_model_id 메서드로 모델을 직접 로드 또는 사전 정의된 pipeline을 전달
  • HuggingFaceEndpoint 클래스: serverless API와 배포된 TGI 인스턴스를 지원하며 InferenceClient를 사용해 repo_id 또는 endpoint_url로 모델 접근 가능
  • ChatHuggingFace 클래스: 메시지 리스트를 입력받아 tokenizer.apply_chat_template 메서드로 각 모델의 특정 chat_template에 맞는 completion prompt 자동 생성
  • HuggingFaceEmbeddings 클래스: sentence-transformers를 사용해 임베딩을 로컬에서 계산
  • HuggingFaceEndpointEmbeddings 클래스: InferenceClient를 사용해 Hub의 모델 또는 로컬/온라인 배포된 TEI 인스턴스와 상호작용

Key Takeaway

파트너 패키지 모델을 통해 기술 플랫폼 간 통합을 유지보수하는 데 필요한 내부 관점을 보장하고, 새로운 기능을 신속하게 반영할 수 있다는 설계 원칙을 보여준다.


LangChain을 사용해 Hugging Face 모델을 프로덕션 환경에 통합하려는 팀은 serverless API(HuggingFaceEndpoint)로 리소스 제약을 피하거나 로컬 리소스가 충분하면 HuggingFacePipeline을 선택할 수 있으며, ChatHuggingFace로 모델별 chat_template을 자동 적용해 토큰화 오버헤드를 줄일 수 있다.

원문 읽기