Skip to content

ClasCat® AI Research

クラスキャット – 生成 AI, AI エージェント, MCP

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

Gemini : 生成モデルの概念 / プロンプト基礎

Posted on 04/15/202404/28/2024 by Sales Information

Gemini : 生成モデルについて

作成 : クラスキャット セールスインフォメーション
作成日時 : 04/15/2024

* 本ページは、ai.google.dev の以下のページを独自に翻訳して、適宜、補足説明したものです :

  • About generative models

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

◆ クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

ClassCat Chatbot

  • 人工知能研究開発支援
    1. 人工知能研修サービス(経営者層向けオンサイト研修)
    2. テクニカルコンサルティングサービス
    3. 実証実験(プロトタイプ構築)
    4. アプリケーションへの実装

  • 人工知能研修サービス

  • PoC(概念実証)を失敗させないための支援
◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。

◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

  • クラスキャット セールス・マーケティング本部 セールス・インフォメーション
  • sales-info@classcat.com  ;  Website: www.classcat.com  ;   ClassCatJP

 

Gemini : 生成モデルについて

Gemini ファミリーのモデルのような生成人工知能 (AI) モデルは、テキスト、画像や音声を含む様々なタイプのデータ入力からコンテンツを作成することができます。最も基本的なレベルでは、これらのモデルは洗練されたオートコンプリート (自動補完) アプリケーションのように動作します。入力テキスト (“You can lead a horse to water,”) が与えられたとき、生成モデルは訓練データから学習したパターンに基づいて、統計的に続く可能性が高い出力テキスト (“but you can’t make it drink”) を予測できます。生成モデルのこの基本的な特性を様々なアプリケーションに利用できます :

  • 詩、短編小説、比喩、そしてブログ投稿のような創造的な文章を生成する

  • 構造化データを自由形式テキストに変換する

  • 自由形式テキストから情報を抽出して要約する

  • コードを生成する

  • 言語間の翻訳

生成モデルを使用してこれらの機能を構築することはどのような機械学習 (ML) の専門知識も必要ありません。大規模なデータセットを収集したりモデルを訓練する必要もありません。最初のプロトタイプを始めるために必要なことはモデルに行って欲しいことを数行で記述するだけです。

テキスト入力と出力だけを処理する生成モデルは大規模言語モデル (LLM) とも呼ばれます。Gemini ファミリーのモデルはテキストデータ以上のものを処理できて、LLM の機能を遂行できる一方で、より適切に生成モデルとして呼ばれます。

 

サンプルアプリケーション

以下の例は生成モデルへの通常の入力と、からの出力を示します。

 

詩の生成

ユーザ入力: “Write me a four-line poem about puppies and Android phones. Make sure it rhymes.”

モデル出力:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

 

リストの生成

ユーザ入力: “Generate a bulleted list of items I need to pack for a three-day camping trip.”

モデル出力:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

以下は日本語例です :

ユーザ入力: 「3 日間のキャンプ旅行に必要なアイテムの箇条書きリストを作成します。」

モデル出力:

### キャンプ用品チェックリスト:

* **寝具**
    * テント
    * 寝袋
    * 寝袋用マット
    * 枕
* **シェルター**
    * タープ(雨の場合)
    * グランドシート
    * キャンプ用椅子
    * ロープ
* **料理**
    * ストーブ
    * 燃料
    * 鍋とフライパン
    * 調理器具
    * 食器とカトラリー
    * クーラーボックス
    * 水
    * 食料
* **衣類**
    * ハイキングシューズ
    * 靴下
    * 下着
    * パンツ
    * シャツ
    * セーターまたはジャケット
    * レインギア
    * 帽子
* **必需品**
    * ヘッドランプまたは懐中電灯
    * 応急処置キット
    * 虫よけ
    * 日焼け止め
    * トイレタリー
    * 手を拭くタオル
    * トイレットペーパー 
    * ゴミ袋 
* **その他**
    * カメラ
    * 本
    * 携帯電話充電器
    * 現金

プロンプト と呼ばれる、適切な入力テキストを作成するだけで、生成モデルにこのようなあらゆる種類の有用な動作を生成させることができます。生成モデルに望むことを実行させるために適切な表現 (wording) を見出す技術 (art) と科学は プロンプト設計 と呼ばれます (「プロンプトエンジニアリング」、あるいは単に「プロンプティング」とも呼ばれます)。

 

プロンプト設計 101

前のセクションでは、「詩を書いてください」のような、指示を含むプロンプトの幾つかの例を示しました。この種類の指示はあるタイプのタスクに対しては上手く動作する可能性があります。けれども、他のアプリケーションについては、few-ショット・プロンプティング と呼ばれる別のプロンプティング技術がよりよく動作する可能性があります。few-ショット・プロンプトは、大規模言語モデルがテキストデータでパターンを認識して複製することに素晴らしく優れているという事実を利用しています。このアイデアは、生成モデルが補完するために学習すべきテキストパターンを送ることです。例えば、国名を入力として受け取りその首都を出力するアプリケーションを構築したいとします。これがそれを行なうように設計されたテキストプロンプトです :

