こんにちは、Microsoft Build - AI 開発ツールの未来 のセッションに参加しました2022年入社の海野です。
今回は、そのセッションで紹介されていた 「GitHub Copilot」 と 「Codex」 についてざっくりですが記事を書こうと思った次第です。
GitHub Copilot とは?
GitHub Copilot とは、書いているコードを自動補完を行ってくれるシステムです。
システム自体は Visual Studio Code の拡張機能でインストールするだけで利用可能ですが、 使えるようになるための招待メールが順番待ちです。
ですが、GitHub Copilot は2022年の夏に正式サービスを開始するみたいです。
GitHub Copilot にできること
- 自然言語で書いた内容を理解してその内容に当てはまるコードを手案してくれます。
例:「入力した値が奇数or偶数かを判定する」と書くと、その内容にそって動いてくれるプログラムコードを自動で作成して提案してくれます(コードを書かずにコードを Copilot が書いてくれるそうです)
- 自然言語を12種類以上のプログラミング言語にコード変換することができます。
例:「Hello World!」と入力したらその意思を読みっとって、HTML、JavaScript、Pythonなどの言語で表示される 「Hello World! 」の書き方を提案してくれます。
GitHub Copilot を導入したら、「とりあえず自然言葉で処理を書け」って時代が来そうな感じがして、コードを書く抵抗感を減らせると思いました。
Codex とは?
Codex とは GitHub Copilot の基盤システムで、Python など10以上のプログラミング言語に対応しています。
実行したい命令を文章で入力すれば、Codex が対応するコードを自動生成してくれます。
その活用例が紹介されていたので2つほど紹介します。
言語ベースの CLI【Command Line Interface】での Codexデモ
CLI での Codexデモでは、今まではコマンドを入力して操作してきた PowerShell などを、会話形式で質問することで取得したい情報を返してくれるようになります。
下の表はPowerShell に書いている内容です。
入力した内容 | Codexが返す内容 |
私の IP は何でしょうか? | IPアドレスを返します |
ポート1018で実行されている内容は何ですか? | ポート1018で実行しているプロセスを表示 |
それを止めて | 1018ポートを解放 |
Codexにはゲーム用のコードを書く能力がある
Codex を使っているマインクラフトのアバターに自然言語を使って話しかけるデモです。
Codex はプレイヤーが入力した文字が会話的でるかを理解して、会話の文脈を追って回答することができるそうです。また、Codex はすでに知っている情報を、会話形式で回答しているみたいです。
プレイヤーが言った通りの行動を Codex が示すことができるのは、APIプリミティブを使用してシーンをナビゲートし、プレイヤーを見ることができるからなんだそうです。
下の表はプレイヤーと Codex のデモ中の会話内容です。
プレイヤーが入力した内容 | Codex(steve) が返す内容・行動 |
こんにちは | こんにちは! |
今日は何のゲームをするの? | 私たちは Microsoft をプレイしています! |
夜になると良いアイテムは何ですか? | 夜は松明があると良いです! |
こちらに来てください | ナビゲートできた!(プレイヤーのところまで移動した) |
私の方を見てください | プレイヤーの方を見つめました |
松明を作るには何が必要ですか? | 棒が1本と石炭が1つ必要です! |
チェストまで行って空けてください | 近くのチェストまで移動した |
石炭をチェストから取り出してください | チェストから石炭を取りました |
丸太を取って板材を作ってください | 近くの木を壊していました |
松明を作って置いてください | 作業台で松明を作ってその場に設置しました |
これを使えば、Microsoft のブランチマイニング中に食料や松明がなくなった時に、わざわざ地上まで取りに行かなくても Codex が作って持ってきてくれるので効率的にプレイできそうでいいですね!!
終わりに
Microsoft Build に参加して、知らなかった開発ツールや技術を知れ、その開発ツール「 GitHub Copilot 」があと少しで正式サービス開始をすることに驚きました。
GitHub Copilot が使えるようになったら、どれだけ実用的に使えるのか試してみたいです。
ここでは自分が参加したイベントのことしか書いていませんが、他にもいろんな分野のセッションがあったので興味がある方は覗いてみるのもいいかもしれまん!