Gemini 2.0 Flash が、Gemini Developer 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 つのプラットフォームで実行されるコードは両方のプラットフォームで実行されます。新しい SDK は Python と Go で利用できます。Java と JavaScript は近日提供予定です。
- 新しい SDK をインストールします。
pip install google-genai
- 次に、ライブラリをインポートし、クライアントを初期化してコンテンツを生成します。
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
response = client.models.generate_content(model='gemini-2.0-flash-exp', contents='How does AI work?')
print(response.text)
Python デベロッパーは、Gemini Cookbook のスタートガイド ノートブックも試すことができます。
Multimodal Live API
Multimodal Live API を使用すると、Gemini との低レイテンシの双方向音声と動画のやり取りが可能になります。Multimodal Live API を使用すると、エンドユーザーに自然で人間のような音声会話のエクスペリエンスを提供できます。また、音声コマンドを使用してモデルのレスポンスを中断することもできます。このモデルは、テキスト、音声、動画の入力を処理し、テキストと音声の出力を生成できます。
Multimodal Live API は Google AI Studio で試すことができます。API の機能と制限事項の詳細については、マルチモーダル ライブ 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 の透かしが含まれます。
制限事項:
- 人物の生成や、アップロードされた人物の画像の編集は許可されていません。
- 最適なパフォーマンスを得るには、EN、es-MX、ja-JP、zh-CN、hi-IN のいずれかの言語を使用します。
- 画像生成では、音声や動画の入力はサポートされていません。
- 画像生成がトリガーされない場合があります。
- モデルはテキストのみを出力する場合があります。画像出力を明示的に要求してみてください(例: 「画像を生成」、「画像を随時提供」、「画像を更新」)。
- モデルの生成が途中で停止することがあります。もう一度お試しいただくか、別のプロンプトをお試しください。