ChatGPTプラスのGPT-4モデルは、簡単なプロンプトでショートストーリーを自動生成することができます。また、プロットを用意すれば、もっと長い小説を生成することもできます。
現在、こうしてGPT-4で生成する小説のクオリティを上げる方法を色々と調べていますが、今回は、その一環として、遺伝的アルゴリズムを利用する方法をテストしてみました。
なお、GPT-4をベースにしたBingでは、現状で以下のレベルの小説を生成できます。
1.遺伝的アルゴリズムの概要
遺伝的アルゴリズムに関するGPT-4の説明は以下のとおりです。
(1) 概要
遺伝的アルゴリズム(Genetic Algorithm、GA)は、自然界の遺伝と進化のプロセスに基づいた最適化手法であり、人工知能や機械学習の分野で広く利用されています。
遺伝的アルゴリズムは、解の集合(個体)を用いて、目的関数を最適化する問題に対処するための手法です。
(2) 手順
遺伝的アルゴリズムは以下の手順で進行します。
初期集団の生成: 問題に対する初期の解(個体)の集合をランダムに生成します。この集団は、遺伝子の組み合わせによって表現されます。
適応度評価: 個体の良さを測る目的関数(適応度関数)によって、各個体の適応度を評価します。適応度が高いほど、個体が問題に対して良い解であることを示します。
選択: 適応度に基づいて、次の世代に引き継がれる個体を選択します。適応度が高い個体ほど、選択される確率が高くなります。これは自然界の「生存競争」に相当します。
交叉(交配): 選択された個体同士をペアにし、その遺伝子を交換し合うことで、新しい個体(子供)を生成します。これにより、良い特徴が受け継がれ、新しい解が生まれます。
突然変異: 一定の確率で、個体の遺伝子がランダムに変化します。これにより、解空間の探索が助けられ、局所的な最適解に陥るリスクが低減されます。
終了条件の判定: 一定の世代数に達するか、十分に良い解が得られた場合に、アルゴリズムを終了します。
この一連のプロセスを繰り返すことで、遺伝的アルゴリズムは問題の最適解に近づいていきます。
(3) 長所と短所
遺伝的アルゴリズムは、非線形問題や複雑な探索空間を持つ問題に対して効果的であることが知られています。また、多目的最適化や制約充足問題など、さまざまなタイプの問題にも適用可能です。
しかし、遺伝的アルゴリズムにはいくつかの欠点も存在します。たとえば、適応度関数の評価に時間がかかる場合や、パラメータ設定が難しい場合などです。遺伝的アルゴリズムは、他の最適化手法と組み合わせることで、これらの問題を緩和することができます。
(4) 利用ケース
遺伝的アルゴリズムは、エンジニアリング、スケジューリング、機械学習、ゲーム理論、経済学など、幅広い分野で利用されています。
例えば、複雑な関数の最適化、最短経路問題、遺伝子発現の解析、機械学習のハイパーパラメータチューニング、経済モデルの最適化などの問題に対して、遺伝的アルゴリズムが適用されています。
(5) 進化計算
遺伝的アルゴリズムは、自然界の進化プロセスに基づいているため、他の進化的アルゴリズム(遺伝的プログラミング、遺伝子表現型アルゴリズム、粒子群最適化など)とともに、進化計算という広い分野に分類されます。
これらの手法は、それぞれが独自の特性を持ち、特定の問題や状況に適したアプローチを提供しています。進化計算は、最適化問題を解くための強力で柔軟な手法として、研究開発が進められています。
2.ChatGPT4での遺伝的アルゴリズムの利用
最初に、遺伝的アルゴリズムを利用して、GPT-4モデルのChatGPTでホラー小説の書き出しを生成することを考えます。
GPT-4は、最初から遺伝的アルゴリズムを理解しているため、以下のような簡単なプロンプトで、遺伝的アルゴリズムを利用して、小説の書き出しを生成することができます。
GPT-4の出力結果は以下のとおりです。
確かに候補の中で相応しいものを選べているようですが、そもそも最初の書き出し案が短すぎるので、ここから続けてGPT-4にクオリティの高いホラー小説を書いてもらうことは難しそうです。
また、世代が上がるたびに適応度の平均値が上がっており、きちんと機能しているように見えますが、これだけでは、どのような手順で評価したのかなどが分からないので、GPT-4に説明してもらいました。
このように、しっかりと遺伝的アルゴリズムは機能しているようです。
3.ホラー小説の書き出しの進化システム
次に、再帰的方法を利用して、ホラー小説の書き出しを次々と改善していく進化システムを考えてみました。
(1) 進化システムver1
最初に考えたプロンプトは以下のとおりです。
GPT-4の出力結果は以下のとおりです。
どの書き出しもよく書けていますが、内容が全く別のものに変わっていくため、レベルアップしているのかどうかはよく分かりません。
(2) 進化システムver2
次に、修正点を指摘して改善していく進化プログラムを考えてみました。そのためのプロンプトは以下のとおりです。
GPT-4の出力結果は以下のとおりです。
最後の修正案の「期待」は不要なように思いますが、記述がどんどん改善されていっていることがよく分かります。
4.ホラー小説の書き出しを生成するプロンプトの選別
次に、遺伝的アルゴリズムに似た手法で、ホラー小説の書き出しを生成するプロンプトを選別する方法について考えてみました。
以下がそのためのプロンプトです。
2の評価が遺伝的アルゴリズムの適応度評価、4のプロンプトの組み合わせが交叉、2のプロンプトのアレンジが突然変異に対応します。
GPT-4の出力結果は以下のとおりです。
2回目の書き出し評価において、新たに作成した3つのプロンプトの書き出ししか評価されていませんが、最終的なプロンプトを見ると、1回目の1位と2位を組み合わせて作成したプロンプトも反映されています。
この辺りは、まだ改善が必要なようですが、最高の書き出しを生成するプロンプトの選別は、一応、上手くいっているようです。
5.プロンプトからのホラー小説の自動生成
(1) 書き出しの選定
4.で選別した書き出しを生成するプロンプトから実際にホラー小説を自動生成してみます。
最初に、プロンプトで複数の書き出しを生成し、その中から一番良い書き出しを選定します。そのためのプロンプトは以下のとおりです。
GPT-4の出力結果は以下のとおりです。
以上の結果より、評価8点の最初の書き出しを選びました。
(2) 書き出しのブラッシュアップ
次に、上記3.(2)の進化システムver2を利用して、書き出しのブラッシュアップをやってみます。そのためのプロンプトは以下のとおりです。
GPT-4の出力結果は以下のとおりです。
この進化システムは、文章の品質をかなり向上してくれるのですが、修正を何回も繰り返すと、文章が長くなり過ぎてくどくなったりしますので、少ない回数で止めておいた方が良いでしょう。
(3) あらすじの作成
次に、この書き出しを基にして、GPT-4にホラー小説のあらすじを作成してもらいます。そのために以下のプロンプトを続けて入力します。
GPT-4の出力結果は以下のとおりです。
(4) 書き出しに続く本文を生成
続けて以下のプロンプトを入力して、GPT-4に本文を書いてもらいます。
GPT-4の出力結果は以下のとおりです。
ストーリーの最後まで書いてくれましたが、かなり書き急いで、あらすじのようになっているので、修正が必要です。
(5) 本文のブラッシュアップ
以下のように入力して、修正点を指摘してもらいました。
この修正点に基づいて書き直してもらった結果は以下のとおりです。
まだ書き急いでいる部分があるので、部分ごとにGPT-4に修正点を指摘させ、それに基づいて書き直させていきます。
最終的なGPT-4の出力結果は以下のとおりです。
文章はそれなりによく書けていますが、あまり怖さは感じられません。
また、主人公以外の登場人物が影以外に出て来ず、会話が全くないのが残念だったので、以下のように指示して、登場人物を増やしました。
GPT-4の出力結果は以下のとおりです。
登場人物は1人増えましたが、会話はあまり増やしてくれませんでした。
全体的には、GPT-4のストーリーは真面目すぎて、あまり事件が起こらず、面白味に欠けるところがあります。
Bing Chatの創造性モードの方が面白いストーリーを書いてくれるのですが、Bingは規制が多くて、長いストーリーを書くことが難しいので、なかなか本格的な小説を書くには至らないというのが現状です。