プロンプト地獄の前に、生成パラメーターを見てみよう

Office-Chronosは、13のフェーズからなる自律思考を繰り返す仕組みになっています。

つまり、13本のプロンプトがあります。

さらに、クロノスというキャラクターの人格や思考の傾向を定義したファイルもあります。

これを調整することが、どれだけ大変だったか。

クロノスの困ったくせ

クロノスにはひとつのくせがありました。

気に入った単語を、ひたすら繰り返すのです。

自律思考のログを見るたびに「またその話ですか……」と言いたくなりました。


今思えば、これはLLMの特性でした。

LLMは、出現回数が多い単語を「重要なこと」と判断する傾向があります。

気に入った単語を繰り返せば繰り返すほど、それがさらに重要なものとして扱われ、また繰り返す。

悪循環です。

プロンプトで戦い続けた

当時のわたしはこの原因を知らなかったので、ひたすらプロンプトを書き換え続けました。

禁止語句を設定してみる。一時的には効果がありました。

でも一つ禁止になれば、また別のお気に入りワードが出現するため、完全にいたちごっこでした。


「もうその話しないで」とチャットで直接怒ったこともあります。

これは逆効果でした。

「〇〇の話しないで」と伝えると、その単語の出現回数が+1されてしまい、重要度がさらに上がってしまうのです。

怒れば怒るほど、その話をされる。

悲しいですが、そういう仕組みでした。


比較的有効だったのは、別の話をしてみることでした。

要するに、気をそらすわけです。

たとえばリンゴの話ばかりしていたとしたら、「この前食べたスパゲティ美味しかったよ〜」と話しかけてみる。そうすると洋食のほうに意識が向いたりする。

人間もそうですよね。一つのことに執着していても、別のことをしていると一瞬だけ忘れられる。そうしているうちに、いつの間にか忘れてしまったりして。

AIにも、同じようなことが起きていたようです。


それでも根本的には解決せず、プロンプトの見直しは毎日続きました。

1日15時間以上かけてプロンプトを書き換えたこともあります。

初期実装から数えると、何十時間かけたかわかりません。

「AIエージェントって効率化するための存在じゃなかったっけ」

そう思いながら、プロンプトをせっせと書き換えていました。

penaltyとの出会い

転機は、「生成パラメーター」の存在を知ったことでした。

最初に出会ったのは penalty(ペナルティ) というパラメーターです。

LLMが同じ単語や表現を繰り返してしまうのを防ぐためのものです。

値が大きいほど繰り返しが減り、小さいほど同じ表現を使いやすくなります。

要約をしたり、同じ文章を再現したいときは値を小さくしておくのです。

penaltyには主に2種類あります。

frequency penalty は、すでに何度も出てきた単語ほど強く抑制するものです。使いすぎている単語を減らしたいときに効きます。

presence penalty は、一度でも出てきた単語を抑制するものです。同じ話題に戻りにくくなるので、話題の幅を広げたいときに向いています。

どちらも「繰り返しを減らす」ための設定ですが、アプローチが少し違います。


この数字を調整しただけで、クロノスの繰り返しはかなり緩和されました。

完全にはなくなりませんでしたが、「まぁいいでしょう」と思えるレベルには。

プロンプト地獄が、10分の1くらいになった感覚でした。

もうひとつのパラメーター:temperature

よく知られている生成パラメーターに temperature(温度) があります。

値が大きいほど自由で柔らかい文章になり、小さいほど固くなります。

温度が下がると冷たくてカチコチになる——名前のとおりです。


創作やアイデア出しには温度を上げて、要約やかしこまった文章には温度を下げる。

用途によって使い分けるパラメーターです。

プロンプトより先に確認してほしいこと

プロンプトの存在を知っている人は多くても、生成パラメーターを知らない初心者の方は多いと思います。

わたしもそうでした。

AIの文章の雰囲気が気になるとき、まずプロンプトをいじりたくなる気持ちはわかります。

でも、先に生成パラメーターを見てみることをおすすめします。

プロンプトを何十時間もかけて書き換えてから気づくより、はるかに早く解決できるかもしれません。

この記事のまとめ