Gemini 1.5での制御生成のマスター:開発者のためのスキーマ準拠

Gemini 1.5による制御生成機能のマスターガイド

現在、多くの人々が生成AIに期待を寄せる理由は、革新的な実験や突破口が生まれる可能性があるからです。しかし、Googleでは最先端のモデルを試すだけでなく、実際のアプリケーションに導入することにも力を入れています。これが、Gemini 1.5における制御生成機能の導入につながりました。

制御生成とは何か?その重要性

制御生成は、モデルの出力に”設計図”を提供することを意味します。具体的には、レスポンススキーマを設定することで、AIがどのような形式や構造で応答するのかを決定します。この機能によって、以下のような利点があります:

  • 機械可読データを生成することで、面倒なポストプロセッシングを減らせます。
  • JSONなどの形式で出力を生成し、API経済の中でAIを一流の市民として位置づけられます。
  • AI出力の予測可能性を高め、生成されるデータの形式と構造を期待できます。

たとえば、Estée Lauder Companiesのプリンシパル機械学習エンジニア、クリス・キューロは、「Gemini 1.5上に複雑な推論ワークフローを設計することで、消費者および従業員の体験を構築しています。」と述べています。このように、開発者に優しい特性により、ビジネス価値を高める早さが可能になっています。

新機能の概要

最近の advancements の上に構築された制御デコーディング技術により、GoogleはGemini APIおよびVertex AI APIで「レスポンススキーマ」という概念を導入しました。これは、AIの出力の要素、データ型、全体の構造を指示するもので、常にOpenAPI 3.0のスキーマ定義に基づいています。そのため、オープンで互換性のある標準に基づいていることが保証されます。

制御生成の利点

  • 最小限の遅延:Geminiの制御生成は、既存のAPI呼び出しに追加の遅延をもたらすことなく動作します。
  • enumタイプのサポート:Geminiはenumを型としてサポートし、今後さらに機能を追加予定です。
  • データの保存不要:Geminiは、スキーマを強制しつつ、ユーザーのデータを保存する必要がありません。

実際の使用例:料理サジェストアプリの構築

たとえば、異なるシナリオに応じたレシピを提案するアプリを作成する場合、生成されるレシピはアプリで容易に処理できる形式で構造化される必要があります。以下の例では、制御生成を利用して多コースの食事のレシピを生成する方法を示しています。

response_schema = {
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "course": {
        "type": "string",
        "enum": ["appetizer", "salad", "soup", "main", "dessert"],
      },
      "name": {
        "type": "string",
      },
      "ingredients": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "unit": {
              "type": "string",
              "enum": ["count", "cup", "tablespoon", "teaspoon", "pound", "ounce"],
            },
            "amount": {
              "type": "number",
            },
            "name": {
              "type": "string",
            },
          },
          "required": ["name"],
        },
      },
      "steps": {
        "type": "array",
        "items": {
          "type": "string",
        },
      },
    },
    "required": ["course", "name"],
  },
}

このようにして、アプリケーションが直接利用できる形でレシピを生成することができます。

制約と今後の展望

制御生成には、OpenAPI 3.0スキーマのサブセットのみをサポートするという制約があります。また、モデルの能力に依存するため、必要なフィールドの情報が不十分であれば、訓練データに基づいた応答が出力されることがあります。ただし、nullableをTrueに設定することでこの制約を軽減することができます。

全体として、制御生成は、予測可能で構造化された結果を生成するための有力なツールです。開発者は、Google AI StudioやVertex AIのドキュメントを参照してこの機能をすぐに利用開始できます。

まとめ

この機能を活用することで、開発者はさまざまな既存のワークフローに目的に応じた高い信頼性を持たせることができます。Control Generationは、Googleが開発者に向けて提供するAPI機能の一部に過ぎませんが、その重要性は今後益々高まることでしょう。