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オーケストレーションプラットフォームは、OpenAIからオープンモデルへのLLMユースケースの切り替えが容易になります。Inference Endpoints上でのGPT4からMixtral/Llama2への移行は手間がかからず、現在はAIソリューションに対する制御が向上したシンプルなワークフローを実現しています。"

技術的実装と要件

Inference Endpointsによるデプロイ

ユーザーは、Nous-Hermes-2-Mixtral-8x7B-DPO のようなモデルをTGIを使用してInference Endpointsにデプロイできます。デプロイはHugging Face UIから、または huggingface_hub Python ライブラリを使ってプログラム的に管理できます。Hubライブラリを使用する場合、デフォルトでエンドポイントはアイドル時間が15分になるとスケールダウンしてゼロになるため、コストが最適化されます。

クライアントライブラリとの統合

Inference EndpointをOpenAIクライアントライブラリと統合するには、エンドポイントURLの末尾に /v1/ を付加し、APIキーとして有効なHugging Faceユーザートークンを提供する必要があります。

  • Python クライアント: OpenAI クライアントは、base_url をTGIエンドポイントに設定し、api_key にHFトークンを指定して初期化します。model パラメータは "tgi" に設定します。
  • JavaScript クライアント: OpenAI ノードライブラリも同様に使用し、baseURLapiKey をTGIインフラストラクチャを指すように設定します。

フレームワーク統合(LangChain と LlamaIndex)

  • LangChain: ユーザーは ChatOpenAI クラスにTGIエンドポイントURLとHFトークンを渡すことで利用でき、コードの1行変更だけで既存のRAGパイプラインをオープンモデルで動作させることができます。
  • LlamaIndex: 統合は OpenAILike クラスを通じて実現します。is_chat_model=Trueis_local=Falseis_function_calling_model=False などのパラメータを設定し、context_window がエンドポイントの MAX_TOTAL_TOKENS 設定と一致するようにします。

機能と制限

サポートされているパラメータ

Messages APIは現在、以下のチャット完了パラメータをサポートしています:

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

現在の制約

  • 関数呼び出し: Messages APIは現在、関数呼び出しをサポートしていません。
  • モデル要件: APIは、トークナイザ設定に chat_template が定義されているLLM(例: Mixtral 8x7B Instruct)のみで機能します。

戦略的インパクト

OpenAI互換のエンドポイントを提供することで、Hugging Faceはユーザーがモデルとデータに対して完全な制御と透明性を得られるようにし、サードパーティのレートリミットへの依存を排除し、AIシステムを特定のニーズに合わせて完全にカスタマイズできるようにします。

Sources