Gemini 2.0(試験運用版)

Gemini 2.0 Flash が、Gemini デベロッパー API と Google AI Studio で試験運用版プレビュー リリースとして利用可能になりました。このモデルには、次のような新機能とコア機能の強化が導入されています。

  • Multimodal Live API: この新しい API を使用すると、ツールを使用してリアルタイムのビジョンとオーディオ ストリーミング アプリケーションを作成できます。
  • 速度とパフォーマンス: Gemini 2.0 では、1.5 Flash と比較して最初のトークンまでの時間(TTFT)が大幅に短縮されています。
  • 品質: Gemini 1.5 Pro などの大規模なモデルと同等の品質を維持します。
  • エージェント機能の向上: Gemini 2.0 では、マルチモーダル理解、コーディング、複雑な指示の実行、関数呼び出しが改善されています。これらの改善は連携して、エージェント エクスペリエンスの向上をサポートします。
  • 新しいモダリティ: Gemini 2.0 では、ネイティブ画像生成と制御可能なテキスト読み上げ機能が導入され、画像編集、ローカライズされたアートワークの作成、表現力豊かなストーリーテリングが可能になります。

新しいモデルをサポートするため、新しい SDK もリリースされます。

Gemini 2.0 の技術的な詳細については、Gemini モデルをご覧ください。

Google Gen AI SDK(試験運用版)

新しい Google Gen AI SDK は、Gemini Developer API と Vertex AI の Gemini API の両方を介して Gemini 2.0 への統合インターフェースを提供します。いくつかの例外を除き、1 つのプラットフォームで実行されるコードは両方のプラットフォームで実行されます。つまり、Developer API を使用してアプリケーションのプロトタイプを作成してから、コードを書き換えることなくアプリケーションを Vertex AI に移行できます。

Gen AI SDK は Gemini 1.5 モデルもサポートしています。

新しい SDK は Python と Go で利用できます。Java と JavaScript は近日提供予定です。

次に示すように SDK の使用を開始できます。

  1. 新しい SDK をインストールします。pip install google-genai
  2. 次に、ライブラリをインポートし、クライアントを初期化してコンテンツを生成します。
from google import genai

client = genai.Client(
    vertexai=False,
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-experimental', contents='How does AI work?'
)
print(response.text)

(省略可)環境変数を設定する

または、環境変数を使用してクライアントを初期化することもできます。まず、適切な値を設定して変数をエクスポートします。

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
export GOOGLE_GENAI_USE_VERTEXAI=False

次に、引数なしでクライアントを初期化できます。

client = genai.Client()

Python デベロッパーは、Cookbookスタートガイド ノートブックも試すことができます。

Multimodal Live API

Multimodal Live API を使用すると、Gemini との低レイテンシの双方向音声とビデオのやり取りが可能になります。Multimodal Live API を使用すると、エンドユーザーに自然で人間のような音声会話のエクスペリエンスを提供できます。また、音声コマンドを使用してモデルのレスポンスを中断することもできます。このモデルは、テキスト、音声、動画の入力を処理し、テキストと音声の出力を生成できます。

Multimodal Live API は、Gemini API で BidiGenerateContent メソッドとして使用でき、WebSockets 上に構築されています。

Multimodal Live API の使用を開始するための簡単なテキストからテキストへの例を次に示します。

MODEL = "models/gemini-2.0-flash-exp"
CONFIG = {"generation_config": {"response_modalities": ["TEXT"]}}

async with client.aio.live.connect(model=MODEL, config=CONFIG) as session:
  message = "Hello? Gemini, are you there?"
  print("> ", message, "\n")
  await session.send(message, end_of_turn=True)

  # For text responses, when the model's turn is complete it breaks out of the loop.
  async for response in session.receive():
    print("- ", response.text)

