2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
服部佑樹氏:ギットハブ社の服部です。本日は、「開発生産性をあげるGitHub Copilotを徹底解剖!」というところで、ちょっと裏側の実装的なところも含め、どうなっているのかも少しお話できたらなと思います。
その前に、もしかしたらまだ「GitHub Copilot」を「触ったことがないです」という方もいらっしゃると思うので、復習になってしまう方もいるかもしれませんが、「GitHub Copilotとは?」というお話から始めたいと思います。
まず、GitHub Copilotですが、「AI pair programmer」というところで、「Visual Studio Code」のエクステンションとして入れると、AIがコード生成を助けてくれるというものです。
ただ、生成系AIの話で一般的な話ではありますが、静的解析に基づいて出しているわけではないので、もしかしたら間違う可能性がある。もしかしたら文脈と合っていないものが出る可能性もあります。
そういったところも含めて、やはりエンジニアのスキルや知識や諸々の経験みたいなところを、いかに一緒にペアプログラミングしていく中で表せるかになるかなと思います。
開発者の生産性向上というところで、やはりコードを書いているところだけがプログラマーがやるところじゃないですよね。ドキュメントを作成したり、プルリクエストのコメントを書いたり、調査をしたりというところも含めて、けっこう重いタスクだと思うんです。
そうした時にGitHub Copilotだと、コーディングももちろんだいぶ書いてくれるのですが、例えば調査のタスクをする中で、「ChatGPT」じゃないですが、GitHub Copilotに聞いて問題解決していくとか。
あとはその中で、コンテキストスイッチをなるべく減らす。例えば、ブラウザに行ったらエディターに戻って、エディターに行ったらエクセルを開いてみたいなところをなるべく少なくして、マルチタスキングを減らすことで生産性を向上させる、というところも我々はかなりフォーカスしています。
なので、GitHub Copilotで重要なところは2つあって、開発の時にはもちろん精度も大事ですが、反応、スピードもかなり大事にしているところです。
やはり、ChatGPTやチャット系のソリューションでやっていると、けっこう待ちますよね。そうしている間に頭の中からアイデアが抜け落ちてしまうということもなるべく避けたいところです。なので、GitHub Copilotとしては、そういったスピードもなるべく重要視しています。
GitHub Copilotをいじると、けっこう小さいチャンクというか少ない量で返ってくることがあると思いますが、それも実際はその理由があるからです。あまり長いものを返すよりは、どんどん提案してもらって、略すなら略してということをプログラマー側にやらせたほうがいい、そういったところでやっています。
いわゆるオープンソースでもそういう同様のソリューションは出ていて、それらを試したという声も「Twitter(現X)」などで上がっていると思いますが、我々のGitHub Copilotは、実はもう2年ほどの歴史があって、かなりカリカリにチューニングしています。
今の精度にするまでに、GitHubはお金を投資して、人を雇ってやっているので、やはりそういう精度の違いと実装の差は(あります)。
GitHub Copilotはみなさんにエディターの中で使っていただいていますが、バックエンドはもちろんあります。そもそもLLMに対して直接叩くというよりは、その中間層でAPI側がきちんとフィルタリングをしたり、本当に適切なものを返したりという処理をしている実装になっています。
なので、クライアント、バックエンド、あとはLLMと、その3レイヤーでGitHubは GitHub Copilotを作成しています。
やはり、このGitHub Copilotはエディターの中で完結させると。それこそ新しいモデルが出てきたり、いろいろ変わりゆくので、なるべくお客さんには長く使っていただきたい、プログラマーの方、エンジニアの方にも、長く使っていただきたいなということで、このエコシステムの中でいかに全体的な開発者体験、デベロッパーエクスペリエンスを上げるのかをものすごくGitHubは気にしています。
なので、チューニングをしてどんどんどんどん精度を上げていくだけというよりは、例えばプルリクエストを上げた時に、そのコメントを代わりに書いてくれたり、CLIの中で「??」というコマンドを書いて、自然言語で「このコマンドって正規表現も含めどうやって書いたらいいんだっけ?」みたいなことを書くと、少し提案してくれたりなど、そういったところの未来があります。
あと、ドキュメンテーションを見ていろいろ調査するなどのタスクがあると思います。
例えばJavaScriptやTypeScriptの中で調べたり、Googleでとりあえず検索するみたいな(ことをすると思います)。
もちろん、ドキュメントがわかる人、ないし、ここを見たらわかるという勘所がある人はそこを見に行けるのですが、そうではない場合もある。その時にAIがある程度ベクターデータベースですが、まとめて提案してくれる。ドキュメントの中にこういうデータがあったよというところの証跡というか、URLも含めてくれるものも開発しています。
なので、先ほどちょっと出しましたが、GitHub Copilotは、この全体のライフサイクルの中でいかに開発者体験を良くするのかというところを狙っています。
あとは、「Copilot Voice」という、音声でGitHub Copilotを使えるものも開発しています。これはもちろんアクセシビリティの観点もあって、やはりGitHub Copilotも Copilot Chatでもいろいろコンテキストやプロンプトの話をするのですが、条件、ないし、または情報を多く与えてあげれば与えてあげるほど精度がいい提案が返ってくるんですね。
そうした時に、いちいち全部をタイプするのは大変ですよね。もちろんそのコードベースを読んでくれますが、それ以外の情報を提供したい時は、やはり音声の入力がものすごく重要になります。
あとは、「GitHub Copilot for *Your* Codebase」というところで、今のところGitHub Copilotは、Saharaという3.5系のモデルを使っています。
実際にこのGitHub Copilotを使う中で、例えば新しいライブラリや、自分自身のチームのコードは読んでくれないよね、と思う方も多いかもしれません。
例えばチームで書いた共有ライブラリみたいなところも含めて提案してくれるという機能を開発中です。
もちろんエコシステムというお話もありますが、それ以外にも、精度というかたちでも上がっていきます。
(次回へつづく)
関連タグ:
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05