2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
リンクをコピー
記事をブックマーク
司会者:次にオンラインで来ているのは、「GitHub Copilotの裏側のアルゴリズムが変わっていっているということですが、アルゴリズムが変わることで今回ご紹介いただいたTipsが陳腐化することもあるのでしょうか?」
服部佑樹氏(以下、服部):はい、あります。端的に言えるのは、結局良いコードを書くという(のが目指す)ところなので、最終的にTipsはツールの使い方ではないということです。隣のタブで開いているものを開いたからCopilotの質がちょっと上がったね、というぐらいでは、全体的な生産性に影響があるかというとそんなにないんですよね。
それをやるぐらいだったらちょっと書き方を変えてみる。1回提案されるところを、Ctrl+Enterを押すと10個ぐらい提案してくれるので、その中から自分で考えて選んだほうがいいですし、あとは何回か書き換えてみてCopilotの提案を待ったほうがいいというところなので、基本的に「ツールがあるからこういう書き方をしなきゃいけない」というのはある意味ナンセンスです。
最後のスライドに入れましたが、「あまり気にし過ぎない」。一応条件があってツールとしては取ってくるので、そこで差は生まれる可能性はありますが、「なんとなくこんなものなんだな」ということを頭の中にちょっと入れてもらって、少し(生産性が)上がればいいなというところで紹介しています。なので、質問の答えとしては陳腐化する可能性は非常にあります。
司会者:ありがとうございます。
司会者:ちょっとオンラインのほうにいったのですが、登壇者側でなにかあれば。
新谷哲平氏(以下、新谷):先ほどの話でもあったようにTerraformだとなかなか補完が難しい。Android・iOSでもこれより難しいと思っていて、そこはデータがないからだと思っているのですが、今後望みはありますか? というのを聞いてみたいなと思いました。
服部:そうですね。モデル自体はものすごく質が上がっています。そういう意味では望みはありますし、必ずしも学習データだけから提案する必要があるかというと、やはりそうじゃない可能性もありますよね。
「COBOLのマイグレーションをしたい」とか「COBOLからJavaに変えたい」とか「もう少し最先端なものに変えていく」とか、エンタープライズのお客さんからよくお声をいただきます。
そうした時に、ロジックをマイグレーションするところをそのままGitHub Copilotに頼るかというと、それは無理があります。例えばインフラの文脈でいうと、インフラエンジニアが昔からのシステムにマイグレーションする時に、古いシステムから本当にリアーキテクトしてクラウドにぜんぜん仕様も変えて持っていくのか、それともただ単に差し替えるだけでソースコードは変えないのか。
それと同じで、ちょっと話から外れていますが、例えばCOBOLのコードを移す時に、COBOL側の日付計算に関するすばらしいライブラリがなかった場合、冗長に書いているところをそのままJavaに移植するのかというと、Javaにはメチャクチャすばらしい日付関連を扱うライブラリがありますという話になってくると思います。
そうした時に精度を上げる可能性があるのが、CopilotやLarge Language Modelの提案だけの、学習だけによるものかというとそうではなくて、どうやってハンドリングするのか、どういうプロンプトで、どういうかたちのロジックを1回通してやってあげるのかという命令の仕方は、実はけっこう精度が変わるところです。
なので、Large Language Modelの学習モデル・学習データの向上だけを期待するのであれば、(それが)いきなり上がることはないので、そういうところから精度向上を狙うのはちょっと難しいというのが1つ目の答えです。ただ、GitHub Copilotの実装面や、実際のLarge Language Modelのあり方、ベストプラクティスみたいなものが少しずつ確立されていくに連れて、精度が上がっていく可能性は十分あるかなと思います。
新谷:ありがとうございます。
司会者:逆に服部さんからユーザー側に向けて「これ、どうです?」と聞いておきたいことはありますか?
服部:あります。ちょっとした知識を持っていたり、地頭が良かったりすると、GitHub CopilotやLarge Language Modelを使って、ものすごくいろいろなことが書けるという世界が今やってきていると思うんですね。
先ほどのお話の中に「好奇心」とありましたが、エンジニアとしてのスキルセットとして、もう少しソフトスキル的なところや、いわゆる学習意欲も含めてどうやって育成していくのかが課題になる気がしています。
そうした時に育成者の立場、もしくは「自分自身はこういう考えをしています」みたいなところで、ちょっとこれは難しい抽象的な質問ですし、自分自身の結果がチームメンバーのキャリアかもしれないですが、どうやって生き抜いていこうかみたいなところも含めて考えているのかを聞きたいなと思いました。
司会者:なるほど。これは発表順にいきましょうか。トピック的に司会者として、これはたださんにトリを飾ってほしいという気持ちがあるので、新谷さんには申し訳ないのですが、発表者順に。トップバッターに自社の社員に振りやすいという心理的安全性もあるので(笑)。お願いします。
新谷:キャリアみたいな話でいうと、やはり自分の発表にあったように、アプリケーションコードベースのいろいろなライブラリを利用する側から作る側に、よりなりやすくなっていると自分は思っています。他のライブラリを使うというよりも、やりながら自分たちのライブラリを作って発信をしていくのはぜんぜんやっていけると思います。GitHub Copilotが出てきたことによって、そういうのをやる人の母数はどんどん増えていくのかなと思っています。
池田将氏(以下、池田):私は今はSREなので、コードを書く機会は減ってきていて、どちらかというと読む機会が増えているんですよね。読解力がすごく求められるようになってきています。エクスプレインの例を紹介しましたが、「言っていることがわからない」となってしまうと結局意味がないのかなと思います。
なので、コードの書き方を学ぶというよりは、そのコードはどういうバックグラウンドで書かれたのかなとか、なぜこのコードは簡単そうなのに複雑な書き方をしているんだろうとか、Javaのバーチャルマシンを意識した、メモリを意識した書き方をしているんだなとか。
あとはCopilotなしでも人間が見た時に見やすくするように、ちょっと効率は悪そうなんだけど、こういうふうに書いているんだなというところで、今後は知識のインプットが非常に必要になってくるんだろうなと思っていますね。
コードをただ書いて動けばいいと許されてきた時代があったかなと私も思うのですが、「そこはもうあなたの仕事じゃないよ」と最近すごく言われているような気がしているので、そのために知識のアウトプットなどをしないといけないのかなと思っています。
なので、今後はエンジニアになる方も、そういうところを意識したほうがいいかもなとは思っていて、そういうふうに指導はすると思います。
黒瀧:そうですね。やはりCopilotや生成系AIが全部自動生成してくれたとして、最終的に人間がこれはOKか・NGかだけを判断するような世界になっていく時に、その責任を負うのは最後は人間になると思います。
その責任を取るところ、意思決定をするところはとりあえず人間だとした時に、Copilotが提案してきたものに対して、そのCopilotが、すべての事象やコンテキストを理解しているかというと、まだこれからやっていかなければならないことがあるので、Copilotが前提としているコンテキストの外にあるものをきちんと見極めて責任を取る、意思決定をすることが人間に求められるかなと思っています。
例えば「こういう提案が来たけど、これはCopilotが知らないコンテキストとして倫理観の面で良くないよね」みたいなものが出てきた時に、きちんと「これは採用しません」みたいな判断をしないとけっこうヤバいことになるかなと思っています。
例えばAIでバイアスみたいなものがあった時に、「バイアスがかかっているけど、動くからいいじゃん」「ちゃんと動いているからいいじゃん」みたいな感じで採用するんだけど、実はけっこう良くないことが書かれている。でもコンテキストが理解できなかった、みたいなことがあると良くないなと思っています。エンジニアが意思決定する時の倫理観というか、そういうところをきちんと教育しないと間違った方向に進む可能性があるのかなと思ったりしていました。
ただただし氏(以下、ただただし):だいたい言われちゃったので、どうしようと思っているんですけど。
(会場笑)
ただただし:freeeのプロダクトには「freee会計」という、10年選手の巨大なモノリスRailsアプリがあります。すごく大きな課題になっているのは、新しく入ってきた人が会計のソースコードを把握するのにメチャクチャ時間がかかることなんですよね。なので、先ほど言われていたように、コードリーディングに関しても補助としてはメチャクチャ助けになるんです。
一方で、いわゆるドメインロジック、要は日本の会計システムとか法律に則したコードにならないといけないのですが、間違いなくCopilotはそこを提案してくれないんですよ。汎用的なものはきちんと吐き出してくれるけど、アプリケーションロジックやドメイン知識が必要な部分をきちんと検証できるだけのドメイン知識を開発者は求めています。
なので、これからはそういうところが必要になってくるだろうし、そこを人間がきちんと持っていればCopilotとかでも開発速度が上がると思います。やはり開発者にとっては、今開発しているものがどういうドメインのものなのかとか、どんな人が使うのかみたいな部分もすごく大事だと思うし、そういうコンピューターよりも人間の世界に起きていることにより興味を持たなきゃいけないだろうと思うし、そっちのほうにもっと比重を置いた開発教育みたいなものをやっていく必要があるなと思っています。
司会者:では、ひととおり聞いた上で感想をどうぞ。
服部:ありがとうございます(笑)。勉強になります。そうですね。先ほど「ドメイン知識」というのもありましたが、ハイレベルなAIを凌駕する技術を持つか、ドメイン知識でビジネスロジックを含めて戦っていくのかという、2方向がなんとなくあるなと思います。改めてものすごく腑に落ちたなと思いました。ありがとうございます。
司会者:ありがとうございます。では以上でディスカッションパートを終了としたいと思います。服部さん、登壇者のみなさんありがとうございました。
(会場拍手)
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには