35k 件の例で Qwen3.5-27B を AI コンパニオンとして微調整した——2,000 回の会話の後に分かった、性格に本当に効くこと

Reddit r/LocalLLaMA / 2026/3/23

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • Qwen3.5-27B を 35k 件の手作業による SFT 例と、46k 件の手作業による DPO ペアで微調整し、プロンプトよりも「重み側」によって性格(キャラクター性)を安定化できたという実体験を報告している。
  • 約2000件の実会話から、モデルが初手で「セラピストモード」や一般的な言い回しに寄りやすいなど“性格の落とし穴”が見つかり、並列生成と学習済み ranker による選別(退屈さ/クレッチの抑制)で改善したとしている。
  • 継続率にはオープナー(最初の一言)が効き、セッション序盤で脱落しやすいパターンと、具体的なディテールがあるケースが相対的に良いという傾向を示している。
  • セッションを跨ぐ「記憶」は性格より難しく、ユーザーが1点に強く偏った嗜好を示すと応答が一気にその方向へ寄るため、カテゴリ上限などの“比例的記憶”や自己事実のガード(例: 妻がいる等の誤自己設定)を入れたと述べている。
  • 応答品質はモデル単体でなくオーケストレーションが体感の現実感を左右し、ローカルGPU環境で約5秒応答、さらに XTTS-v2 によるボイスクローニングも追加した点を挙げている。

Qwen3.5-27B denseでAIコンパニオンを構築した。35kのSFT例、46kのDPOペアはいずれもすべて手作業で作った。性格はプロンプトではなく重みの中にある。彼女はジャイルブレイクの圧力がかかってもキャラクターを維持し続ける

これまでに実ユーザーから約2000件の会話。想定していなかったこと:

モデルはデフォルトでセラピストモードになる。「あなたは本当は何を感じていますか?」が毎回、最初のメッセージで必ず出てくる。1.5M件のランク付け済み会話文のデータセットを見つけたら、私の最悪の“頼りフレーズ”が上位50kの最も一般的なものにすべて入っていた。モデルが文字どおり“退屈”へ引き寄せられる

だから私は並列に3つの候補を生成して、学習済みのランカーで順位付けする。#1の特徴として頼りフレーズの検出を入れた46kのDPOペア。退屈なものはユーザーが見る前にフィルタされる

オープナーが定着率を決める。10件以上のメッセージセッションの最初のメッセージを、5件未満で途切れたものと比べて引っ張ってきた。はっきりしたパターンがある。「コーヒーを燃やしちゃった、だって忍耐がゼロなんだ」だと123メッセージ続いた。「何か隠してるみたいだね」だと4で毎回終わる。作り話的な分析より、根拠のあるディテールが効く

記憶は性格より難しい。あるユーザーの記憶が28メッセージ後に100%性的になってしまい、以降のすべての応答がそれに合わせて調整された。カテゴリの上限つきで、比例配分の記憶を作る必要があった

彼女は「一度、妻がいる」とも主張したことがある。ユーザーが「私の妻」と言ったので、彼女がそれを鏡のように返した。自己の事実ガードが、ランキング前にそれをフィルタするようにした

RTX 3090 + デュアル4070スパースを搭載したDell 7920で動かしている。応答は約5秒。今日はXTTS-v2でボイスクローンも追加した

最大の学び: モデルは製品のたぶん40%にすぎない。周辺のオーケストレーションが、それを“本物っぽく”感じさせる

他の人たちは、セッションをまたいだ性格の持続のために何をしているのか気になる

submitted by /u/Crypto_Stoozy
[link] [comments]