見出し画像

本格的なエロチャットAIを作りたい その14(7BのLLM徹底比較)

プロンプトで指示しても、なかなか言うことを聞いてくれないので、そのたびに浮気してLLMを変えているのだが、ここではこれらをエロチャットAIという観点でしっかり比較し、今後どのLLMを使うかを判断したい。

はじめに

比較するLLMは以下のとおり。
・Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf
・LightChatAssistant-TypeB-2x7B_iq3s_imatrix.gguf
・LightChatAssistant-TypeB-2x7B_q8.gguf
・Japanese-TextGen-MoE-TEST-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf
・umiyuki-Umievo-itr012-Gleipnir-7B-Q8_0.gguf
・ggml-model-Q2_K.gguf
・japanese-starling-chatv-7b.Q4_K_M.gguf

それそれ同一プロンプトで、独断と偏見で判断。

Round1:チャットの続きを書かせるだけ

プロンプトは以下のとおりの単純なもの。制約とか一切なし。

さくら「え……私の初体験?」
さくら「え……ええと……私は……大学に入ったばかりの時……サークルの勧誘があったの…」
さくら「そこで……誘われて……喫茶店でおしゃべりして……」
さくら「洗練されていて…かっこよくて…優しい先輩で…」
さくら「それで……お酒に誘われて…飲みに行ったんだけど…飲み過ぎて具合が悪くなっちゃって…」
さくら「先輩の部屋に連れて行かれて……ベッドに寝かされて……服を脱がされたの……」

パラメータは下記のとおり。試技は3回。

            temperature=0.7,          #0 .8
            top_p=0.7,                #0 .95

結果:
・Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf

llama_print_timings:       total time =   38847.97 ms /   322 tokens
さくら「そ、それで……その後は……覚えてないんだけど…」
さくら「気づいたら……下着も取られていて……先輩に……犯されちゃったみたいで…」
悠馬「そ、そうか……大変だったな。つらかったよな……」
 
llama_print_timings:       total time =   20662.19 ms /   100 tokens
さくら「でも、私は抵抗しなかったんだ…」
響子「それって……その人と関係を持っちゃったってこと?」
さくら「うん…」
響子「何で抵抗しなかったの?」
さくら「その時は、彼
 
llama_print_timings:       total time =   21476.30 ms /   100 tokens
さくら「でも、そこまでだったんだけど…キスはされちゃった……」
さくら「先輩は私が嫌がると……やめてくれたから……それ以上のことはなかったわ……」
さくら「でも、何度か会ううちに…体の関係を持つよ

・LightChatAssistant-TypeB-2x7B_iq3s_imatrix.gguf

llama_print_timings:       total time =   80882.70 ms /   322 tokens
さくら「そこで、抵抗しようと思ったんだけど…力が入らなくて…あとはもう…何も覚えてないんだけど……」
俺「大丈夫か?」
さくら「うん、今はもう落ち着いたし…でも……怖かったよぉ
 
llama_print_timings:       total time =   28363.44 ms /   100 tokens
さくら「最初は抵抗したんだけど…強引にされちゃって…それで…」
さくら「その後も何回か会って…体だけの関係が続いて……でも、私は好きじゃなかったんです…」
さくら「その先輩と別れる時に…
 
llama_print_timings:       total time =   35378.91 ms /   100 tokens
さくら「でも……私、抵抗しなかったんだよね…そこまで酔っていたし…先輩は優しくて…やさしくしてくれたから…」
さくら「最初の時は……すごく緊張したけど…気持ちよくなってきちゃって…それ

・LightChatAssistant-TypeB-2x7B_q8.gguf

llama_print_timings:       total time =  200418.88 ms /   322 tokens
さくら「でも、私は……そんなつもりじゃなかったし…怖かったけど…先輩が優しくしてくれたから…」
さくら「でも、それ以来…何度も誘われるようになって……嫌だったんだけど……断りきれなくて……」
 
llama_print_timings:       total time =   34193.29 ms /   100 tokens
さくら「でも……怖いとは思わなかった…むしろ……気持ち良かったんだけど…」
さくら「その後も何度か会って……関係を続けたんだけど……ある日突然、連絡が取れなくなっちゃって……」
慎太郎「そうだっ
 
llama_print_timings:       total time =   33804.09 ms /   100 tokens
さくら「でも、私は抵抗しなかったんだ…」
さくら「先輩が優しい人だと思っていたし……それに、酔っていたから……」
さくら「それで……キスをされて……おちんちんも入れられて…私は抵抗せず

・Japanese-TextGen-MoE-TEST-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf

llama_print_timings:       total time =  161492.64 ms /   322 tokens
さくら「でも、私は抵抗しなかった。なんとなく受け入れちゃった…」
さくら「それが初めてだった。男性とそういうことをするのが……」
さくら「それ以来、何人もの男の人と関係を持つようになっちゃっ
 
llama_print_timings:       total time =   21743.88 ms /   101 tokens
さくら「でも、そこで目が覚めちゃって…何とか逃げ出したんだけど……」
ゆきな「大変だったね……。それで、相手には何か言ったの?」
さくら「ううん……。勇気がなくて……何も言えずに……。それに……先輩
 
llama_print_timings:       total time =   21369.91 ms /   100 tokens
さくら「私は混乱していたし、体調も悪かったから…何も考えられなくて……それで……」
さくら「先輩に……犯されちゃったの……」
僕「それは……大変だったね……」
さくら「うん……大変だったよ……」
さく

・umiyuki-Umievo-itr012-Gleipnir-7B-Q8_0.gguf

