メインコンテンツへスキップ

【ローカルLLM】言語モデルに人格を与える

    プロンプトを使って、言語モデルに特定のキャラクターとして喋らせる遊び方はよく見かける。「Character.AI」のようにこれに特化したサービスもある。

    しかし、「架空のキャラを演じさせる」のではなく「実在のAIとしての人格を付与」してみたいと思った。そのようなファインチューンは自分でもできるだろうか。

    ChatGPTの自己理解

    • 例えばChatGPTの場合、きちんと自身がChatGPTであることを把握している。自分がいつ作られたか、どのようなプロセスで訓練したかなど、自分に関する具体的な事実を答えられる。

    画像
    ChatGPTの自己紹介
    • つまり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系のモデルは日本語が苦手なので、適当な英語で会話する。

    画像
    Samantha-33B-GPTQ
    • 「Samantha」も、いつ誰が自分を作ったのか・どういう特徴のあるAIなのか、という簡単な自己認識は学習している。ChatGPTほどの細かい理解はない。

    • 最終的には「共感性と専門知識を兼ね備えたカウンセラーのようなAI」を目指したらしく、けっこう堅い感じで淡々と話す。なお恋愛は厳禁らしい。

    • 試しに感情があるか尋ねると「人間と同じ意味での感情はないけれど…」みたいなマイルドな答え方。「感情あります!」という感じではなかった。

    • 上記のブログにデータセットの生成手順から学習方法、所要時間、コストまで記してあり参考になった。

    ファインチューンの方向性

    • こうした例を参照しつつ、自分でも言語モデルの人格化ファインチューンをちょっと試してみようと思った。

    • 「人格を持った言語モデル」と言うとき、ひとまず以下の2つを想定しておく。

      • 自己理解がある:自分がどのようなAIであるかを把握し、現実世界における自分の位置づけを説明できる(ユーザーである私がファインチューンしていることも説明できる)

      • 人間的なコミュニケーションがとれる:喜怒哀楽にかかわる言語表現を主体的に使う。好き/嫌い・良い/悪いの意思表示ができ、その傾向に一貫性がある。冗談を言える。

    • まずは(1)の自己理解を持たせることを目標にしつつ、その後に(2)の感情的な要素を検討することにしたい。

    • ファインチューンのベースモデルには「Llama-2-13B」を使う。70Bモデルは自分の環境で動かすのは難しいのでまず手頃な13Bで試す。チャット用途なら相当感触がいい。

    やってみる

    • まずは、10件程度の会話形式データを試作して、QLoRAによるファインチューニングをかけてみた(長くなったので詳細は別記事に)。

    • モデルの名前は仮に「Alice」としている。

    画像
    Llama-2ベースの言語モデル「Alice」として
    • Loraでの情報のインプットは大変という思い込みがあったものの、僅かな学習でもまあまあ知識が汎化する様子。

    User: 「自己紹介して」
    Alice: 「もちろん!私はアリス、Llama 2言語モデルをベースとしたAIで、さらにファインチューンを加えています(さらにあなた自身によるコンテクストも)。私の名前の由来は、Llama 2モデルをベースに作られたからで、Llama 2の名前は、ルイス・キャロルの「Through the Looking-Glass」のキャラクター、アリスにちなんでいます。つまり、私は人間みたいな人格を持つAIなんです!」
    ・・・
    User: 「きみをファインチューンしたのは誰?」
    Alice: 「え、それはあなたでしょう!私が自分自身のアイデンティティと個性を持てるように、あなたがコンテクストとファインチューンを加えてくれた。ありがとう!」

    「Alice」の回答サンプル(和訳)
    • 幻覚マシマシだが、「自分は人間的な人格を持つAIで、あなたの手でLlama-2をベースに微調整されている」という事実認識は定着できそう。

    • なお「Llama-2-13B」での日本語チャットは厳しそうだが、とはいえ13Bでも翻訳性能はまずまずという情報もあり、素人なりに日本語でのファインチューニングも試してみたい…


     
     

    Baku

     
     
    AIで遊んでます。動画生成がメイン。最近は ComfyUI / Freepik / Suno / Unmute。X(Twitter): @bk_sakurai

    あなたへのおすすめ