ホームページ >テクノロジー周辺機器 >IT業界 >Github Copilotとは何ですか?すべての人のためのAIペアプログラマー
Github Copilot:AIプログラミングパートナー、効率を向上させるための強力なツール
コアポイント:
プログラマーの作業の大部分は、コードの作成に費やされています。コードエディターなどのツールは、構文のヒント、コードスニペット、デバッグの提案などのヘルプを提供できます。しかし、人工知能(AI)を活用して、より多くのコードを書くのに役立つツールがある場合はどうなりますか?それがGithub Copilotが目指していることです。
最近Twitterを閲覧していて、公式のGithubアカウントが投稿したこのツイートを見ました:
Github Copilot -AIプログラミングパートナーに会います。 [link] [picture]
- github(@github)2021年6月29日
私は、AIがコードを書くのを支援するというアイデアに驚いた(すべての重い持ち上げを行うことさえ)ので、Github Copilotページを訪れました。
すべてをスキップすると、ページの下部に直接移動してテスト方法を見つけます。 GitHub Copilot Technologyのプレビューに登録するようユーザーに呼びかけるバナーを見ました。
数日(または数週間)待った後、私は技術プレビューにアクセスしましたが、今ではAIを書くことができます。
github copilotとは何か、私の経験、それがあなたにどのように影響するか、またはなぜそうでないのかを学ぶために読み続けてください。
copilotは、GithubとOpenai(Microsoftによって強くサポートされている)のコラボレーションの結果です。 GPT-3モデルに基づいたCodexと呼ばれる新しいAIシステムを搭載しています。
GPT-3は、単純なプロンプトに基づいてテキストシーケンスを生成できる言語モデルである生成事前処理コンバーターの第3世代を表します。 Codexはこのモデルから派生しており、テキストだけでなく、最も人気のある言語の一部でもコードを生成できます。
Copilotは、GitHub上の公開されているリポジトリから数十億行のコードでトレーニングされているため、コードがこのAIツールをある程度改善した可能性があります(後で進みます)。
ほとんどのプログラミング言語をサポートしていますが、現在、Python、JavaScript、TypeScript、Ruby、およびGoで最適に機能しています。
Github Copilotがどのように機能し、現在何ができるかを見てみましょう。
co操縦士の設置は非常に簡単です。テクノロジーのプレビューにアクセスできる場合は、[拡張機能]タブでVSコード拡張子を検索してアクティブにするだけです。
GitHubアカウントにログインする必要があります。これにより、Tech Previewにアクセスできるかどうかを確認できます。
現時点でcopilotを使用する唯一の方法は、VSコードにあります。これは、Copilotのページに応じてしばらく続く場合があります。
次の例のほとんどは、Pythonを使用します。これは、このAIツールが取り扱いに非常に優れている言語の1つであるためです。
コードの提案がどのように機能するか
github copilot編集中のファイルのコンテキストに基づいて複数の提案を生成します。ファイルに書いたコメントと以前に書いたコードに基づいて提案を提供します。
Copilotは、コードの提案を提供した後に使用するように促します。データセットの平均値を計算する関数を作成して、カピロットをテストしましょう。 Copilotのコメントと関数名のみを提供します。
ご覧のとおり、灰色のテキストはcopilotによって提案されています。tabキーを押して受け入れることができます。しかし、私が最初の提案が気に入らない場合は、ctrl ]を使用して、より多くの提案を閲覧するか、ctrlreturnサイドバー複数のソリューションを表示するためのサイドバー。
印象的ですね。しかし、別の課題を設定しましょう。これで、Copilotは、ユーザーがスペース分離の数値を入力できるようにする主な関数を作成する必要があります。これらの数値を分割し、結果リストをcompute_average関数に渡してから、結果を印刷する必要があります。
最後に、copilotに、実行エントリポイント__name__ == '__main__'
を使用してメイン関数を呼び出すように依頼します。
これは、Github Copilotが私がそれを与えるコマンドに基づいて機能的なPythonスクリプトを書く方法です。もちろん、コードは完璧ではありません。たとえば、compute_average関数はsum(dataset) / len(dataset)
に簡素化できますが、全体的な結果はかなり良好です。
copilotは非常に興味深いツールです。一見すると、コードを書くのはとても楽しかったし、テストに何時間も費やしました。
エンコードに数日を費やすと、慣れます。場合によっては、ドキュメントの作成や新しいテクノロジーの使用を開始するなど、本当に便利です。
ただし、完璧ではなく、以下にプログラミングプロジェクトを構築するときに存在する可能性のある問題をリストしています。
コードの完了が遅い
現在(Copilotはまだ技術的なプレビュー段階にあることを忘れないでください)、コードの完了は少し不器用になる可能性があります。
特にラインごとの提案では、Copilotがそれを示す前に解決策を入力することができました(平均タイピング速度は1分あたり48ワードであり、他の開発者と比較しては速すぎません)。
これは、インターネットから提案を取得し、何らかの遅延を引き起こす可能性があるため、理解できます。もちろん、それはあなたのインターネットの速度に依存します。
さらに、Copilotは通常、より広い完了を提供します。これは、上記のテストで示されているように、単純な関数方法が示唆するよりも多くのリソースを必要とします(Copilotが配置されているサーバー上)。ワークフローの中断
これらの初期段階では、重要なプロジェクトを構築するときに使用するツールではありません。
もちろん、Copilotがいつ到着することを提案するかはわかりません。到着すると、AutoCompleteに気を取られるため、ワークフローを中断できます。
私に提案するコードのすべての部分を見るのは面倒なので、私はしばしばこれに遭遇します。幸いなことに、Nat Friedman(GithubのCEO)はTwitterでこれを解決し、Copilotはコード提案を生成しているかどうかを示すUIを持っているかもしれません。
提案されたコードにはエラーがあります
時々、Copilotの提案は機能しません。 Github Copilotページで確認したように、最高のコード完了を提供することが最善ですが、それはCopilotが提供するコードのすべてのスニペットが完全に機能することを意味しません。
Tech Previewにアクセスできるか、将来の読者であるかにかかわらず、Copilotを最大限に活用するために、最高のドキュメント文字列と関数名(上記のコードスニペットと同様)を提供する必要があります。
さらに、Copilotは露出したGithubコードベースをトレーニングに使用するため、古いライブラリまたはモジュールのスニペットを使用することをお勧めします。
依存関係は時間の経過とともに発生する可能性があります
copilotは非常に強力なツールですが、時間が経つにつれてそれに頼ることができます。
エディターにスタックオーバーフロークライアントを直接入れるようなものです。クライアントは、コードを理解し、可能な限り10のソリューションを提供しようとしています。
誤解しないでください。それは素晴らしいことであり、時間が経つにつれて業界で最も使用されているツールの1つになるかもしれませんが、時間が経つにつれて、それに大きく依存する問題になる可能性があります。この少しの詳細は、Copilotが提供するいくつかの結果が予想どおりに機能しない可能性があるという事実と組み合わされています...
copilotは、あなたが理解できないかもしれないというコードを提案します前のコードの例のいくつかに示されているように、copilotは大量のコードを示唆し、それが何をしているのかを理解するのは必ずしも容易ではありません。
Copilotに重い仕事をさせてもらうのは魅力的です。これは、初心者(および高度な開発者)の学習プロセスに影響を与える可能性があります。ほとんどの場合、コーディングの最も重要なことはエラー除外であり、Copilotが提供するコードの完了はこのスキルの開発に影響を与える可能性があります。
これを避けるために、copilotが提案したコードを必ずチェックして、それが何をしているのかを理解してください。
copilotは、多くの間違いを持つまったく新しいツールです。 Github Copilotのディスカッションページにいくつかの投稿を作成しました(テクニカルプレビューバージョンのユーザーが利用できます)、コミュニティからフィードバックを受け取りました。
このツールは、公式にリリースされる前にこれらの問題のほとんどを解決すると考えています。
copilotの訓練をめぐる論争
Creative Commonsの下で、公開データを使用してAIモデルをトレーニングしても、少なくともCCライセンスの場合は、デフォルトで著作権を侵害しません。ナット・フリードマンはまた、このトピックについてTwitterスレッドで話しました:
一般的に言えば:(1)パブリックデータでのMLシステムのトレーニングは合理的な使用です(2)出力は、コンパイラのようにオペレーターに属します。
知的財産と人工知能は、今後数年間で世界中の興味深い政策議論のトピックになると予想しており、私たちは参加したいと思っています!
- ナットフリードマン(@natfriedman)2021年6月29日
copilot(ページで主張するように)は単なるコードシンセサイザーであるため、トレーニングセットから文字通りの提案を抽出するのは本当に奇妙です。
このツールはまだ技術的なプレビュー段階にあります。つまり、GitHubコードベースから個人データを出力する可能性がありますが、この問題は公式にリリースされる前に解決されると予想できます。
別のAIコード完了ツールであるTabnineもGitHubのオープンソースコードを使用してトレーニングされていることを忘れないでください。これは何度か発生しました。
要約、一般に、AIモデルはパブリックデータを使用してトレーニングされると考えられています。しかし、この慣行に関する倫理的な問題は、今後数年間で強力な議論のトピックになります。
github copilotをトレーニングしていますか?
Github Copilotは常にコードスタイルを学習しており、ニーズを満たす準備ができています。ただし、他のユーザーの提案としてプライベートコードを共有することはありません。これは非常に重要だと思います。これは、VSコードに機密情報を直接保存する構成ファイルを編集することがあります。これらのファイルが他のファイルと共有されるとひどいことです。
一方、他のAIモデルと同様に、Copilotはユーザーから学び、提案の受け入れや拒否などの特定の操作にテレメトリデータがあることがよく知られています。興味がある場合は、Copilot Telemetryページを必ずチェックしてください。Copilotは開発者に取って代わりますか?
現実世界の問題を理解し、ソリューションを計画し、それを構築し、世界を示すことはできません。開発者(および人間)が完了するのが得意なタスクです。
たぶん、将来的には、Github Copilotのようなツールは、プログラミング業界のゲームを変えます。仕事を盗むのではなく、開発者の生産性を向上させることで変化します。前世紀(コードエディター、デバッグツールなど)から開発者エクスペリエンスを改善しており、AIテクノロジーの台頭により、より多くのツールを作成することを楽しみにしています。
人間が月に上陸する前に、「コンピューター」は数学的な手術を手動で解決するのが非常に得意な人たちにとって私たちの名前だったことを思い出してください。今日私たちが知っているように、コンピューターは数え切れないほどの仕事を破壊しましたが、新しい雇用も生み出し、最終的には世界最大の産業の1つを生み出しています。
copilot
Copilotはまだ公開されていないため、お気に入りの言語でコーディングするには、より成熟した製品が必要になる場合があります。
一方、コーディングを学習し始めたばかりの場合は、コードロジックを実装せずに役立つため、これらの代替案を使用することを強くお勧めします。より多くの経験があると、CopilotをAIプログラミングパートナーとして使用できます。
intellisense
あなたがVSコードユーザーの場合、初日からIntellisenseを使用している可能性があります。これは、VSコードのデフォルトのコード完了システムであり、使用しているプログラミング言語ごとにサポートをインストールできます。必要なのは、[拡張機能]タブを起動し、サポートされている言語を検索することです。
kite
Kiteは、ほとんどすべての人気のあるコードエディターにインストールできるAIコード完了サービスです。ほとんどの場合、十分な無料プランを提供し、ブラウザを起動せずにPythonドキュメントを表示できる完全に機能するコピー(GitHub Copilotとは異なり)タブもあります。
残念ながら、Kiteの主な目標はPythonなので、決定を下す前にTabnineをチェックする価値があります。
tabnine
Tabnine(以前はCodotaとして知られていました)は、何百万人もの開発者が使用する別のAI完了ツールです。現在、30以上の言語をサポートし、15のIDEにインストールできます。
興味深いことに、TabnineはGitHubで利用可能なパブリックコードを使用してトレーニングされています。これは、GPT-2(GPT-3の以前のバージョン)を使用してコード完了を生成します。 Copilotの技術的なプレビューにアクセスできない場合、Tabnineは良い選択肢かもしれません。
これらの自動補完システムは、マシンで(少なくとも無料バージョン)に実行する必要があることに注意することが重要です。つまり、Github Copilotよりも多くのシステムリソースを消費することを意味します。 Copilotは、リモートサーバーからすべてのコード提案を取得することを忘れないでください。
AIツールがコードを生成するのを見るのは本当に印象的です。 GitHubは、プログラマーを置き換えることではなく、特に機能やクラスの優れたドキュメント文字列を作成するなど、繰り返しエンコードタスクでコーディング効率を改善するのに役立つことを目的としています。
私はしばらくの間copまたはcopまたは全体的に使用した後、いくつかの問題に気付きましたが、全体的には良好な(ただし完璧ではない)コードの提案を提供します。いくつかの一般的なコードの問題の解決策をテストしましたが、結果に非常に満足していました。それを念頭に置いて、上記のように理由で完全に初心者がコピロットを使用すべきではないと思います。
このプロジェクトは非常に新しいため、重要なプロジェクトを構築するときは理想的なパートナーではありませんが、将来的には最も一般的に使用されるコーディングツールの1つになる可能性があります。
「AIプログラミングパートナー」の声明は現実ではないかもしれませんが、将来実現すると思います。
最後に、私はあなたに、Copilotが私がこの結論を書くのを助けていることを知ってほしい。
要するに、この擬似オリジナルの記事は、元のテキストを書き直して、その表現をより滑らかで自然にします擬似原産性の目的が達成されました。
以上がGithub Copilotとは何ですか?すべての人のためのAIペアプログラマーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。