Vertex AI プラグイン

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 を指定するには、projectIdvertexAI() 構成を使用するか、GCLOUD_PROJECT 環境を設定します。 変数です。Google Cloud 環境(Cloud Functions、Cloud Run など)では、GCLOUD_PROJECT は自動的に 環境のプロジェクト ID。

  • API の場所は、locationvertexAI() 構成を使用するか、GCLOUD_LOCATION 環境を設定します。 変数です。

  • API 認証情報を提供するには、Google Cloud アプリケーションを設定する必要があります デフォルトの認証情報。

    1. 認証情報を指定するには:

      • Google Cloud 環境(Cloud Functions、Cloud Run など)では、これは自動的に設定されます。

      • そのためには、ローカルの開発環境で次のコマンドを実行します。

      gcloud auth application-default login
      
    2. また、アカウントに 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 モデル(haikusonnetopus)にアクセスできる場合は、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 コマンドを使用して実行することもできます。