主な機能:

  • マルチモーダル: モデルは視覚、聴覚、音声を認識できます。
  • 低レイテンシのリアルタイム インタラクション: 迅速なレスポンスを提供します。
  • セッション メモリ: モデルは、1 つのセッション内のすべてのインタラクションのメモリを保持し、以前に聞いたことや見たことがある情報を呼び出します。
  • 関数呼び出し、コード実行、ツールとしての検索のサポート: 外部サービスやデータソースとの統合が可能になります。
  • 自動音声アクティビティ検出(VAD): モデルは、ユーザーが発話を開始および停止したタイミングを正確に認識できます。これにより、自然な会話型のやり取りが可能になり、ユーザーはいつでもモデルを中断できます。

Language:

  • 英語のみ

制限事項:

  • 音声入力と音声出力の両方が、モデルの関数呼び出し機能に悪影響を及ぼします。

API の機能と制限事項の詳細については、マルチモーダル ライブ API リファレンス ガイドをご覧ください。

Multimodal Live API は Google AI Studio で試すことができます。開発を開始するには、ウェブ コンソール(React で記述)をお試しください。Python デベロッパーの場合は、スターターコード(ノートブック.py ファイル)をお試しください。ノートブックを使用するのが最も簡単ですが、ライブ API はターミナルから実行すると最適に動作します。

検索ツール

Google 検索でのグラウンディングを使用すると、モデルからの回答の精度と新しさを高めることができます。Gemini 2.0 以降では、Google 検索をツールとして使用できます。つまり、モデルは Google 検索を使用するタイミングを判断できます。次の例は、検索をツールとして構成する方法を示しています。

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.0-flash-exp"

google_search_tool = Tool(
    google_search = GoogleSearch()
)

