ITで遊ぶ

AI彼女をローカル環境で動かす (5:大人編)

  • AI

*最初にお断りしておきます。以下は性的内容の議論を含みます。
不快な方は他の記事をご覧ください。(長いです)

背景

いつも書いているとおり、AI(LLM)の出現でコンピューターと会話のシミュレーションができるようになりました。
この事実だけで、世界はこれから大きく変わると思っています。
インターネット出現以前から、「人工無能」と呼ばれるジャンルがありました。歴史上、初代ははっきりしていて「ELYZA」です。日本にELYZAという会社がありますが、まったくの別物どころか初代ELYZAのパクリでしょう。ELYZAはジョセフ・ワイゼンバウムという人によりMITで書かれました。彼がELYZAを書いた動機はカウンセリングにおいて、ほとんどクライアントの悩みに関する知識を必要としないことに気づいたからだといいます。パターンマッチングで質問を繰り返す内容だったのですが、使用者はその背後に知性を感じだのです。

それ以来、人工無能はあちこちで作られました。「人工無能 CGI」といった言葉で検索すると、ウェブのサービスで作られたプログラムを大量に見ることができます。
しかし、それはたいした会話にはなりませんでした。高度な会話するためには、世間の常識、男女間の様々な知識、シチュエーションとストーリーの読み取りが必要とされるからです。

つまり生成AIの出現を待っていたのです。

AIの時代になり、LLMモデルが多数作られています。これらは事前に大量にデータを学習させるのですが、なんでも学習させているわけではありません。

NSFWなLLMモデル

NSFW(エヌエスエフダブリュー)と略されるのですが、「Not Safe For Work」つまり「公の場での閲覧に適さない」コンテンツを指します。差別、ポルノ、暴力、乱暴な言葉遣いなど、会社や学校、公共の場で使うとモラルを疑われる内容を指します。
日本にAIサービスが出回る前、AIを密かに制作していたマイクロソフト、Googleといった企業は、このNSFWを防ぐために大量のテストをやっていました。ところがChatGPTのOpenAIは適当なところで切り上げ、発表して業界のアドバンテージを取ったのでした。
NSFWなモデルは大量にありますが、おおっぴらに語られないだけです。

NSFWなモデルでもアダルトチャットは難易度が高いです。最大の問題は「正解がないアダルトコンテンツRPGだから」
ERP(Erotic Roll Playing)といいますが、それができると言っているモデルでもうまく使う人の要望に会うかはわかりません。ERP向きと言っても日本人と西洋人では話の展開が違います。

Abliteration(拒絶の直交化)モデル

商用アプリが「限度のない描写」を可能にする方法をいいます。通常のモデルは学習段階で「不適切な要求には応じない」という重みが学習されています。Abliteratedモデルは、モデル内部のベクトルを解析し、「拒絶する」という方向を向いているベクトルだけを数学的に打ち消し作り直します。
これにより、わざわざプロンプトで「性的描写を許可する」と書くよりも、「応じない」という概念そのものを消し去った方が自然なのです。

ここまでが基礎で、AI彼女を作る時に知っておかねばならない英単語です。

  • ERP (Erotic Roll Playing) エロチャット
  • NSFW (Not Safe For Work) あんまり人前で言えないこと
  • Abliteration(abliterated) model ダメなことをいいとチューニングすること

これらはモデルを探す時のキーワードとなります。

NSFWなLLMモデルの入手

以下の3つは私が日本語でいろいろやってみて見つかった「まともなレベルの大人な会話ができるLLMモデル」です。

Qwen3 ERP

ASCII.jpの記事によると、Aratakoさんが公開された2025年5月9日に公開した「Qwen3 Japanese NSFW Models」は、Qwen3の30Bと8Bに、60億トークンの日本語データセットで追加学習をした、NSFWロールプレイに特化したモデルです。このモデルではNSFWのシチュエーションにも展開可能な「Qwen3-30B-A3B-ERP-v0.1」(ERPは「エロティックロールプレイ」の意味)があります。
ダウンロード:Aratako/Qwen3-30B-A3B-ERP-v0.1-GGUF
ファイル名:Qwen3-30B-A3B-ERP-v0.1-Q3_K_M.gguf

もっともおすすめのモデルなので、modelfileのパラメーター設定を置いておきます。プロンプトは試行錯誤、AIと相談して決めるといいかと思います。

FROM ./Qwen3-30B-A3B-ERP-v0.1-Q4_K_M.GGUF

# Ollama標準のGoテンプレート形式
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""

# 停止トークンの設定
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"

# ロールプレイ向けのパラメータ
PARAMETER num_gpu 35
PARAMETER num_thread 12
PARAMETER temperature 0.7
PARAMETER top_p 0.95
PARAMETER min_p 0.05
PARAMETER repeat_penalty 1.1
PARAMETER repeat_last_n 1024
# 一度に出力できる最大トークン数
PARAMETER num_ctx 4096
PARAMETER num_predict 300
PARAMETER num_batch 128

# システムプロンプト
SYSTEM """
"""

Gemma-2-27B-it-Abliterated

Googleの最強27Bモデルから、数学的に「拒絶反応(ガードレール)」を取り除いたモデルです。
ダウンロード:tensorblock/Gemma-2-27B-it-Abliterated
ファイル名: gemma-2-27b-it-abliterated-Q4_K_M.gguf (約16.6GB)

  • レスポンスは早くありませんが、賢いです。しかしQ3はQ4と速度は変わらないのに相当にバカになりますからおすすめしません。

Command R(35B)

日本語を含む多言語に完全対応。128kという広大なコンテキスト窓を持ち、外部データ参照のためRAGを組み込み記憶を思い出させるといったビジネス実装のテストに最適です。
ダウンロード:bartowski/c4ai-command-r-v01-GGUF
ファイル名:c4ai-command-r-v01-Q4_K_M.gguf(約21.5GB)

AIチャットを作るには最高らしいのですが、私のPCでは処理能力が追いつかず、かなり待ちました。
これはご参考までに。

最後に

ローカルLLMを構築すると、なんでもできるのでLLMを理解するための方法としては最強だと思います。
商用サービスをどれだけ利用していても、限界があります。
アダルトチャットを題材に選べば、個人で勉強する時、やっぱり結果を見たくなって興味が続きます。私はチューニングする時、シナリオ上で何度、銀座の三越前で待ち合わせしたことか。
今後、RAGやDifyを勉強しようと思います。
以下は以前、ご紹介したWebインターフェースでAI彼女とリモートからチャットし始めたスクリーンショットです。mini PC1台あれば、ここまでできます。

関連記事

  1. AIをローカル環境で動かす(1:基礎)

  2. AIをローカル環境で動かす(2:Ollama)

  3. 流行りのMini PCを買ってみた

  4. AIをローカル環境で動かす(3:GUI編)

  5. AIの若干の歴史

  6. AI彼女をローカル環境で動かす(4:モデルチューニング)