Hugging Face チャット
Hugging Face テキスト生成推論 (TGI) は、クラウドで大規模言語モデル (LLM) を提供し、API 経由でアクセスできるようにするための特殊な デプロイソリューションです。TGI は、継続的なバッチ処理、トークンストリーミング、効率的なメモリ管理などの機能を通じて、テキスト生成タスクの最適化されたパフォーマンスを提供します。
テキスト生成推論では、モデルがアーキテクチャ固有の最適化と互換性があることが必要です。多くの一般的な LLM がサポートされていますが、Hugging Face Hub のすべてのモデルを TGI を使用してデプロイできるわけではありません。他の種類のモデルをデプロイする必要がある場合は、代わりに標準の Hugging Face 推論エンドポイントの使用を検討してください。 |
サポートされているモデルとアーキテクチャの完全かつ最新のリストについては、テキスト生成推論がサポートされるモデルのドキュメント (英語) を参照してください。 |
前提条件
Hugging Face に推論エンドポイントを作成し、エンドポイントにアクセスするための API トークンを作成する必要があります。詳細はこちら (英語) を参照してください。
Spring AI プロジェクトでは、次の 2 つの構成プロパティが定義されています。
spring.ai.huggingface.chat.api-key
: Hugging Face から取得した API トークンの値に設定します。spring.ai.huggingface.chat.url
: Hugging Face でモデルをプロビジョニングするときに取得した推論エンドポイント URL に設定します。
推論エンドポイントの UI で推論エンドポイント URL を見つけることができます。
application.properties
ファイルで次の構成プロパティを設定できます。
spring.ai.huggingface.chat.api-key=<your-huggingface-api-key>
spring.ai.huggingface.chat.url=<your-inference-endpoint-url>
API キーなどの機密情報を扱う際のセキュリティを強化するために、Spring 式言語 (SpEL) を使用してカスタム環境変数を参照できます。
# In application.yml
spring:
ai:
huggingface:
chat:
api-key: ${HUGGINGFACE_API_KEY}
url: ${HUGGINGFACE_ENDPOINT_URL}
# In your environment or .env file
export HUGGINGFACE_API_KEY=<your-huggingface-api-key>
export HUGGINGFACE_ENDPOINT_URL=<your-inference-endpoint-url>
これらの構成をアプリケーションコードでプログラム的に設定することもできます。
// Retrieve API key and endpoint URL from secure sources or environment variables
String apiKey = System.getenv("HUGGINGFACE_API_KEY");
String endpointUrl = System.getenv("HUGGINGFACE_ENDPOINT_URL");
リポジトリと BOM の追加
Spring AI アーティファクトは、Maven Central リポジトリと Spring スナップショットリポジトリに公開されています。これらのリポジトリをビルドシステムに追加するには、アーティファクトリポジトリセクションを参照してください。
依存関係の管理を支援するために、Spring AI は BOM (部品表) を提供し、一貫したバージョンの Spring AI がプロジェクト全体で使用されるようにします。Spring AI BOM をビルドシステムに追加するには、"依存関係管理" セクションを参照してください。
自動構成
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());