2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
服部佑樹氏:ギットハブ社の服部です。本日は、「開発生産性をあげる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.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