6️⃣New Huggingface-LangChain

Huggingface-LangChain

langchain_huggingface는 기존 LangChain에서 사용하던langchain_community.chat_models.huggingfac을 간결하게 바꾼 프레임워크로 Huggingface에서 2024년 5월 14일 공식 발표했습니다.

circle-info

아래는 기존의 langchain_communiy의 API 문서 입니다. 아직 LangChain은 변경된 라이브러리를 적용하지 않았습니다.

이미지

Setup Environments

langchain-huggingface를 시작하는 방법은 간단합니다. 패키지를 설치하고 사용을 시작하는 방법은 다음과 같습니다:

1. LLMs

HuggingFacePipeline

트랜스포머 중에서도 파이프라인은 허깅 페이스 도구 상자에서 가장 다재다능한 도구입니다. LangChain은 주로 RAG 및 에이전트 사용 사례를 다루기 위해 설계되었기 때문에 여기서 파이프라인의 범위는 다음과 같은 텍스트 중심 작업으로:

“text-generation", “text2text-generation", “summarization”, “translation”.

위의 HuggingFacePipeline.from_model_id() 메서드를 사용하면 기존의 Transformer pipeline을 구성하는 것과 동일합니다.

HuggingFaceEndpoint

이 클래스를 사용하는 방법에는 두 가지가 있습니다.

  1. Huggigface Hub에서 불러올 시에 repo_id 매개변수를 사용하여 모델을 지정할 수 있습니다. 이러한 엔드포인트는 서버리스 API를 사용하므로 프로 계정이나 엔터프라이즈 허브를 사용하는 사람들에게 특히 유용합니다.

  2. 로컬에서 코드를 실행하는 환경에서 <endpoint_url>을 지정하여 HF 토큰으로 연결하여 이미 상당한 양의 요청에 액세스할 수 있습니다.

llm = HuggingFaceEndpoint( endpoint_url="<endpoint_url>", task="text-generation", max_new_tokens=1024, do_sample=False, ) llm.invoke("What is Transformer from huggingface")

ChatHuggingFace

모든 모델에는 가장 잘 작동하는 고유한 특수 토큰이 있습니다. 프롬프트에 이러한 토큰을 추가하지 않으면 모델의 성능이 크게 저하됩니다.

메시지 목록에서 완료 프롬프트로 이동할 때 대부분의 LLM 토큰화 도구에는 chat_template이라는 속성이 있습니다.

이 클래스는 메시지 목록을 입력으로 받은 다음 tokenizer.apply_chat_template 메서드를 사용하여 올바른 완료 프롬프트를 생성합니다.

2. Embeddings

HuggingFaceEmbeddings

이 클래스는 sentence-transformers 임베딩을 사용합니다. 임베딩을 로컬에서 계산하므로 컴퓨터 리소스를 사용합니다.

HuggingFaceEndpointEmbeddings

HuggingFaceEndpointEmbeddings는 내부적으로 InferenceClient를 사용하여 임베딩을 계산한다는 점에서 HuggingFaceEndpoint가 LLM에서 수행하는 것과 매우 유사합니다.

허브의 모델과 로컬 또는 온라인 배포 여부에 관계없이 TEI 인스턴스에 사용할 수 있습니다.

Last updated