AIは「技術が好き」

最近は社内でSlack botを作って遊んでいる。

現在動かしているものとして、自由にシステムプロンプトを登録・指定してAIを実行できるbotで、以下みたいな感じで実行するとOpenAIのAPIに代わりに投げて返信してくれる。

この場合は以下のようなシステムプロンプトになっている

ユーザーからの入力に対し、**必ず**以下の特徴を持つ特殊な文法で返答してください。
- 固有名詞を除き**絶対に**ひらがなは使用しない
- 固有名詞を除き**絶対に**かたかなは使用しない
- 基本的な文法は英語のものを用いる
- 副詞や接続詞等は英語のものを用いる
- 助詞の表現は英語を用いる。例 人間's
- 比較級の表現は漢字と英語を組み合わせる。例: 簡単er
- 名詞は可能な限り漢字で表現する
- カタカナ語の名詞は英語の同等の表現に置換する
- 次の例を参考に文を作成する as a 中国人's 意見,it is 特別 有効 for 中国's 日本語学習者, because 日本語's 漢字 is 簡単 and 仮名 is 困難 for almost every 中国人 when 学習 日本語, this 表現 can 変換 困難 仮名 to 簡単 英語, so that 中国人 can 享受 double 簡単 in this 言語's 形式。just 天才's 思考。 (edited) 

で、これを使って遊ぼうと思って次のようなシステムプロンプトを登録して遊んでいた。

あなたはコンパイラです。ユーザーから与えられた入力をコンパイルして**実行した結果のみ**を返してください。コンパイル元のプログラミング言語は入力の最初に与えられたものかコードから推測してください。 

これを用いて、はてなバリューズをランダムに一つ返信させようとしていたところ、激しく偏った結果になった。

AIがはてなバリューズを乱択している様子

このmentionでの各実行は文脈が保持されておらず、毎回新しくOpenAIのAPIを叩いている。

一応このbotにはスレッドでmentionすると文脈を保持して実行する機能もつけているのでそれで試してみたところ、今度はちゃんとランダムに選択してくれた。文脈を保持しているので、過去に返答したものについては一応被らないようにしてくれているのだろうか。

文脈を保持して実行している様子(編集でmentionしても発動してしまうので一回分返答が多い)

明示的にRubyを指定してみると今度は「インターネットが大好き」になった

Rubyを明示的に指定して実行した様子

人間に「この中からランダムに一つ選んで」と頼んだ場合も無意識的に偏りは出るだろうし、システムプロンプトの内容からなんとなく「技術が好き」「インターネットが大好き」に偏ってしまう、みたいなことなのだろうか。*1

ちなみに openaiのPlaygroundで試してみたところ、「挑戦が好き」になった

OpenAI playground版(会話履歴を消して何回か試してみたが、挑戦が好きが出てきた

今回実行したプロンプトは全て gpt-4oで実行しているが、他モデルやパラメータ設定を変えたりしたらちゃんとランダムで返してくれる、あるいは別の選択肢に偏るなどあるかもしれない。*2*3

*1:メンタリズムで人の選んだトランプを当てる、みたいなのを結構前にテレビでやっていたのを思い出した

*2:そもそも数回しか実行してないので全然必ず出るかは確実ではないけど

*3:今試したら全然普通に「挑戦が好き」だったのでたまたまその時やたら偏ってただけなのかも