Github Copilt とは何? †
- コメントやコードを途中まで書くと、続きのコードを書いてくれるサービス
- 使えるIDE
- Visual Studio Code
- Visual Studio
- JetBrains?
- Neovim
- 有料 $10/月 or $100/年
- 30日の無料お試し期間あり
アカウントを作る †
- https://github.com/ でアカウントを作る(無料)
- https://github.com/github-copilot/signup で GitHub? アカウントに Copilot サービスを追加する
- 迷うのは最後の、提案するコードの種類くらい
- Suggestions matching public code (デフォルト Allow)
- → ライセンス上問題のあるコードでも提案するかのフラグ。自分は Block に変更
- Allow GitHub? to use my code snippets for product improvements (デフォルト☑)
- → 自分のコードを Copilot に提供するかのフラグ。自分はそのままにしておいた。仕事で使う場合は、禁止にするかな
VSCode へのインストール †
- GitHub? Copilt plugin をインストールする
- GitHub? Copilot Chat plugin もインストールするが、こちらの方は GitHub? Copilt plugin をインストールすると自動インストールされる
- インストールが完了すると、VSCode の右下に [Sign in to GitHub?] と表示されるので、クリックすると Web ブラウザで GitHub? へログインする
使ってみる †
- Chat
- Ctrl+I で、Copilot Chat を開いて、出してほしいコードの内容を指示すると、対応するコードが自動生成される Chat GPT みたいなもんやね
- Code completion
- コードを書き始めると、薄い文字で補完候補が表示される "# set" を入力した段階で "the seed for reproducibility" が補完候補として提案される。そう、それ入力しようとしてたとこなんだけど・・・もしかして頭の中覗かれている!?。tab で確定
- 引き続き、次のようなコードが提案されるので、tab で確定。うゎ、ナニコレ怖わ😨
- うーわ、何これ
- コメントのしかも一部分を書くだけで、どんどんコード補完される
- 優秀な部下 (Copilot) がどんどんコードを書いてくれるようにも感じられるし、自分の頭の中に手を突っ込まれて考えを抜き出されてるように感じる
- まだ、かろうじてこう感じているけど、いずれこれにも慣れるだろう。そして、Copilotが提案するコードを自分では理解していないにもかかわらず、最初から自分がそう考えていたと思うようになるだろう。人間として骨抜きにされるんじゃないかという恐怖すら覚えるな
- DevCotainer? は、VSCode の開発環境の一種で、Docker で立ち上げたコンテナ環境に、ホストの(Windows, Linux端末で動く) VSCode からリモート接続する。
+----HOST (Windows,Linux)------+
|+-Docker-+ |
|| | |
|| VSCode---------------VSCode | <-- (o) (o)
|| 本体 | GUIのみ| |
|+--------+ | へ
+------------------------------+ User
- DevContaienr? を使う目的
- チームで開発するときに開発環境をそろえる
- あるいは特殊な環境(例えば Cuda/Cudnn を使うとき)が必要でホストOSの方を汚したくない
- 汚したくないというか・・・開発環境を作るのがめっちゃ大変で、誰か(GoogleやNvidia)が整備したコンテナがあるとき
- これを手動で整備するんじゃなくて、設定ファイルに基づいて半自動でやってくれる
- DevContainer では、コンテナ側で動く VSCode の設定を devcontainer.json に定義する
{
"name": "KerasExam",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.defaultInterpreterPath": "/usr/local/bin/python3.11",
"python.formatting.autopep8Path": "/usr/local/bin/autopep8",
"python.formatting.blackPath": "/usr/local/bin/black",
"python.formatting.yapfPath": "/usr/local/bin/yapf"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-azuretools.vscode-docker", // To avoid the vscode on the devcontaier recommends it.
"oderwat.indent-rainbow",
"github.copilot",
"github.copilot-chat"
]
}
},
"runArgs" : [
"--runtime=nvidia",
"--gpus","all",
"--add-host=host.docker.internal:host-gateway"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// 8888 : jupyter notebook
// 6006 : TensorBoard
"forwardPorts": [6006, 8888],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "pip3 install --user -r requirements.txt",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
}
- extensionsセクションに github.copilot と github.copilot-chat を指定すればよい
- Web認証は特に求められなかった。ホスト側の VSCode が認証されているからかな、
Jupyter notebook では使えんの? †
- VSCode の plugin なんで、Web 上で動く Jupyter notebook では使えない
- ただ、VSCode で note を動かす場合は、Copilot の機能を使える
Deep Learning