Hugging Face TGI 메시지 API 출시

Hugging Face는 버전 1.4.0부터 Text Generation Inference (TGI)를 위한 Messages API를 도입했습니다. 이번 업데이트는 OpenAI Chat Completion API와의 호환성을 제공하여, 개발자들이 최소한의 코드 변경으로 OpenAI 모델에서 오픈 LLM으로 전환할 수 있게 합니다.

오픈 LLM을 위한 OpenAI 호환성

TGI 버전 1.4.0 및 Inference Endpoints는 이제 OpenAI Chat Completion API와 호환되는 Messages API를 지원합니다. 이 호환성을 통해 사용자는 기존 OpenAI 클라이언트 라이브러리나 LangChain, LlamaIndex와 같은 서드파티 오케스트레이션 도구를 사용하여 OpenAI 모델을 오픈 LLM으로 교체할 수 있습니다.

According to Johnny Crupi, CTO at Ryght:

"OpenAI 호환성을 갖춘 새로운 Messages API 덕분에 Ryght의 실시간 GenAI 오케스트레이션 플랫폼은 LLM 사용 사례를 OpenAI에서 오픈 모델로 쉽게 전환할 수 있습니다. Inference Endpoints에서 GPT4에서 Mixtral/Llama2로의 마이그레이션은 손쉽게 이루어졌으며, 이제 AI 솔루션에 대한 더 많은 제어와 함께 간소화된 워크플로우를 갖게 되었습니다."

기술 구현 및 요구 사항

Inference Endpoints를 통한 배포

사용자는 TGI를 사용하여 Nous-Hermes-2-Mixtral-8x7B-DPO와 같은 모델을 Inference Endpoints에 배포할 수 있습니다. 배포는 Hugging Face UI를 통해서든 huggingface_hub Python 라이브러리를 사용해 프로그래밍 방식으로든 관리할 수 있습니다. Hub 라이브러리를 사용할 경우, 기본적으로 15분 동안 유휴 상태가 되면 엔드포인트가 자동으로 0으로 스케일 다운되어 비용을 최적화합니다.

클라이언트 라이브러리와의 통합

OpenAI 클라이언트 라이브러리와 Inference Endpoint를 통합하려면, 사용자는 엔드포인트 URL에 /v1/를 추가하고 유효한 Hugging Face 사용자 토큰을 API 키로 제공해야 합니다.

  • Python Client: OpenAI 클라이언트는 base_url을 TGI 엔드포인트로 지정하고 api_key를 HF 토큰으로 설정하여 초기화합니다. model 매개변수는 "tgi"로 설정됩니다.
  • JavaScript Client: OpenAI 노드 라이브러리를 동일하게 사용하며, baseURLapiKey를 TGI 인프라를 가리키도록 구성합니다.

프레임워크 통합 (LangChain 및 LlamaIndex)

  • LangChain: 사용자는 TGI 엔드포인트 URL과 HF 토큰을 전달하여 ChatOpenAI 클래스를 활용할 수 있으며, 이를 통해 기존 RAG 파이프라인을 단 한 줄의 코드 변경만으로 오픈 모델에서도 동작하도록 할 수 있습니다.
  • LlamaIndex: 통합은 OpenAILike 클래스를 통해 이루어집니다. 이를 위해 is_chat_model=True, is_local=False, is_function_calling_model=False와 같은 매개변수를 설정하고, context_window가 엔드포인트의 MAX_TOTAL_TOKENS 설정과 일치하도록 해야 합니다.

기능 및 제한 사항

지원되는 매개변수

Messages API는 현재 다음과 같은 채팅 완성 매개변수를 지원합니다:

  • stream
  • max_tokens
  • frequency_penalty
  • logprobs
  • seed
  • temperature
  • top_p

현재 제약 사항

  • Function Calling: Messages API는 현재 함수 호출을 지원하지 않습니다.
  • Model Requirements: API는 토크나이저 설정에 chat_template이 정의된 LLM에만 작동합니다 (예: Mixtral 8x7B Instruct).

전략적 함의

OpenAI와 호환되는 엔드포인트를 제공함으로써, Hugging Face는 사용자가 모델과 데이터에 대한 완전한 제어와 투명성을 확보하고, 서드파티 속도 제한에 대한 의존성을 없애며, 특정 요구에 맞게 AI 시스템을 완전히 맞춤화할 수 있도록 합니다.

Sources