Italy : Rome
France : Paris
Germany :

このプロンプトでは、[country] : [capital] というパターンを規定しています。このプロンプトを大規模言語モデルに送信した場合、パターンを自動コンプリートしてこのように返すでしょう :

     Berlin
Turkey : Ankara
Greece : Athens

このモデル応答は少し奇妙に見えるかもしれません。モデルはドイツの首都 (手書きのプロンプトの最後の国) だけではなく、追加の国と首都のペアのリスト全体を返しました。これは生成モデルが「パターンの継続」をしているためです。あなたが試していることのすべてが入力した国の首都 (“Germany : Berlin”) を伝える関数を構築することならば、モデルが「ベルリン」の後に生成する任意のテキストは実際には関心がないかもしれません。実際には、アプリケーション設計者としては、これらの無関係なサンプルは切り捨てたいはずです。更に、ドイツが固定文字列ではなくエンドユーザが供給する変数であるように、たぶん入力を パラメータ化 したいでしょう。

※ 訳註: Gemini 1.5 Pro モデルではこの現象は発生しませんでした。つまり “Berlin” だけを返しました。

Italy : Rome
France : Paris
<user input here> :

国の首都を生成するために few-ショット・プロンプトを作成しました。

この few-ショット・プロンプト テンプレートに従うことで、非常に多くのタスクを遂行することができます。ここに、Python を JavaScript に変換する少し異なる形式の few-shot プロンプトがあります :

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

※ 訳註: 以下は Gemini 1.5 pro の出力です :

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript: JavaScript: console.log("${USER INPUT HERE}") 

あるいは、この「逆 (reverse) 辞書」プロンプトを使用します。定義が与えられたとき、その定義に当てはまる単語を返します :

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

※ 訳註: 以下は日本語も交えた出力例です :

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: 他人の不幸を喜ぶ気持ち
Word: シャーデンフロイデ

これらの few-ショット・プロンプトの正確なパターンはわずかに異なることに気づいたかもしれません。サンプルを含めることに加えて、プロンプトで指示を提供することは独自のプロンプトを作成するときに考慮すべき追加のストラテジーです、それは貴方の意図をモデルに伝えるのに役立つからです。

 

プロンプティング vs 従来のソフトウェア開発

注意深く書かれた仕様に対して設計された従来のソフトウェアとは違い、生成モデルの動作はモデルトレーナーにとってさえも非常に曖昧・不透明 (opaque) です。そのため、どのようなタイプのプロンプト構造が特定のモデルに対して最善に動作するかを前もって予測することはできない場合が多いです。更に、生成モデルの動作は訓練データにより大部分が決定され、そしてモデルは新しいデータセットで継続的に調整されますので、モデルの変更はどのプロンプト構造が最善に動作するかを気付かずに変化させるのに十分な場合があります。これは貴方に対して何を意味するのでしょう? 実験です! 様々ななプロンプト形式を試してください。

 

モデルパラメータ

モデルに送信するすべてのプロンプトは、モデルがどのように応答を生成するか制御するパラメータ値を含みます。モデルは異なるパラメータ値に対して異なる結果を生成することができます。最も一般的なモデルパラメータは以下のようなものです :

  1. 最大出力トークン (Max output tokens) : 応答で生成できる最大トークン数を指定します。 トークンは約 4 文字です。100 トークンはおよそ 60-80 単語に相当します。

  2. Temperature (温度) : temperature はトークン選択におけるランダム性の程度・度合いを制御します。temperature は応答生成の際のサンプリングのために使用され、これは topP や topK が適用される場合に発生します。低い temperature はより決定的で自由度の低い応答を必要とするプロンプトのために適しており、一方で高い temperature はより多様性があり創造的な結果につながります。0 の temperature は決定論的で、最も高い確率の応答が常に選択されることを意味します。

  3. topK : topK パラメータはモデルが出力用にトークンをどのように選択するかを変更します。1 の topK は、選択されたトークンがモデルの語彙のすべてのトークンの中で最も確率が高い (greedy デコーディングとも呼ばれます) ことを意味し、3 の topK は、次のトークンが temperature を使用して 3 つの最も確率の高いものの中から選択されることを意味します。各トークン選択ステップについて、最も高い確率をもつ topK トークンがサンプリングされます。そしてトークンは更に topP に基づいてフィルタリングされ、最終的なトークンは temperature サンプリングを使用して選択されます。

  4. topP : topP パラメータはモデルが出力用トークンを選択する方法を変更します。トークンは、それらの確率の合計が topP 値に等しくなるまで、最も高い確率のものから低いものへと選択されます。例えば、トークン A, B と C が確率 0.3, 0.2 と 0.1 で topP 値が 0.5 である場合、モデルは temperature を使用して次のトークンとして A か B のいずれかを選択し、C は候補から除外します。デフォルトの topP 値は 0.95 です。

  5. stop_sequences : モデルにコンテンツの生成を停止することを知らせる停止シークエンスを設定します。停止シークエンスはどのような文字のシークエンスでの構いません。生成されるコンテンツで出現する可能性がある文字のシークエンスの使用は避けるようにしてください。

 