response = client.models.generate_content(
    model=model_id,
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[google_search_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

検索ツールとしての機能を使用すると、マルチターン検索やマルチツールクエリも可能になります(たとえば、グラウンディングと Google 検索、コード実行を組み合わせる)。

検索ツールを使用すると、計画、推論、思考を必要とする複雑なプロンプトとワークフローを実現できます。

  • グラウンディングにより事実性と新しさを高め、より正確な回答を提供
  • ウェブからアーティファクトを取得して詳細な分析を行う
  • マルチモーダル推論や生成タスクを支援する関連する画像、動画、その他のメディアを見つける
  • コーディング、技術的なトラブルシューティング、その他の専門的なタスク
  • 地域固有の情報の検索、コンテンツの正確な翻訳のサポート
  • 関連するウェブサイトを見つけてさらに閲覧する

検索ツール ノートブックを試すことで、この機能の使用を開始できます。

ツールの改善

Gemini 2.0 では、エージェント エクスペリエンスをより適切にサポートする関数の呼び出しとツールが改善されています。

コンポジショナル関数呼び出し

Gemini 2.0 は、新しい関数呼び出し機能であるコンポーズ関数呼び出しをサポートしています。コンポジション関数呼び出しを使用すると、Gemini API はレスポンスの生成プロセスで複数のユーザー定義関数を自動的に呼び出します。たとえば、プロンプト "Get the temperature in my current location" に応答するために、Gemini API は get_current_location() 関数と、位置情報をパラメータとして受け取る get_weather() 関数の両方を呼び出す場合があります。

コード実行によるコンポジション関数呼び出しには双方向ストリーミングが必要であり、新しい Multimodal Live API でのみサポートされています。以下は、コンポジショナル関数呼び出し、コード実行、Multimodal Live API を組み合わせて使用する方法を示した例です。

turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}

prompt = """
  Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
  """

tools = [
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Python デベロッパーは、Live API Tool Use ノートブックでこれを試すことができます。

マルチツールの使用

Gemini 2.0 では、複数のツールを同時に有効にできます。モデルがツールを呼び出すタイミングを決定します。次の例は、Multimodal Live API を使用してリクエストで 2 つのツール(Google 検索によるグラウンドングとコード実行)を有効にするものです。

prompt = """
  Hey, I need you to do three things for me.

  1. Turn on the lights.
  2. Then compute the largest prime palindrome under 100000.
  3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.

  Thanks!
  """

tools = [
    {'google_search': {}},
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Python デベロッパーは、Live API Tool Use ノートブックでこれを試すことができます。

境界ボックス検出

この試験運用版では、画像と動画内のオブジェクト検出とローカライズのための強力なツールをデベロッパーに提供します。境界ボックスを使用してオブジェクトを正確に識別して区切ることで、デベロッパーは幅広いアプリケーションを実現し、プロジェクトのインテリジェンスを強化できます。

主なメリット:

  • シンプル: コンピュータ ビジョンの専門知識に関係なく、オブジェクト検出機能を簡単にアプリケーションに統合できます。
  • カスタマイズ可能: カスタム モデルをトレーニングしなくても、カスタム インストラクション(「この画像内のすべての緑色のオブジェクトの境界ボックスを表示したい」など)に基づいて境界ボックスを生成できます。

技術的な詳細:

  • 入力: プロンプトと、関連する画像または動画フレーム。
  • 出力: [y_min, x_min, y_max, x_max] 形式の境界ボックス。左上は原点です。x 軸と y 軸は、それぞれ水平方向と垂直方向に進みます。座標値は、画像ごとに 0 ~ 1,000 に正規化されます。
  • 可視化: AI Studio ユーザーには、UI 内に境界ボックスが表示されます。Vertex AI ユーザーは、カスタム可視化コードを使用してバウンディング ボックスを可視化する必要があります。

Python デベロッパーの場合は、2D 空間認識ノートブックまたは試験運用版の 3D ポインティング ノートブックをお試しください。

音声生成(早期アクセス/許可リスト)

Gemini 2.0 は、テキスト読み上げという新しいマルチモーダル生成機能をサポートしています。Text-to-Speech 機能を使用すると、人間の声のように聞こえる高品質な音声出力を生成するようにモデルに指示できます(say "hi everyone")。また、音声をステアリングすることで出力をさらに調整できます。

画像生成(早期アクセス/許可リスト)

Gemini 2.0 は、インライン画像を含むテキストを出力する機能をサポートしています。これにより、Gemini を使用して画像を会話的に編集したり、マルチモーダル出力(1 つのターンでテキストと画像を含むブログ投稿など)を生成したりできます。これまでは、複数のモデルを連結する必要がありました。

画像生成は非公開の試験運用版としてご利用いただけます。次のモダリティと機能をサポートしています。

  • テキストから画像
    • プロンプトの例: 「背景に花火があるエッフェル塔の画像を生成して。」
  • テキストから画像とテキスト(インターリーブ)
    • プロンプトの例: 「パエリアのレシピをイラスト付きで生成してください。」
  • 画像とテキストから画像とテキスト(インターリーブ)
    • プロンプトの例:(家具付きの部屋の画像を使用)「この部屋に合いそうなソファの色は他にどんなものがありますか?画像を更新していただけますか?」
  • 画像編集(テキストと画像から画像)
    • プロンプトの例: 「この画像を編集して漫画のようにしてください」
    • プロンプトの例: [猫の画像] + [枕の画像] + 「この枕に猫のクロスステッチを作成して」
  • マルチターン画像編集(チャット)
    • プロンプトの例: [青い車の画像をアップロードしてください。]「この車をコンバーチブルにしてください。」「色を黄色に変更してください。」
  • 透かし(SynthID)

制限事項:

  • 人物の生成や、アップロードされた人物の画像の編集は許可されていません。
  • 画像生成は、英語、スペイン語(メキシコ)、日本語、中国語(簡体字)、ヒンディー語でのみサポートされています。
  • 画像生成では、音声や動画の入力はサポートされていません。
  • 画像生成がトリガーされない場合があります。
    • モデルはテキストのみを出力する場合があります。画像出力を明示的にリクエストしてみてください(例: 「画像を生成」、「画像を入力しながら進めてください」、「画像を更新してください」)。
    • モデルの生成が途中で停止することがあります。もう一度お試しいただくか、別のプロンプトをお試しください。