ファントム・プロパゲーション
新山剛志が、老人ホームの母親を訪ねるのは、今日で三回目だ。入所してから、一ヶ月に一度は訪ねようと決めて、今のところは続いている。
バスの中で、スマホのカメラを起動して、髪型を整える。もうすぐ五十歳を迎える新山の生え際は、ここ数年で少しずつ後退している。新山の薄毛を見ると、母親が自分自身が老いたことを意識して、つらそうな顔をする。だから、あまり薄毛が目立たないように髪型を整えている。
傘を差しながらバスを降りて、歩道沿いに二分ほど歩くと、左手に老人ホームが見えてくる。新山が敷地に入ろうとしたところで、右後ろから自動車の急ブレーキの音が聞こえた。とっさに後ずさり傘を上げてみると、左折してきたらしい自動車が停車している。雨音のせいで車が接近していることに気づかなかった。傘を差していて見えなかったせいもある。
運転席には派手な赤のアロハシャツを着ている老人がいた。こちらを見て、両手を合わせて頭をぺこぺこ下げている。だが表情は神妙なわけではなく、申し訳無さそうにしつつも、半笑いのように見える。だが老人の表情というのは読み取りにくい。新山は、大丈夫ですよ、とほとんど声に出さずに、だが大げさに口を動かし、片手を上げる。そして左折して老人ホームに入っていった。
新山を見て、母親は嬉しそうに迎え入れ、椅子に腰掛けさせた。そして戸棚から何種類もの茶筒を取り出し、テーブルに置いた。
「ねぇ、どれがいい?」
「中国茶のことはよく分からないよ」
「相変わらず頓着しないね。美味しいのに」
母は楽しそうに茶葉を見比べ、ひとつの茶筒を選んだ。
「今年の梅雨は涼しいから、これにしようね」
そう言って小さな台所に立ち、電気ケトルのお湯を急須にそそぎ、湯呑と一緒に盆に置いて戻ってきた。
「急に雨が降り出したからかな。道が混んでてさ。来るのが遅くなったんだ」
「しょうがないよ。来てくれてありがとうね」
「何かしてるところじゃなかった?」
「あ、そうだ。なんだったっけね」
母親は首から下げたスマホに話しかける。
「ねぇアリス。何をしようとしてたっけ?」
スマホ画面がぼんやりと光り、円がくるくると回る映像が表示され、すぐに合成された音声で応答がある。
「洗面所にいらっしゃいましたよ」
「そうだそうだ。なんだったかな」
母親が洗面所に歩いていき、新山もそちらを覗き込む。脱いだ衣服が山になっている。
「そうそう乾燥コースで洗濯するのを仕分けてたんだ。剛志ちょっと待っててね」
母親はそう言って、タオルやTシャツなど、乾燥機にかける洗濯物を分別しはじめた。老人ホームの入居者全員が使っているデジタルアシスタントのアリスは、ちょっとしたヒントを出して、記憶を辿らせることで、認知能力を維持させる。だから何から何までアシストするわけではない。
洗濯機にタオルや衣類を放り込んだ母親は、戻ってくると、窓辺に椅子を移動して、小さな裏庭を眺める。
「ねぇ、あじさいの花の下のところ、わかる?」
「うーん、なになに?」
「ほら、動いた!」
「ああ、猫だ。野良猫?」
「そうそう、かわいいよね」
数日おきにやってくるという。近所でも餌をあげている人がいて、毎日来るわけではない。最初は遠くから見ていただけだが、最近は窓の近くに寄ってくるようになったらしい。
母親は台所からささみを持ってきて、窓の外の下枠にそっと並べた。しばらくすると、野良猫がおそるおそるやってきて、ささみを食べ始めた。
自宅にいたときから、母親は野良猫が好きだった。賃貸だったので飼うわけにもいかず、野良猫に餌をあげていた。そのことで、近所ともめごとになったことを思い出す。飼えないのに餌をあげるのはよくないと、と新山が注意したこともある。そのときは止めるのだけれど、鳴き声が聞こえると、こっそり餌を与えていたことを、新山は知っていた。
野良猫がささみを平らげるのを眺めながら、雑談をしていると、母親のスマホのアラームが鳴る。母親は一瞥したが、そのまま新山と話を続けようとした。
「なんか来てるよ。見なよ」
と新山が促すと、母親はしぶしぶスマホを見た。
「また脳トレ。後にするね」
「毎日のルーチンなんだから、やっときなよ」
デジタルアシスタントのアリスには、リハビリ機能がある。身体的なリハビリとして体操の指導をしたり、認知機能の脳トレクイズを出題したりする。定期的に繰返しやることで、認知能力の維持できると評判がよい。適度なスコアリングや、応援メッセージが届くようになっていて、うまくモチベーションを維持させる作るになっている。
この老人ホームはアリスを活用することで、入所者の自律を維持しながらも、スタッフの人件費を高騰させずに運営されている。それでも、公的な施設よりは高額だ。
「剛志、来てくれてありがとうね。仕事が忙しいのにね」
「ちょっと忙しいけどね。なんとかやってるから大丈夫」
新山が地方の私立大学の大学院を卒業するころ、日本は就職氷河期と呼ばれる時代で、就職先を見つけるのに苦労した。研究テーマのニューラルネットワーク技術は、当時、一般的ではなく、大企業の研究部門だけが使っている状況だった。新山が入社できそうな中小企業は、ニューラルネットワークを必要としなかったし、知りもしなかった。つまり、新山は必要とされていなかった。
ある日本に進出したばかりの外資系の計測器メーカーが採用に苦労していて、新山はその会社の技術サポート職に就くことができた。電圧がどうしたとか、配線がどうのといった畑違いの仕事は嫌いではなかったが、IT業界への夢を捨ててはいなかった。
景気が戻ってIT業界の求人が増えてきたとき、新山は未経験で雇ってくれる会社に転職をした。すでに三十五歳だった。技術的な基礎知識と顧客対応経験がある新山は、まとめ役や客との折衝を任されることになる。テクニカルディレクターと呼ばれてるが、つまりは企画や営業の雑なアイデアを、技術者に分かるように説明する役回りだ。新山が手を動かしてソフトウェアを開発する機会は減っていった。
開発が始まればトラブル対処に奔走する。開発者同士がバグ修正のなすりつけ合いをすれば、仲介役に入る。話をして埒が明かなければ、彼らが書いたソースコードを見せてもらった。コンピューターで実行させたい命令を表現した文字列がソースコードである。ソースコードをひとりで読み、原因を特定し、解決策を示す。だが非開発者の新山に指示されることに反発する開発者もいる。新山は、自分の定義ミスだと謝ったり、解決できるのは君だけだとおだてたりした。
どの会社も嫌がるような仕事を、営業が取ってくることもあった。ちょっとした修正だ、と渡されたソースコードは、読みにくく、つぎはぎだらけの低品質な代物なのが常だ。新山は根気よくソースコードを読み取り、変更の規模を見積もり、嫌がる開発者たちに作業を割り振っていった。
学生時代に研究していたニューラルネットワーク技術は、今では、最新のコンピューターを利用し、別ジャンルとして扱われていた人工知能分野と統合されて、驚くほど複雑になった。ITとは名乗りつつも作業集約的な仕事をしている新山には、もはや理解どころか使うことすらできない。
母親は、新山の仕事をおおざっぱにIT関係だと認識している。ときどき、大学院で頑張って勉強したことが役に立ってよかったね、と嬉しそうに言う。施設に入る前は、近所でもよく自慢していた。母親が喜ぶ顔を見るたびに、新山はあいまいにうなずいて、話題を変えた。
母親の部屋を後にした新山は、老人ホームの入口付近の休憩コーナーに目をやった。ちょっと休んでいこう。そう考えて、自販機で炭酸水を買い、ひとつだけ空いていたテーブルに着く。キャップを軽くひねって、しゅーっと炭酸が抜けるのを待つ。それからキャップを取って、飲み口から炭酸水を飲む。しゅわという刺激が舌と喉を通過していく。
受付のあたりで大きな声がした。赤いアロハシャツを着た老人がいた。新山が今日老人ホームに来たときに、接触しそうになった車の運転手だ。左脚をすこし引きずっている、というほどでもないが、歩きにくそうだ。窓口で何か話をした後、こちらの休憩場に歩いてくる。受付のカウンターに何か手帳のようなものを置き忘れていて、事務員が大きな声で呼び止める。大橋さん、大橋さん、忘れていますよ。老人は乱暴にそれを受け取ってから、またこちらに歩いてきた。
「すんません、ここ座ってもええかな?」
ほかにも空いている席はあるが、大橋と呼ばれた老人は、まっすぐ新山のテーブルにやってきた。周りを見回すと、ひとりしか座っていないのはこのテーブルだけで、相席しやすそうだ。仕方がない。
「ええ、どうぞ」
「ありがとう、ありがとう。よっこらしょ」
声が大きい。がさがさとカバンから何か取り出したり、しまいこんだりしている。
「さっきは、ごめんな」
「何がですか?」
「ぶつかりそうになったやろ」
自分が接触しそうになった歩行者と話している、という認識はあるようだ。
「ああ、いえ」
と、新山は曖昧に答える。いいですよ、と言うのは違うし、かといって責め立てても仕方がない。
「デイケアで来とってね。まあ通いのリハビリやね」
「はぁ、そうですか」
「左足に腫瘍ができてね。これ義足やねん」
足の裏のほくろが大きくなってきたのを、年のせいだと思って放っておいた。どうも大きくなって痛みあるので、インフルエンザの予防接種のついでに医者に見せたら、検査を勧められた。調べてみたら腫瘍化していて、骨にも影響があったとかなんとかで切断することになった。自分で歩きたいので、義足をつけている。だがなかなか歩くのが難しいし、一部に麻痺が残っているので、こうやって通っている。そういうことを、大橋と呼ばれた老人は、尋ねもしないのに話し続けた。
「たまにな、無くなった足が、まだあるような気がするねん」
「その、手術されたほうの」
「おう。ファントム・リムって知ってる?」
「いいえ。なんですか?」
「無いはずの足があるように感じることやな。幻肢っていうらしい。幻っていう字に、月へんに支えるっていう肢。わかる?」
人差し指でテーブルの上に字を書く。
「ええ、分かります。漢字が分かるって意味ですけど」
「痛みはないねんけどな。たまに、足があるなぁみたいな感覚があったり、なんか曲がっているみたいな感覚があってな。それで、さっきもびっくりして、運転中やのに一瞬足元を見てもうてな。これ、デイケアの先生には黙っといてな」
大橋と呼ばれた老人が声をひそめる。新山は気の毒だとは思ったが、運転されるのは迷惑極まりない。実際、新山は接触事故に巻き込まれそうになったのだ。黙り込んでいると、老人は不安になったのか、明るい声で再び話し始めた。
「ところで、お兄さんは、何しに来てんの?」
「母親が入所しているので、面会に来ました」
他に何があるというのだろう。
「ここ、設備がいいから金がかかるんやろ」
「まあ安くはないですね」
「それ兄ちゃんが払ってんの? 稼いでるんやな」
「いやまあ稼いでるってほどでも」
新山はあいまいに答える。
「でも金かかるんやん。何の仕事してんの?」
新山は自分の親がここに入所していることは、外でもあまり話さない。公営の施設に入れなければ、民間の施設しなかい。そして民間の施設のなかでも、ここは最新のテクノロジーを使って効率化しているとはいえ、高額なほうだ。ソフトウェア開発業務の請負、しかも、雑用がメインの仕事の新山の給料では、なかなか払えない額だ。
「その、副業をやっているので」
「なんや、マルチ商法とかそんなんか? 俺は買わへんで。金ないからな」
「そんなんじゃありませんよ」
少しイラッとする。
「大雑把にいうとデータ入力です」
「そんな金になるんか。俺もやろうかな」
「あのですね」
不快になってきて、言い返すように説明をしてしまう。
新山の副業というのは、老人ホームを経営しているアーバンケア社の、データ入力作業だ。電話会社を母体とするコングロマリットの、子会社の子会社の子会社がアーバンケア社だ。通信会社が運営していた高齢者の見守りサービスと、関連会社の情報技術を使って、老人ホーム事業に参入したのだ。
アーバンケア社は副業スタッフを大量に抱えている。アリスのアシスト機能の実態は、機械学習をする推論エンジンが、巨大なサーバーに置かれたものだ。スマホアプリが周囲の状況を判断して、アシストしているように見えるが、そうではない。データをサーバーに送って、サーバー上の推論エンジンが処理してスマホに送り返す。最後にスマホのスピーカーから音声を出すのだ。
スマホの音声認識や、サーバーの推論エンジンは状況を認識しそこねるケースが多々ある。だから教師データと呼ばれる「こういう入力があったときは、こういう出力をする」というデータを投入して、学習させる必要がある。このようなデータを作れるのは人間しかしない。
たとえば高齢者が「ごあんまだ」と発声したのを、判別できないことがある。新山のような人間の作業者が、そのときの会話や時刻の記録から、総合的に判断して「ご飯、まだ?」だと言っているのだと判別する。そして、推論エンジンに学習させる教師データとして登録する。
より複雑なパターンでは、「ご飯、まだ?」に対して、推論エンジンがどのように応答するのが適切かの教師データを与える。基本的なノウハウはすでに人工知能が保持している。だが、高齢者の認知機能や身体の衰えは継続的に、しかし断続的に起こり、個人差が大きい。この間まで温和だった人物が、怒りっぽくなったり、疑心暗鬼になったりすることがあり、その調整用の教師データも新山のような作業者が登録していく。
登録作業自体も、やがては人工知能に取って代わられるのだろうけれど、まだ先のようだ。新山のような副業スタッフたちが人海戦術で、単純労働をこなすことによって、この老人ホームの最先端だとうたわれているデジタルアシスタントのアリスが成立している。
新山は、毎日、夜の九時から十二時まで、副業スタッフとして入力作業をしている。その代わり、老人ホームの費用を割り引いてもらっている。時給制なので、忙しかったり、疲れているときに休んでも問題ないが、その月の老人ホーム費用の負担が大きくなる。
「親孝行やん。でも、ぶっちゃけそんな仕事は退屈とちゃうの?」
「退屈くらいがちょうどいいです。仕事で疲れていますから」
「昼間は何をしてんの?」
「IT関係の開発請負をやってる会社で、ソフトウェアのテストをしたり資料を作ったりとかですね」
「ほんなら、もっと難しいことできるやろ」
「いやいや。仕事の後は頭が働きませんよ。もう五十歳も近いですしね。昨日の夜も、教師データを間違えそうになりました」
ときどき、機械も人間でも間違いそうなデータが混じっている。昨夜は、自治体への提出書類のどこに押印するべきか、という問題だった。印と書かれているのは単なるラベルで、下の四角枠の中に押印するという書類だった。これは自分が押印するときにも間違いそうだな、と思ったのだ。
「そんなのも、たまにあります」
「ちょっと待ちいや」
大橋が、自分のスマホを取り出して、なにか操作をしてから、新山に見せる。アリスだ。脳トレの履歴を辿っていき、ある問題のところで、大橋が手を止める。
「これ見てや」
何かの届け出書類で、押印する位置はどこでしょう、と問題文に書かれていた。
「ああ、これですね」
「これですね、とちゃうわ。なんでこんな問題の教師データが要るねん?」
「問題には回答が必要ですからね。教師データ要りますよ」
「教師データは推論エンジンに教え込むのに使うんやろ? 脳トレは最初から問題と答えが分かってるやないか」
たしかにそうだ。脳トレは認知機能が衰えないように、あるいは衰えを遅らせるためのものだ。専門家に依頼したり、専門の業者からライセンスで買い取っているはずだ。大してモチベーションのない副業スタッフが、眠い目をこすって、間違いそうになりながら、推論エンジンに学習させるようなことではない。
「このアプリ怪しいと思ってたんや。ちょっと聞いてくれや」
そこから大橋は三十分かけて、アリスから出題される脳トレがいかに役立たずで退屈であるか、むしろ雑用を押し付けられているくらいだという主張を続けた。声が大きくなるので、老人ホームの社員たちに聞こえるのではないかとヒヤヒヤした。
少し前なら荒唐無稽な話だと相手にしなかったが、押印位置を指定するクイズを見た今では、一定の説得力を感じる。眠気と戦いながら入力している教師データの中に、他にも似たような事例があるかも知れない。
「兄ちゃん、ちょっと調べてみてくれや」
「僕にはそんな権限ありませんよ。ただの外注バイトみたいなもんです」
「なんや、頼りにならんな。でもアドレス交換しようや。こんど飲みに行こう。年金でおごったるわ。はっはっは」
平日、新山は一九時には仕事を終わらせて職場を出るようにしている。今日も一九時前に社内チャットに「お先に失礼します。続きは自宅で対応します」と書き残した。デスクの上のペットボトルやお菓子の紙くずを片付けてから席を立ち「お先に失礼します」と小声で周りに声をかける。キーボードをたたく開発者たちから返事はない。
電車に揺られながらスマホを見る。仕事関連のメールが届いているのを順番に処理していく。ほとんどが大してアクションの必要がない。続きは自宅で対応する、とチャットでは宣言しているが、実際のところは「確認して、あらためて回答します」というよう返信をする程度だ。それでも対応している錯覚を生み出す程度の役には立っている。
自宅の最寄駅で降り、駅前のスーパーの惣菜コーナーに寄る。毎週木曜日は鶏の唐揚げが特価なので、三パック買う。明日と明後日の夕食の足しにする。帰宅後、ひとりで惣菜の夕食を済ませた後、副業に取り掛かる。
新山の副業は、自宅のパソコンのウェブブラウザーでだけで完結する。そのシステム自体のセキュリティはまともで、新山のようなセキュリティの素人では突破することはできない。けれど業務マニュアルや、シフトの予定などが、クラウド上のドキュメント共有サービスに置かれていた。今週、新山はそれらのドキュメントの更新履歴を根気よく見ていった。すると、別のドキュメントへのリンクが張られていた形跡がある。リンク先には、だいたいアクセス権限がないので閲覧できない。だが、十回に一回くらいは、リンクアドレスを知っていれば閲覧できる設定になっていたり、副業スタッフであれば誰でも閲覧できるようになっていた。そうやって、芋づる式に多数の文章にアクセスし、システムの情報を集めていった。
アーバンケア社は、ソフトウェア開発を外注していた。開発会社が書き残したドキュメントのひとつに、開発者全員共通のユーザー名とパスワードが残っていた。もちろん最新版からは消えているが、過去の履歴には残っていたのだ。おそらく孫受け、ひ孫受けのように多重請負になっていて、末端の開発者でも簡単に使えるように、ユーザー名とパスワードを共有していたのだろう。そうやって新山はソースコードを閲覧する権限を手に入れた。
最初に、アリスのスマホアプリのソースコードを読む。これは簡単なボットになっていて、高齢者が何か話しかけた音声を、文字列に変換する。ただし個人ごとに声質、方言、滑舌が異なるため、ごく簡単な推論エンジンで音声認識をしている。スマホに載るくらい、小さな推論エンジンがあったのか、と、新山は感心した。スマホアプリは、認識した文字をサーバーに送信し、サーバーから返ってきた文字列を音声で出力する。
サーバーには、大規模な推論エンジンが実装されていた。これは実行モードと学習モードで動作が違う。実行モードでは、入力データを受け取って推論処理して、出力する、それだけの動作だ。アリスが高齢者をアシストするときには、高齢者の発言と周囲の状況が入力データで、音声ガイドが出力になる。
学習モードでは、推論エンジンの出力と、副業スタッフが投入した教師データを比較する。推論エンジンの逆関数を微分して傾斜を算出し、その大きさに応じて、修正値を出力側から入力側に、つまりさっきとは逆向きに伝搬させる。これを繰り返すことで、やがて推論エンジンが期待どおりに出力するようになる。修正を逆側から伝搬させる「バックプロパゲーション」は何十年も前から知られているアルゴリズムだ。
三十年前、新山が大学生だったころの卒業研究でもバックプロパゲーションを使った。あのころにもっと真剣に勉強しておけば、人工知能のエンジニアになれたのかも知れない。だが現実はウェブ開発の雑用をこなして、副業で教師データを夜な夜な投入しているのだ。そんな後悔は、もう何度もしている。
システムはつぎはぎだらけで、理解をするのに困難を要した。異なる時期に別々の会社に発注し、いい加減なアーキテクチャのままむりやり統合した、典型的なつくりだ。
新山はさらに他のソースコードも解読していく。探しはじめて二日目にして、やっと、脳トレのソースコードにたどり着いた。アリスは脳トレの問題文を、二つの経路から取得していた。ひとつはリハビリ機能自体のデータベース。 巨大な表のようなデータから、データベース用に変換された形跡がある。これは、おそらく専門の業者から買ったものだろう。
もう一つは別のサーバーから受信している。さらにもう一日かけて探していると、通信プロトコルが一致するソースコードが見つかった。otasuke という名前のフォルダーに入っている。検索すると、アーバンケア社の関連会社で、オタスケという雑用請負サービスのウェブサイトが見つかった。単純作業を依頼したら、安価にやってくれるサービスだ。データ入力や、ファイルのタグ付や分類が主な業務のようだ。
混乱してきた新山は、一度、オタスケ側から見たデータの流れを整理してみる。誰かがオタスケに仕事を依頼すると、アリスがその仕事をクイズとして高齢者に提示する。高齢者が回答した結果はどうなるのか。
ソースコードによると、正解率の高い高齢者の回答は、アリスがオタスケに送っていた。つまり、高齢者はアリスのリハビリ機能でクイズに答えていると思っているが、実際にはオタスケの単純労働を無料で担っていることになる。
では正解率の低い高齢者の回答はどうなっているのか。このとき、アリスは、高齢者を推論エンジンと見立てていた。似た問題を繰返し出題すし、正解を出せるようになるまで、正解データをバックプロパゲーションしている。つまり高齢者を学習させていた。
七月になり、新山は再び老人ホームを訪ねる。入所したころに比べて、ずいぶん部屋が片付いてきた。整理が苦手な母親が、モノの置くべき場所を守れているのは、アリスのおかげなのだろうか。
「いらっしゃい。上がって。ゆっくりしてね」
「お母さん、なんだか前より姿勢が良くなった?」
「アリスで毎日スクワットやってるからね」
「効くの?」
「たぶん。歩いたり立ち上がったりするのが辛くなくなったから、片付けがおっくうじゃなくなったのね」
「アリスのリハビリ機能を使ってるんだ」
「うん。なんか点数とかついて面白いよ」
そう言って、最近の履歴を見せる。身体機能的には、スクワットやストレッチに加えて、水を飲むことを促すアラートがついている。脳トレの履歴には、いかにもな脳トレに加えて、書類の押印位置、文章の敬語表現の修正などもあった。
新山はスマホを返す。台所の戸棚を空けるが、中国茶がほとんどなくなっている。
「ねえ、お茶が少なくなってるよ。今度買ってこようか」
「冷蔵庫にペットボトルが入ってるから、それでいいよ」
アリスから顔を上げずに、母親が答える。
「そういえば、あの野良猫はどうしてるの?」
「野良猫? どうしてるだろうね。わかんない」
「ねえ、スマホばっかり見てるじゃん」
母親は面倒くさそうに顔をあげる。
「普段、顔も見せないのに、たまに来たと思ったら、口うるさく言うんだね」
「いや、そうじゃなくってさ。お母さんらしくないなって思って」
またスマホに戻る。アリスの脳トレをやっている。
この施設にいて、適切な介助とリハビリを受けられるのは、毎日新山が夜遅くまで副業をしているからだ。休日だってやっている。だから、なかなか顔を見せられないのだ。そう口に出しそうになったが、思いとどまる。自分がまだ稼いでいなかったころ、さんざん世話になった両親にそのような感謝を伝えたことなどなかった。
足腰も強くなっているし、スマホは分からないと言っていた母親が、いまでは余裕で操作している。アリスからのアシストも少なくなっている。身体能力も認知能力も、維持されているどころか、改善しているくらいだ。
けれど、と思う。母親らしくなくなっている。あれだけ好きだった中国茶に興味がないし、野良猫のことも忘れている。しばらく部屋で過ごしてから、アリスのリハビリを続ける母親に挨拶をして、部屋を出た。
新山はその足で、老人ホーム近くのカフェに移動した。先に来ていた大橋が、手を挙げる。
「それで、調べはついたんか」
「ええ、だいたい。メールしましたよね」
「なんか難しいことばっかり書いてて、よう分からんわ。分かるように説明してや」
「ですから、アリスのリハビリ機能は、別のサービスのバックエンドになっているんですよ」
「分からんっちゅうねん。ハンコの話はどうなってん」
「ハンコの話をしてるんですよ」
「話が長いやつはモテへんし、出世でけへんぞ」
「そんなこと僕が一番よく分かっています」
オタスケの単純労働作業というのは、似たような処理が大量にある。最初の数%は、副業スタッフが作業する。もちろん副業スタッフたちは、単純労働作業をやっているとは知らされていない。副業スタッフたちの作業結果は、教師データとして投入され、推論エンジンのバックプロパゲーション学習に使われる。だが、作業内容によってはなかなか推論エンジンが学習できないことがある。その場合は、アリスは推論エンジンの代わりに高齢者を使うようになる。高齢者が見ている脳トレクイズの画面に、単純作業の画面を表示し、高齢者が回答し、出力として扱う。
「でも、それが正解かどうか分からんやろ」
「はい。だから最初に僕たち副業スタッフが正解を入力したのと比較します。正解率が高ければ、そのまま労働者として使います」
「低かったら? その老いぼれは使わんのか」
「いいえ。脳トレと同じく、高齢者を推論エンジンと見立てて、バックプロパゲーションします」
「ははぁ、そうやって労働者として鍛えるんか」
大橋はテーブルの上のオレンジジュースを飲み、一緒に入っていた氷をガリガリ噛む。
「ほんなら、何か。俺らは金を払ってアリスのリハビリ機能を使ってんのに、タダ働きさせられてるちゅうことか」
「そういうことになりますね」
「これから文句言いに行くわ。やってられへん」
「ちょっと、ちょっと待ってください」
新山にしてみれば、会社のセキュリティの甘さが原因だとしても、ソースコードを読んでいったことは、間違いなく侵入という扱いを受けるだろう。それは困る。
「じゃあ、バレないようにプログラムを書き換えろや」
「余計にバレますよ」
ソースコードを書き換えれば、読むときと比べて、分かりやすい痕跡が残る。書き換えた後、どのようにコンピュータで実行できる形式に変換され、サーバーコンピューターやスマホのアプリに反映させなければならないのだ。発覚すれば契約停止だけでは済まないだろう。
「ほんなら、どうしたらええねん」
「大橋さんは解約したらいいんじゃないんですか?」
「はあ!? タダ働きさせられたん、ムカつくやろうが。やり返さんかい。なんかやり方あるやろ」
それについては一応考えた。新山も、自分の母親が労働者扱いされているのは気に入らない。今日の母親が、母親らしさを失っているのも目の当たりにした。
「教師データを改ざんすることで、システムを騙せるかも知れません」
「なんやそれ」
大量の副業スタッフが、大量の教師データを投入している。バックプロパゲーションというのは、全体として統計的にそれらしい関連性を見つけているだけだ。だから、高齢者を使わないように仕向けるような教師データを投入して、誘導することができるはずだ。だが、大量のデータから統計的に推論するというしくみなので、これこれのデータが、あの挙動に影響している、というのが分かりにくい。どんな教師データが、どんな影響を及ぼすかを事前に予測することも難しいことを意味する。
「難しいって、どんくらい難しいねん」
「専門ではないので分かりません。ですが、かなりかかりそうです。数年とか。うーん、その、もしかしたら十年とか」
「アホか。十年も経ったら、俺が死んでまうわ。誰かに頼めや」
だが新山は抵抗した。自分の専門ではないことを誰かに頼むのは、とても難しい。そのための勉強も必要だし、その勉強が依頼をするのに必要なレベルに達しているか分からない。新山が仕事で出世しない原因はそれも一つだ。人に仕事を頼むのが苦手だから、中途半端な熟練作業者として現場に残っている。
「何が大変やねん。俺は分からんことは、人に頼んで、出世していったぞ。お前もやれや」
「気合なんかで解決できませんよ。複数のステップがあって、それぞれに仮説を検証しながら方針を再検討する必要があるんです。かちっとした依頼なんてできないんですよ」
「ざくっと依頼したらええがな」
「いい加減な依頼で、まともな成果は出ませんよ。気合や根性でなんとかなる話ではないんです」
その後も大橋は不満そうに何度も文句を言ったが、そのまま新山が進めることになった。大橋にしても、新山に任せる以外に手立てがないのだ。
「ほんなら調べといてくれや」
「はい。あ、ひとつ問題が」
「何やねん」
大橋がいらいらしている。
「新しいアカウントが必要なんですよ」
「だから頼んだらええやないか」
「だから依頼とか大変じゃないですか」
「俺がおるやないか。新しいアカウントくださいって言うたらええんやろ」
「いやそうじゃなくて、新規ユーザーじゃないとだめなんですよ」
「俺みたいなジジイかババアを勧誘したらええんか」
「はい」
「じゃあ見つけてきたるわ。ほんまイライラするわ」
そう言い捨てて、大橋は立ち去った。
新山もいらっとしたが、初期データが手に入れられることは、とても大きな進展だ。学習前の認知モデルがどういう動きをするかを知ることができる。
一ヶ月後の午前、控えめに冷房をかけた部屋で、新山は推論エンジンの挙動を見比べていた。片方は大橋、片方は教えてもらった新しいユーザーのものだ。新旧のユーザーを比べることで、アリスの推論エンジンがどのように学習をしているかを、リバースエンジニアリングで確認している。そのために、新規ユーザーのアカウントが必要だった。
ただ大橋のデータが、昨日から更新されなくなっていることが気になった。アリスを使っていないのかも知れない。いくつか確認したいことがあったので、大橋にメッセージを送る。いつもならすぐに返事があるのに、今日は既読にもならない。
午後からは、予定どおり老人ホームの母親を訪ねた。帰りに、受付で顔見知りの事務員に大橋はどうしているか聞いてみた。すると、昨日、施設の前で自動車事故をこして、近くの病院に担ぎ込まれたと言う。
新山はすぐにその病院に向かう。面会を求めると、家族かと聞かれる。家族ではないが親しい者だと答える。しばらく押し問答をしていると、病院のスタッフが通りかかった中年の男性に話しかけた。
「大橋さん、この方をご存知ですか?」
大橋さんと呼ばれた中年が、こちらを見て首を傾げている。大橋の面影がある。息子だろうか。新山と同い年くらいだ。
「いいえ。ですが、あの、お名前を伺っていいですか」
「はじめまして、新山と申します。大橋さんにはお世話になっております」
「ああ、やっぱり新山さんでしたか。話は聞いております。私はもう帰りますが、見舞いに行ってやってください」
教えられた病室に入ると、ベッドには大橋が横たわっている。新山の顔を見て何か言ったようだが、かすれた小さな声で、よく聞こえなかった。
「大丈夫ですか?」
大橋は何度か咳払いしたあとに答えた。
「大丈夫ちゃうわ。駐車し直そうと思ってシートベルト外しとったから、えらい怪我してもうたわ」
「元気そうですけど」
「今は麻酔が効いてるからええけどな。そのうち痛くなるんちゃうかなぁ。嫌やなぁ」
右腕と右足にギブスと包帯が巻かれている。
「あんなぁ新山くん。申し訳ないけど、俺は当分、アレをナニでけへんわ」
「いや気にしないでください。無理しちゃだめですよ」
「そこにノートがあるやろ」
小机の上に、ノートが置かれている。
「クラウドソーシングのパスワード書いてあるから、使ってええで」
「クラウドソーシング?」
雇うほどではない、ちょっとした仕事を頼むサービスの総称だ。
「知らんか」
「知ってますけど、何を頼んでたんですか?」
「まあ、いろいろや。報酬の金をな、チャージしてあるから。新山くんも使ったらええ」
ノートを手に取ってめくると、日記のようなメモになっている。最後のページにクラウドソーシングのサービスの、ユーザー名とパスワードが書かれていた。
そこに看護師があらわれて、尿瓶を交換すると言った。大橋は、管を抜いたり挿したりされるのがみっともないので、もう今日は帰ってくれ、と新山に言った。
七月五日(日) 新山くんは自分だけでやろうとする。頼むのが苦手なタイプか。近所の連中にアリスを勧めてみたが、誰も乗ってこない。マルチ商法と思われてそう。
七月六日(月) クラウドソーシングを教えてもらう。アカウントを作って、報酬をチャージした。安くなるらしい。募集したけど応募がない。
七月七日(火) 掲示板で相談したら、年寄りではなくて、年寄りの知り合いを探せ、と言われた。なるほどな。
七月八日(水) もうちょい報酬が高かったら、自分の親を紹介するいう連絡。金の話ばっかりしやがって。
七月十日(金) 全然応募がない。報酬額を上げたら、すぐに応募。この間、報酬が高かったらやるって言ってた奴や。新山くんに連絡した。
七月十二日(日) 新山くんから返事。細かいデータを一緒に渡して欲しいと言ってくる。分からんと言ったら、画面の写真も送ってきた。何回も、すみません、と書いてある。謝ることないのにな。新山くんは、なんでもかんでも一発で解決しようとする。
七月十五日(水) 新山くんから連絡がない。時間がかかっているからなのか、進んでるからなのか、何もやってないからなのか。平日は大変なのかも知れない。
その夜、遅くまで、新山は推論エンジンを騙すためのデータを作る作業を続けていた。夜の二時頃になって、自分の作業がほとんど進んでいないことに気づく。いや、これまでも気づいていたが、全体の進捗を見ないようにしていた。
このままでいくと、どのくらい時間がかかるか、初めて大雑把に計算した。大橋に報告するわけではない。自分が大まかに把握するだけでいいから、と思うと気が楽だった。そして、どう少なく見積もっても五年かかることが分かる。
今日の作業は終わりにしようと決めて、アリスの教師データを投入する。自動的にバックプロパゲーションが走るだろう。
学習の反映に時間がかかるのはともかくとして、リバースエンジニアリングや教師データの作成の時間が大きな問題だ。しかもそれほど自分が得意な作業でもない。どうしたらいいのか。一息ついただけのつもりだったが、一気に疲労感と睡魔が訪れた。
進捗がないまま、一週間が経った。あまりの閉塞感にソーシャルネットワークを眺めたり、くだらないまとめサイトを眺めていた。その流れで、大橋のクラウドソーシングのアカウントにログインしてみると「作業が完了しました。ご確認ください」と書かれた通知が届いていた。
大橋が依頼した先とのやりとりを読んでいく。新山が想像していたよりも、根気強くコミュニケーションを取っている。最初の方こそ、大橋の指示は雑だが、徐々に丁寧になっていく。説明の仕方も、最初は「エラーが出る」のような表現だったが、「この画面の右上に、赤い文字でログイン名が使われていますと表示される」と具体的になっていた。
新山は、自分もデータ分析を依頼できないだろうか、と思い立つ。クラウドソーシングのアカウントには、大橋が言っていたとおり、報酬として支払うお金が事前チャージしてある。データ分析の相場が分からないが、依頼してみることにした。だが、依頼文がなかなか完成しない。これが面倒だから、なんでも自分でやっていたのだ、と思い出す。
クラウドソーシングには掲示板があって、さまざまな相談がされていた。新山は、データ分析の仕事を依頼したいが、相場も分からない、適切な指示の仕方もわからない、アドバイスを下さい、と書き込み、その日は眠った。
翌朝、掲示板を見てみると、いくつかのアドバイスがあった。大抵は、まずは相談に乗りますと報酬額が書かれていて、まったく役に立たなかった。だが、データ分析依頼の要点の書き込みもいくつかあった。
自分が気づいていない知見を求めているだろうから、おおざっぱにでも仮説があるといい。しかし、本当に何ら新しい知見が得られないこと場合だってあるだろう。だから、新しい知見がある場合も、ない場合も、エビデンスを要求するのがいいらしい。また、仮説を超えた検証をしてもらったらボーナスを出す、という条件にすることで、仮説を超えた検証をしてもらえるだろう。そういうことが書かれていた。
何が欲しいのか分からなければ、依頼はできませんよ。
そういうコメントをしている人も多かった。アドバイスを参考に、新山はデータ分析依頼の文章を書いて、募集を開始した。
数時間後、数人の応募者があった。どの相手を選ぶかは基本的に博打だと言われていた。売り込みだけうまい奴かも知れないが、真面目そうな応募者を指定して、依頼の打診をした。
その日の夜に返事が届く。確認すると、まったく要件を満たしていない。書き方が悪かったのだろうか、とがっかりする。仕事でも似たようなことはあって、結局自分でやることになるか、開発者の機嫌を取ってやってもらう。もう一度依頼文を見直すと、新山は欲しいデータの要件を明確に記載してあるし、できない場合は、できないと分かった時点で連絡するように、とも記載したことを思い出した。新山は自信を持って、やり直しを指示した。
これならいいだろうと思える分析結果を受取るまで、数日を要した。欲しかったことの八〇%くらいが盛り込まれている、というのが新山の率直な感想だった。残りの二〇%が相手の不出来なのか、こちらの不手際なのかは、よく分からなかった。クオリティは上がってはいるが、だんだん緩やかになっている。
作業日記を読み返すと、クラウドソーシングの確認や指示に、毎晩三〇分から一時間を費やしている。これ以上はお互いの時間の無駄かも知れないし、心象だって悪いかも知れない。評価をするのはお互いさまなのだ。新山は仕事を完了したものとして受け入れた。
一方、その間に、新山の手によるデータ作成は進んだ。時間もかかるし、慣れないので難しいこともあるけれど、他人のリソースを意識的に使うのは正解だと感じた。
新山は、クラウドソーシングをする前提で計画し直した。大橋のアカウントの残高が、報酬の上限になるため、なんでもかんでも依頼はできない。自分でやると時間がかかるが、得意な人がやれば安く早くできるようなタスクを抽出していく。数年かかっても実現不可能だった計画が、一年以内に成果を出せそうだと確信した。
バスの窓の向こうに、小雪が舞っている。新年を迎えて二日目の道路は、それほど混んでいない。年末年始はカレンダーよりも長めに仕事が休みだったので、新山はアリスの挙動を時間をかけて確認できた。おかげで今日は少し眠い。新山は揺れるバスの通路に立ち、スマホのチャットアプリを使って、クラウドソーシングの依頼先に追加作業を指示する。
「教師データを投入してみたところ、グループDで過学習の兆候がありました。グループCに寄せてもらえませんか?」
「わかりました。調整して、明日には渡します」
「明後日でも大丈夫です。よろしくおねがいします」
チャットアプリを閉じて、日記アプリを開く。そして、今日のやりとりを簡単に書き留める。大橋は入院してから一気に足腰が弱くなり、最近では外出をしなくなった。だから日記にまとめて、ときどき進捗を報告している。
まだ老人ホームのバス停までは時間がかかりそうだ。新山は日記を読み返す。
七月にクラウドソーシングを活用すると決めたとき、作業をどのように分解するかが課題だった。秘密裏に他人に依頼するため、計画の全貌を知らせるわけにはいかない。守秘義務契約は罰則によって相手を拘束する道具だけれど、漏れてしまっては役に立たないのだ。だから漏らさないようにする工夫が要る。
アリスは複数の開発会社が、それぞれ全貌を把握することなく開発したらしく、継ぎ接ぎだらけだった。コンポーネントが綺麗に役割分担されておらず、その場しのぎで拡張していった形跡がある。たとえば、脳トレに使うロジックがオタスケの内部で中途半端に再利用されているため、オタスケの学習データを作成するときには、脳トレのロジックを考慮する必要があった。ソフトウェア開発において、コンポーネントどうしが密結合である、と呼ばれる状態だ。
結合度の高いソフトウェアは、一箇所の変更が他の箇所に影響しやすい。発注者の仕切りが悪かったり、全体のアーキテクトが不在な状態で開発会社に丸投げしたりすると、起こりがちだ。時間の経過とともに、コンポーネント間の依存はさらに強くなり、やがてちょっとした変更さえも開発会社は躊躇するようになる。その結果、できるだけ変更を避けるようになり、ソースコードが整理されず、結合度はさらに高くなる。
新山は根気強くソースコードを読んで、コンポーネントどうしの真の境界を見つけ出していった。クラウドソーシングで依頼する仕事の単位は、境界で分割していく。依頼された側からは、ひとつのまとまった仕事に見えるだろう。
細分化した仕事の成果を、新山が吸い上げて再構築し、次のステップを再び分割して依頼した。クラウドソーシングで依頼した作業者たちは、新山に割り振られた仕事を淡々とこなしていった。
計画の初期段階では、教師データの中に不適切なデータを紛れ込ませていった。アリスは混乱し、学習結果が収束しなくなった。アーバンケア社は何度もパラメータを調整しようとしたが、学習誤差を予測できず、後手後手になった。各コンポーネントを別々の開発会社に丸投げしていたため、全体を把握できる者がおらず、まともな解決策は講じられなかった。ソースコードに何度も変更があったが、すぐに元に戻されてたのが分かる。
九月になるとアーバンケア社は高齢者と推論エンジンの利用比率を調整した。それまでは、できるかぎり高齢者を単純作業労働者としてトレーニングするように重み付けしていたのが、推論エンジンを単純作業労働者として利用し始めた。おそらくこれは一時的な対処のつもりだったであろう。推論エンジンを使うとサーバー費用がかさむ。
新山は推論エンジンに与える教師デーを、高齢者の実際の行動に似せるようなデータを投入し始めた。もちろん大量のデータ生成は、クラウドソーシングに依頼して作った。アリスは高齢者による業務遂行と、推論エンジンによる業務遂行を混同するようになった。アリスはもともと入力と出力だけを観察して、誰があるいはどのプログラムが出力するかを重み付けだけで割り振っていたからだ。
さらに新山は、個人ごとに極端に偏りが出るように、教師データの中に虚偽のデータを紛れこませた。たとえば、ある高齢者が「六日ごとに足に痒みや痛みがあるかのような行動をした」ことを示唆するような、教師データを投入した。足をかばったほうがいいとか、座る時間を長くしたほうがいいとか、そういう小さく無害な虚偽だ。だが、アリス内部の推論エンジンは、幻の脚すなわちファントム・リムを無自覚に知覚するようになる。バックプロパゲーションのアルゴリズムに、幻のデータを伝搬させるのだ。新山はファントム・プロパゲーションと呼ぶことにした。
個人ごとに異なるファントム・プロパゲーションが急増し、計算が増加したため、アリスのサーバー費用がさらに上がった。アーバンケア社はアリス処理の一部を、高齢者が所有するスマホ側で処理するように調整した。もともとは、言語理解や個人的な身体パラメータを処理するだけだったスマホに、より大きな処理を課すことになる。スマホの処理が遅くなり、バッテリー消費も増えたという苦情があったようだ。だがアーバンケア社は、あなたには特別なケアが必要ですなどと理由をつけて、高齢者やその家族により高価なスマホを購入させた。やがて、アリスはクラウド上のサーバー群だけではなく、個々のスマホに偏在するようになり、全体で何が起こっているかを把握するのがさらに困難になった。
ファントム・プロパゲーションを続けて数ヶ月、ちょうど冬至の深夜に、一気に重み付けの偏りが加速した。推論エンジンが業務遂行、高齢者のアシストとリハビリを受ける、という本来あるべきだと新山が考える姿になった。アーバンケア社が望む姿ではないが、もはやアリス内部でなにが起こっているか、把握できていなかった。
とは言え、アーバンケア社も常にシステム状態を更新するので、偏りも常に変化する。だから新山も継続的にファントム・プロパゲーションの教師データを調整し続けなければならない。さきほどのチャットも、そのデータ調整依頼だった。
バスが停留所に着いた。外は寒い。新山はマフラーを巻き直して、足早に老人ホームに向かった。年始は老人ホームに家族の訪問が多く、受付が混んでいた。
「剛志、久しぶりね。あけましておめでとう」
母親の部屋に行くと、一瞬だけ顔を上げて、すぐに手元のスマホに視線を戻した。
「お母さん、何してるの?」
「脳トレ」
画面を覗き込むと、押印位置の誤りを訂正している。推論エンジンによる予測を、母親が訂正して教え込んでいる。何度かそのような操作を繰返して、一連の問題が終わったようだ。
「調子はどう?」
「点数は上がってきてるんだけどね。最近は似たような問題ばっかりで、ちょっと退屈ね」
推論エンジンの学習が進んでいくと、学習効果が小さくなる。そのため似たような教師データをさらに投入する必要があるのだ。高齢者の体験としては似たような問題が頻出していると感じる。修正しないといけないな、と思った。
「天気がいいから、散歩しようよ、お母さん」
「でも今日は、アリスのリハビリをするんだよね」
「何するの?」
「軽いスクワットとかね」
「歩けるようになるためのスクワットだよ。歩こうよ。一日くらいさぼっても大丈夫だよ」
母親はしぶしぶ身支度をして、新山と部屋を出る。ちょうど隣人のべつの高齢者とすれ違う。
「あらお出かけ?」
「ええ、息子と散歩にね」
「それはよろしい。おはようおかえり」
するとアリスが応答した。
「おはようございます」
母親と隣人は楽しそうに笑う。
「ねぇアリス。おはようおかえりは、いってらっしゃいみたいな挨拶よ」
「わかりました。記録します」
アリスは、常に高齢者の会話を聞いていて解釈しようとし、確認のために時々音声で応答する。間違いがあれば高齢者自身が訂正し、それが教師データになる。これは今でも機能しているようだ。
散歩の途中、以前に見かけた野良猫が、生け垣の陰で気持ちよさそうに寝そべっているのが見えた。
「お母さん、ほら、野良猫がいるよ」
「かわいいねぇ」
母親が歩み寄っていき、野良猫に声をかける。
「はじめまして、こんにちは」
「梅雨のときに、見かけた猫だよね?」
「そうだったかな」
首をかしげつつ、母親はすくっと立ち上がる。しっかりした足取りで、部屋に戻ると、母親が冷蔵庫からペットボトルのお茶を取り出した。そのお茶を飲んで世間話をして、しばらくすると、また冷蔵庫に向かっていった。扉を開いて、ペットボトルが減っていることに気づく。
「剛志、勝手にペットボトルとった?」
「お母さんが持ってきてくれたじゃないか」
「うそ。お母さん知らないよ。勝手に冷蔵庫を開けないでよ」
「いやいや、僕じゃないって」
新山は、母親のスマホを借りて、アリスの履歴を見せた。
「ほら、さっきやってたでしょ」
「わたしがそういう難しいこと分からないと思って、騙してるでしょ! もう帰って!」
しばらく言い合いを続けた後、新山は自分が飲んだペットボトルをゆすいでゴミ箱に捨て、怒り続ける母親に、挨拶もそこそこに立ち去った。窓口を通り過ぎ、バス停に向かって歩く。
認知症が進行している。自分が奪ってしまった母親の認知能力を、改善する方法を考え始めた。アリスによる介入が強すぎるのかも知れない。それから、認知症特有の自分の所有物への執着が強くなっている。教師データのパターンと偏りはどうなるだろうか。新しい刺激をもっと増やせばいいのだろうか。
だがその母親は本物の母親だろうか。アーバンケア社の都合で、知識労働者にしたてあげられた母親は本物ではないと思う。だからファントム・プロパゲーションでアリスを騙し、元の母親を取り戻したつもりでいた。だが、本物の母親とは何だろう。自分が望むように行動、思考する母親にしたい、という動機は、アーバンケア社とどう違うのだろう。
バス停のベンチに腰掛けて、クラウドソーシングの依頼文を書き始める。だが、うまく文章にならない。
何が欲しいのか分からなければ、依頼はできませんよ。
掲示板で受けたアドバイスを思い出す。新山はスマホのブラウザーを閉じる。目を閉じる。自分は何が欲しいのか。深呼吸して、それから、目を開き、立ち上がる。
母親に謝ろう。記憶があいまいで、ちょっとびっくりしただけなのだ。さっきはごめんね、また来るよ、と言ってから帰ろう。新山は老人ホームに向かって歩き始めた。
文字数:20563
内容に関するアピール
これまで「情けない主人公のお仕事小説」っぽいのを書いたときに、先生方から言及されることが多かったので、最終課題もその路線で行くことにしました。
梗概では、ふるさと納税とか、役所の窓口とか、あまりにもSFっぽくなかったので、少し設定を変えました。
一年をとおして、大森先生からは「SFっぽくないほど高いリアリティレベルが求められる」「理屈がない(物語世界での必然性がない)」という指摘を何度かいただきました。今回も、ほぼ現行のテクノロジーで実現できそうな設定なだけに、ニューラルネットワークの基本技術に寄せました。
伊藤先生の回でも、これSFにする必要ないのでは、と指摘されました。あの回が、無理にSFにせずに、SFっぽいお仕事小説にしていく後押しになりました。
巨悪なんかよりも、ノーマークな知識不足・実力不足の企業活動のほうが、嫌な現象を引き起こしてしまうんだ、という価値観というか見方を出せればいいなと考えながら、書きました。
一年とちょっとの間、本当にありがとうございました。
文字数:436