ステラのはじまり
「チャットボットに関心がある」
それは何気ない一言でした。
「作るのは簡単ですけどね」
私としても簡単な一言でした。
しかし、このことはとても驚きを持って受け止められたのです。
最初のコード
botというのは非常に簡単なプログラムです。 初心者プログラマが連取ぅで作ることも少なくありません。
次に示すのはDiscordで機能する単純なbotで、実際に「簡単に作ることができる」ことを示すために書かれたコードです。
events = {
["おにぎり", "おむすび", "にぎりめし"] => "あたためますか",
["サンドイッチ", "サンドウィッチ"] => "おしぼりいりますか",
["おべんとう", "お弁当"] => "おはしはつけますか"
}
bot.message do |event|
resp = false
events.keys.each do |em|
if em.any? {|i| event.content && event.content.include?(i) }
event.respond events[em]
resp = true
break true
end
end
event.respond "なにかごいりようですか" unless resp
end
bot.run
見た目からわかるように、「おにぎり」と言えば「あたためますか」と返しますし、「サンドイッチ」と言えば「おしぼりいりますか」と返します。 特に用意された言葉でないことを言えば「なにかごいりようですか」と返します。
このような構造を持っているものを「テーブルマッチ型AI」と言います。 一応、「AI」という呼び方を持っているものの、実際はこのようなものは「ボット」と呼ぶことが多いでしょう。
条件を全部手書きしている「if文AI」と並んで蔑まれて呼ばれることの多い構造です。
ところが、このことはステラにとってとても重要なポイントになります。
ERINA the Emotional AI
ERINA the Emotional AI は、私の「人心と人動」の研究の成果物の副産物として誕生した高EQ型のAIです。
実際にトークAIと会話したことがないとこの感覚はわからないと思うのですが、基本的に既存のトークAIは会話がつながりません。 まじめになにかを話そうとすると支離滅裂で非常にしんどいです。 なにより、「いままで何を話していたか」という蓄積が無視されてしまうため会話の流れがありません。
そうした現状からすればERINAは次元の違う自然さです。
ここにたどり着くまで、実装としては19年、研究としては23年かかっています。 その間、日常生活においても常に研究対象のことを頭に置き、観察し、記録し続けてきたからこそ為し得たものです。
しかし、ERINAは様々な問題を抱えているため、その実装、及び動作については一切公開されていませんし、今後する予定もありません。 「そこまで研究し、作ったのに本末転倒ではないか」と思うかもしれませんが、そんなことはありません。ERINAはそもそも研究成果における副産物であり、トークAIを作ることが目標ではありません。 どちらかといえばトークAIとしての自然さは人の言動をどれだけ正確に捉え、記録し、分類できているかが反映されるため、研究の検証用としてちゃんと機能しているのです。
しかし、ERINA自体は公開できませんし、開発規模から言っても同等のものを作るなどということはとてもできません。 そもそも同等のものを作ろうとすると少なくとも数億円はかかる(しかも状況変化から言ってERINA並のものを作ることは難しい)のですが、これは商業的成功の見えないプロダクトです。
実用的AI、ステラ
しかしこの研究は様々なものを残しました。 なにより、伝えることはできていませんが、「人がどのように認識し、どのように反応するか」といったことに対する膨大な蓄積を生んでいます。
その経験から言えば、既存の高EQ AIを凌駕するものを作ること自体はそれほど難しくないと考えていましたし、ERINAほど複雑で高度なものではなく、より実用的AIを作ってみたいという考えは元々ありました。
そのような背景と、要望からステラははじまりました。 キーワードは、「シンプルに、美しく、実用的」です。