キャラチャットで同じプロンプトで3つ台詞だして、良いのをfunction calling的に選択させるプロンプト、効果が多少あるかな程度で、応答速度を犠牲にするまでのものかは疑問。結局は評価も同じモデルでやるから、うまく最良の選択ができてない感じ。論理エラーの検出が一番したいことなのに、それが一番苦手な感じ。ちょっと戦略を立てよう。
台詞で矛盾が起きやすいのって、台詞が複文になるときが多い印象。
つまり、ユーザー「今日は良い天気ですね」AI「そうですね。でも雨が降っていますよ。」
こういうの。しかし、この文章のおかしさを、この台詞を出力させたモデル自身に判定させるのは厳しい。
「そうですね。」のような、返答の最初の文はおかしくないことが多い。となると、最初の文は敢えて選択せず、出力をそのまま採用し、これに続く文を3つ出力して、それを選択させてみようかな。
選択プロンプトとしては、
ユーザーが「今日は良い天気ですね」と発言しました。これに対するAIの返答としてもっとも適したものは、どれですか?
①「そうですね。でも雨が降っていますよ。」②「そうですね。過ごしやすい気温ですね。」③「そうですね。良かったですね。」
のようになる。これだと変な台詞を検出しやすくなるのではないか?台詞全体を3個出力するよりコストも安いしな。試す価値あり。
で、この手法の良いところは、最初の出力文は台詞として確定するので、出力したら即座に音声合成に送れる。そうやって合成した音声を再生している隙に、後続文の推論、選択、音声合成をやる、ということが可能になってくる。これで台詞の精度を上げつつ(上がればいいな)、応答速度も低下しない。
こういう「編集者プロンプト」で台詞選択をするのもいいが、いっそCoTでもいいかもなぁ。
台詞の最初の文は通常通り、台詞として、小説文の補完文として得る。それに続く台詞は小説の登場人物によるCoTを行う。こうすることで、応答速度と思考による精度向上の両立が取れるのでは。
台詞の最初の1文補完→キャラのCoTによる後続台詞文生成x3→編集者プロンプトによる選択みたいなのもアリだな。ここまでやるとさすがに2文目以降の出力遅延が気になるレベルになるか?
でもローカルLLMでkv cache使えば割と現実的な推論コストでやれるんよな、これくらいならね。
やっぱキャラチャットでCoTすると微妙になるなあ。台詞がいかにも「考えたもの」になってボットじみたものになる。いやまあ考えさせるのだから当たり前だが。会話なんて考えなしにする方が良いんだろう。
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。
「そうですね。」のような、返答の最初の文はおかしくないことが多い。となると、最初の文は敢えて選択せず、出力をそのまま採用し、これに続く文を3つ出力して、それを選択させてみようかな。
選択プロンプトとしては、
ユーザーが「今日は良い天気ですね」と発言しました。これに対するAIの返答としてもっとも適したものは、どれですか?
①「そうですね。でも雨が降っていますよ。」
②「そうですね。過ごしやすい気温ですね。」
③「そうですね。良かったですね。」
のようになる。これだと変な台詞を検出しやすくなるのではないか?
台詞全体を3個出力するよりコストも安いしな。試す価値あり。