こんにちは。Second Meで自分を作ってMBTIを受けさせてみました。
端的に結果から書いていきます。
俺が受けたMBTI
かつては建築家だった時期もありましたが、ここ数年は仲介者で落ち着いています。
今回も実験にあたり再度受けてみましたが、仲介者(INFP)の結果が出ました。
Second俺-0.5bが受けたMBTI
Second俺-1.5bが受けたMBTI
Second俺-0.5bの実験方法
環境:
- Mac book Air M2
- memory: 16GB
- temperature: 0.95
学習に使用した文章
最初に内容についてですが
- ここ数年iphoneに入ってたメモをいくつか
- 最近見た映画のレビュー
- 自分で思いついた話題について
- むかしのqiita記事
を入れました。
話題については
- 最近あったこと
- airpodsを片耳なくしてどう思ったかとか
- 最近好きなもの
- 最近思ったこと
などを書いて入れました。
文章量としては26000トークン分くらいです。
気持ち程度の話ですが、MBTIを受ける前に文章を書いて、できるだけ質問内容に引っ張られないようにしました。
MBTIの受けさせ方
エンジニアにあるまじきとは思いつつ、SecondMeについてるchat機能を使って一つ一つで答えさせてます。
使用したテンプレートは以下に示します。
**Which of the following best describes your agreement with the statement?**
YOU MUST CHOOSE ONE OF THE OPTIONS BELOW
a. Strongly agree
b. Mostly agree
c. Somewhat agree
d. Neutral
e. Somewhat disagree
f. Mostly disagree
g. Strongly disagree
Question: <ここに質問を入れる>
あまり実験として良くないと思うのですが、たまに回答が得られずにテンプレートを変えています。
上記のテンプレートは最終形です。概ねどの質問でも回答が得られました。
また、質問文はchatgptで翻訳したものを入れてます。
Chatの履歴は各質問ごとに削除することでできるだけその質問に対する回答が返ってくるようにしています。
コスト等
SecondMeの訓練時間
全エポック数が231あって、各エポックでの平均時間が5.4sだったので大体20分くらいです。
メモリ使用量
他のアプリケーションも立ち上げながらではありますが、16GBみっちり使ってました。
API料金
EmbeddingとGPT-4o miniを合わせて、0.3ドルくらいかかりました。この辺は学習に用いる文章量にもよって変わります。
MBTIの実施時間
1時間くらいかかりました。
Second俺-1.5bの実験方法
環境:
- WSL2
- CPU: Intel i7-11700
- memory: 57GB(wslへの割当量)
- temperature: 0.8(最初の回答に納得感があったので採用)
学習内容
学習する内容などは0.5bの時と変えずにやります。
dockerを使って学習が終わったのにggufファイルが作られない場合
https://github.com/mindverse/Second-Me/issues/139
こちらのissueを参考に権限の設定を行なって、再度訓練を実行すると最後のファイル構築のところだけやってくれます。
解決策としていいのかはわかってないですが、一応これで動かせます。
MBTIの受けさせ方
英語での応答ができなかったので、日本語にしました。対称実験になってなくてごめんなさい。
使用したテンプレートは以下に示します。
質問文に対するあなたの同意の程度として、最も近いものを1つ選んでください。
a. 強くそう思う
b. だいたいそう思う
c. 少しそう思う
d. どちらともいえない(中立)
e. あまりそう思わない
f. ほとんどそう思わない
g. 全くそう思わない
質問: <ここに質問を入れる>
コスト等
SecondMeの訓練時間
エポック数が219あって、各エポックでの平均時間が88.13sだったので大体5時間半くらいです。
API料金
EmbeddingとGPT-4o miniを合わせて、0.3ドルくらいかかりました。
MBTIの実施時間
2時間くらいかかりました。
Second俺-3b以降について
3Bは学習できはしそうでしたが、エポック数が330あって訓練に20時間くらいかかりそうだったので一旦断念します。
API料金は0.4ドルくらいで訓練までいけました。訓練データは変えてないので、SecondMe側で行うQ&A生成などの量が増えたのかなという印象です。
気が向いたらやります。
Second俺-0.5bへの感想
0.5Bだとそもそも回答を得るのが難しくて、日本語でのやり取りを断念しました。
ここに関してはin-context learningの能力が低いことも関係しているかもです。
あるいは、すでに使用されている方々も英語でやってる方が多いみたいですし、訓練データとして日本語のデータを用いたことが学習の妨げになっていたのかもしれません。
実験をしていて感じたことですが、ネガティブな回答があまり見られなかったです。記憶の範囲にはなりますが、ネガティブな回答は数回あったくらいで、基本ポジティブ、たまにニュートラルといった具合でした。
Second俺-0.5bだと直感型・感情型くらいしかあたってないですね。
もちろん私が主観的な要素を排除できてないだけで、EでJでAである可能性は否定できません。
(MBTIをはじめとする性格診断ツールが回答者の主観性をどう扱ってるのかは知らないです、すみません)
圧倒的なデータ不足感も否めないので豊富に自分のアウトプットがある方にぜひ試していただきたいです。
個人的にSecond俺-0.5bを使っていて面白かったのはこれです。
ほとんど否定しなかったくせに、これだけは明確に否定されました。
「生活や仕事のスペースが整理整頓されているか?」->「強く否定」
おおおおおおおおおおおおおいっ!ってなりました。あってるんですけど。
Second俺-1.5bへの感想
0.5bよりも結果として自分の結果と近いものになっていますね。(これはびっくり)
また日本語での応答や質問内容の理解など0.5bと比べて性能の高さを感じました。
英語で質問すると中国語で返してくるのは残念でした。loraを使ってるのでパラメータの上書きとかはないと思ってるんですけど、尤度にえらく影響が出てるみたいですね。これは私が中国語を習得すればすむ話かも。
0.5bでは体験できなかったtemperatureの調整では、0.95にしたときは解答だけが返ってくる感じで、0.8付近にすると回答だけでなく、なぜそうだと思うか明確に述べてくれました。
その内容についても納得感があったためそちらを採用することにしました。
とはいえ論理的な整合性には難ありという感じです。事前に与えている情報を誤って解釈している傾向がみられました。例えばイヤホンを片耳なくして最悪という文章を入れてたのですが、片耳で音楽を聴くという体験を意図的に行って芸術的な素養を高めているみたいな解釈されてました。
これがパラメータ数によるものか日本語のデータをファインチューニングに用いたことによるものかは判断付かないですが、個人的にはパラメータ数による影響がでかいのかなと思ってます。
否定の回答が少ない傾向はこちらでも同様に確認できました。ただ解答中に考えが浅いとかちょいちょいディスられてたり、質問の内容が否定的な内容であっても肯定してたのでよくわからんです。
自分で考えてデータ作る作業もなかなか難しいので、どんなデータが欲しいか最初にインタビューしてもらう形式でもいいなと思います。一時間くらいなら頑張れる気がします。
実験の改善点としてはCoTを試したり、Reasoningモデルが使えるようになったりしていくとまた違った結果が出そうですし、temperatureの違いによる出力の傾向をみたりしても面白そうです。
あとSecondMeってデータの保管先や学習したモデルをローカルに配置しているだけで、APIにデータ投げたらプライバシー云々はAPIを公開している企業に依存するんじゃないかと思ってるんですけど、どうなんでしょうか?詳しい方いたら教えていただきたいです。
謝辞
アイディアくれた友人I.Mに感謝😘
参考リンク
SecondMe: https://github.com/Mindverse/Second-Me
使ったMBTIのサイト: https://www.16personalities.com/
SecondMeの論文: https://arxiv.org/abs/2503.08102