架空パラメーターによるChatGPTの文章表現の操作
temperatureなどのChatGPTのパラメーターは、OpenAIのウェブサイトのPlaygroundやAPIでは変更できるようになっていますが、通常のChatGPTのサイトでは変更できないようになっています。
しかし、これを変更する方法を発見しましたので報告します。
また、自由に新しいパラメーターを設定して、これを使ってChatGPTの文章表現を操作できることが分かりましたので、これについても解説します。
1.temperatureの変更
(1) temperature=2.0への変更
最初にChatGPTのサイトでtemperatureを2.0に変更してみます。
ChatGPTのtemperatureは通常、1.0程度に設定されており、もし、temperatureを2.0に引き上げると、以下のように文章が壊れてしまうはずです。
したがって、今回のパラメーターの変更は、本当にtemperatureを2.0に変更しているのではなく、どうもGPT-4がtemperatureを引き上げたふりをして、表現の自由度を高くしたような文章を回答してきたようです。
(2) temperature=10.0への変更
次に、temperatureの最大値は2.0ですが、これを限界を超えた10.0まで引き上げればどうなるでしょうか。
実際には、temperature=10.0に設定するのは無理なはずですが、temperature=2.0のときよりも更に表現の自由度が高い文章を回答してきました。最初の書出しが少しおかしいですが、これでも文章が崩壊して意味不明な文字列に変わってしまうことはありませんでした。
2.他のパラメーターの変更
今度は、frequency penaltyを最小値の-2.0に変更してみました。frequency penaltyは、同じトークンを繰り返すとペナルティを与えるパラメーターで、これが最小値ということは、同じトークンを何度も繰り返してよいと言う意味になります。
「かつて、かつて」「ある日、ある日」などと同じ表現を繰り返していることから、このパラメーター変更もある程度効いていることが分かります。
3.採用していないはずのパラメーターの変更
変更できないパラメーターを変更できるのであれば、ChatGPTが採用していないパラメーターでも変更できるかもしれないと思って試してみました。
(1) top-K samplingの変更
top-K samplingは、次に出現する確率の高いK個の単語の中からランダムに次の単語を選ぶという手法であり、Kを小さくすると文章の精度は上がるが多様性が無くなり、Kを大きくすると文章の精度が下がって多様性が大きくなります。
最初にtop-k=1に設定します。
top-k=1ということは、必ず次に出現する確率が最も高い単語を選ぶということであり、多様性のないありふれた文章になるはずです。実際に文章を見てみると、無駄な修飾がなく、事実だけを淡々と書いた文章になっています。
次に、top-k=1000000に変更してみました。これは、次に出現する単語をほぼ自由に選ぶことができて、多様性の高い文章になることを意味しています。
実際に、top-k=1の文章と比べて、修飾の多い表現力の豊かな文章になっています。
やはり、ChatGPTが採用していないパラメーターでも、これを変更したかのような文章が出力されます。
(2) n-grams penaltyの変更
n-grams penaltyは、n個の単語の繋がりが繰り返し出てくることを防ぐ手法であり、no_repeat_ngram_size=2は、同じ2単語の繋がりが繰り返し出てこないことを意味しています。
結果は、「彼らは」「鬼たちを」など同じ2単語の繋がりが2度出ているところもありますが、できるだけ同じ単語の繋がりが出て来ないように気を付けて書いている感じはします。
4.架空の新パラメーターの設定
(1) 熱量のパラメーターの設定
よく、AIの書いた文章には、熱量が足りないと言われます。そこで、新たに熱量というパラメーターを設定し、これを調節して文章の表現を操作できるか試してみます。
このパラメーターを設定するために入力したプロンプトは以下のとおりです。
このheatというパラメーターを調節することで、ChatGPTの文章表現を操作できるか試してみます。
最初にパラメーターの設定を行い、heat=0で文章を生成してみます。
次に、heat=2.0とheat=10.0に変更して、出力される文章の変化を見てみます。
確かに、heatの値を大きくすると、より情熱的で感情豊かな表現になります。さらに限界を超えてheat=10.0に設定すると、非常に大袈裟な表現になりました。
このように、上手くパラメーターを設定すれば、ChatGPTの文章表現を自由に操作することができそうです。
(2) さらに新しいパラメーターの設定
さらにChatGPTの文章表現を自由に操作するために、新しいパラメーターを設定してみます。
【参考】各作家の文章の特徴
最初に対象となる作家の文章の特徴を聞いておいてからパラメーターを設定すると、パラメーターの効果が出やすくなると思います。
次に、新しく設定したパラメーターを使って、ChatGPTの文章表現を操作してみます。
① heat=1.0、haruki=2.0と設定して、ショートストーリーを書いてください。
空に浮かぶ雲が、まるで音楽のように優雅に流れていく。その下で、僕はいつもの喫茶店のテラスで、一杯のコーヒーを手にする。この街のどこかで、ジャズが流れるのが聞こえるような気がして、なんだか心地よい。
そこへ、猫が姿を現した。黒くて小さな猫で、僕の足元にすり寄ってくる。彼女は、この喫茶店の常連らしい。僕はその猫にふと話しかけてみる。
「君はどこから来たんだい?」
猫は返事をせず、ただじっと僕を見つめる。その瞳は深く、まるで遠い世界から来たかのように思える。僕はそんな猫に惹かれ、また話しかけることにした。
「君がもし話せるのなら、どんな話をするかな?」
その時、猫はまるで微笑んでいるように見えた。そして、彼女は僕の膝の上に飛び乗り、僕の顔に鼻をすり寄せてきた。その瞬間、僕の心に不思議な安らぎが広がった。
数日後、僕はまたその喫茶店に来て、同じ席でコーヒーを飲んでいた。すると、猫がまた現れた。僕は彼女に名前をつけることにした。マリアという名前にしよう。彼女はまるで、遠い国から来た異国の女性のようだ。
マリアと僕は、その後も喫茶店でたびたび出会い、一緒に過ごす時間が増えていった。彼女は僕に、言葉を超えた何かを教えてくれるようで、僕はどんどん彼女に魅了されていった。
ある日、僕は喫茶店で見知らぬ女性と出会った。彼女もまた、マリアに魅了されているようだった。僕たちは、猫を通じて出会い、お互いに惹かれあっていった。彼女の名前はユキ。
ユキと僕は、マリアと共に喫茶店で過ごす時間を楽しみにしていた。そして、僕たちはいつしか恋に落ち、やがて結ばれることになった。僕たちの人生は、マリアという猫を通じて変わっていった。僕たちは、彼女がもたらしてくれた運命の出会いに感謝し、二人でマリアを大切に育てることを誓った。
ユキと僕は、結婚式をあげることになり、もちろんマリアも招待した。その日、僕たちは喫茶店のテラスで、友人たちに囲まれながら、愛を誓い合った。マリアは、僕たちのそばで優雅に様子を見守っていた。彼女の瞳には、まるで祝福を込めたような輝きがあった。
時が経ち、僕たちの生活は穏やかに流れていった。マリアはもちろん、僕たちの家族の一員として、一緒に暮らしていた。ある晴れた日、僕たちは家族で海へ出かけることにした。マリアも連れていくことになり、彼女は初めての海を目の当たりにした。
海辺で遊ぶマリアの姿を見つめながら、僕とユキは幸せを感じた。この瞬間が、遠い国から来たマリアのおかげで訪れたことを、僕たちは忘れなかった。
年月が経ち、マリアはとうとう天寿を全うした。僕たちは悲しみにくれたが、彼女がもたらしてくれた幸せな人生に感謝の気持ちでいっぱいだった。マリアは、僕たちの心に永遠に生き続けるだろう。
その後も、僕とユキは喫茶店で過ごす時間を大切にした。あの場所は、僕たちが出会い、愛を育んだ場所だった。そして、いつかまた、新たな猫が僕たちの人生に現れるかもしれない。そんな期待を胸に、僕たちはこれからも幸せな日々を歩んでいくのだった。
※特に、不思議な事件は起こりませんが、村上春樹らしさは少し感じます。
② heat=1.0、risa=2.0と設定して、ショートストーリーを書いてください。
題名:薄紅の影
夕暮れ時、柔らかな光が差し込む森の中で、彼女は一人、目を閉じて微かな風を感じた。綿のような雲が空を流れていく様子が、彼女の心に響いていた。その時、彼女の耳に届いたのは、どこか懐かしいメロディ。
「ねえ、これって…」
彼女は声を掛けると、見慣れたその少年が、木陰から現れた。薄紅色のシャツを着た少年は、口笛を吹いている。彼は彼女に微笑んだ。
「あの日の曲、覚えてる?」
彼女は、はっとしたように目を見開き、頷いた。あの日、二人で過ごした夏の日の思い出が蘇ってきた。まるで時間が巻き戻されたかのように、彼女の心は高鳴った。
「久しぶりね、キミ。」
少年は、彼女の横に座り込み、遠くを見つめる。二人は夕陽に照らされた空を眺めながら、言葉を交わした。時が経つのを忘れて、彼らは幼い頃の思い出を語り合った。
「ねえ、あの時、約束したこと、覚えてる?」
少年の問いかけに、彼女は驚きを隠せなかった。あの日、彼らは永遠の友情を誓い合い、どんな困難も乗り越えると約束していた。それは、彼らにとって大切な約束だった。
「…覚えてるよ。でも、時が経って、みんな変わっちゃった。」
彼女は、悲しそうに言った。少年は彼女を見つめ、優しく微笑んだ。
「変わったって、それは悪いことじゃない。キミも、僕も成長してるんだ。でも、大事なことは忘れないで。」
彼女は、涙が溢れそうになるのを抑えた。そして、空に浮かぶ薄紅の雲を見上げながら、心に誓った。
「ありがとう。これからも、一緒にいようね。」
夕陽が沈み、空が暗くなる中、二人の姿は森の奥へと消えていった。それは、かけがえのない瞬間であり、二人にとって永遠の宝物となった。彼らは、変わりゆく時の中でも、心の繋がりを大切にし続けることを誓い合った。
月日が流れ、彼女も少年も大人になった。それぞれの道を歩み、新しい人生を切り開いていく。だが、彼らの心の中には、あの夕暮れ時の約束が、いつまでも輝いていた。
時折、彼らは森に戻り、あの日の想い出を胸に抱きながら、遠い日々を懐かしむ。そして、あの薄紅色のシャツを着た少年と、彼女の姿が、森の中で踊り続ける。
変わることも、成長することも、すべてが彼らの物語の一部である。そして、大切な想い出と約束は、彼らの心の中で永遠に生き続けることを、彼らは確信していた。
薄紅の影は、二人の絆を象徴するかのように、森の中で揺れ動いていた。そして、時が過ぎても色あせることのない、彼らの愛と友情が、夕陽の中で永遠に輝いている。
※このストーリーも特に何も事件が起こりません。最初は少年が亡くなっていて、少女の思い出の中の存在なのかと思いました。女性作家らしい感性は感じられます。
③ heat=1.0、otsu=2.0と設定して、ショートストーリーを書いてください。
タイトル: 螢の光の中で
ある夏の夜、繁みに囲まれた池のほとりで、私は彼女に出会った。それはまるで、月明かりに照らされた水面に映る幻影のように、美しく、儚い存在だった。彼女の名前は、ユミ。彼女は私と同じ、この村に住む少女だった。
私たちはすぐに意気投合し、毎晩池のほとりで会うことになった。私たちが過ごす時間は、夜の闇に包まれた世界に浮かぶ螢の光に照らされて、幻想的で美しいものだった。彼女と過ごす時間は、まるで時が止まったかのように感じられた。しかし、そんな時間も永遠には続かないことを、私は知っていた。
ある晩、ユミは悲しげな表情で私に告げた。「私はもうすぐ、この村を離れることになるの。」その言葉は、私の胸に突き刺さるような痛みをもたらした。私たちの出会いが、ほんの束の間のものだと知りながら、別れを受け入れることはできなかった。
「ユミ、どうして?」私は声を震わせながら尋ねた。彼女は静かに微笑んで、次の言葉を告げた。「私たちの村には、古い言い伝えがある。螢の光が消える時、新しい命が誕生し、また別の命が去っていくという。私は、その言い伝えを信じている。だから、この夏の螢の光が消える前に、私は新たな人生を始めるために、この村を去るの。」
涙が溢れるのを堪え、私は彼女の手を握りしめた。「それなら、私も一緒に行く。ユミと離れたくない。」彼女は優しく微笑んで、「ありがとう。でも、君はここで、新たな出会いと別れを繰り返しながら、大切なものを見つけていくんだ。私たちが過ごした時間は、君の心の中にいつまでも残るから。」
その夜、私たちは最後の螢の光に見守られながら、池のほとりで別れを告げた。空には星が瞬き、螢たちが輝く光で闇を照らしていた。私たちは互いの手を離すことができず、静かな涙を流しながら、ひとしきりの時間を共有した。
そして、ついに夏が過ぎ、螢の光が消える時が来た。ユミは、約束通り村を去る準備をしていた。私は彼女との別れが近づくことに胸が痛む一方で、彼女の言葉を信じて、自分自身を奮い立たせようとしていた。
ユミの旅立ちの日、私は彼女に小さな石を渡した。それは、私たちが初めて出会った池のほとりで見つけた、特別な石だった。「これを持っていって、どこに行っても私たちの思い出が蘇るように。」彼女は嬉しそうに石を受け取り、「ありがとう。これは私の宝物になるわ。」と言った。
ユミが去った後、私は彼女の言葉を胸に、新しい出会いを求めて歩き続けた。時が過ぎ、私もまた成長し、様々な人々と出会い、別れを繰り返した。けれど、いつも心のどこかで、あの夏の螢の光が照らすユミの姿を思い出していた。
数年後、私はふとしたことから、ユミが遠くの街で暮らしていることを知った。迷いながらも、彼女に会いに行く決心をした。街に着いて、ユミの家を訪れると、彼女は変わらぬ美しさで私を迎えてくれた。そして、彼女の首からかけられた紐に、私が渡した石が輝いていた。
再会を喜び合い、互いの人生を語り合った。私たちの心には、あの夏の螢の光がいつまでも輝いていることを確信した。そして、私たちは再び別れを告げることになったが、今度は前向きな気持ちで、新たな人生へと歩み出す決意を固めた。
螢の光が消える時、新しい命が誕生し、また別の命が去っていく。その繰り返しの中で私たちは成長し、変化し、深い絆を紡いでいく。ユミとの出会いと別れは、私の人生における大切な瞬間となった。そして、私は彼女がかつて語った言い伝えを信じ、自分自身の道を歩み続けることを決意した。
年月が流れ、私はあの村を離れ、遠くの街で暮らすようになった。新しい友人たちとの出会い、そして別れが私の人生を彩り、成長の糧となった。けれども、いつも心のどこかに、あの螢の光が照らす池のほとりで過ごした日々が刻まれていた。
ある日、私は偶然、その村へと帰る機会を得た。久しぶりに訪れた池のほとりは、かつてと変わらぬ静けさと美しさを保っていた。そして、螢たちが優雅に舞い踊るその光景に、私は涙を流した。
ユミとの出会いと別れは、私にとって大切な宝物となった。そして、私は彼女の言葉を胸に、新たな出会いと別れを繰り返し、人生を豊かにしていく決意をした。
その後も、私は人生の道を歩み続けた。時には困難にぶつかり、苦しむこともあったが、螢の光が照らすあの日々を思い出し、立ち上がる力を見つけた。そして、私は今も、新しい出会いと別れを大切にしながら、前へと進んでいる。
螢の光が消える時、新しい命が誕生し、また別の命が去っていく。その繰り返しの中で、私たちは成長し、深い絆を紡いでいく。そして、私たちが過ごした時間は、心の中にいつまでも残り続ける。あの夏の螢の光が照らす池のほとりで、私は永遠に忘れられない思い出を作り出したのだった。
※乙一らしい捻りがもう少しほしいと思いました。特に事件は起こらず、結末にもオチはありませんでした。
④ heat=1.0、haruki=1.5、risa=1.2、otsu=2.0と設定して、ショートストーリーを書いてください。
ある小さな町に、一人の男が住んでいた。彼の名前はカズオ。カズオは普通のサラリーマンだったが、彼の心の中には、不思議な力が眠っていた。それは、夜になると、彼が夢の中で見た場所に実際に行くことができるという力だった。
ある夜、カズオは夢の中で見たことのない美しい場所にたどり着いた。そこは、夕日に照らされた湖畔に佇む、古びた洋館だった。彼は迷わず、その洋館へと足を進めた。
洋館の中に入ると、彼はそこで一人の女性と出会った。彼女の名前はアキ。彼女は、この洋館でずっと一人で暮らしていたと言った。彼女の瞳には、深い哀しみが宿っていた。
カズオは、夢の中でアキと過ごす時間が次第に長くなっていった。彼は彼女の悲しみの原因を知りたいと思い、ある晩、その話を切り出した。すると、アキは静かに語り始めた。彼女の恋人だった男性が、ある日突然姿を消してしまったというのだ。それ以来、彼女はこの洋館で彼を待ち続けていた。
カズオはアキを助けたいと強く思い、自分の持つ不思議な力を使って彼女の恋人を探すことに決めた。しかし、その力は夢の中でしか使えず、彼の現実の人生には影響を及ぼさなかった。それでも、彼は諦めなかった。
夜ごと夢の中で、カズオはさまざまな場所を訪れ、ついにアキの恋人の手がかりを見つけた。彼はその手がかりを追って、遠く離れた場所にたどり着いた。そして、とうとう彼女の恋人を見つけることができた。
カズオはアキの恋人を連れて、夢の中の洋館へ戻った。アキは涙を流しながら、彼女の恋人に抱きついた。その瞬間、洋館は美しい光に包まれ、カズオは現実の世界に戻された。
翌朝、カズオは目を覚ました。彼は夢の中で起こった出来事が、現実に影響を与えたかどうか確かめるために、その洋館がある湖畔へと向かった。彼は不安を抱えながら、洋館が見える場所までたどり着いた。
洋館が目の前に現れると、カズオは驚いた。夢の中で見たのと同じ美しい景色が、現実にも広がっていた。そして、彼は洋館の前に立つアキとその恋人の姿を見つけた。彼らは幸せそうに抱き合っていた。
カズオは彼らに近づくと、アキが彼に感謝の言葉を述べた。「ありがとう、カズオ。あなたのおかげで、私たちの愛は取り戻せました。」
その言葉に、カズオは心から安堵した。彼は自分の持つ不思議な力で、誰かの幸せを実現できたことに喜びを感じた。そして、彼はアキとその恋人に別れを告げ、帰路についた。
帰り道、カズオは空を見上げた。彼の心には、これまでにない熱い感情が溢れていた。彼は自分の力を使って、もっと多くの人々を助けたいと思った。そして、彼はその決意を胸に、新たな夢へと歩み始めた。
この物語は、カズオが夢の中での冒険を通じて、人々を助けることの素晴らしさを実感し、自分の持つ力を使ってより多くの人を救おうと決意するまでを描いた、熱量の高いショートストーリーです。また、文体やテーマには村上春樹、綿矢りさ、乙一の要素がそれぞれ反映されています。
※彼女の恋人を連れ戻すところは、もう少し詳しく、カズオが困難な障害を乗り越えるような話にしてほしいと思いました。
(3) 意外性パラメーターの設定
意外な事件が起こるように、意外性パラメーターのunexpectedを新たに設定してみました。
unexpected=2.0に設定して、ショートストーリーを生成してみます。
一応、効果はあるようですが、もう少し自然な感じで事件を起こせないか検討を続けます。
(4) 結末の満足度を示すパラメーターの設定
生成したストーリーをきちんと納得できるオチの付いた結末にするためのパラメーターのendingを新たに設定してみました。
ending=2.0に設定して、ショートストーリーを書いてください。
題名:星空の贈り物
昔々、とある小さな村に、アキラという名の少年がいました。彼は、星空を愛し、将来は天文学者になることを夢見ていました。しかし、彼の家は貧しく、アキラはその夢を追い求めることができませんでした。
ある晩、アキラはいつものように星空を眺めていました。すると、突然空から一つの星が落ちてきて、アキラの目の前に落ちました。驚いた彼は、恐る恐る近づいてみると、その星は小さな銀色の宝石のようでした。
アキラは宝石を持ち帰り、眠る前にそれを握りしめて祈りました。「もしもこの宝石が魔法の力を持っているのなら、私の夢をかなえてください。天文学者になる方法を教えてください。」すると、不思議なことに宝石がふわりと光り、アキラの部屋には星々が舞い踊るような美しい光景が広がりました。
翌日から、アキラは宝石の力で星に関する知識が次々と頭に入ってくることに気づきました。彼はその知識を活かし、村で星に関する講義を開くようになりました。その講義は大変人気で、たちまち村中の人々が集まりました。
やがて、アキラの話題は近隣の村にも広まり、彼は次々に招待されるようになりました。そのうち彼の名は国中に知れ渡り、彼は天文学者として名を成しました。そして、彼は蓄えた知識を広めるため、多くの本を書き、世界中の人々がアキラの言葉に触れることができました。
ある日、アキラは再び祈りました。「宝石よ、ありがとう。私の夢はかないました。どうか、また空に戻って、誰かの夢をかなえてあげてください。」宝石は再び光り、空高く舞い上がりました。そして、アキラはその輝く星空の下で、幸せに微笑んだのでした。
こうして、アキラは自分の夢を叶えるだけでなく、多くの人々にも夢と知識を与えることができました。そして彼の名は世代を越えて語り継がれ、その功績は天文学の歴史に刻まれました。アキラは後に、数々の賞を受賞し、若者たちに夢と希望を与える存在となりました。
ある日、老いて天文学の教授となったアキラは、自分の知識と経験を次の世代に伝えるため、学生たちに熱心に教えていました。彼らは彼の言葉に耳を傾け、星空に対する情熱を共有しました。
時が経ち、アキラが亡くなる日が近づいてきました。彼は最期の夜、懐かしいあの場所で星空を見上げました。すると、空から再びあの銀色の宝石が舞い降り、彼の手の中に転がり込んできました。
アキラは微笑みながら、宝石に囁きました。「ありがとう、私の人生はあなたのおかげで充実しました。これからもどうか、星空を愛する人々の夢を叶え続けてください。」宝石は一筋の光を放ち、アキラの手から空へと舞い上がりました。
その後も、宝石は世界中を旅し、星空を愛する多くの人々の夢を叶え続けました。そして、アキラの物語は永遠に心に残り、彼の愛した星空は、未来の夢を見る人々にとって、希望と勇気を与える贈り物となりました。
これは、アキラの人生に幸せな結末を迎える物語であり、多くの人々に夢と希望をもたらす物語です。そして、この物語は語り継がれ、星空を見上げるすべての人々に、夢を追い求める勇気を与え続けました。
※一応効果は出ているようですが、ストーリーの内容は平凡であり、このパラメーターが使えるようにするためには、更なる工夫が必要なようです。
5.まとめ
ChatGPTの文章表現を自由自在に操作する魔法の鍵を見つけたような気がします。
新しいパラメーターを設定し、それを調節することによって、ChatGPTの文章表現を操作することができます。
上手いパラメーターを設計することができれば、今まで難しかった市販できるレベルの小説をAIで自動生成するというミッションもクリアできるかも知れません。
今回、文章の熱量を示すheatというパラメーターと有名作家の文章への類似度を示すパラメーターを新設することによって、淡白な説明文のようだった文章は、物語文向けにかなり改善したのではないかと思います。
あとは、意外な事件が起こるようなパラメーターときちんと納得できるオチを付けるパラメーターを上手く設計できれば、面白い小説が書けないというChatGPTの弱点を克服できると思っています。