GitHub Copilotの感想

2023-04-08

IT 論説

GPT-4の登場によって、世もChatGPTに関する論説が色々出回ってきました。

弊社でもさっそくGitHub Copilotを導入して、今はトライアルですがおそらく今後も課金して利用していくと思います。

GitHub Copilotの概要については検索すれば出てきますから、説明はそちらに譲るとして、この記事では感想を書きます。

環境

  • MacBook Pro16インチ USキーボード
  • VSCode

生産性は向上

簡単に言うと「コードをある程度書くと、補完機能のように「次はこれじゃないすか?」みたいな感じで提案してくれる」機能です。何かのコミュニティで言ってたのは、「隣に早口キモータの超頭いい東大生がいて、常に横から口出ししてくる」みたいな感じです。

おそらく学習元はGitHubのPublic Repositoryにあるコード群や公式のチュートリアルとかでしょうから、オープンなコードが多いであろうPythonやJavaScriptやらPHPやらは良い一方、たとえばVBAとかCOBOLは厳しいんでしょうね。

例えば、こんなコードの時は勝手に次の行を提案してくれます。

	
	inner_list << hoge.append(fuga1)
        # inner_list << hoge.append(fuga2)
	

これは本当に簡易的な例ですが、JSを書いているときに()と入れるだけでアロー関数でよしなに一連の処理を提案してくれると、「すげえ・・・」となっています。

コツとしては、「マメにコメントを書く」「適切な関数名やファイル名を書く」とかでしょうか。

例えば、関数名は"function hogehoge1()"よりは、"function getFamilyNameFromNameList()"の方が、Copilotくんも適切なサジェストを返してくれます。

また、コメントも「//ここでリストをループして姓に特定の文字列をつけて新たにリストを作る」とか、コード見れば何やってるか分かるような例でも、コメントを書くと割とやりたいことに近いことをやってくれます。おそらく、CopilotもChatGPTも、問題の本質はここにありそうな気がします。これは後述します。

要は、「人間側がCopilotくんに歩み寄って、いろいろヒントを投げかけてあげるとCopilotくんも手掛かりが増えて期待した結果を返しやすくなる」という話です。でもこれって、対人でもそうですよね?「いい感じにやっといて」ではなく、適切な指示を出すことの重要性を感じます。

これによって、コーディングのスタイルがやや変わって、常に「Copilotのサジェストを採用するか否か」というプロセスが含まれます。採用もただ言われた通りに採用ではなく、「そのまままるまる採用」「一部採用(関数部分は生かして、変数部分をちょろっと変えたりとか)」と分かれます。なので、高速に判断を頻回に求められますけど、まぁ、これはEmmetの頭いい版と思えば慣れてくるでしょう。

Emmetとの競合問題

Emmetという便利な機能がMicrosoft VSCodeにはあり、HTMLやVueの入力をTabで補完してくれるものです。

ただ、GitHub Copilotもサジェストの採用がTabキーなので、競合しちゃうんですよね。

ということで、EmmetはTabキーのまま、GitHub CopilotはCtrl+Tabということでキーバインドを変更しました。

MacのUSキーボードのCapsLockとCtrlキーを入れ替えてあるので、指の移動も左手小指でCtrlを押しながら左手薬指でTabを押す、という感じで、だいぶ慣れてきました。

AIとのエンドポイントとしての人間様

私がこのAI業界?に足を踏み入れてから5年経ち、このブレイクスルーが起きました。

上司も私が最初に話をしたときは「ふ~ん、まぁこの業界数年に一度はそういうことあるからね」くらいのノリでしたが、土日にあれこれ調べて「これはかなりヤバい」とさっそく自費でGPT-4を使っていました。

私が職に就いた2018年から人工知能、AI論で「人間の仕事が取られる」という話があり、今回また再燃していますが、今回ばかりは本当にマズい人たちが出てきそうです。

