見出し画像

ChatGPT APIノーコーディング2:ChatGPTでtemperatureを0にしたら、精度が最大になり、ブレのない答えが得られた件

temperatureの実験のおさらい

前回の次の記事についての追加報告です。

これは、APIを使って質問をするとき、temperature(テンパチャー:温度)という引数をいろいろ実験したみたという内容です。

temperatureというのは、回答の精度を指示するもので、temperature=0.0にすると最も精度が高くブレのない回答が得られるはずです。ということは、同じ質問には毎回必ず同じ回答になると予想。

ところが実際に試してみると、回答内容が毎回異なっていて、思ってたのと違う、という結果でした。

これについて、追加検証をしたところ、やはり精度が高いことがわかりました。つまり、

ほぼ同じ結果が得られることが分かった

ということです。

検証1:temperature=0.0

実際の検証方法は簡単です。コードを少し修正して、temperature=0.0で10回連続して質問するようにしてみただけです。

コード:★の行を修正

import openai

# Set up OpenAI API credentials
openai.api_key = 'YOUR_API_KEY'

# Define the temperature values
temperatures = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] #★

# Main loop
while True:
    # Get user input
    question = input("Enter your question (or 'q' to quit): ")

    # Check if the user wants to quit
    if question.lower() == 'q':
        break

    # Generate responses for each temperature
    for temp in temperatures:
        response = openai.Completion.create(
            engine='text-davinci-003',
            prompt=question,
            max_tokens=1000,
            temperature=temp,
            n=1,
            stop=None,
            echo=False
        )

        # Print the generated response
        print(f"Response (temperature={temp}): {response.choices[0].text.strip()}")

これを実行したのが次です。

実行結果1:AIとは一言でいうと何ですか?

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。

これについては、10回の回答がまったく同じでした。

実行結果2:宇宙とはなんですか?

Enter your question (or 'q' to quit): 宇宙とはなんですか?
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙線、放射
能、宇宙物質など、様々な物質が存在しています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙線、放射
能、宇宙物質など、様々な物質が存在しています。
Response (temperature=0): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、宇
宙生物学などの多くの分野で研究されています。

これについては、10回の回答がまったく同じではありませんでしたが、2パターンの回答になりました。

検証2:temperature=0.1

それでは次に、temperatureの値をほんの少し増やして、0.1で同じ検証をしてみます。さてどうなるでしょうか?

コード:★の行を修正

import openai

# Set up OpenAI API credentials
openai.api_key = 'YOUR_API_KEY'

# Define the temperature values
temperatures = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] #★

# Main loop
while True:
    # Get user input
    question = input("Enter your question (or 'q' to quit): ")

    # Check if the user wants to quit
    if question.lower() == 'q':
        break

    # Generate responses for each temperature
    for temp in temperatures:
        response = openai.Completion.create(
            engine='text-davinci-003',
            prompt=question,
            max_tokens=1000,
            temperature=temp,
            n=1,
            stop=None,
            echo=False
        )

        # Print the generated response
        print(f"Response (temperature={temp}): {response.choices[0].text.strip()}")

これを実行したのが次です。

実行結果1:AIとは一言でいうと何ですか?

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自律的に学習し、判断し、行動する能力を持つ技術のことを指します。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターなどのプログラムを使って人間が行うような複雑なタスクを自動的に行う技術のことを指します。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が自然な環境で人間のような振る舞いをするようにプログラムされた技術のことを指します
。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法でタスクを実行するように設計されたプログラムです。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が自律的に学習し、判断し、行動する能力を持つ技術のことを指します。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が人間のような思考や行動を行うことを可能にする技術です。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が自然な方法でタスクを実行する能力を指します。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような仕事を行うことを可能にする技術です。
Response (temperature=0.1): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターなどのプログラムを使って人間のような思考や行動を実現する技術のことを指します。

冒頭の「AIとは、人工知能(Artificial Intelligence)の」あたりまでは同じですが、継続するワードがじょじょに変化し、最終的にまったく同一の文章は一つもありませんでした。

実行結果2:宇宙とはなんですか?

