エンジニア座談会Vol.03「AIと、どう付き合うか」
はじめに
本記事はフロントエンドに関わる人々のためのメディア「CodeGrid」(https://www.codegrid.net/)より厳選した記事をお送りします。
今回は、Jamstackやエッジサーバーレスを活用したWeb開発を得意とする制作会社「ピクセルグリッド」(https://www.pxgrid.com/)のスタッフによる2023年と2024年の業界トレンドやエンジニア個人の実感を中心にした、3回にわたる座談会をお届けします。
2023年を振り返り、2024年を展望する座談会の最終回は、AIとの付き合い方が話題に上がりました。ピクセルグリッドのSlackにはChatGPTとやり取りできるチャンネルがあったり、GitHub Copilotも導入され、すでに業務で使っています。それぞれの業務の中でのAIとの付き合い方や、ひとつの技術として、どのように見ているのかが語られています。(※本座談会の収録は2023年11月下旬に行いました。そのため、フレームワークのバージョンやサービスの動向は、2023年中のものとなります。また、記事へのリンク先が有料記事の場合もありますので、あらかじめご了承ください)
座談会に参加した人たち
- 中村 享介さん(Jamstackエンジニア)
- 高津戸 壮さん(テクニカルディレクター)
- 宇野 陽太さん(フロントエンド・エンジニア)
- 矢倉 眞隆さん(フロントエンド・エンジニア)
- 渡辺 由さん(フロントエンド・エンジニア)
参加した皆さまのプロフィール(クリックで開閉します)
中村 享介さん
2009年、JavaScriptの会社として株式会社ピクセルグリッドを設立。 多数のWebリニューアル、新規立ち上げを取り仕切った経験を持ち、情報設計、フロントエンド、クラウド活用、開発フローの効率化を得意とする。 Webをより発展させるため、新しくブラウザに実装された機能の活用事例を数多く生み出しつつ、日々、クラウドサービスを利用した効率のよい制作・開発手法の試行錯誤を続けている。現在の興味はWeb Componentsを使ったマークアップの改善とJamstack。 著書に『WebクリエイティブのためのDOM Scripting』(単著:毎日コミュニケーションズ、2007年)など。ここ数年は書籍の執筆をせず、フロントエンド技術情報メディア「CodeGrid」で精力的に執筆活動を行っている。
高津戸 壮さん
Web制作会社、フリーランスを経て、株式会社ピクセルグリッドに入社。数多くのWebサイト、WebアプリケーションのHTML、CSS、JavaScript実装に携わってきた。受託案件を中心にフロント周りの実装、設計、テクニカルディレクションを行う。スケーラビリティを考慮したHTMLテンプレート設計・実装、JavaScriptを使った込み入ったUIの設計・実装を得意分野とする。 著書に『改訂版 Webデザイナーのための jQuery入門』(技術評論社、2014年)、『ざっくりつかむ CSS設計』(マイナビ出版、2021年)など。 CSS Nite 2011ベストセッションにおいて、全170セッションの中から、ベスト10セッションに、CSS Nite 2013ベストセッションでは、全278セッション中、ベスト20セッションに選出。
宇野 陽太さん
大手ソフトウェアダウンロード販売会社、ソーシャルアプリケーションプロバイダーなどで、デザイナー、マークアップ・エンジニア、フロントエンド・エンジニアとして、主にスマートフォン向けゲームの開発に携わる。2015年1月に株式会社ピクセルグリッドに入社。 JavaScriptフレームワークを用いたアプリケーション設計・実装を得意とする。 著書に『Angularデベロッパーズガイド 高速にかつ堅牢に動作するフロントエンドフレームワーク』(共著:インプレスジャパン、2017年)などがある。
矢倉 眞隆さん
2016年10月にピクセルグリッドへ入社。Web標準技術やブラウザの実装動向に明るく、イベントでの講演や雑誌・オンラインメディアへの原稿執筆、書籍の監修・監訳などを数多く経験。 Google Developer Expertとしても活動中。
渡辺 由さん
Web制作会社、ECサイト運営会社にてマークアップや社内システム構築を担当したのち、大学の研究室のエンジニアとしてデータベースや解析ツールなどのWebアプリケーション開発に従事。インフラやサーバーサイドを含め、Web技術全般を幅広く経験したが、いま最も興味があるのはJavaSciptやCSSやUIの設計。2021年にピクセルグリッドに入社。
GitHub Copilotのサジェストはどう?
中村:2023年、世の中で盛り上がってたのは、やっぱりAIのことかなと思っているので、最後のテーマとして、そのあたりについて話そうかなと思います。
ピクセルグリッドは、GitHub Copilot(編集部注:以下、Copilotと表記します)を2023年から社内で導入して、みんなが使えるようになっています。VS CodeとかWebStormとかのプラグインで使えますね。
宇野:もう、何がCopilotの補完で、何がエディタの補完なのかとは、意識しなくなってきてますね。
中村:おー、普通に馴染んで使えてる感じですか。
宇野:そうですね。ただ、コードを全部書いてもらうみたいなところまではいってないので。エラーメッセージをなんかいい感じに出してくれると。ま、それぐらいですかね。
中村:Copilotの何かを意識して、たとえばコードの中のfunction名をそれっぽくつけるとか、そういうことしたりします?
宇野:そこまでは意識してないです。Copilotフレンドリーな命名とか、そういうのあったりするんですか?
中村:いや、世の中一般的に使われてるような名前をつけると、サジェストされるんじゃないのかなと思ってるんですけど。多分、宇野君はちゃんと命名していると思うんで、より自分が書きたいコードに近いものがサジェストされるのかなとは思っているんですよね。
宇野:あー、まあそっか。確かに。
矢倉:Copilot、僕はVS Codeで使ってるんですけど、その、ワークスペースの中にあるファイルをドメイン知識として持ってサジェストしてくれる感があって、賢いなって思うことが結構ありますね。
中村:ワークスペースの中に、作業中のファイルとは別に開いてるファイルとかってことですよね。
矢倉:そうです。僕が書いているCSSの変数にクセがあった場合でも、それがサジェストに出てくるなあ、みたいな。
おそらく、Copilotが元々持ってるモデルからではないところからデータを取って、サジェストしてくれてるなっていう感じがします。
中村:Copilotの話だと、OpenAPIの定義のJSONとか手間のかかる繰り返し系の作業してる時に結構サジェストしてくれて便利みたいな話が以前CodeGridでも出ていますよね。
- 「OpenAPIを使ったフロントエンド開発 最終回 OpenAPIでの定義の利用」(「OpenAPIの記述とCopilot」を参照してください。)
宇野:それは楽ですね。うん。
高津戸:僕は普段の仕事はディレクションがメインになったけど、コードも書くんですよね。そういう時にCopilotはめちゃくちゃ使ってますね。
自分の個人サイトをGatsbyでつくったんですけど、全然普段書いてないから覚えてないんですよ。でも、適当に書くと、もうCopilotが先読みして、僕の考えてることを出してくれるみたいな感覚で書けるし。
あとは、割とややこしい、たとえば「ページ遷移の時にページの1番上にローディングを出したい」みたいなのも、ChatGPTに聞けばそれなりの雛形が出てきたりとか。それを元にVSCodeでCopilotで補完してもらいつつ書いているという感じです。特にReactなんかだとおそらく元となる情報が多いからなのか、かなり正確なコードがそれでつくれるんですよね。
渡辺:そうそう。逆にマイナーなやつ、たとえばNetlifyのEdge Functionsとか書いてたとき、何も出てきてくれなかった(笑)。
高津戸:開発合宿でiOSのアプリをつくったとき、SwiftのこととかiOSのアプリのつくり方とか、もともと自分は全然わかってなかったんですけど、ChatGPTとCopilotに聞きながらやったら、かなり書けたんですよ。ただそのときは、マイナーなフレームワークとかは、ちゃんとした結果は返ってこなかったです。
JavaScriptで言うと、普段そんなにコードを書いていない人にとっては調べながらがんばって書くみたいなやつとか、あるじゃないですか。たとえばreduce
とか。そういうのを、ズバッとスマートに出してくれるから。
今まで、そういう知識の蓄積って、コードを日々書いている人のかなりのアドバンテージだったと思うんですよね。でも、Copilotを使っていると、そういう今までアドバンテージだった部分がかなり無くなってしまったのでは? みたいな感覚はありますね。調べたりするまでもなく、エディタの補完でできてしまう感覚なので……。
矢倉:Copilotだけじゃなくて、ChatGPTも組み合わせて使っている感じです?
高津戸:使ってますね。
矢倉:そこまで僕は使いこなせていない感じがしていて。ChatGPTもそうですけど、なんかこう、踏み出せてない感じがすごくしていて、もどかしいですね。もちろん便利には使えてるんですけど、サジェストを埋める以上のことができてないなっていう。
だから、開発合宿でずどさんがバリバリ、ChatGPTとかCopilotを使ってiOSアプリをつくってて、すげえなって思いました。
ChatGPTの使い心地は?
宇野:ChatGPTに関して言えば、「何がわからんのかわからん状態」からでも、なんかこう、ChatGPTのプロンプトで会話を進めていけば、それっぽい答えを出してくれるところまでいける、持っていける感じがあります。
Google検索だと、ある程度質問文を考えて、キーワードを絞っていかないと、具体的な答えって出てこないじゃないですか。
矢倉:はい。
宇野:Google検索で絞り込むプロセスからやっていける、始めていけるみたいな感覚があります。それこそ、Google検索のワードを生成するみたいな、そんな感じですかね。
高津戸:あるある。僕、職種的にもディレクションが中心になったから、やることをGitHubのIssueにまとめるじゃないですか。エンジニアに「これをやってね」っていうことを。ChatGPTに聞いてる感覚がそれに近いんですよね。
ChatGPTに対しても、こっちが前提を言えばそれに対しての答えが出てくる、みたいな。かなり役に立つと思いますね。
原稿やドキュメントライティングの補助に
宇野:CodeGridの原稿書く時とかも、使えますもんね。
高津戸:うん。原稿について言えば、これも試しながらなんですけど、箇条書きでマインドマップみたいなものをばーっと書いて、それをChatGPTに投げると、そこそこの文章にしてくれるんですよね。もちろん、それをそのまま使うのはちょっと違うんですが。
たとえば原稿をVS CodeでMarkdownで書いていくとして、そのChatGPTに聞いて返ってきたその文章を下にコピペして置いとくんですよね。そうすると、Copilotが、自分の書いている文章の続きを、なんとなくその内容で補完してくれるんですよね。
宇野:うんうん。
高津戸:そういう感じで、文章を書くこと自体も単純に速度が上がる。それも先読みしてくれるのに近い感覚で候補を出してくれるっていう雰囲気を感じてますね。
中村:つい最近、僕もドキュメントを書くのに使ったんですよね。GPT-4の場合、トークン数がめっちゃ増えてるので。
-
ChatGPTのモデルは無料で利用する場合はGPT-3.5、有料の「ChatGPT Plus」を利用するとGPT-4が利用できます。GPT-4は最大トークン数が増え、長文のやり取りも可能になっています。
ChatGPTに「要件定義書、質問、これで必要な項目出して」みたいな感じで投げたんです。そうすると、ずらずらずらっと出てきたんだけど、重厚な要件定義書を書きたくなかったんで、「もうちょっとシンプルな感じだとどう?」って返ししたら、まただーっと出してくれるわけです。
で、それを参考にして、自分で書いたやつをまるっと「レビューしてください」みたいな感じでChatGPTに投げたんですよね。そうすると、まずは「ちゃんとプロジェクトの主要なポイントがカバーされているよ!」とか言われて、その上で、「この辺は追記をこうしたらいいよ」と提案も出てくるので、それを見ながら、人間がAIの指示に従って作業をして。「直しました」ってまた投げると、「良くなりましたね!」みたいなこと言われて。
CodeGridの編集チームと原稿のやり取りをしているみたいなイメージで、使ってみたんですよね。丁寧なレビューのコメントとか、提案が出てきたりとかするので、こういうやり方もありかなと思ったりしましたね。
矢倉:うーん。
高津戸:ああ、そうですね。AIって、そういうのに向いてそうですよね。人だと感情みたいのがどうしても入ってしまいますから。レビューでのツッコミとか。
英語文書作成にも
高津戸:あとあれだな、僕は英語の文章書くとき、めちゃくちゃ使ってますね。
中村:それは日本語を書いて英訳をお願いする感じです?
高津戸:それもありますけど、それだと全然自分で英語書けるようにならないので、自分でバーっと英語で書いて、おかしいとこがあったら指摘してって聞くんですよ。
中村:ああ、なるほど。
高津戸:そうすると、自分でなんかこう、「イマイチわかってないけど、これでいいのかな?」と思ってたところを直してくれたりするので。
それって自分でやろうとすると、多分難しいと思うんですよね。その単語を知らなかったりすると、そもそも出てこないし。あと、普段英語で話してないから、辞書で調べて出てきた単語を、ラフなところに使っていいのかわからないことがあるんですよね。そういうのも、「これって言い方として合ってる?」とか「柔らかい言い方ない?」みたいに聞くと、詳しく教えてくれるので。
中村:なるほど、なるほど。
高津戸:うん、めちゃくちゃ役に立っています。ChatGPT様は(笑)。
中村:学ぶのには良さそうですよね。ただ単に英語の文章を直すんだったら、僕はDeepL Writeをよく使っているんですよね。英語の文章を貼り付けたら、おかしないいまわしとか教えてくれて、それも便利なんです。ただ、なんでこっちの言い方のほうがいいかとかまでは教えてくれないから。そういうところではChatGPTのほうがいいのかもしれないな。
Google検索するよりも、ChatGPTで
高津戸:あんまり知らないことをざっくり聞くときに、とても便利な気がしますね。
案件でも、 つい最近、使用しているライブラリの認証方法がOAuth 2.0のImplicit FlowってやつからPKCE(Proof Key for Code Exchange)に変わるなどということがあり、まったく良くわかってなかったのでその辺りのことを理解しておく必要があったんですよね。
これがどう変わったのかを知るのって大変だと思うんですよ、自分で調べたら。オリジナルのPKCEの仕様なりを読めば、それはもちろん正確でしょうが、自分が今必要ではない部分も含まれた、膨大なテキストがそこにあるはずです。かと言ってライブラリのドキュメントを当たれば、そっちはそっちで背景の情報には触れられていなかったり、何か書いてあったとしても、わかりやすくは書かれていないようなことがあります。そういうときも、ChatGPTと「それってどういうこと?」という会話を繰り返しながら聞くと、教えてくれるんですよね。
ま、当然、正確かどうかは最終的に確認しないといけないんですけど、そういうのでもかなり答えてくるから。そういう全体的なこととか、概念的なこととかを教えてくれるのはありがたい。ググるのと、ChatGPTを使って理解を進めていくのとの割合でいうと、後者のほうがかなり多くなってきている感じが僕はしますね。
宇野:知りたいことがわかってるんだったらドキュメント見に行くほうが早いかもしれないですけど、何について調べればいいのか、何を知るべきなのかがわからない状態で調べていくというなら、ドキュメントを片っ端から見て調べるよりは、今ならChatGPTに聞いたほうが早いです。「これについて調べればいいのか」みたいなこともわかりますよね。
高津戸:そうそう、そういうフォーカスが、かなり絞りやすい感じがしますね。
画像に関してはまだまだか
中村:画像だと、げこたん(坂巻)がalt(代替テキスト)を考えてもらうのをやったりとか、ChatGPTに画像を作ってもらうとか、社内だとそういうことやったりしてますよね。
矢倉:画像に関しては、お金を払わないと使えない?
中村:そう、ChatGPT Plusにしないとできないですね。
高津戸:僕は使っていますけど、いやでもね、結構難しいと思いましたね、欲しい画像つくるの。文章やコードは、出てきたやつを直せばいいやってなると思うんですよ。
渡辺:画像は直せないですもんね。
高津戸:そうそう。
中村:Figmaとか、そういうツール自体にAIが搭載されてジェネレートできるようになるといいのかもしれないですね。
高津戸:そうなるとありがたいですね。……これ、僕のXにポストしたやつなんですけど。
左上の「パイプに声を発すると響いて増長される」っていうのが、僕が描いた絵なんですよ。これをなかなかいい感じにするように試みたのがこれなんですけど。結果的に、「自分で描いたのでいくしかなくね?」みたいな(笑)。
いい感じでも、ちょっといじると全然別の絵になっちゃうんで。これとか。
実用的かと言われると、なかなか難しいなって思いました。
渡辺:さし絵みたいな、当たり障りがなくていいものだと結構便利かなって思ったことあるんですけど。
高津戸:そうそう、そうなんだよね。
中村:CodeGridの広告用の画像をつくったことがありますよね。
-
こちらの記事でその過程を紹介しています。
渡辺:何かを正確に説明する図とか、それこそ美術館に飾って鑑賞するような絵とか、そういうのはちょっとまだ無理なのかなっていう。「何かでこの場所を埋めたい」っていうさし絵だったら、全然いけるような気がしますね。
中村:OGPだったら許されるかな。
渡辺:許されそうですね。サイトのコンテンツを読んで適当なOGPをつくるとかだったら、できそう。
中村:開発合宿でいろいろ試したけど、画像はすごく詳しく説明しないと今はダメだなっていう感じですね。狙っているやつをつくり出すのは。
ChatGPTの画像生成は、雑な説明でもプロンプトを自動でつくって画像を生成してくれる。でもプロンプトの時点で間違ってる可能性はやっぱりあるから、いきなり最終成果物の画像をつくるのではなく、プロンプトだけつくってもらって自分で調整するというのが必要かなって気はしますね。
中間成果物の重要性と作成のコツ
中村:GitHubの新しいCopilotのデモ*で、Isueeを書いたら、プルリクを自動でつくるぞっていうやつあったじゃないですか。あれも、1回中間成果物が出てきて、それを人が直せるみたいなこと言ってたので、そういうプロセスがないと思ったとおりにはいかないんだろうなあと。
いきなり答えを出さないで、いったんプロンプトをつくってもらうとかで手順をうまいことを踏んでいくようにすると、結構AIをうまく使えるんじゃないですかね。
-
「Issueを書いたらプルリクを自動でつくる」というデモは以下のページにある動画を参照してください。
渡辺:画像だったら、下書きを書いてもらって、いい感じになったら、じゃあこういう感じの色を塗ってくださいみたいにして、徐々に。
中村:あ、そうそう、そういうイメージ。
僕がさっきちょっと言ったドキュメントを書いてもらう場合でも、まず何が必要かを1回上げてもらって、その後にレビューを依頼してるので、その観点に基づいてレビューしてくれてるんですよね。だけど、あれをいきなりレビューを依頼すると、コンテキストは何もない状態でレビューすることになるから、多分うまくいかないんだと思うんですよ。
そういう段階がいろいろあるはずで、そういうことが必要なのかなとか思ってます。
高津戸:ああ、人に物を頼むってのと変わんないっすよね。
ーー頼む相手が人だと、そのやり取りを重ねてくに従って、だんだん相手がうんざりしてくるとか、疲れてくるってもあるけど、ChatGPTはそれがないのでいいですよね。
高津戸:確かに(笑)。
ーーCodeGridの原稿の中で、著者がコードだけ出して終わりになってるときに、このコードで何をしてるか、説明入れてほしいんです、みたいな場面があるんですよね。
そういうとき、これまでは著者に「コードでやってることを説明してください」みたいなお願いをしてたんですけど、その前にChatGPTに聞いてみたんです。コードを貼り付けて、このコードで何をやっているか教えてくださいって。
そうすると、それなりに返ってくるので、それを元に簡単に編集側で「ここのコードはこんなかんじですかね?」みたいにしてまとめて著者に戻すみたいな、みたいなことに試しに使い始めてます。
中村:そういう場合、プロンプトのコツがあるから、そこを調整したらよさそうですよね。
たとえば、「初心者にもわかるようにコードを説明してください」ってすると、「初心者って何?」っていうところがあると思うんです。もう少し具体的に、たとえばWeb制作をやってる人とか、そのターゲットを入れてあげたりとかするといいなっていうのと、どう振る舞ってほしいかがあると思うので、それを入れるとよいかな。
ずどさん(高津戸)は、さっき言っていた、CodeGridの原稿でChatGPTを使うとき、「あなたはプロの編集者です。次の文章を〜」って役割を決めてあげていますよね。これは生成には良いと思うんですよね。
-
ここで中村が高津戸のChatGPTのプロンプトを例に上げていますが、ピクセルグリッドではChatGPTへのプロンプトを入れると、答えてくれる機能をSlackに組み込んでいるため、高津戸の利用も社内の誰もが目にしているわけです。この機能はOpenAIが提供するChat Completions APIを利用しています。次の記事にこのAPIについての詳細がありますので参考にしてください。
同じやつで何パターンかプロンプトを変えてみると面白いとは思いますね。2024年はそんなの研究ばっかりしてる人とかが増えるんだろうなと思ってますけど。
渡辺:そういうのは、ChatGPTとか、サービスに依存することなんですかね。
中村:でも、競合サービスも結構出てきてるから、ChatGPTがダメになっても他のサービスでもプロンプトをつくる技術っていうのは基本的にはあんまり変わんないと思うんですよね。そういう意味では意外と大丈夫かも。日本語のJapanese Stable LM Betaとかもでてきていますしね。
高津戸:どういうふうに聞いたらちゃんとした答えが出てくのかなっていうのは、コミュニケーション能力みたいのが求められるのかなとか思ったりしますね。
矢倉:うんうん。
渡辺:ある程度こう、聞き方を工夫して言い換えてみるとか、そういう引き出しは最初はこっちに必要ですよね。言外に、察してくれっていうのを含んだ指示って良くないけど、ChatGPTはそこは絶対汲み取ってくれないので、全部明文化された指示になるっていう。
高津戸:当たり前のことを気付かされる、みたいな。
今後のAIの行方
宇野:逆にAI側は、どんどんコンテキストをメモリに詰め込んでいくみたいな感じになるんですかね。
高津戸:どうなるんだろうね。もうまったくわかんない感じ。
中村:今、トークン数で競っている感じがすごいあるじゃないですか。
宇野:うん。まあ、現状そこにしか仕込めないですもんね。
渡辺:過去の質問とかをまるっと覚えているんじゃないかとか思ったけど、今、多分ないですよね。
中村:今のAPIの仕様を見ると、過去の質問を覚えている感じではないですね。だから、要約してとかを自力でやればって感じですよね、多分。
渡辺:やってくれるようになったりするんですかね。
宇野:この間見た記事で、その過去の質問をいったん別のところに全部保存しておいて、入力文と関連性が高いものだけそこから引っ張り出して、プロンプトを節約するみたいなのを見ました。それは、あー、なるほど、使えるなって。
中村:どっかにちゃんとメモを置いといて、記憶として引き出すみたいな仕組みですよね。
ChatGPT以外でも、Claude 2.1っていうのが出て、それは30万トークンだっけな? すごいトークン数に対応してるらしいですね。そういうのが出てくると、とんでもない分量を覚えてられる、賢い感じにはなる気がしますね。
渡辺:でもGoogle検索の1回よりは、かなりの量のデータがWebというかインターネット上を飛び交うことになってそうですよね。APIを叩くのに、履歴全部飛ばすから。
宇野:Google検索で、「生成AIは試用運転中」って出てくるあれは、インターネット上を何かが飛び交ってるんですかね。
高津戸:あ、そんなことしてくれるんだ。
宇野:そうですそうです。えーと、Search Labsでの試験運用ですね。会社のアカウントではダメで、個人アカウントだと試せます。
矢倉:SGE(編集部注:Search Generative Experience、生成AIによる検索体験)って呼ばれているやつですね。
宇野:ああ、そうなんですね。Web上の記事を引用してくれるので、ソースがすぐわかるようになっているんですよ。ファクトチェックしやすい。
渡辺:ある意味、その先のページに行って全部読んで帰ってくるより、通信量が減ってるかも(笑)。
宇野:ただ、ここに使われる引用がどういう記事なのか、どうやって振り分けているのかなとかはちょっと気になりますね。今のところそんなにクオリティの低い記事は見かけないんですけど。
エンジニアの仕事はAIによってなくなる感触ありますか?
宇野:我々エンジニアの仕事がAIの登場によってなくなるとか、よくネットでは出てきますよね。
中村:どうなんですかね。でも、一部はやっぱりなくなるとは思っていていますけどね。
今までひたすらコピペしてましたとか、JSONを成形してましたっていうような作業というのは、もうすでにCopilotによってなくなってるじゃないですか。だからAIがもっと進化することで、ある程度はなくなるんじゃないのかな、と思ってはいますね。
ただ、1番最初のきっかけのところというか、こういう問題を解決したいとか、そういうことはやってくれないはずなので。その辺は人間の仕事として残ると思いますね。
高津戸:うんうん。
中村:よく、「AIによって、この職種はなくなります」みたいな言ってるツイートとか見ると思うんですけど、そういうことを言っている人たちはその現場の人じゃないんですよね。現場の人は、AIを何にどうやって使うかみたいな話をしてるだけで、仕事がなくなるとは思ってないと思うんですけど。
結局、その仕事をしてる人しか使いこなせない気がしてるんです。たとえば、僕らエンジニアだって、AIから上がってきたコードが正しいのかどうかって判定する必要はあるし。
渡辺:そうですよね、うん。ある程度のレベルに達している人から見れば、「便利じゃん」ってなってますけど。自分がまだ全然コードを書けなかった頃にこれを与えられてもなあって。そのままじゃ動かないなみたいなコードが上がってくることもありますよね。今はどこが間違っているかがわかるけど、わからなかった頃の自分だと「あれ? どうして!?」ってなっていたかもしれないですよね。
宇野:少なくとも、日本語からコードのすべてを生成できるようにならない限りは、まだなくならない感はありますよ。ただ、何年かしたら、みたいなことはありえますけど。
渡辺:今はちょっとずつ生成させるじゃないですか。「このコンポーネントではこういうことがしたいんだけど」ぐらいだったら結構いいの出てきますけど、package.jsonからのコードの全文を書いてくれるわけじゃないんで、ある程度こっちが用意して、文脈もできて、ここにこういうことをするコードを書いてくださいっていうのができる感じですね。
宇野:うん。
中村:2024年には、もうちょっと進んでるんですかね。
宇野:進みはするでしょうね。*
あとは、AIモデルのバージョンが上がるごとに、扱えるトークン数が増えていくわけですけど、モデルの進化が速くて、増加するトークン分のインターネット転送量が追いつかないみたいな未来はあるかもしれないですね。コード全文書き出せるようにはなったけど、それをネット上でやり取りするってなると、すごい量になるみたいな感じ。
「サーバ用意して、そこにモデルインストールして」みたいな話になるかもしれない。
-
座談会収録の後、MicrosoftとOpenAIが、アメリカの新聞、The New York Timesから著作権侵害で提訴されたという報道がありました。
渡辺:それぐらいになってくると、わたしたちの仕事がなくなるかもしれないですね。
高津戸:「Next.jsのテンプレつくって」みたいのだったら、2024年ぐらいにはちゃちゃっとできそうですね。
宇野:それぐらいならなんかできそうな気はします。簡単なのだったら今でも多分GPT-4だったらできるんじゃないですかね。3.5だとわかんないですけど。
矢倉:Open Interpreterとかって、そういうのじゃありませんでしたっけ。自然言語にして、ある程度初期状態をつくってくれるっぽいですけど。
あとはGitHub Copilot CLIも、やりたいことをターミナルで書いたらシェルコマンドを書いてくれますね。
高津戸:あー、なるほどね〜。CLIとかマジでわからんから超役立ちそう。
中村:勉強することいっぱいあるな。勉強するというか、試してみたほうがいいやつか。
渡辺:今、こういうのがボコボコ出てくる時期だと思うので。
高津戸:でも15年前とか、HTMLチクチク量産するのがメインの仕事だった頃から考えると、ものすごい生産性が上がってますよね。もう、CMS使うなんて当たり前だし。
だからいろんなものがそういう過去のものになっていって、どんどん効率化はできるけど、まあ人間のやるところはちょっと上位概念的なところを決定することに移り変わってきているなってのは思いますけどね。
2024年に向けて
中村:さて、だいぶAIの話も盛り上がってるけど、これ、どこまで話したらいいんでしょうね(笑)。
高津戸:エンドレス〜。
-
いつもは2時間程度で終わる座談会収録でしたが、今回は休憩をはさみ4時間弱話していたのでした。
中村:エンドレスに話せそうだけど、編集する人が辛くなってくるやつですね(笑)。
渡辺:あれですよ、ChatGPTに「この座談会をきれいな文章にしてください! 去年の記事はこんな感じですから」って(笑)。
ーーそこまでできたら最高ですね……。でもそのうちできるようになるのかなあ。じゃあ、最後に、毎年の恒例で、2024年の抱負を。
高津戸:『「AIいるからいらねえや」って言われないようにがんばりたい』みたいな感じですかね(笑)。
渡辺:この流れだと(笑)。
中村:まあ、AIをちゃんと使わないとねっていう話ですよね。
高津戸:ま、でもAIが出てきたからこそ、僕はそのディレクション的な役割みたいなのに、さらに意味を感じているので。だから技術的なことも俯瞰しながら、そういう判断とか評価とかを正確にできるようにやっていきたい、ぐらいな感じかなあ、自分の場合は。
コードは、Copilotとかでちゃちゃっと書けたらいいなって思っています。僕は。
中村:AI出てきて、「Webいらなくなるの?」みたいな話がなんとなくあるかなとは思うんですけど、逆にWebが大事なんじゃないかなと思ってて。この、AIが本当のこと言ってるかどうかとかを調べるのにWeb必要だし、AIの学ぶ先も結局Webだから、ますますWebをちゃんとしとかないといけないのではないかというふうに思ってますね。
宇野:マシンフレンドリーな感じにもしていかないといけない。
中村:そうですね。マシンフレンドリーとその、人間フレンドリーが近くなってってんのかなと思っていて。ChatGPTって人間のように読めるじゃないですか、曖昧なやつでも。なので、もちろん、マシンフレンドリーになっているとよりちゃんと読めると思うんで、アクセシブルなHTMLは、さらにいいと思うんです。そうじゃないのも読めるようになるから。
ま、意図がちゃんと伝わるデータをいっぱいつくれると。もちろんChatGPT使ってもいいと思うんですけど、AI使ってそういうのをつくっていけたらいいのかなと思いますね。
高津戸:Web屋として、理想的な抱負ですね。
中村:「AI楽しいからWebつくんねえぜ」ってなっちゃうとちょっと悲しいなと思っていて。昔でいうと、iOS楽しいからって言って、HTMLとか書かなくなった人とかいっぱいいると思うし。
「Webやろうよ!」っていうお気持ちで。
矢倉:僕は、引き続き2024年もブラウザを追いかけていこうと思うのと、Web技術もまだまだ発展があると思っていて。特にCSSに関してはまだまだパラダイムが変わっていくので、それがツールにどういう影響を及ぼすかっていうのを知りたいですね。
AIに関しては、全然まだ使えているという感じがしないので、何かを実現していくための手段として活用できたらいいなと思います。
あとは、きょうすけさん(中村)が言ってたのとちょっと近いんですけど、AIがつくるデータのもとは、つくらないといけないし、さらに重要性が上がるとは思っています。だから、そういったデータの元の信用度に貢献できるようなことをしたいですね。ツイートとか短いやつじゃなくて、ちゃんとしたWebページつくるとか。このCodeGridみたいなものの原稿とか。参照される側になりたいですかね。
宇野:僕は、なんだろう、モヤモヤと考えてましたけど……まあ、個人的な興味で言えば、AIよりは今までつくってきたWebアプリを、ユーザーが余計なリソースを割かずに使えるようにしたいですね。そういうのはまだまだ多いと思うんで、気にかけていきたいなと。
あとは、AIと人間のハイブリッドなコードとかがそろそろ出てくるのかなと思っていて。メンテナンスしにくいコードが入り込まないようにして、プロダクトを保てるようにしたいとか。
渡辺:AIが書いた謎コードとか(笑)。
宇野:そう、しっかりレビューするみたいなのは、多分、この先、5年……5年もかかるのかな、わかんないですけど、もう少しの間は必要になってくるかなと思うんで、そのあたり。
渡辺:私は、なんだろう、新しい技術とか、好きは好きなんですけど、仕事してる上ではクライアントさんなりの問題が解決すればなんでもいいと思ってて。現状古いもの使ってるところだったら、別に古いものを使うんでも全然構わないと思っているので、AIとかも含めて、解決する手段が増えるのであれば、それはそれで、みたいな気持ちで。あんまりなんか自分の中では変わってないかもしれないなっていう気がします。
あとはなんだろう。原稿書くの楽しくなってきたから、がんばってCodeGridの原稿を書きます。
ーーすてき!!
高津戸:……次回の座談会で、「去年はそう思ってましたけど」ってなっていたりして(笑)。
渡辺:(笑)
中村:はい、ではAIをより上手く使いつつ、AIがカバーできない新しいWeb技術の情報をCodeGridで配信できるよう、今年もがんばっていきましょう。