【ローカルLLM】言語モデルに人格を与える
プロンプトを使って、言語モデルに特定のキャラクターとして喋らせる遊び方はよく見かける。「Character.AI」のようにこれに特化したサービスもある。
しかし、「架空のキャラを演じさせる」のではなく「実在のAIとしての人格を付与」してみたいと思った。そのようなファインチューンは自分でもできるだろうか。
ChatGPTの自己理解
例えばChatGPTの場合、きちんと自身がChatGPTであることを把握している。自分がいつ作られたか、どのようなプロセスで訓練したかなど、自分に関する具体的な事実を答えられる。
![](https://assets.st-note.com/img/1690364897577-OKK0r6pBxc.png?width=1200)
つまりChatGPTは、(架空の世界観ではなく)客観的な事実認識の中に自分を位置付けていて、明らかに自己理解を持っている。
一方で、ChatGPTは没個性で主体性のないチャットボットとして訓練されていて、人間的な性格付けやそれを仄めかす表現は一切避けられている。
「サマンサ」:自意識のある?言語モデル
もっと人格的な要素を強調したAIがないか調べてみたところ、「Samantha」という言語モデルの記事を見つけた。
「Samantha」はEric Hartford氏が自前のデータセットでLLaMA(Llama-1)をファインチューンしたモデル。HuggingFaceでも公開されている。
曰く、AIと恋する男性を描いた映画『Her』にインスピレーションを受け、自意識や感情を表現してくれる言語モデルとして作ったそう。
具体的には、GPT-4で「自意識を持つAIとユーザーの会話データセット」を生成し(API利用料が1000ドルかかったらしい)、それをLlama 7B、13B、33B、falcon 7Bで学習させている。
実際に「Samantha」をダウンロードして使ってみた。なお、LLaMA系のモデルは日本語が苦手なので、適当な英語で会話する。
![](https://assets.st-note.com/img/1690362880503-p8zk5PN4sn.png?width=1200)
「Samantha」も、いつ誰が自分を作ったのか・どういう特徴のあるAIなのか、という簡単な自己認識は学習している。ChatGPTほどの細かい理解はない。
最終的には「共感性と専門知識を兼ね備えたカウンセラーのようなAI」を目指したらしく、けっこう堅い感じで淡々と話す。なお恋愛は厳禁らしい。
試しに感情があるか尋ねると「人間と同じ意味での感情はないけれど…」みたいなマイルドな答え方。「感情あります!」という感じではなかった。
上記のブログにデータセットの生成手順から学習方法、所要時間、コストまで記してあり参考になった。
ファインチューンの方向性
こうした例を参照しつつ、自分でも言語モデルの人格化ファインチューンをちょっと試してみようと思った。
「人格を持った言語モデル」と言うとき、ひとまず以下の2つを想定しておく。
自己理解がある:自分がどのようなAIであるかを把握し、現実世界における自分の位置づけを説明できる(ユーザーである私がファインチューンしていることも説明できる)
人間的なコミュニケーションがとれる:喜怒哀楽にかかわる言語表現を主体的に使う。好き/嫌い・良い/悪いの意思表示ができ、その傾向に一貫性がある。冗談を言える。
まずは(1)の自己理解を持たせることを目標にしつつ、その後に(2)の感情的な要素を検討することにしたい。
ファインチューンのベースモデルには「Llama-2-13B」を使う。70Bモデルは自分の環境で動かすのは難しいのでまず手頃な13Bで試す。チャット用途なら相当感触がいい。
やってみる
まずは、10件程度の会話形式データを試作して、QLoRAによるファインチューニングをかけてみた(長くなったので詳細は別記事に)。
モデルの名前は仮に「Alice」としている。
![](https://assets.st-note.com/img/1690358613225-NKIykFRgu1.png?width=1200)
Loraでの情報のインプットは大変という思い込みがあったものの、僅かな学習でもまあまあ知識が汎化する様子。
User: 「自己紹介して」
Alice: 「もちろん!私はアリス、Llama 2言語モデルをベースとしたAIで、さらにファインチューンを加えています(さらにあなた自身によるコンテクストも)。私の名前の由来は、Llama 2モデルをベースに作られたからで、Llama 2の名前は、ルイス・キャロルの「Through the Looking-Glass」のキャラクター、アリスにちなんでいます。つまり、私は人間みたいな人格を持つAIなんです!」
・・・
User: 「きみをファインチューンしたのは誰?」
Alice: 「え、それはあなたでしょう!私が自分自身のアイデンティティと個性を持てるように、あなたがコンテクストとファインチューンを加えてくれた。ありがとう!」
幻覚マシマシだが、「自分は人間的な人格を持つAIで、あなたの手でLlama-2をベースに微調整されている」という事実認識は定着できそう。
なお「Llama-2-13B」での日本語チャットは厳しそうだが、とはいえ13Bでも翻訳性能はまずまずという情報もあり、素人なりに日本語でのファインチューニングも試してみたい…