技育祭2024【春】に登壇したひろゆき氏が、アカデミアと実務の違いについて持論を展開しました。大学研究者の成果をいかに社会に残すか、AIと人間の感情の本質、プログラミング学習の動機づけなど、幅広いテーマについて語りました。また、HTMLからの学習やフレームワークの選定など、実践的な開発手法についても提言しています。
じゃあ次の質問をピックさせてもらいます。「今回の技育祭では落合陽一先生や松尾豊先生も登壇されていましたが、お二人はどんな印象ですか? お二人と話してみたいことなどはありますか? ぜひ、ひろゆきさんとの対談が見たいです」とのことです。
たぶん松尾さんとも落合さんともメディアで話したのが、どこかのコンテンツに載っていると思いますけど。2人とも共通するのは、メチャクチャ優秀なんですけど、大学という枠組みにいるせいで、たぶん20年後とかには作品として残るものがないんじゃないかな、という気はしているんですよね。
要は、例えば「論文を書きました」。業界においては「あの論文を書いた、あの人すごいよね」ってなるんですけど。落合先生も論文を書くためにこういうシステム、技術を作りました、こういうインスタレーションをやりました、それで論文になりましたとなって、それって「すごいよね」って、業界の人はわかるんですけど。
じゃあ芸術系のインスタレーションとかって、それでなくなったらもう見ることはできないじゃないですか。なので、「なんか昔いっぱい論文を書いた人がいたよね」に、なっちゃうんですよね。
でもサービスを作っている人だと、じゃあ「Yahoo作りました!」「Googleを作りました!」とか、2ちゃんねるでも、「ニコニコ動画」でもいいんですけど、10年後も残ったりするじゃないですか。なので、そうすると「あ、あれを作った人なんだ」ってなるんですけど。
メチャクチャ優秀で、いろんなものを作っていたとしても、大学という枠組みでモノを作っている限り、論文発表をしても設営期間が終わったら何もなくなってしまう。論文を出すということ自体はその大学の先生の仕事ではあるので、「いっぱい論文を書きましたよ」ということは社会にとってはすごく良いことで、アカデミックな世界においてはすごく良いと言えることなんですけど。
一般の人たちから見ると、「結局何を作った人なのかわからない」と言われちゃうというところがあるので、なんかもったいないなと。もうちょっとなんか、落合先生や松尾先生が作るサービスが世に残るかたちの制度とか仕組みがあったほうがいいんじゃないかなと。
優秀さがアカデミックという論文の世界に閉じこもってしまうので、なんかそこが一般の人たちでも触れられるものを作るという方向にいく制度になっていたほうが、より優秀さが世の中に伝わるんじゃないかなというふうには思うんですけども。
司会者:ぜひ、今度そのあたりは、ぜひ対談してみてください。聞きたいなぁ。
ひろゆき:でも、何だろうな。あれは落合さんと話した時か。『シンドラーのリスト』の話になったんですよね。シンドラーという人が、ユダヤ人がわりとドイツでひどい目にあっている時に「じゃあVISAを出して他の国に行けるように逃がそう」というのをやった人ですけど。
日本人だと杉原千畝さんという人が、同じようなことをリトアニアでやっていたりするんですけど、僕はその日本の人たちのわりとエンジニアの人の給料がけっこう安い時に、海外に行ったほうがいいんじゃね? という側の派閥だったんですよ。海外に行くとわりと給料高く日本人のエンジニアも働いていたりするので。
という話をした時に、落合さんはいろいろな海外の大学とかに日本人エンジニアを送りまくっているんですよね。要は自分の教えた学生とかに紹介状を付けて、「こいつはいい奴だから、あなたの大学の研究員に入れてやってくれよ」みたいなのを送って、バンバンと日本から世界に教え子を送るというのをやっていて。なので、そういう仕事もしているんですけど、一般の人は知らないじゃないですか(笑)。
司会者:うんうん。
ひろゆき:というのがあって、なんかいろいろと努力をして、日本の若い人たちがちゃんと海外で経験を積めるようにというので、落合さんがいろんな努力をしているのに、なんかそんなのも知らないで、ニュース番組に出ている胡散臭いオジサンというふうにしか見られていないのがなんかもったいない、と思ったりします。
司会者:そうですね。
AIと感情、その本質を考える
司会者:じゃあ続きまして、ひろゆきさんから質問を拾ってください。
ひろゆき:はい。すみません、ずっとしゃべっていて。適当に拾います。「AIに感情を持たせて『ドラえもん』のようなロボットを作り、社会的弱者の相談役をする研究をしたいのですが、どのような分野との融合を考えると良いでしょうか?」。まぁ、でももう十分にできちゃっている気がしますけどね。
ChatGPTベースで、アニメキャラの顔でしゃべる女の子のサービスがあったと思うんですけど。それが会話として、けっこうちゃんと話をしてくれるんですよね。それで今はCoeFont社という、ひろゆきAI(サービス名:「おしゃべりひろゆきメーカー」)みたいなのをやっている会社があるんですけど。
あそこは、そのテキストの音声をかなり自然な日本語で話すというのをやれています。なので、それを組み合わせれば、Cotomoでしゃべらせて、質問して、それをテキストに変換して、テキストで出力させて、それを自動音声で出させる、みたいなのはけっこうできるので。
よくある誤解だと思うんですけど、AIには感情がなくて人間には感情があるって。これは、僕は誤解だと思っていて。感情があるように認識しているという話で、認識問題なんですよね。
例えばじゃあ、感情があると人間がなぜ思うのかで、実際にそれをひもといてみると「飯が食べたい」という本能だったりとか、「なんかエロいことをしたい」という性欲だったりとか。それは感情ではなくて、むしろ虫とか動物とかと一緒で、それは本能に基づいて忠実に行動していらっしゃるだけですよねというのも、けっこうあります。それを人が「感情だ」と、思うかどうかなんですよ。
なので、そのAIのやり取りというのも、悲しいとか、うれしいとかという感情表現をわりと多めに発話するようにするとか。というかたちでパラメータのチューニングの問題で、人は「この子は感情的だな」と思い込んでしまうというのがあるんですね。
あとは、じゃあ綾波レイみたいに、あまり感情的な言葉を使わないで表情にも感情的なものを出さないという人間がいたとして、その横にメチャクチャ感情的な表現の言葉を使った表情豊かなAIがいた時に、「どっちがAIで、どっちが人間でしょう?」となったら、たぶんリモートだと騙される側がけっこう多いと思うんですよね。
なので、感情を持たせることをやろうとすると、すごく難しいんですよ。感情とは何かという問いに答えがないから。要はその感情というものが、僕には実は存在しないんじゃないかという派閥なんです。ただ、そうすると感情ってこれだよというものを再現しようとすると、人によって「これは感情があるように見える」「これは感情がないように見える」とかというふうになるんですけど。
もう最初から感情がなくて、感情があるかと思わせるように、どうアルゴリズムを作るか。それでChatGPTなりで、そのLLMにどうパラメータ調整をするかというかたちでいったほうが、答えには近いんじゃないかなというのは思うんです。
司会者:はい。ありがとうございます。
HTMLから始める理由
司会者:次の質問にまいりましょう。「この技育祭でも『エンジニアは、まず手を動かしてやってみろ』と言われますが、何から始めたらいいかイメージが湧きません。手を動かすハードルを越えるコツ、最初にやったほうがいいことなどがあれば教えてください」とのことです。
ひろゆき:「『とほほのWWW入門』というサイトをまずはイチから読んで、そこでHTMLを書いてください」というのを毎回言っている気がするんですけど(笑)。
司会者:はいはい。とほほさん。有名な。
ひろゆき:なんか僕は、HTMLもプログラミング言語であるというのをわりと一生懸命に言い続けているんですけど、あまり同意されないんですよね。「JavaScriptというのは、コードを書いて、それをブラウザがそれを理解して、ブラウザが勝手に何かの挙動をしてくれるというプログラム言語ですよ」と言ったら、たぶんみんなそれには同意してくれると思うんですよ。
でもHTMLも、コンピューターが理解できる、ブラウザが理解できるコードを書いていて、それによって入力した情報とは違うことがブラウザの上で起こるわけじゃないですか。なので、HTMLもJavaScriptも一緒じゃない? だから両方ともプログラムだよね? というふうに僕は思っているんです。
要は人間に理解してもらうための言語ではなくて、ブラウザに理解してもらって、ブラウザをコントロールするための構文がありますよ、という話なので。なので、HTMLから始めちゃったほうがいいんじゃないかなと思うんですけどね。
司会者:確かに。
ひろゆき:やはりプログラム環境って作るのがけっこう面倒くさいんですけど、HTMLだったらメモ帳とブラウザがあれば、<b>ひろゆき</b>ってやると太文字になったみたいなので、まずは思いどおりに動かすというのを体験して、それを広げていくというかたちでやるといいんじゃないかなと思います。
プログラミングを学ぶ目的を見つめ直す
司会者:「プログラムのやる気が出ません! どうしたらいいですか!?」という、シンプルな質問が来ていますね(笑)。
ひろゆき:うーん。でもやる気がないんだったら、やらなくていいんじゃないかなと思いますけどね。
司会者:そうですね(笑)。
ひろゆき:何のために、プログラムのその勉強的なものをやらなきゃいけないのかっていう、たぶん根本の問題だと思うんです。例えば20代で年収が1,000万円ほしいってなるとすると、たぶん会社員でいけるのって、どうだろうな。弁護士資格を持っていたらいけるかな? あとはテレビ局とか、大手の出版社とかに入れば20代で1,000万円いくかもしれないですね。
ごく一部の会社を除いて、業界として20代で1,000万円って、ほぼないと思います。でも、エンジニアで、20代で1,000万円取っているってザラなんですよね。たぶん上場企業のエンジニアで「年収1,000万円超えています」という人を見て驚くって、ないと思うんですよね。もちろん底辺の仕事をいっぱいやっていますという会社では別ですけど、わりとサービスをきちんとやっていますということであれば。
なので、お金を儲けたいだったりとか、あとはコードをたまに書いて好きな国でダラダラ暮らしたいという僕みたいなタイプだったり、自分がこうなりたいよねというところから、じゃあこれが実現するのはエンジニアになるしかないよね、というパターンだったりとか。
あとはこういうゲームを作りたいよねとか、こういうサイトを作りたいよねというモチベーションなど、プログラミングを通して何をしたいかというところに、ちゃんと行き着くべきだと思うんです。僕は別にプログラマーになりたいわけじゃなくて、プログラムを書けるようになりたいがために、プログラムを書くようになったんですよ。
なので、別に「プログラムが大好きです。なので、書けるようになりたいです」じゃなくて、掲示板で2ちゃんねるというものを作りたいから、じゃあPerlを学びつつやりましょうとか。他のサイトとかも、このサイトをやるんだったらPHPのほうがいいよね。じゃあPHPを学びましょう、とかなので。プログラム自体は単なる手段でしかないです。なので、目的というのをちゃんと意識したほうがいいんじゃないかなとは思います。
フレームワークの使い分けを考える
司会者:ありがとうございます。じゃあ次、ひろゆきさん拾っちゃってください。
ひろゆき:はい。「Webデザインをする時の工夫と参考にしているサイト、フレームワークについて教えていただければうれしいです」。僕はフレームワークを使うのが大嫌いなんですよね。なんか、どうでもいい、誰でも作れるようなサイトを作るんだったらフレームワークを使ったほうが便利だよね、というのは至極ごもっともなんですけど。
ちょっと変わったことをやろうとすると、そのフレームワークが対応していなくて。そのフレームワークを改造してしまうと、結果としてそのフレームワークのアップデートの時に、なんかそれが吸収されていなくて、なんかアップデートのためにそれを作り直さなきゃいけなかったりして。
けっこう特殊な需要だったりするので、それをフレームワークの開発元に送って本家に導入してもらうみたいなモチベーションもあまりなかったりするので。なので、なんか面倒くさくなっちゃうんですよね。
例えば「Twitter」、今でいう「X」というサイトって、確かもともとはRubyのRuby on Railsで書かれていたんですよね。確かにああいったサイトをちゃんと作る。初期の状態でとりあえず完成させよう、セキュリティリスクがないかたちでやろうというのであれば、それは確かにRuby on Railsみたいなフレームワークのほうがいいと思うんです。
でも、じゃあ規模が大きくなりましたとか、特殊なことをやる必要がありましたとなると、やはりフレームワークだけではなかなかできなくなってしまって、結局作り直しになっちゃうんですよね。結局作り直しになっちゃうというのって、サイトが成功したら作り直しになるんですよ。サイトが成功しなかったら、そのままでもいいんですよ。
僕はわりと成功させるために作るので、最初の段階から成功した時に困るよねという構造にはしないというのがあったりします。とはいえ「Laravelどうですか?」って書かれているんですけど、Laravelは、うちの会社で使っていたりします。
司会者:そこはそうなんですね。
ひろゆき:やはり、課金をちょっとしなきゃいけないぐらいの小さな規模のシステムなので。なので、別にそこは特殊なことはしないので、堅く枯れているやつでいいなという感じでLaravelになっています。
司会者:はい。ありがとうございます。
(次回へつづく)