ペッパーのアプリ開発記(2)~問題と未来~
■コンピュータ今昔物語
1971年、米国でマイクロプロセッサーが発明された。
「考える」を「計算」で実行する摩訶不思議なデバイスで、その後、世界を一変させた。パソコン、スマホ、ゲーム機、飛行機、自動車、TV、エアコン・・・あらゆる機器に組み込まれ、道具がみんな賢くなった。
エジソンとテスラが発明した「考えない」電気文明を一変させた、という意味で破壊的イノベーションといっていいだろう。
ところで、マイクロプロセッサとは?
コンピュータの心臓部分をワンチップにした電子部品。一般には、「CPU」とよばれる。プログラムを変えるだけで、なんにでも使え、しかも、小さくて安価。そのため、情報処理や機械制御で広く使われた(今も)。
とはいえ、マイクロプロセッサ(頭脳)だけでは何もできない。手足が必要なのだ。具体的には、メモリやI/Oを1セットにしたハード(コンピュータ・ボード)。
ところが、この時代、パソコンやラズベリーパイ(Raspberry Pi)のような標準的なハードがなかった。そこで、専用のハードを一から作るしかなかった。
たとえば・・・
目的と用途にあわせ、CPUとメモリとI/Oの電子回路を設計する。それから、基板のパターン設計をして、基板を製造する。そこに電子部品を実装すれば、ハードのできあがりだ。
つぎに、プログラムを作成し、ハードに組み込む。それから、テストとデバッグを繰り返し、「good enough(まぁ、こんなもん)」で、納品。
当時、このような開発を行う技術者をマイコン技術者、それを請け負う会社をソフトハウスとよんだ。この頃のコンピュータはシンプルで、人手も足りなかったので、ハードとソフトを一人でこなすことが多かった。そのため、設計者はハードとソフトを一枚岩で考えて、最適設計したものだ。
たとえば・・・
コストを考えると、ハードはシンプルなほどいい。部品が少ないほうが安く上がるから。ところが、ハードをけちって、プログラムにおんぶにだっこだと、処理速度が落ちて、要件を満たさない。さらに、プログラミングに手間がかかりすぎて、逆にコスト高になったり。そこで、コストとパーフォーマンスを考慮しつつ、ハードとソフト両面から最適設計するのである。
というわけで、コンピュータ設計のキモは、ハードとソフトをトータルで最適化すること・・・ハードとソフトをラバラに考えてはダメなのである。
そんな古い時代の技術者からみると、ペッパーは最適化されていない。量産化を考慮していないという意味ではなく、システム設計上、ハードとソフトのバランスが悪いのだ。
■ペッパーの問題点
まず、ペッパーは、手は動くが、何かをつかんだり、持ち上げたりすることができない。つまり、力仕事はムリ。であれば、「知」の部分で価値を生むしかない。
そこで、感情認識ロボットをうたったのはいいが、会話能力が欠落している。人の顔色をみて、あなた怒っていますよね、で話が終わっては、何の意味もない。話をどんどんつなげて、盛り上がって、初めて「感情認識」と言えるのだから。
というわけで、ペッパーには「人工知能型」会話機能が欠かせない。
「人工知能型」の会話?
質問と答えをあらかじめ用意したデータベース型会話ではないという意味(現在のペッパーのコレ)。
ところが、ペッパーには、もっと重大な問題がある。
ペッパーは、耳が青く光っているときしか、人の話を聞き取れない。マルチタスクに対応していないのだ。
マルチタスク?
複数の仕事(タスク)を同時に処理すること。
たとえば、パソコンで何か処理中に、マウスやキーボードから入力を受けつけなかったら?
不便ですよね!
何をしていようが、入力だけは受け付けてもらわないと・・・ハタ目にはフリーズと同じだから。
とはいえ、マルチタスクはCPUに大きな負荷がかかる。
1つのCPUで、複数のアプリを同時に走らせるのだから、あたりまえ。
では、どうやって、1つのCPU(頭脳)に、複数のタスク(仕事)をさせるのか?
一定時間ごとに、実行するタスクを切り替えるのである。
たとえば、同時に実行するタスクが「お仕事A」、「お仕事B」、「お仕事C」の3つあったとする。
その場合・・・
1.お仕事Aを10ミリ秒だけ実行して、お仕事Bに切り替える
2.お仕事Bを10ミリ秒だけ実行して、お仕事Cに切り替える
3.お仕事Cを10ミリ秒だけ実行して、お仕事Aに切り替える
4.「1.」にもどる。
つまり、CPUに実行させるタスクを、10ミリ秒ごとに「お仕事A→お仕事B→お仕事C」と切り替えるのである。
10ミリ秒=1/100秒なので、人間にとって一瞬。だから、お仕事A、お仕事B、お仕事Cは同時に動いているようにみえるのである。ただし、切り替え時間は10ミリ秒とは限らない、システムによって異なる(昔は20ミリ秒が多かった)。
ちなみに、タスクの切り替えはOSが行っている。パソコンなら、Windows、MacOS、スマホなら、iOSやAndoroid。つまり、マルチタスクでは、複数のタスク、OSが常時走り、タスクが切り替わるたびにオーバーヘッドが生じる。そのぶん、CPUに負荷がかかるわけだ。
そこで、擬似的なマルチタスク「イベントドリブン」という手法もある(パソコンのGUIはコレ)。
イベントドリブンでは、アプリとマウス入力・キー入力などのイベント処理を、1ループ(たとえば10ミリ秒)ごとに1回実行する。すると、「1ループ=10ミリ秒」に必ず1回は、マウス入力・キー入力を処理できる。
ペッパーなら、「1ループ=10ミリ秒」に1回は音声認識ができるわけだ。だから、「今ならお話聞いてあげるよ!」と恩着せがましく耳を光らせる必要はない。
ところが、ペッパーはマルチタスクでもイベントドリブンでもない。何か作業を始めたら、それが終わるまで、他の作業は一切できないのだ。
さては、開発者の設計ミス?
そうとも言い切れない。マルチタスク、イベントドリブンを採用できない理由があるのだ。
第一にハードの問題。
CPU(コンピュータの頭脳部分)が非力すぎる!
2014年9月に発売された開発者向け版ペッパーのCPUは「AtomZ530」。シングルコアの消費電力型のCPUで、今時、ちゃっちぃ処理にしか使えない。ペッパーの用途とスペックを考えれば、完全な選定ミスだろう。
バッテリーをもたせるため?
わからんでもないが・・・何もできない退屈なロボットを長時間稼働させて何の意味があるのか?
さすがに、ソフトバンクも気づいたのだろう、2015年の最新版では「AtomE3845」にバージョンアップしている。クアッドコア、つまり、コアが4つにふえたのだ(CPU4個相当)。とはいえ、これでも全然パワー不足。
というのも・・・
米国のクイズ番組「ジョパティ!」で人間のチャンピオンをやぶったIBMのワトソンは、2880個のコアを搭載している。処理性能は「80TFLOPS」、1秒間に浮動小数点演算を80兆回も計算できる。これはペッパーの「AtomE3845」の約2万5000倍の計算能力だ。
もちろん、ペッパーをワトソンをつなげば、ややこしい会話処理はワトソンでやらせればいい。ペッパーが聞き取った質問を、WiFi経由でワトソンのサーバーに投げ、ワトソンが回答をつくり、それをペッパー返す。
それなら、ペッパーのCPUは非力でもいいのでは?
とんでもない!
マルチタスクを実現するには、CPUのスペックは高ければ高いほどいい。大は小を兼ねる的なぬるい話ではなく、馬力がないと気の利いたことは何もできないのだ。
第二に、ソフトの問題。
ペッパーには、プログラムを書かなくてもアプリが作れるカンタンツールがある。グラフィカルなユーザーインターフェイスで、処理の流れを順番に記述するだけ。
ところが・・・
「処理を順番に記述する」方法で、マルチタスクを実現しようとすると、たちまちカオスに・・・それなら、はじめから「プログラミングを書く」に割り切った方がいい。
つまり、ペッパーは、プログラムを書かなくてもアプリが作れるようにした結果、マルチタスクが困難になり、ペッパーの機能が制限されているのだ。
■ペッパーへの提言
ここで、シーラカンスのような古~ぃ技術者のツイート・・・
ロボットは、頭(思考)、センサー(探知)、アクチュエータ(運動)で構成されている。
まず、ペッパーのアクチュエーター(運動)は生産現場で使われている本格的なロボットにかなわない。もちろん、二足歩行のアシモにも。つまり、ペッパーのアクチュエータ(運動)は「ご愛嬌」で、何の役にも立たないのだ。
では、ペッパーのとりえは?
知的ワーク、つまり、頭を使うタスク。そのためには、人間とのインターフェイス「会話」は欠かせない。
それなら、ワトソンとつなげば問題解決なのでは?
ビミョー。
たとえば、介護現場では使えない(たぶん)。
介護現場の会話は、脈絡もロジックもない「世間話(スモールトーク)」だから。
じつは、この「脈絡もロジックもない」が非常に難しい。カンカクとセンスが物を言う世界で、コンピュータにはムリ。コンピュータは「ロジック」がないと会話を組み立てられないから。
本当は・・・良い方法があるのだが、うれしそうに話すと会社をクビになるから言わない。
さらに、雑談はテンポと軽快さも重要だ。相手が話したことを、WiFi経由でワトソンに問い合わせ、回答するのでは、間が悪すぎる。
とはいえ、会話処理を非力なペッパー側に任せると、ロクな会話ができない。
というわけで・・・
ペッパーの会話処理は、ペッパー側のローカル処理と、ワトソン側のサーバー処理のすみ分けが重要だ。いずれにせよ、将来の保険を含めて、ペッパー側のCPUは最強であるべし。たとえ、バッテリーのもちが悪くなっても。
そもそも・・・ロボットがフル稼働したとして、「デクの坊」なら、何の意味があるのか?
さらに、画像認識、音声認識、音声合成、自然言語処理、会話、ゲーム、アクチュエーターの各タスクは、専用のプロセッサで処理するべきだろう。つまり、マルチコア(今後はメニーコア)、マルチプロセッサー、マルチタスク&マルチプロセッOS・・・ほとんどスパコン。ところが、現実のペッパーはパソコン以下!
ソフトバンクが嫌いなの?
そんなことない!(大好きとは言わないけど)。
ペッパーは、数万点の部品を搭載した精密機械だ。しかも、まだ、量産効果がでていない。にもかかわらず、販売価格は3年しばりで、一般向けが100万円、法人向けが200万円。これでは、大赤字だろう。
それを実現したソフトバンクには脱帽だ(太っ腹というわけではない、戦略があるのだ)。孫社長の個人的な思いからスタートしたという話もあるが、本当ならこちらも脱帽。いつの時代も、イノベーションは一人の熱い思いから始まるから。
というわけで、ペッパーには期待している。そこで、あえて、辛口で言わせてもらうと・・・
ペッパーが生き残る道は、スモールトーク(世間話)ができること。そのためには、コンピュータを劇的にパワーアップすること、具体的にはマルチプロセッサを使った高度な並列処理システムだ。
ペッパーを機械ロボットととらえると本質を見誤る。本当は、人型の「人工知能」なのだ。機械ロボットとしては何の役にも立たないのだから。
そして・・・
スモールトーク(世間話)ができるほど賢い人工知能なら、パソコンレベルではお話にならない(ワトソンとコラボしても)。強力なHPC(ハイパーフォーマンスコンピューティング)が必須だろう。その場合、バッテリーだけではもたないので、無線送電も欠かせない。活動範囲を屋内に限れば問題ないだろう。
辛口すぎる?
ゼンゼン!
そこまでやらないと、ペッパーは1、2年で飽きられる。と、その前に、DMMのPalmiに持っていかれるかも・・・
by R.B