プロンプトのタイプ

含まれるコンテキストの情報のレベルに依存して、プロンプトは大きく 3 つのタイプに分類されます。

 

ゼロショット・プロンプト

これらのプロンプトはモデルが複製できるサンプルを含みません。ゼロショット・プロンプトは、追加サンプルや情報なしにプロンプトを補完するモデルの能力を基本的には示します。これは、モデルがもっともらしい回答を生成するために事前の既存の知識に依存する必要があることを意味しています。

いくつかの一般に使用されるゼロショット・プロンプトのパターンは :

  • 指示 (Instruction) - コンテンツ
    <Overall instruction>
    <Content to operate on>
    

    例えば :

    Summarize the following into two sentences at the third-grade level:
    
    Hummingbirds are the smallest birds in the world, and they are also one of the
    most fascinating. They are found in North and South America, and they are known
    for their long, thin beaks and their ability to fly at high speeds.
    
    Hummingbirds are made up of three main parts: the head, the body, and the tail.
    The head is small and round, and it contains the eyes, the beak, and the brain.
    The body is long and slender, and it contains the wings, the legs, and the
    heart. The tail is long and forked, and it helps the hummingbird to balance
    while it is flying.
    
    Hummingbirds are also known for their coloration. They come in a variety of
    colors, including green, blue, red, and purple. Some hummingbirds are even able
    to change their color!
    
    Hummingbirds are very active creatures. They spend most of their time flying,
    and they are also very good at hovering. Hummingbirds need to eat a lot of food
    in order to maintain their energy, and they often visit flowers to drink nectar.
    
    Hummingbirds are amazing creatures. They are small, but they are also very
    powerful. They are beautiful, and they are very important to the ecosystem.
    

  • 指示 - コンテンツ - 指示
    <Overall instruction or context setting>
    <Content to operate on>
    <Final instruction>
    

    例えば :

    Here is some text I'd like you to summarize:
    
    Hummingbirds are the smallest birds in the world, and they are also one of the
    most fascinating. They are found in North and South America, and they are known
    for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
    are made up of three main parts: the head, the body, and the tail. The head is
    small and round, and it contains the eyes, the beak, and the brain. The body is
    long and slender, and it contains the wings, the legs, and the heart. The tail
    is long and forked, and it helps the hummingbird to balance while it is flying.
    Hummingbirds are also known for their coloration. They come in a variety of
    colors, including green, blue, red, and purple. Some hummingbirds are even able
    to change their color! Hummingbirds are very active creatures. They spend most
    of their time flying, and they are also very good at hovering. Hummingbirds need
    to eat a lot of food in order to maintain their energy, and they often visit
    flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
    they are also very powerful. They are beautiful, and they are very important to
    the ecosystem.
    
    Summarize it in two sentences at the third-grade reading level.
    

  • 継続 (Continuation) 。指示なしにモデルにテキストを継続させることができる場合もあります。例えば、ここにゼロショット・プロンプトがあり、そこではモデルは提供された入力を続けるように目的化されます :
    Food: Apple
    Pairs with: Cheese
    Food: Pear
    Pairs with:
    

ゼロショット・プロンプトを使用して、詩、コード、スクリプト、楽曲、電子メールや手紙のような創造的なテキスト形式を生成できます。

 

ワンショット・プロンプト

これらのプロンプトは、パターンを複製して継続するためにモデルに単一のプロンプトを提供します。これはモデルから予測可能な応答を生成することを可能にします。

例えば、以下のような食品のペアリングを生成できます :

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

 

Few-ショット・プロンプト

これらのプロンプトはモデルに複製する複数のサンプルを提供します。few-ショット・プロンプトを使用して、パターンに基づいてデータを合成するような、複雑なタスクを補完できます。

サンプル・プロンプトは次のようなものです :

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

 

以上



クラスキャット

最近の投稿

  • LangGraph 0.5 on Colab : Get started : Tavily Web 検索ツールの追加
  • LangGraph 0.5 on Colab : Get started : カスタム・ワークフローの構築
  • LangGraph 0.5 on Colab : Get started : クイックスタート
  • LangGraph on Colab : SQL エージェントの構築
  • LangGraph on Colab : マルチエージェント・スーパーバイザー

タグ

AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Eager Execution (7) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.6 (7) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangGraph (24) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Agents SDK (8) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Get Started (7) TensorFlow Graphics (7) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2024年4月
月 火 水 木 金 土 日
1234567
891011121314
15161718192021
22232425262728
2930  
« 3月   5月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme