Hugging Face チャット
Hugging Face テキスト生成推論 (TGI) は、クラウドで大規模言語モデル (LLM) を提供し、API 経由でアクセスできるようにするための特殊な デプロイソリューションです。TGI は、継続的なバッチ処理、トークンストリーミング、効率的なメモリ管理などの機能を通じて、テキスト生成タスクの最適化されたパフォーマンスを提供します。
テキスト生成推論では、モデルがアーキテクチャ固有の最適化と互換性があることが必要です。多くの一般的な LLM がサポートされていますが、Hugging Face Hub のすべてのモデルを TGI を使用してデプロイできるわけではありません。他の種類のモデルをデプロイする必要がある場合は、代わりに標準の Hugging Face 推論エンドポイントの使用を検討してください。 |
サポートされているモデルとアーキテクチャの完全かつ最新のリストについては、テキスト生成推論がサポートされるモデルのドキュメント (英語) を参照してください。 |
前提条件
Hugging Face に推論エンドポイントを作成し、エンドポイントにアクセスするための API トークンを作成する必要があります。詳細については、こちら (英語) を参照してください。Spring AI プロジェクトでは、spring.ai.huggingface.chat.api-key
という構成プロパティが定義されており、これを Hugging Face から取得した API トークンの値に設定する必要があります。また、Hugging Face でモデルをプロビジョニングするときに取得した推論エンドポイント URL に設定する必要がある spring.ai.huggingface.chat.url
という構成プロパティもあります。これは、こちらにある (英語) 推論エンドポイントの UI で確認できます。環境変数をエクスポートすることは、これらの構成プロパティを設定する 1 つの方法です。
export SPRING_AI_HUGGINGFACE_CHAT_API_KEY=<INSERT KEY HERE>
export SPRING_AI_HUGGINGFACE_CHAT_URL=<INSERT INFERENCE ENDPOINT URL HERE>
自動構成
Spring AI 自動構成、スターターモジュールのアーティファクト名に大きな変更がありました。詳細については、アップグレードノートを参照してください。 |
Spring AI は、Hugging Face チャットクライアント用の Spring Boot 自動構成を提供します。これを有効にするには、プロジェクトの Maven pom.xml
ファイルに次の依存関係を追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-huggingface</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-huggingface'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
チャットのプロパティ
チャットの自動構成の有効化と無効化は、プレフィックス 有効にするには、spring.ai.model.chat=huggingface (デフォルトで有効になっています) 無効にするには、spring.ai.model.chat=none (または huggingface と一致しない値) この変更は、複数のモデルの構成を可能にするために行われます。 |
プレフィックス spring.ai.huggingface
は、Hugging Face のチャットモデル実装を構成できるプロパティプレフィックスです。
プロパティ | 説明 | デフォルト |
spring.ai.huggingface.chat.api-key | 推論エンドポイントで認証するための API キー。 | - |
spring.ai.huggingface.chat.url | 接続する推論エンドポイントの URL | - |
spring.ai.huggingface.chat.enabled (削除され、無効になりました) | Hugging Face チャットモデルを有効にします。 | true |
spring.ai.model.chat (削除され、無効になりました) | Hugging Face チャットモデルを有効にします。 | huggingface |
サンプルコントローラー (自動構成)
新しい Spring Boot プロジェクトを作成し、spring-ai-starter-model-huggingface
を pom (または gradle) の依存関係に追加します。
src/main/resources
ディレクトリに application.properties
ファイルを追加して、Hugging Face チャットモデルを有効にして構成します。
spring.ai.huggingface.chat.api-key=YOUR_API_KEY
spring.ai.huggingface.chat.url=YOUR_INFERENCE_ENDPOINT_URL
api-key と url を Hugging Face の値に置き換えます。 |
これにより、クラスに挿入できる HuggingfaceChatModel
実装が作成されます。以下は、テキスト生成にチャットモデルを使用する単純な @Controller
クラスの例です。
@RestController
public class ChatController {
private final HuggingfaceChatModel chatModel;
@Autowired
public ChatController(HuggingfaceChatModel chatModel) {
this.chatModel = chatModel;
}
@GetMapping("/ai/generate")
public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return Map.of("generation", this.chatModel.call(message));
}
}
手動構成
HuggingfaceChatModel [GitHub] (英語) は ChatModel
インターフェースを実装し、[ 低レベル API] を使用して Hugging Face 推論エンドポイントに接続します。
spring-ai-huggingface
依存関係をプロジェクトの Maven pom.xml
ファイルに追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-huggingface</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-huggingface'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
次に、HuggingfaceChatModel
を作成し、テキスト生成に使用します。
HuggingfaceChatModel chatModel = new HuggingfaceChatModel(apiKey, url);
ChatResponse response = this.chatModel.call(
new Prompt("Generate the names of 5 famous pirates."));
System.out.println(response.getGeneration().getResult().getOutput().getContent());