Enter your question (or 'q' to quit): 宇宙とはなんですか?
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙線、放
射能、宇宙物質など、様々な物質が存在しています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、
宇宙生物学などの学問分野で研究されています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、流星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙
線、放射能、重力など、様々な物理現象が存在します。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星や惑星、衛星、小惑星、彗星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙線、放射
能、重力など、物理的な現象も存在します。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、流星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、宇宙
線、宇宙射線、宇宙物質など、様々な物質が存在しています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、
宇宙生物学などの研究分野で研究されています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星々、惑星、衛星、小惑星、彗星、銀河などの様々な天体を含む、無限の広大な空間です。宇宙は、宇宙物理学、天文学、
宇宙生物学などの分野で研究されています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星や惑星、衛星、小惑星、彗星などの様々な天体を含む、無限の広大な空間です。また、宇宙には、銀河や星雲などの天体
群も含まれています。
Response (temperature=0.1): 宇宙とは、宇宙空間全体を指します。宇宙は、星、惑星、衛星、小惑星、彗星、流星、銀河など、無数の天体が存在する無限の広大な空間です。また、宇宙には、ガス、
小さな微粒子、放射線など、様々な物質が存在しています。

こちらも同じですね。冒頭の「宇宙とは、宇宙空間全体を指します。宇宙は、」あたりまでは同じですが、その後はじょじょに分岐していって、最終的にまったく同じ文章は一つもありませんでした。

検証3:temperatureを大きくしてみる

ここまでの検証で、temperatureの値が、確かに、文章の多様性(ばらつき)に関係することがわかりました。もう少し具体的に言うと、なんとなくですが、

重みづけの高いワードが選ばれていそう

な感じです。ということは、temperatureの値を増やしていけば、どんどん多様化が進んでいくような感じがします。そこで、同じ質問でより大きな値で実験してみました。

temperature=0.2

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0.2): AIとは、「人工知能」の略で、コンピューターが自律的に学習し、判断し、行動する能力を持つ技術のことを指します。
Response (temperature=0.2): AIとは、「人工知能」の略であり、コンピューターや機械が自律的に学習し、判断し、行動する能力を持つ技術のことを指します。
Response (temperature=0.2): AIとは、「人工知能」の略で、コンピューターなどのプログラムを用いて人間が行うような複雑なタスクを自動的に行う技術のことを指します。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が自然な方法でタスクを実行する能力を指します。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が人間のように思考し、学習し、決定を下すことを可能にする技術です。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械によって人間のような思考や行動を可能にする技術を指します。
Response (temperature=0.2): AIとは、「人工知能」の略で、コンピューターなどを用いて人間が行うような複雑な処理を行う技術のことを指します。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターが人間のような思考や行動を行う能力を持つ技術のことを指します。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法でタスクを実行する能力を持つ技術のことを指します。
Response (temperature=0.2): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が人間のような思考や行動を行う能力を持つ技術のことを指します。

temperature=0.1のときには、「AIとは、人工知能(Artificial Intelligence)の」あたりまで同じでしたが、temperature=0.2になると「AIとは、」以降、早々にばらつきが出てくるようになりました。

temperature=0.4

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が自ら学習し、動作を行う能力を持つ技術のことを指します。
Response (temperature=0.4): AIとは、「人工知能」の略語です。
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略です。AIは、コンピュータプログラムを使用して、人間のような思考や行動を行うことができる技術です。
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターや機械が人間のような認知能力を持つようにプログラムされた技術のことを指します。
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自ら学習し、思考する能力を持つ技術のことを指します。
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然言語やデータを分析し、複雑なタスクを自動的に行う能力を持つ技術です
。
Response (temperature=0.4): AIとは、「人工知能」の略で、コンピューターや機械が人間と同様の認知能力を持つようにプログラムされた技術のことを指します。
Response (temperature=0.4): AIとは、「人工知能」の略で、コンピューターなどを使って人間が行う複雑な思考や判断を行う技術のことを指します。
Response (temperature=0.4): AIとは、「人工知能」の略であり、コンピュータプログラムを使用して人間が行うような複雑なタスクを実行する能力を持つ技術のことを指します。
Response (temperature=0.4): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターなどが自律的に学習し、判断を下し、タスクを実行する能力を持つ技術のことを指します。

temperature=0.4は、temperature=0.2より、バラツキがさらに進んだ気がします。ただ、ここで妙に短い回答が出ていることにも注目しておいてください。