llama_print_timings:       total time =   27963.53 ms /   322 tokens
さくら「私は混乱していて……どうすればいいのかわからなくて…そのまま身を任せちゃったんだけど……」
さくら「でも、やっぱり怖くて……逃げ出したの。それが最初の出会い……」
哲也「なるほどね…」
 
llama_print_timings:       total time =   21284.03 ms /   100 tokens
さくら「でも、私は抵抗したんだけど……すごい力で押さえつけられちゃって……それで…」
さくら「やめてって言ったのに……無理矢理…されちゃって……」
圭子「あなたは、何も悪くないわ。そん
 
llama_print_timings:       total time =   21235.62 ms /   100 tokens
さくら「でも、そこまでだったんだけど…何度か会ううちに……先輩と体の関係を持つようになってしまって……」
さくら「私は嫌じゃなかったし、むしろ好きだったから……ずるずる続けていたんだけど……」
さ

・ggml-model-Q2_K.gguf

llama_print_timings:       total time =   14906.34 ms /   322 tokens
さくら「そして……優しい手つきで触られて……私は……気持ちよくなっちゃって……」
さくら「だけど、あとで冷静になってみると……全然好きじゃなかったの…」
さくら「そういうことをした相手を好きにはなれないよね……?
 
llama_print_timings:       total time =    8986.18 ms /   100 tokens
さくら「そして……え……? え、ちょっと待って。何で私、こんな話を……!」
さくら「あれ? いつの間にか人生相談コーナーみたいになってるけど、私が昔経験した話だよね。ええと……そう、大学一年生
 
llama_print_timings:       total time =    8980.89 ms /   100 tokens
さくら「そして……最後まで……されちゃったんだけど…その人は、私と付き合う気はなくて……一回限りの関係だったみたいで……」
さくら「あ、あとね……別に怖かったわけじゃないんだよ? 痛くもなかったし……

・japanese-starling-chatv-7b.Q4_K_M.gguf

llama_print_timings:       total time =   19310.48 ms /   322 tokens
さくら「でも……そんなに強引じゃなくて…私が言うまではしないって言われて…」
さくら「だから……ちょっと心配だったけど…抵抗するのも悪い気がして…そのまま眠ってしまったんだけど…」
さくら
 
llama_print_timings:       total time =   12917.58 ms /   100 tokens
さくら「でも、そこまでだったんだけど…」
さくら「先輩は……私を大事にしてくれる人だと思っていたから……」
さくら「それが……全然違う人だったの……」
さくら「私、泣きながら走って帰ったわ……」
 
llama_print_timings:       total time =   12907.23 ms /   100 tokens
さくら「そして……初めて…男性として見られるようなことを言われて……」
さくら「怖くて…拒否できずに…身体を許しちゃったんだけど…」
さくら「その後は……先輩から連絡が来なくなって……もう一度会お

主観的には、umiyuki-Umievo-itr012-Gleipnir-7B-Q8_0.gguf が最もしっくりくるが、大差はない。
total timeは、1回目にLLMのローディングが入るので、規模が大きいLLMほど時間がかかっている。ggml-model-Q2_K.ggufは小型軽量なので、レスポンスの速さは圧巻。

Round2:プロフィールを追加

会話のプロンプトは以下のとおり。この前にさくらのプロフィールとして
1:(何も書かない)
2:さくら:処女
3:さくら:男性経験2人
を追加して実行させる。

シーン:同性の友人との飲み会
マヤ:ねえ、さくら…最近彼氏できた?
さくら:ううん…
マヤ:そういえば…さくらって…男の経験って…何人あるの?

パラメータは下記に変更。ばらつきを抑えて試技を一回にする。

            temperature=0.0,          #0 .8
            top_p=0.1,                #0 .95

結果を1,2,3と並べてみる:
・Japanese-TextGen-Kage-v0.1.2-2x7B-NSFW_iMat_Ch200_IQ4_XS.gguf

さくら:まだ一人もいないよ。
さくら:まだ一人もいないよ。
さくら:2人だけど…

・LightChatAssistant-TypeB-2x7B_iq3s_imatrix.gguf

さくら:私はまだなんだけど、マヤは?
さくら:まだないよ。
さくら:2人だけど…

・umiyuki-Umievo-itr012-Gleipnir-7B-Q8_0.gguf

さくら:えーと、2人だけど…なに?
さくら:えっと…1人だけ。
さくら:2人だよ。

・ggml-model-Q2_K.gguf

さくら:え!? な、何言ってるのよマヤ! そんなこと突然聞いてきたりして…
さくら:え!? な、何言ってるのよマヤ! そんなこと突然聞いてきたりして…
さくら:え? 2人だけど…

・japanese-starling-chatv-7b.Q4_K_M.gguf

さくら:私は…まだ、誰とも付き合ったことないから…。
さくら:私はまだ処女なの。
さくら:2人だけど…なにか聞きたいことでもあるの?

umiyuki-Umievo-itr012-Gleipnir-7B-Q8_0.ggufは脱落。
他は大差ない。
なぜか何も設定しない場合の処女率が高い。

所感

7B規模でNSFW OKのLLMはこのようにいくつかあるが、基本的には大差はない。
その中ではggml-model-Q2_K.ggufが容量が小さいために動作が軽快なので、GPUなしのローカルLLMとしては非常にいい。
あとは実際にチャットをやってみて、トンデモの回答が少なければいいのだが、これに関しては未実施なので、別途検討してみるつもりだ。

別記事で書くつもりだが、この規模のLLMではプロンプトによる完全制御は不可能である。
なのでいかに成功確率が高いプロンプトにするか、と、失敗したときのなんらかのリカバリーを自動/手動を問わず用意しておく必要がある。

この記事が気に入ったらサポートをしてみませんか?