Hugging Face と LangChain が langchain_huggingface パートナーパッケージをリリース
Hugging Face と LangChain は、最新の Hugging Face の開発を LangChain に統合することを目的とした、共同で保守されるパートナーパッケージ langchain_huggingface をリリースしました。このコラボレーションは、新しい Hugging Face 機能のリリースとそれが LangChain ユーザーに利用可能になるまでの遅延を減らすことを目指し、時折非推奨となっていたコミュニティが作成したクラスを置き換えます。
LLM 統合オプション
langchain_huggingface パッケージは、ユーザーがローカル実行を必要とするか API ベースの推論を必要とするかに応じて、Large Language Models (LLMs) とやり取りするための主に 3 つの方法を提供します。
HuggingFacePipeline を使用したローカル実行
HuggingFacePipeline は、ユーザーが自分のハードウェア上でモデルを実行できるようにします。これは Hugging Face の transformers パイプラインを活用し、特に text-generation、text2text-generation、summarization、translation といったテキスト中心のタスクをサポートします。
ユーザーはこのクラスを 2 通りの方法で初期化できます:
- モデル ID から直接:
from_model_idメソッドを使用してモデルとタスクを指定します。 - カスタムパイプライン:
transformersパイプラインを手動で定義(4 ビット量子化などのカスタムロードを含む)し、HuggingFacePipelineクラスに渡します。
モデルはローカルキャッシュにロードされるため、パフォーマンスは利用可能なローカルハードウェアリソースに依存します。
HuggingFaceEndpoint を使用した API ベースの推論
HuggingFaceEndpoint は InferenceClient を利用して、サーバーレス API またはデプロイされた TGI(Text Generation Inference)インスタンス経由でモデルを提供します。これは特に Pro アカウントや Enterprise Hub アクセスを持つユーザーに有益ですが、一般ユーザーも Hugging Face トークンを使用してアクセスできます。
2 つの設定方法をサポートします:
- Repo ID:
repo_idでモデルを指定し、サーバーレス API を使用します。 - Endpoint URL: 専用デプロイ用に特定の
endpoint_urlを提供します。
ChatHuggingFace を使用したチャット固有のフォーマット
特殊トークンが欠如していることによるモデルの性能低下を防ぐために、ChatHuggingFace は他の LLM クラスのラッパーとして機能します。tokenizer.apply_chat_template メソッドを使用して、メッセージのリストをモデルが要求する特定の完了プロンプトに変換します(例:Mistral-7B-Instruct や Llama-3-8B-Instruct が要求する異なるフォーマット)。
埋め込みモデル統合
このパッケージは、Hugging Face Hub の強力な埋め込みモデルの使用を可能にし、ローカルおよびリモート計算の両方のオプションを提供します。
HuggingFaceEmbeddings を使用したローカル埋め込み
HuggingFaceEmbeddings は sentence-transformers を使用して、ユーザーのマシン上でローカルに埋め込みを計算します。
HuggingFaceEndpointEmbeddings を使用したリモート埋め込み
HuggingFaceEndpointEmbeddings は InferenceClient を使用して埋め込みを計算します。これにより、パッケージは Hub 上でホストされているモデルや Text Embeddings Inference(TEI)インスタンスと連携でき、ローカルでもオンラインでもデプロイされた環境でも利用可能です。
インストール
ユーザーは pip を使用してパートナーパッケージをインストールできます:
pip install langchain-huggingface