何かで書いた気がしますが、AIが置換するのは「定型作業のホワイトカラー」が一番最初です。資本家からしたらコストパフォーマンスが一番いいですからね。


短期的には、CopilotやChatGPTのようなプロダクトは、生産性向上に寄与することになるでしょう。

ただ、長期的には、「あれ?これ人間要らなくね?」みたいなことになって、失職する人が大量に出てきそうです。人間は体調不良になったり産休育休介護休暇とかでちょくちょく消えますし、有給休暇とか賃上げとか求めてきますけど、AI君は24/7で働けますからね。

たとえば、プログラム開発だと、伝書鳩でしかないSEは駆逐されそうな気がします。もっとも、伝書鳩ですらない人(途中で情報が変わってしまうので、結局直接顧客とやり取りした方がはやく、じゃあお前なんでいるの?みたいな人)がいるのも事実ではありますが……。

結局のところ、AIができる範囲が広がると、より「やりたいこと」を抽象から具体化できるとか「抽象⇔具象」を行ったり来たりをできる人は残り、ただの御用聞きとか伝書鳩とかオペレーターとかは消えそうな感じがあります。

つまるところ、AIとのエンドポイントとしての人間は消える、ということです。


例えば、古の時代は電話交換手やタイピストという職業があり、要は「新しい機械(電話やタイプライター)とのエンドポイント」だったわけです。その職業は人間である必要はありません。なので、電話交換が自動でできるようになったり、あるいはタイピングを誰でもできるようになったら、それらの職業は消失しました。

ということでエンドポイントは機械に代替されやすい、というかなしい話になってしまいます。例えばタクシードライバーも自動運転が完全に行われるようになったら、かなりの数が消えるでしょう。機械の方が安全安心だったら、事故るかもしれない人間より機械選びますよね。電車だって今は運転士と車掌がいますが、これも完全自動運転化されたらゆりかもめみたいに全て中央指令室でドア閉め・発車・停車がオペレータによって行われるようになります。

また、エンドポイントでなくても、AIが得意なジャンルの仕事は消えそうです。

例えば文系の士業なんてのは、条文・判例などから法則性を導き出して回答するというのは明らかにAIの方が得意ですから、事務的な能力で言ったら絶対に敵いようがありません。内科医とかも膨大な症例数を学習データにすれば、診断はAI様の方が全然上でしょう。

となると、AIに完全に代替されないためには、「感情労働」とまでは言いませんが、「この人だからこそ選ぶ」みたいなのが必要なんでしょうね。

例えば、タクシードライバーだったら、ただ目的地に連れていくだけではなく、頼んでもいないのにおせっかいにも話しかけてきて、世間話をするとか(もちろんそれが嫌いな人もいるでしょう)、それでお客を満足させる。

文系士業でも、インターネット空間にはない商慣習・法慣習・そのほか人間だからこそある義理人情的なサムシングを解する人に頼む、とかそういう方向性でしょうか。

となると、いよいよ昔気質の職人というのは消えて、一億総サービス業化の時代、それがイヤなら先述の通り「抽象⇔具象」を自在に行ったり来たりできる、具体的には「歴史的にはAという出来事があった。また、仕事でもBというプロジェクトがあった。AやBって、表面的には全く違う時代背景や出来事だけど、その背景にある失敗の構図は実は共通なのでは?その失敗を抽象化して、それを次から行うCという案件で活かせないだろうか?」みたいなことです。

全く関係ないと思われることから実は共通の法則を導き出す、みたいなやつですかね。

自己紹介

Japan
sakurabar(さくらば)。1993年生まれ。修士(教育学)→中小企業でパソコンをいじる日々。ねこがすき。 お問い合わせはsakurabar0701あっとまあくgmail.comまで。 Twitter(@sakurabarss)のDMでも同じアドレスに通知が行きます。

このブログを検索

ブログ アーカイブ

カテゴリ

QooQ