ExcelのChatGPT関数でTemperatureを指定できるようにする

ExcelVBA

Excelのユーザー定義関数で、役割も含めて質問できるようにしたChatGPT関数。OpenAIのAPIを呼び出しているのですが、パラメータ存在するTemperatureを第三引数として指定できるようにしてみます。

OpenAIのドキュメントによると、Temperatureとは、
Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
と解説されており、まあ、一貫性、曖昧度、と言ってよいでしょうか、AIが「幻覚」を見て出力しているようなハルシネーション(Hallucination)を発生しにくくすることもできるかもしれません。値は0~2の小数で指定することができ、0が厳格、大きくなるとランダムになると書かれています。0.8は大きな値とされているので、最大の2にするとめちゃめちゃランダムになりそうで興味深いところ、このあたりもExcelのChatGPT関数であれば、並べて比較しやすいので有用な気がします。

念のため、Temperatureについて、ChatGPTに聞いてみました。
「Temperatureは、自然言語処理において生成される文章の多様性(diversity)を調整するために使用されるパラメーターです。Temperatureが低い場合、生成される文章はより堅い文体や正確な表現になり、結果的により一貫性のある文章が生成されます。一方で、Temperatureが高い場合、生成される文章はより多様で創造的なものになりますが、正確性に欠けることがあります。Temperatureの値は0から1の間の浮動小数点数で表され、値が低いほど生成される文章はより堅い文体に、高いほどより多様で創造的な表現になります。ただし、Temperatureが高すぎる場合、意味不明な文章が生成されたり、文法的に不適切な文章が生成されたりすることがあります。そのため、適切なTemperatureの値を選ぶことが重要です。」
あら完璧、最初から聞けばよかったですね。「0から1の間」は「

念のため、Temperatureについて、ChatGPTに聞いてみました。
「Temperatureは、自然言語処理において生成される文章の多様性(diversity)を調整するために使用されるパラメーターです。Temperatureが低い場合、生成される文章はより堅い文体や正確な表現になり、結果的により一貫性のある文章が生成されます。一方で、Temperatureが高い場合、生成される文章はより多様で創造的なものになりますが、正確性に欠けることがあります。Temperatureの値は0から1の間の浮動小数点数で表され、値が低いほど生成される文章はより堅い文体に、高いほどより多様で創造的な表現になります。ただし、Temperatureが高すぎる場合、意味不明な文章が生成されたり、文法的に不適切な文章が生成されたりすることがあります。そのため、適切なTemperatureの値を選ぶことが重要です。」
あら完璧、最初から聞けばよかったですね。(「0から1の間」は「0から2の間」の誤りのようです。)

さて、改修したChatGPTコードです。

さて、さっそく実行してみましょう。ありがたいことに先日、本エントリーを「窓の杜」のニュース記事に取り上げていただきました。

「Excel」上で「ChatGPT」を簡単に扱えるようにする方法が開発される!/「ChatGPT」のAPIキーをマクロに追記するだけで使える
 一般ニュースでも毎日その名を見かけるようになった「ChatGPT」。これをExcelで簡単に呼び出せるユーザー関数が、ブログ「VBAで実用マクロ」の「ChatGPT3.5をExcelワークシート関数として使用する」というエントリーで4月2日に公開されている。


そこでChatGPTに、Temperature最小値と最大値を指定して同サイトの10年後を予想してもらい比較してみます。役割は前回の記事でも登場した関西のおばちゃんとコロ助に担ってもらいましょう。このようにchatGPT関数の引数に(質問文、役割、温度)を指定します。

まずは、関西のおばちゃんの回答がこちら。

なるほど、温度を0にすると役割も消えてしまうのですね。回答内容も、温度0.0の場合は真面目に、温度2.0の場合は伸びやかに自由にコメントされているような気がします。続いてコロ助の場合を見てみましょう。

こちらも、温度0.0の場合は、コロ助の役割が消えています。より役割を強く担わせたい場合は温度の数値を上げて指定するのがよいと言えそうです。最後にオペラ歌手の回答も見てみましょう。

お、こちらは温度0.0でも少し役割を担っているようです。でも、控えめな歌になっていますね。一方、温度2.0の場合はオペラ調全開の回答となっています。

ChatGPT関数における温度Temperature指定、使用するシーンに応じて有効に活用できそうです。それではよいVBAライフを。

コメント

タイトルとURLをコピーしました