Vertex AI プラグインは複数の Google 生成 AI モデルへのインターフェースを提供 Vertex AI API を使用:
- Gemini 1.0 Pro と Gemini 1.0 Pro Vision のテキスト生成
- Imagen2 画像生成
- Gecko テキスト エンベディング生成
また、Vertex AI の Rapid Evaluation API を介して評価指標のサブセットにアクセスできます。
インストール
npm i --save @genkit-ai/vertexai
このプラグインを使用するフローをローカルで実行する場合は、 Google Cloud CLI ツールがインストールされていること。
構成
このプラグインを使用するには、configureGenkit()
を呼び出すときに指定します。
import { vertexAI } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
],
// ...
});
プラグインでは、Google Cloud プロジェクト ID、 リージョン API リクエストの送信先と、Google Cloud プロジェクトが 認証情報が必要です。
Google Cloud プロジェクト ID を指定するには、
projectId
をvertexAI()
構成を使用するか、GCLOUD_PROJECT
環境を設定します。 変数です。Google Cloud 環境(Cloud Functions、Cloud Run など)では、GCLOUD_PROJECT
は自動的に 環境のプロジェクト ID。API の場所は、
location
をvertexAI()
構成を使用するか、GCLOUD_LOCATION
環境を設定します。 変数です。API 認証情報を提供するには、Google Cloud アプリケーションを設定する必要があります デフォルトの認証情報。
認証情報を指定するには:
Google Cloud 環境(Cloud Functions、Cloud Run など)では、これは自動的に設定されます。
そのためには、ローカルの開発環境で次のコマンドを実行します。
gcloud auth application-default login
- 他の環境については、アプリケーションのデフォルト認証情報をご覧ください。 ドキュメントをご覧ください。
また、アカウントに Vertex AI ユーザー IAM ロールが付与されていることを確認します。 (
roles/aiplatform.user
)。Vertex AI のアクセス制御を確認する。 ドキュメントをご覧ください。
用途
生成 AI モデル
このプラグインは、サポートされている生成 AI モデルへの参照を静的にエクスポートします。
import { gemini15Flash, gemini15Pro, imagen2 } from '@genkit-ai/vertexai';
これらの参照を使用して、generate()
が使用するモデルを指定できます。
const llmResponse = await generate({
model: gemini15Flash,
prompt: 'What should I do when I visit Melbourne?',
});
このプラグインは、Gecko テキスト エンベディングへの参照も静的にエクスポートします。 model:
import { textEmbeddingGecko } from '@genkit-ai/vertexai';
この参照を使用して、インデクサまたはリトリーブの埋め込み元を指定できます。 あります。たとえば、Chroma DB を使用する場合は次のようになります。
configureGenkit({
plugins: [
chroma([
{
embedder: textEmbeddingGecko,
collectionName: 'my-collection',
},
]),
],
});
または、エンベディングを直接生成することもできます。
// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
embedder: textEmbeddingGecko,
content: 'How many widgets do you have in stock?',
});
Vertex AI Model Garden での Anthropic Claude 3
Vertex AI Model Garden で Claude 3 モデル(haiku、sonnet、opus)にアクセスできる場合は、Genkit で使用できます。
Vertex AI Model Garden モデルを有効にする構成例を次に示します。
import {
vertexAI,
claude3Haiku,
claude3Sonnet,
claude3Opus,
} from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [claude3Haiku, claude3Sonnet, claude3Opus],
},
}),
],
});
次に、それらを通常のモデルとして使用します。
const llmResponse = await generate({
model: claude3Sonnet,
prompt: 'What should I do when I visit Melbourne?',
});
Vertex AI Model Garden の Llama 3.1 405b
まず、Vertex AI Model Garden で Llama 3.1 API Service を有効にする必要があります。
Vertex AI プラグインでの Llama 3.1 405b の構成例を次に示します。
import { vertexAI, llama3 } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
location: 'us-central1',
modelGarden: {
models: [llama3],
},
}),
],
});
通常のモデルとして使用します。
const llmResponse = await generate({
model: llama3,
prompt: 'Write a function that adds two numbers together',
});
エバリュエータ
Vertex AI Rapid Evaluation のエバリュエータを使用するには、vertexAI
プラグイン構成に evaluation
ブロックを追加します。
import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';
export default configureGenkit({
plugins: [
vertexAI({
projectId: 'your-cloud-project',
location: 'us-central1',
evaluation: {
metrics: [
VertexAIEvaluationMetricType.SAFETY,
{
type: VertexAIEvaluationMetricType.ROUGE,
metricSpec: {
rougeType: 'rougeLsum',
},
},
],
},
}),
],
// ...
});
上記の構成では、Safety
指標と ROUGE
指標のエバリュエータが追加されています。この例では 2 つのアプローチが示されています。Safety
指標はデフォルトの仕様を使用するのに対し、ROUGE
指標は、rouge 型を rougeLsum
に設定するカスタマイズされた仕様を提供します。
どちらのエバリュエータも、互換性のあるデータセット(output
フィールドと reference
フィールドを含むデータセット)を指定して genkit eval:run
コマンドで実行できます。Safety
エバリュエータは output
のみが必要なため、genkit eval:flow -e vertexai/safety
コマンドを使用して実行することもできます。