汎用知能によって変わるソフトウェアの形
初めに
計算機が開発されてから長らく期待されてきた人類の夢である「コンピュータの汎用知能化」(人類と同等あるいはそれ以上の知能を持たせること)が、最近になって生成AIの急速な進歩により実現しつつあります。
この技術によりソフトウェアの形は今まで想像されなかった形に発展します。おそらくその方向性はコンピュータが人に寄り添い、そして人がコンピュータに寄り添うのだと考えます。
この記事では、僕の考える新しいソフトウェアの形を抽象的なところから具体的な例を挙げて説明し、最終的に自分の個人開発であるAI秘書の説明をします。その内容が、一人でも多くのエンジニアにとって新しいソフトウェアの形を模索する手助けになることを祈ります。
人とコンピュータの関わり方(既存のインターフェース)
人とコンピュータの関わりはインターフェースを通じて行われます。
現在のコンピュータにおいて主流なインターフェースはGUIですが、このGUIは一般の人がコンピュータを扱えるようにするという観点から非常に画期的な発明でした。その理由は複数ありますが、一番の特徴は「コンピュータが人に寄り添った」ところにあると思います。
GUIではアイコンやマウスポインタなど視覚的な要素を用いてコンピュータを操作することを可能にします。さらに、アイコンは人間の経験を利用して要素の抽象化を行います。
例えばPCの操作でファイルの削除は、ごみ箱のアイコンにファイルをドラッグすることで実現します。
これは、抽象化されたアイコンを使って人間が日常生活で得ている常識を想起することで操作の理解を楽にしているのです。そのような意味でGUIは「コンピュータが人に寄り添った」といえると思います。
ではGUIはこれからも永遠に最も優れたインターフェースなのでしょうか。
GUIは人間が一つ一つコンピュータを操作する時に非常に画期的なインターフェースでした。しかしコンピュータの知能化が進む今、必ずしも人間が一つ一つコンピュータを操作する必要はなくなります。コンピュータが自立的に何をするべきかを判断し実行することが出来るようになるのです。
この自立性はエージェント性とも呼ばれています。
コンピュータのエージェント化
エージェントとは特定の目標に向かって自律的に判断、行動しその結果から得られる情報を元に再度判断、行動をすることを繰り返す能力を持つものとされます。
近年に急成長するコンピュータの知能化はこのエージェント性をコンピュータに持たせることを可能にし、ソフトウェアにできることが革命的に広がります。
それでは具体的にどのようなことが可能になるのか、以下のシステムについて考えます。
このシステムの目標は顧客がもつ問題を問い合わせの回答によって解決することです。この目標を達成するために、エージェントは必要な情報を自ら調べる能力を持ちます。
例えば、雨具を販売するサイトにおいて「来週の雨でもピクニックにいける商品をどれ」という問い合わせが来たとします。商品は折り畳み傘、普通の傘、カッパの三種類から選ぶ時、次の二つの情報が分かると顧客に満足してもらえる雨具を提案できそうです。
来週の雨がどのような雨なのか
どのようなピクニックなのか
この時、エージェントは次の2つのアクションを実行します。
来週の雨の予報をインターネットで調べる
どのようなピクニックなのかユーザに質問する
その結果から顧客は、少ない雨の中で山を登るピクニックをするのだと分かった時、エージェントはカッパを提案します。
この一連の流れにおいてエージェントは、ユーザの問い合わせに回答をするために必要な追加の情報を自ら判断し、それを得るための行動を自律的に行った上で回答しています。
これがコンピュータのエージェント化によって可能になることです。
知能化コンピュータを人としてとらえよ
上記のような複雑なタスクをこなす上では、必ずしもベストな答えを出すことは難しくなります。
顧客によってはカッパの提案が正解でも、もしかしたら身にまとう必要のあるカッパが嫌いな顧客もいるかもしれません。つまり、タスクの解決に必要な判断に主観のような要素が入り込めば入り込むほどタスクに答えがなくなっていくと考えることが出来ます。
上記のケースにおいて、人対人のコミュニケーションであれば「自分カッパは嫌いなんだよね」というような会話が生まれるのが自然です。しかし、対コンピュータになると途端に人は完璧を求めがちです。おそらくユーザに微妙な提案をしてくるサービスだったと認識されて終わってしまうでしょう。
これは、今までのソフトウェアが扱ってきた問題が答えが定まるようなものであり、そのアウトプットの完璧性に人が慣れているからです。しかし複雑な問題においてソフトウェアが価値を発揮していくためには、ソフトウェアを人に近い存在のように考え、間違いもありながら共に価値を生み出す存在として「人がコンピュータに歩み寄る」ような考え方が必要になってくるのだと思います。
お互いに歩み寄る究極系体「AI秘書」
人とコンピュータがお互いに寄り添うとはどのような事なのか、解像度を高くするために別の具体的な例を考えてみます。
ここでは人間の秘書が行っている仕事である以下について考えます。
タスク管理と優先順位設定をするためには、依頼者が集中したいことが何であるかや外界の環境との関係性を考慮しながら柔軟な判断する能力が必要になります。そしてこれを行うための前提として、依頼者との密なコミュニケーションを通して依頼者がなにを考えて何を求めるのかを把握し続けることが必要不可欠になります。
では、これをコンピュータにやってもらう事を想像してみてください。
今までのソフトウェアを使う感覚で考えると違和感を覚えるのではないでしょうか。
現在、多くの人のコンピュータに対する感覚は、人がコンピュータに対して指示をだすのみであり、またこれまでのソフトウェアもそれを前提とした体験の設計だったでしょう。
しかしコンピュータが知能化する中では、人とコンピュータが相互にインタラクションをすることでコンピュータの知能化が生み出す価値を最大限利用していくような体験の設計に変わっていくのではないでしょうか。
個人開発の紹介
僕は現在LLMを用いたスケジュールとタスクの管理を行ってくれるAI秘書を趣味の個人開発で行っています。
開発の動機は大きく2つ。
1つ目の理由は、純粋に僕が使いたいからです。
日々のタスクの管理をtodoリストのアプリケーションを使って行う中で、緊急度は低いが重要度の高いタスクがtodoリストの底に埋もれてしまって、タスクの存在を忘れてしまうことが問題でした。これは緊急度が低くタスクの期限を定めないためであり、後になってからこの空き時間にこれやっておけばよかったのにと思うことが多くありました。
この問題を、カレンダーの予定の空き時間に対してタスクの推奨をするというアプリケーションを構築することで解決しようと考えたのです。
2つ目の理由は、知能化するコンピュータが生む新しいユーザ体験の形を実際にアプリケーションを構築することを通して模索したいと考えたからです。
技術的にもビジネスモデル的にもどのような形のソフトウェアが新しいユーザ体験を生み出すのかを知りたく、実際にアプリケーションを構築しながら探究していく事を目的にしています。
以上の動機から、現在カレンダーとtodoリストを連携するソフトウェアの構築を行っています。
タスクの推奨をする上で、知能化するコンピュータはどのような形で人とインタラクションするとユーザ体験がよいのか。どのようなアーキテクチャを構築するとユーザの求める推奨を実装できるのか。このような問題に対して、読める範囲で論文など参考にしながら実装を進めています。
まとめ
ここまで知能化するコンピュータによってソフトウェアの形がどのように変わるのか、そしてそれに対する人のコンピュータに対する向き合い方について考えてきました。
この先、ソフトウェアの形が変わることは間違いのないことですが、市場がどう変化するかやどんなビジネスモデルが生まれるのかは誰も答えを知らない状況です。
だからこそエンジニアが技術目線から主導して新しいプロダクトを作っていける時代なのだと思います。ぜひ、この領域に興味のある方は共に新しいソフトウェアの形を模索しましょう。そして、沢山話し、考え方を共有しながら共に作っていきましょう。
(上記の秘書開発について、今後はスケジュールとタスク管理から派生してより汎用的にユーザの手助けをできるソフトウェアに開発していこうと考えています。もしご興味のある方いらっしゃいましたら是非一度お話しましょう!)
この記事が気に入ったらサポートをしてみませんか?