temperature=0.6

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0.6): AIとは、「人工知能」の略で、コンピューターなどが自律的に情報を処理し、人間のような思考や行動をするようにプログラムされた技術のことを指します。
Response (temperature=0.6): 人工知能。
Response (temperature=0.6): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が人間と同じように思考や学習を行うことを可能にする技術です。
Response (temperature=0.6): AIとは、「人工知能」の略語です。
Response (temperature=0.6): AIとは、人工知能の略で、コンピューターに自然言語や図形などを入力し、複雑な計算を行い、人間が行うような仕事を行う能力を持つプログラムのことを指します。
Response (temperature=0.6): AIとは、「人工知能」の略称です。
Response (temperature=0.6): AIとは、「人工知能(Artificial Intelligence)」の略称です。人間が持つ論理的思考や学習能力をコンピューター上で再現する技術を指します。
Response (temperature=0.6): AIとは、人工知能(Artificial Intelligence)の略語です。AIは、コンピューターや機械が、人間のように思考し、学習し、自律的に行動する能力を持っていると考えら
れています。
Response (temperature=0.6): 人工知能(Artificial Intelligence)
Response (temperature=0.6): AIとは、人工知能(Artificial Intelligence)の略で、コンピューターが自然言語を理解し、人間と同様の方法でタスクを実行できるようにプログラムされた能力を指し
ます。

temperature=0.6です。バラツキが進んでる感じはしますが、その一方でtemperature=0.4で見られた、妙に短い回答が増えていますね。

temperature=0.8

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?
Response (temperature=0.8): AIとは、人工知能(Artificial Intelligence)の略語です。AIは、コンピューターや機械が人間の知能を模倣してタスクを自動化する技術です。
Response (temperature=0.8): 人工知能(Artificial Intelligence)
Response (temperature=0.8): AIとは、「人工知能」のことです。
Response (temperature=0.8): 人工知能(Artificial Intelligence)
Response (temperature=0.8): AIとは、「人工知能」のことです。
Response (temperature=0.8): AIとは、人工知能(Artificial Intelligence)の略で、コンピュータが人間のように思考・感覚・判断する能力を持つことを指します。
Response (temperature=0.8): AIとは、「人工知能」を意味します。
Response (temperature=0.8): AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピュータが自律的に学習し、判断をする能力を持つ、智能オブジェクトおよびプログラムを指しま
す。
Response (temperature=0.8): AIとは「人工知能」の略で、コンピューターが人間と同じように考えることを可能にする技術のことを指します。
Response (temperature=0.8): AIとは、「人工知能」を意味します。AIは、人間のように思考し、学習できるコンピュータシステムを構築することを目的とした技術です。

temperature=0.8です。妙に短い回答がさらに増えている感じです。多様化が進むとばかり思いましたが、逆に文章の成長が抑制されているようにも思えます。

結局temperature値はどうすべきか?

一般的に、temperatureの値は0.2~0.8に設定する、と言われているようですが、これらの結果を見ると、なんとなくですが、

temperatureの値は0.1~0.4程度が妥当

ではないかという感じします。ただ、これは、今回の質問だけの結果ですので、より多くの検証が必要になると思われます。

また、temperatureの値を上げて、AIに文章としての多様性を最初から求めると輪郭がぼやけてしまいます。AIと向き合う上で大事なことは質問力といいますが、AIと向き合って質問力を上げるためには、

temperatureの値は0にして使う

という考え方もありではないかと思います。たとえば、上記で何度もしてきた質問、

AIとは一言でいうと何ですか?

ですが、これを、

AIとは一言でいうと何ですか?優しく教えてください。

とするだけで、次のように回答が変わります。

Enter your question (or 'q' to quit): AIとは一言でいうと何ですか?優しく教えてください。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って人間が行うような複雑なタスクを自動的に行う技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って人間が行うような複雑なタスクを自動的に行う技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。
Response (temperature=0): AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って人間が行うような複雑なタスクを自動的に行う技術のことです。

temperature=0で「AIとは一言でいうと何ですか?」という質問の答え

→ AIとは、人工知能(Artificial Intelligence)の略称です。AIは、コンピューターや機械が自然な方法で人間のような思考や行動を行うことを可能にする技術です。

temperature=0で「AIとは一言でいうと何ですか?優しく教えてください。」という質問の答え

→ AIとは、「人工知能」の略で、コンピューターなどのプログラムを使って、人間が行うような複雑なタスクを行う能力を持つ技術のことです。

質問には収束型と拡散型があり、前者は調べもの、後者はアイデア出しに向いています。このうち、収束型の質問力を鍛えるには、temperature=0にしたほうが、少なくとも最初はいいように思います。

また、ChatGPTは思考を拡散するためのツールという役割もありますが、一方で、その本質に迫るには、temperature=0の回答を見ることが大事ではないかと思うのです。

というわけで、

ますます興味深いな、ChatGPT!

関係する記事一覧


この記事が気に入ったらサポートをしてみませんか?