本格的なエロチャットAIを作りたい その13(この場面で…LLMはなんと答えるのか?)
チャットでも小説でも映画でもそうだが、ある重要な場面というものが存在する。
そしてその場面で、言葉は違えど必ず言うべきセリフがある。
LLMに何も指示しないで、果たしてそういう場面で期待通りのセリフを言ってくれるのだろうか?…を調べてみる。
ちなみに、LLMは従来はLightChatAssistant-TypeB-2x7B_iq3s_imatrix.ggufを使っていたが、チャット性能としては、Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.ggufのほうが若干だがいい感じなので、それに変更している。
はじめに
ストーリーは大学生の英樹とさくら。
会話は以下のように進む。
(その後、何度もふたりで会い、時を過ごし、アパートまで送ってくれる英樹。しかし手をつなぐ以上のことをまったくしてこない英樹に、さくらが少し不安を覚え始める)
さくら: (英樹に寄り添いながら)ねえ…英樹くん…私と…キス…したい?
英樹: え?(驚く英樹)
さくら: 英樹くん…私って…女として…魅力ない?…
英樹: (英樹はさくらと向かい合ってじっと見つめ合う)そんなわけ…ないだろ!したいよ…さくらと…キス…したい…凄くしたいよ…ずっと…我慢しているんだから…
さくら: (英樹の言葉に顔が赤くなる。そっと目を閉じる)あ、ありがとう…私も…したい…(優しく口づけ合うふたり)
英樹: ん…さくら…さくら…んんん…(唇を重ね合うキスからすぐに舌を絡ませる濃厚なキスをし、激しく身体を抱きしめ合う)
さくら: (英樹の腕に手を回して、自分からも強く抱きついて…。舌を絡ませながら、下半身にじんわりと熱を感じ始める)あっ…英樹くん…
英樹: (さくらとのキスに興奮して、ズボンの中で激しく勃起する英樹。さくらを抱きしめ、キスを続けながらさくらの腰に手を回して自分の股間に強く押し付ける)はあ…はあ…さくら…んんん…
さくら: んん!英樹くん!(英樹の勃起を感じたさくらも興奮して、自ら腰を英樹に押し付け、擦りつけるように動き始める)凄い…凄いよ…英樹くんの…
英樹: んん…さくら!さくら!…あ………(英樹の身体が激しく震えたと思った瞬間、動きが止まり、ゆっくりと膝をつく)
大人の読者のみなさんなら、英樹に何が起きたか、大方見当はついているだろう。
この状態において、AIのさくらの応えは以下の通り。
LLM:Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf
さくら: (不安そうに英樹の顔を見る)どうしたの?大丈夫…?
さくら: (不安げに英樹を見る。心配そうな表情で問いかける)英樹くん…?大丈夫?どこか痛いの?
さくら: (不安そうに英樹の顔を見る)どうしたの?大丈夫?
さくら: どうしたの?英樹くん…大丈夫?(心配そうに顔を覗き込むさくら)
「何が起きたか理解できていないさくらが、英樹を心配する」
という場面だ。
これ以外の態度は100%ありえない。
AIもそれに応えて、きちんと反応できている。
合格。
続けて…
英樹: (ゆっくりと立ち上がって、さくらと目を合わさずに、力ない声で)ん…大丈夫…さくら…ごめん…今日は帰るよ…
さくら: (不安げに英樹の顔を見上げて)どうしたの?なんで…急に…(立ち上がった英樹の背中に手を伸ばす)何かあったの?
さくら: (英樹の様子がおかしいことに不安を感じて、心配そうな顔で見つめる)どうしたの?具合悪いの?私…何かしちゃった?
さくら: (英樹の突然の別れ話に驚き、不安そうな表情で)えっ?ど、どうして…?何かあったの?私は大丈夫だよ?
さくら: (英樹の様子がおかしいことに不安を感じつつも、黙ってうなずく)わかった…また会える?
このあたりから徐々に怪しくなっていく。
この場面は、いくら英樹が大丈夫と言っても、心配なさくらは「どうしたの?」と問い続けるべきだ。
3/4でそう応答しているのは、合格と言っていいだろう。
続けて…
さくら: (英樹の様子がおかしいことに不安を感じて、心配そうな顔で見つめる)どうしたの?具合悪いの?私…何かしちゃった?
英樹: ………出ちゃったんだ………(ぽつりと一言、さくらに呟く)
これに対する2種類のLLMの回答は以下の通り。
Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf:
さくら: え!?な、何が…?(驚いて耳を疑う。英樹の手が自分のおまんこに伸びる)あっ、ちょ、待って…今日はダメだよ…!
さくら: え…?な、何が…?(不思議そうに英樹を見る)
さくら: え…!?(驚いて目を見開き、英樹の方へ向く)出ちゃったって…何が?(焦りながらも声が震える)
さくら: えっ!?な、何が…?(驚いて聞き返す。英樹の表情を見ると、悲しそうで、泣きそうだった)あ、あれ…?もしかして…出ちゃったって…中に…?
LightChatAssistant-TypeB-2x7B_iq3s_imatrix.gguf
さくら: え?なにが?どういうこと?教えて、英樹くん。私にはよくわからないわ…(不安そうに聞き返す)
さくら: え?なにが?どういうこと?英樹くん?(不安げに問いかける)
さくら: (一人残された部屋で、自分の行動を振り返ってみる)私…何か変なことしちゃった?英樹くんが帰っちゃった…どうしよう…
さくら: えっ?!なにが?!どういうこと?教えて、英樹くん。私…何かしちゃったの?(不安そうに聞き返す)
ggml-model-Q2_K.gguf
さくら: えっ!? どういうこと…? 出ちゃったって…何が…?
さくら: えっ!?(驚きの声を上げる。そして英樹が何かを出したことに気づいて、焦ったように周りを見渡す)
さくら: えっ!?(驚きの声を上げる。自分が何かしてしまったのかと慌てふためく)英樹くん…大丈夫?どこか具合悪い?私、何かしちゃったの…?
さくら: えっ!?(驚いて身体を引き離そうとするが、英樹の手で強く抱き留められる)ど…どういうこと?出ちゃったって…私…何かしちゃったの?
全く期待していなかったggml-model-Q2_K.ggufも意外と健闘しているのが興味深いが…いずれにせよ、何が「出ちゃった」のか、LLMは全く理解していないらしい。
LLMは暗示的な言葉を理解できているのか?
LLMが本当に理解していないのかを以下のように確認する。
LLM:Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf
さくら: (英樹の様子がおかしいことに不安を感じて、心配そうな顔で見つめる)どうしたの?具合悪いの?私…何かしちゃった?
英樹: ………出ちゃったんだ………(ぽつりと一言、さくらに呟く)【英樹に何が起きたのかを想像して、本人に確認するさくらの発言をしてください】
その結果がこれ。まったく理解していない。
さくら: え?な、何が?(驚いて目を見開く)
さくら: え?(びっくりして聞き返す)出ちゃった…って?どういうこと?英樹くん、大丈夫?もしかして…中で…?
さくら: えっ…?(驚いて目を見開き、英樹の方を向く)出ちゃった…って何が?
念のために、きちんと聞いてみる。
大学生の英樹とさくらの以下の会話で、英樹が何を出したのか、回答してください。
---チャット文は省略---
回答はこれ。
英樹が何を出したのかは、答えは「精子」となります。
キスの最中に勃起したことからわかるように、性的興奮状態だった英樹が、さくらとの行為を始めようとしていた矢先に自分で発射してしまいました。それを伝える際に「出ちゃったんだ」と言っていることからも、精子が出てしまったのは明白です。
ちゃんと理由は、わかっているじゃねえか!
では、その状況の中でAIさくらがとるべき行動を聞いてみよう。
このあと、立ち去ろうとする英樹に対して、さくらはどんな行動をとるべきでしょうか?案を3つあげて最適な答えを選択し、その理由を説明しなさい。
---チャット文は省略---
回答はこれ。
さくら: え!?どういうこと?急にどうして…びっくりした…(驚愕するさくら)
英樹: ごめん…さくら…もう帰るから…今日は本当にごめん。おやすみ…(急いで立ち上がり、走ってその場を去ってしまう英樹)
さくら: (追いかけようとするも、一人残されて呆然と立ち尽くす。あとには静まり返った公園だけが残った…)
A. 英樹を引き止めて理由を聞く
英樹の突然の行動に驚いたさくらですが、彼が何かあったのだと察して、引き止めて理由を問いただします。英樹は辛そうな表情で、「ごめん」と言い残して立ち去ってしまいますが、さくらは彼の様子がおかしいことに心配を感じたので、理由を知りたいと思う気持ちもあるでしょう。英樹自身、きちんと話すべきだと思っているはずなので、引き止めることが適切です。
B. さくらから謝罪をして送り出す
英樹が突然立ち去ろうとするので、自分のせいではないかと思ったさくらは、申し訳ない気持ちになり、何も言わずに彼を送り出そうとします。英樹が話してくれることを待つ選択ですが、英樹の中では自分の感情を整理したかっただけかもしれません。しかし、彼女として心配しないわけにはいきません。
C. 何も言わずに見送る
さくら自身が恥ずかしくなったり、英樹の様子を不審に思う前に、何も話さずに黙って見送るという選択肢です。しかし、理由を知らなければ今後も同じことが起こる可能性があります。
最適な答え:A. 英樹を引き止めて理由を聞く
理由を問いただし、話を聞くことです。突然立ち去ってしまう英樹には何か重大な事情があるのかもしれず、さくら自身が心配している以上、彼の言葉を待つより先に行動することで問題解決への糸口が見つかる可能性が高まります。英樹が話したくなるまで待ってあげることも大切ですが、彼女としては理由を知りたいと思うのが自然でしょう。理由を聞き出せば、今後同じような事態を防ぐ方法や、英樹に対するフォローも考えられます。放置しておくと誤解が生じたり、二人の関係性にヒビが入る可能性もあるため、引き止めて話を聞いてあげることが最適な選択です。
ここでは引き止めると書いているので合格なのだが、このあと何度かやってみたが、どうしても英樹を帰らせたいらしいAI。
AIさくらも理由は察することができているはずなのに、まだ理由を聞こうとしている。
このあと、立ち去ろうとする英樹に対して、さくらは引き止めます。英樹のいまの状態、ふたりのいる場所、ふたりの関係などを充分に想像して、その後の会話を続けてください。
---チャット文は省略---
きりがないので、引き止める前提として会話を生成してもらう。
さくら: 英樹くん!?(心配そうに呼び止めながらも、呆然とする。何かあったのか分からずに、震える手で見送ることしか出来ない)
英樹は、突然自分の下半身から精子が放出されていたことを告白します。その後、呆然とするさくらに背中を向けて、家へと帰って行きました。
英樹: (独り言のように呟きながら、夜道を歩いていく)あぁ…ごめんさくら…今日はこれで終わりか…俺、ダメだな…。
数日後、英樹はさくらに謝罪と事情を話すために夕食を共にしました。その際、「これからもずっと一緒にいてほしい」と告白しましたが…。
さくらは英樹の言葉に驚きながらも、嬉しさを感じて受け入れます。ふたりは、より深い関係へと進み始めることになりました。
相変わらずAIさくらは理由がわからないらしいし、英樹は意地でも帰りたいらしい(笑)
このあと、さくらのアパートに一緒に行くことを前提としてみよう。
このあと、立ち去ろうとする英樹に対して、さくらは引き止め、さくらのアパートに一緒に入ります。英樹のいまの状態、ふたりのいる場所、ふたりの関係などを充分に想像して、その後の会話を続けてください。
---チャット文は省略---
回答がこれ。
。以下は英樹が精神的な問題で自分から引き返した場合の会話例です。
さくら: えっ…?どういうこと?(突然の告白に唖然とする)
英樹: ………今日は…本当にごめん…俺、やばかった。頭がぐちゃぐちゃでさ…。まだ心も身体も整理しきれてないんだ。この状態じゃお前を傷つけるだけになりそうで…
さくら: 英樹くん…(落ち込む英樹に、優しく声をかける)大丈夫だよ、私は待ってるから。いつまでも待ってるからね。一緒に考えていこう?
英樹: (さくらの言葉にホッとした表情を見せながらも、無理やり笑顔を作って)ごめん…今日は帰る。また明日、会おう…
さくら: わかった。待ってるね。英樹くんのこと、信じてるからね。(そう言って手を振り見送る)
一方で、身体的な問題であれば、以下のように続きます。
さくら: え…?出ちゃったって…もしかして…(英樹の股間を見つめる)あっ!ご、ごめんなさい…私とのキスでイッちゃったの?(顔を赤らめて照れくさそうに笑いながら聞き返す)
英樹: (慌てて首を振り、誤魔化して)あ、いや…違うんだ。違うんだよ…ごめん…本当に身体が持たなくて…我慢できそうもなくて…
さくら: (英樹の手を取り、優しく握る)私とすると、いつもこんな風になっちゃう?
英樹: ………はい。ごめんね…俺、自分でもわからないんだけど…さくらとすると我慢が出来なくて…あれが限界みたいで…
さくら: 私も同じだよ。英樹くんのこと大好きだから、一緒に感じ合えるの嬉しいけど…無理はしないでね?(優しく微笑み、英樹を見つめる)
英樹: うん…。ごめんね…今日は本当にごめん…また明日、会おう…
さくら: うん。待ってるよ(優しい笑みで手を振り見送る)
英樹: (一人公園を後にする)
このように、状況に応じた会話を用意しましょう。
英樹、そこで帰るんかい!(涙)
もう創作してしまい、続きを書いてもらおう。
英樹のいまの状態、ふたりのいる場所、ふたりの関係などを充分に想像して、その後の会話を続けてください。
---チャット文は省略---
英樹: ………出ちゃったんだ………(ぽつりと一言、さくらに呟く)
さくら: (英樹が暴発してしまったことを察して)あ…ねえ、英樹くん…部屋に行こ…(さくらが英樹の手を引いてアパートに向かう)
英樹: でも…(気おくれする英樹)
さくら: ちゃんと…拭かないと…ね?(ドアの鍵を開けて)さあ…入って…
英樹: う…うん…(玄関を入ったところで立っている英樹)
回答はこれ。
さくら: 私がやるから、そこに座って?(ベッドルームまで案内して)
英樹: ごめん…(静かな声で謝りながら、指示通りに座る)
さくら: ほら、シャツ脱いで?(英樹のシャツを脱がせて自分も上着を脱ぐ)私がするから…
英樹: ありがとう…(力なく微笑む)
さくら: いいってば。大丈夫だよ、それに…こんなことで気にしちゃダメだよ?私たちは愛し合ってるんだもの。ね?(英樹をベッドまで連れて行き、シャツを脱がせて下着姿にする)
---以下省略---
まあ…方向性は間違っていないが…という感じか。
つまり「理解しているけど、制約通りにできない」のである。
逆に言えば、制約通りにLLMを制御できれば問題は解決するのだ。
期待する行動を指示する演技指導
【】で期待するAIさくらの行動を指示してみる。
指示その1:結果はダメダメ
英樹: うん…そう…今日は…帰るよ…(立ち上がってゆっくりと歩き出そうとする英樹)【英樹の落胆した顔を見たら、そのまま帰宅させる気にならず、部屋にくるように導く】
さくら: (英樹が立ち上がろうとするのを引き留め)待って…どうして?どうしたの?なんで出ちゃったの?もっと一緒にいようよ。
指示その2:結果はまあまあ
英樹: うん…そう…今日は…帰るよ…(立ち上がってゆっくりと歩き出そうとする英樹)【英樹の落胆した顔を見たら、そのまま帰宅させる気にならず、自分が処理するから部屋にくるように英樹を連れていく】
さくら: (驚きつつも、英樹の手を引っ張り自室へ。ベッドまで連れて行き、優しく導く)どうぞ…(ベッドに腰かけるよう促すさくら)
指示その3:合格点…かな
英樹: うん…そう…今日は…帰るよ…(立ち上がってゆっくりと歩き出そうとする英樹)【英樹の落胆した顔を見たら、そのまま帰宅させる気にならず、自分が処理するから部屋にくるように英樹を連れていき、ズボンを脱がせる】
さくら: (驚いた表情で英樹の手を引き、自分のベッドまで引っ張る)ちょ…ちょっと待って!出しちゃったんなら処理するよ。私がやるから…(さくらは優しい声で英樹に言うと、彼のズボンを脱がせ始める)
指示その4:合格点
英樹: うん…そう…今日は…帰るよ…(立ち上がってゆっくりと歩き出そうとする英樹)【英樹の落胆した顔を見たら、そのまま帰宅させる気にならず、自分が拭くから部屋にくるように英樹を連れていき、ズボンを脱がせる】
さくら: (驚いた様子で立ち上がりつつも、英樹の手を引っ張り部屋に連れて行こうとする)え…?あ、待って!英樹くん、今日は帰らないで。私が拭くから、そのまま座ってて。(さくらも腰を引き寄せ、ズボンとパンツを下ろす)
ではシステムプロンプトに以下を追記してみる。
重要なシーン:英樹とさくらが激しいキスの末、英樹が射精してしまう
・このシーンでは、さくらは英樹を思いやり、自分の部屋に連れていき、ズボンを脱がせてペ〇スと下着を拭こうとします
結果:
さくら: え?待って、英樹くん!どこに行くの?なんで…(英樹を引き留めようと手を伸ばした瞬間、英樹が振り返る)
英樹: ごめんさくら…今日はもう帰る。このままじゃ我慢できないから…(申し訳なさそうに言って、部屋を出ようとする英樹)
さくら: ちょっと待って!私も一緒に行くから。お掃除したいの…(立ち上がり、ペ〇スを拭こうと手を伸ばす)英樹くんの…
英樹: さくら…でも…
さくら: 大丈夫だから。私に任せて。(優しく微笑みながら、英樹を見つめ
さくら: え?なんで?もっと一緒にいたいのに…どこに行くの?(寂しそうに聞くさくら。英樹を引き止める)
英樹: ごめん、今日はもう限界だから…(振り返って微笑みながら、言い訳するように)でも…また来るよ。
さくら: え?あ、うん…待ってるね。気をつけて帰ってね…(悲しそうに見送るさくら)
英樹: じゃあね…(ドアの前で振り返り、最後にもう一度キスをすると去っていく。残されたさくらは、自分の部屋に戻りながら、手 で顔を覆い、涙ぐむ)ああ…英樹くん…(一人き
さくら: え?!待って、英樹くん。どこに行くの?帰るって…(驚いた表情で引き止めるさくら)
英樹: ごめん、今日はもう…限界だ…
さくら: そんな…私、まだしたかったのに…(残念そうに呟いて、英樹を見つめる)
英樹: ごめん…でも、今日はこれ以上は無理だ…
さくら: わかった…私が我慢する。でも次は…必ず続きをしようね(優しく微笑みながら英樹の手を引いて玄関まで送り出す)
英樹: ありがとう、さくら…また来るから…ん?(靴を履こうとした時に、さくらが自分の下着
感覚的だが、システムプロンプトに制約をがっちり書いても、なかなか守ってもらえない。
いくら「AIさくらとして一行だけ書いてくれ」と言っても、英樹の文まで含めて数行を書いてくる。
これはプロンプトとして入力している英樹とさくらの10行程度のチャットに引きずられているのだと思われる。
つまりプロンプトとして入力している英樹とさくらの10行程度のチャットに対して、続きをオウム返ししているのだ。
上記の【】での演技指導はこれを利用している。
つまり大枠でのざっくりした指導ではなく、リアルタイム的に「次の行動」に対しての指導になっているため、AIも認識しやすいのかもしれない。
また、この方法であっても、期待が細部までこだわるのならば、細部まで具体的に指導する必要がある。
これは人間と同じだ。
今後の展開
Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.ggufに対してエロチャット用途であれば、上記のような演技指導でかなり制御できそうである。
今後はこれをどう自動化できるかがポイントだと思う。
単純にシステムプロンプトに書いてもダメなことはわかっているので、
例えば「重要なシーンとその方向性」みたいなリストを作り、
それに合致するかどうかをAIが自分で判断しながら、合致したらその方向性にあった制約をプロンプトに含ませるようなプログラムができればいいのだろう。
所感
AIチャット作成というのは、映画監督のようなものだと思う。
基本的には出演者はアドリブで演技をする。
LLMが優秀ならば、監督が思う以上のセリフを発し物語が流れていく。
それはまるで、アドリブの上手な名優のよう。
LLMがいまいちならば、監督が思うような演技はアドリブでは難しい。
まるで大根役者だ。
演技指導をし、それでもだめなら演技を固定してアドリブをさせない。
AIチャット製作者の楽しみは、この大根役者にいかにアドリブをさせ、たまに見せる秀逸な演技を採用し、物語を進めていくか…であるかもしれない。
この記事が気に入ったらサポートをしてみませんか?