昨日のOpenAI社が公開した「プロンプト・エンジニアリング・ガイド」。基本部分だけ読みましたので、命令のやりかたを試行錯誤する例として次のようなことをしました。
ChatGPTは、『長文で予測変換し、それを自然な言語っぽく書くのが得意』である。
だから「イメージをざっくり言って、一から書かせる」のは苦手なこと。
代わりに、既に書いた文章を示して、「校正して下さい」と指示するなら、まあまあ『月並みな表現で当たり障りなく』書き換えてくれるのでは?
###以下の文章を、会社に提出する反省文として、校正しなさい。###
「朝寝坊して会社に遅刻しました。すみません。目覚まし時計はかけてたんですが、無視して二度寝してしまいました。本当済みませんでした。」
ChatGPT「朝寝坊して会社に遅刻しました。大変申し訳ありません。目覚まし時計は設定していたのですが、無視して二度寝してしまいました。本当に反省しています。今後はこのようなことが起こらないように注意していきます。」
うーん。元文を丁寧に言い換えただけですね。
###先の文章を、次のように変更しなさい。###
・文の順番を入れ替えて、謝罪を一番にもってきます。
・朝寝坊という言葉は使わないようにします。
・部署の同僚および上司に対する、気持ちをこめた謝罪を追加します。
ChatGPT:以下は、提出する反省文の例です。
「この度は、私が遅刻してしまい、大変ご迷惑をおかけしましたこと、心よりお詫び申し上げます。当日は、目覚まし時計を設定していたにもかかわらず、二度寝してしまいました。自分自身の管理不足であり、反省しております。また、私の遅刻により、部署の皆様や上司の皆様にご迷惑をおかけしましたこと、深くお詫び申し上げます。今後は、このようなことがないように、責任を持って行動してまいりますので、ご指導賜りますよう、よろしくお願い申し上げます。」
これなら使えそうだと思います。「二度寝と言う単語を使わず、体調不良に言い換えて表現しなさい」とかならもっと良い。
このやりとりを、マストドンで公開したところ、見ていた方が
「やっぱり欲しいものの型は知っておかないとだな……知識が無いとググれない
に近いものを感じる」
と言っておられて、膝を打ちました。
なお、私の名誉のために追記しておきますが:本件はあくまで事例研究のための例示であり、私の個人的体験ではないことを申し添えておきます。
ちなみに、同じ鯖のひとが「データ通信量を求める単純な計算とかでも、危ういときはある」と言ってらしたので。
先のプロンプト・エンジニアリング・ガイドを参考に設問を試行錯誤したのがこちら。
###データ通信量の計算を開始します。###
以下のような条件があります。
・1日あたりの上限は30GBとする
・JST17:00からJST23:00の間の通信量は、1時間あたり2GB以下にする
・JST23:01から翌日JST16:59 (ここまで書いてウッカリ送信したところ)
こういう回答が来ました
の間の通信量は、1時間あたり1GB以下にする
この条件で、1日あたりの通信量を計算するには、以下のように計算できます。
JST17:00からJST23:00の間の通信量の計算
1時間あたり2GB以下という条件があるため、6時間分の通信量の上限は2GB x 6 = 12GBとなります。
JST23:01から翌日JST16:59の間の通信量の計算
1時間あたり1GB以下という条件があるため、15時間分の通信量の上限は1GB x 15 = 15GBとなります。
通信量の合算
JST17:00からJST23:00の間には12GBまで、JST23:01から翌日JST16:59の間には15GBまでの通信量が許容されているため、合算すると以下のようになります。
合計通信量 = 12GB + 15GB = 27GB
1日あたりの通信量の上限が30GBであるため、残りの時間帯(JST0:00からJST16:59、JST23:01からJST24:00)で3GB以下の通信を行うことができます。
以上のように、上記の条件に基づいて1日あたりの通信量を計算することができます。
設問を変更して ……
###上記の条件を変更し、計算します###
・1日あたりの上限は30GBとする
・JST17:00からJST23:00の間の通信量は、1時間あたり1GB以下にする
・JST23:01から翌日JST16:59の間の通信量は、制限なしとする
こういう回答が来ました
以下の条件に基づいて1日あたりの通信量を計算します。
JST17:00からJST23:00の間の通信量の計算
1時間あたり1GB以下という条件があるため、6時間分の通信量の上限は1GB x 6 = 6GBとなります。
JST23:01から翌日JST16:59の間の通信量の計算
この時間帯には通信量の制限がないため、何GBでも通信することができます。ここでは上限がないため、仮に10GBとして計算します。
通信量の合算
JST17:00からJST23:00の間には6GBまで、JST23:01から翌日JST16:59の間には10GBまでの通信量が許容されているため、合算すると以下のようになります。
合計通信量 = 6GB + 10GB = 16GB
1日あたりの通信量の上限が30GBであるため、残りの時間帯(JST0:00からJST16:59、JST23:01からJST24:00)で14GB以下の通信を行うことができます。
以上のように、上記の条件に基づいて1日あたりの通信量を計算することができます。
うーん、惜しい。惜しいところで違う。
プロンプトをこのように設定すると、正確な、私の求める答えになりました。
###以下の通信容量上限を突破しないためには、通信速度に上限を設定する必要がある。計算しなさい。###
・1日あたりの上限は30GBとする
・JST17:00からJST23:00の間の通信量は、1時間あたり1.2GB以下にする
・JST23:01から翌日JST16:59の間の通信量は、制限なしとする。だが、JST17:00-23:00の間に使用した通信量を除いた、残りの通信容量を全て使い切るものとする。
・2つの条件に合致する通信速度を、それぞれの時間帯ごとに計算しなさい。
・計算結果を、MB/sで表記しなさい。
以下の通信容量上限を突破しないためには、通信速度に上限を設定する必要があります。具体的には、以下の2つの条件を満たすために、通信速度の上限を計算します。
条件1:JST17:00からJST23:00の間の通信量は、1時間あたり1.2GB以下にする 条件2:1日あたりの上限は30GBとする
まず、条件1について計算します。
JST17:00からJST23:00の間は6時間あります。1時間あたり1.2GB以下であるため、この6時間で使用できる通信容量は7.2GB以下となります。
次に、条件2について計算します。
JST23:01から翌日JST16:59の間は、制限なしとされていますが、JST17:00-23:00の間に使用した通信量を除いた残りの通信容量を全て使い切るものとします。つまり、JST17:00-23:00の間に7.2GB分の通信容量を使用しているため、残りの通信容量は22.8GBとなります。
以上の2つの条件を満たすために、それぞれの時間帯ごとに通信速度の上限を計算します。
・JST17:00からJST23:00の間の通信速度の上限:1.2GB/hour ・JST23:01から翌日JST16:59の間の通信速度の上限:22.8GB/(24時間-6時間)=1.425GB/hour
したがって、JST17:00からJST23:00の間は1.2GB/hour、JST23:01から翌日JST16:59の間は1.425GB/hourという通信速度の上限を設定する必要があります。なお、1GBは1,024MB、1MBは1,024KB、1KBは1,024バイトとなります。
上記計算結果をMB/sで表記するために、まず1時間あたりの通信容量をMBで表記します。1GBは1,024MBですので、以下の通り計算できます。
・JST17:00からJST23:00の間の通信速度の上限:1.2GB/hour = 1,228.8MB/hour ・JST23:01から翌日JST16:59の間の通信速度の上限:1.425GB/hour = 1,459.2MB/hour
次に、1時間を秒で表記するために、1時間あたりの秒数である3,600秒で割ります。つまり、
・JST17:00からJST23:00の間の通信速度の上限:1,228.8MB/hour ÷ 3,600秒/hour ≒ 0.34133 MB/s ・JST23:01から翌日JST16:59の間の通信速度の上限:1,459.2MB/hour ÷ 3,600秒/hour ≒ 0.40533 MB/s
したがって、JST17:00からJST23:00の間は0.34133 MB/s、JST23:01から翌日JST16:59の間は0.40533 MB/sという通信速度の上限を設定する必要があります。
正しい立式をさせるために、算数の文章問題をあーでもない、こーでもない、とこねくり回してる気分になりました。