Vertex AI プラグインは、Vertex AI API を介して、いくつかの Google 生成 AI モデルへのインターフェースを提供します。
- 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、Vertex API リクエストを行うリージョン、Google Cloud プロジェクトの認証情報を指定する必要があります。
Google Cloud プロジェクト ID を指定するには、
vertexAI()
構成でprojectId
を設定するか、GCLOUD_PROJECT
環境変数を設定します。Google Cloud 環境(Cloud Functions、Cloud Run など)からフローを実行している場合、GCLOUD_PROJECT
は自動的に環境のプロジェクト ID に設定されます。API のロケーションを指定するには、
vertexAI()
構成でlocation
を設定するか、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 { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';
これらのリファレンスを使用して、generate()
で使用するモデルを指定できます。
const llmResponse = await generate({
model: geminiPro,
prompt: 'What should I do when I visit Melbourne?',
});
このプラグインは、Gecko テキスト エンベディング モデルへの参照も静的にエクスポートします。
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',
modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
}),
],
});
次に、それらを通常のモデルとして使用します。
const llmResponse = await generate({
model: claude3Sonnet,
prompt: 'What should I do when I visit Melbourne?',
});
エバリュエータ
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
指標では、ルージュタイプを rougeLsum
に設定するカスタマイズされた仕様を使用します。
どちらのエバリュエータも、互換性のあるデータセット(output
フィールドと reference
フィールドを含むデータセット)で genkit eval:run
コマンドを使用して実行できます。Safety
エバリュエータは output
のみを必要とするため、genkit eval:flow -e vertexai/safety
コマンドを使用して実行することもできます。