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ノードライブラリも同様に使用し、baseURLとapiKeyをTGIインフラストラクチャを指すように設定します。
フレームワーク統合(LangChain と LlamaIndex)
- LangChain: ユーザーは
ChatOpenAIクラスにTGIエンドポイントURLとHFトークンを渡すことで利用でき、コードの1行変更だけで既存のRAGパイプラインをオープンモデルで動作させることができます。 - LlamaIndex: 統合は
OpenAILikeクラスを通じて実現します。is_chat_model=True、is_local=False、is_function_calling_model=Falseなどのパラメータを設定し、context_windowがエンドポイントのMAX_TOTAL_TOKENS設定と一致するようにします。
機能と制限
サポートされているパラメータ
Messages APIは現在、以下のチャット完了パラメータをサポートしています:
streammax_tokensfrequency_penaltylogprobsseedtemperaturetop_p
現在の制約
- 関数呼び出し: Messages APIは現在、関数呼び出しをサポートしていません。
- モデル要件: APIは、トークナイザ設定に
chat_templateが定義されているLLM(例: Mixtral 8x7B Instruct)のみで機能します。
戦略的インパクト
OpenAI互換のエンドポイントを提供することで、Hugging Faceはユーザーがモデルとデータに対して完全な制御と透明性を得られるようにし、サードパーティのレートリミットへの依存を排除し、AIシステムを特定のニーズに合わせて完全にカスタマイズできるようにします。