
Googleの最新AI技術「Duet AI in Google Cloud」とは
- AI活用
- AWS
- Copilot
- GitHub
- IT・情報通信業
今回は「GitHub Copilot」や「AWS CodeWhisperer」の対抗サービスとなるGoogleの「Duet AI」を検証してみました。
(前の記事:何が変わった?「Windows Copilot」から「Copilot in Windows」へ)
Duet AIとは
Duet AIは、2023年8月にGoogle Cloud の年次カンファレンス「Google Cloud Next ’23」で発表された 開発者向けのAI支援サービスです。

生成AIであるGoogle Bardと同じ言語モデルの 「PaLM2」がベースで使われおり、コーディング支援、SQLクエリー作成、チャット機能など搭載されています。
またDuet AIはVisual Studio Code、JetBrains IDE、Colab Enterpriseなどの複数IDEで利用できる点と20種類以上のプログラミング言語をカバーしていることが特徴です。
Duet AIの料金
2023年11月現在はPreviewバージョンのため 無料で利用できます。

ただしDuet AIを利用するためにGoogle Cloud上でリソースを作成する場合(Cloud Workstationsなど)はその料金が発生するため要注意です。
Duet AIの始め方
Duet AIの場合は「GitHub Copilot」や「AWS CodeWhisperer」と違って少し手順が複雑です。
申請手順
まずはこちらの手順を参考に登録します。
申請が完了するとこの画面が表示されます。

するとメールが届くので「Get Started」を押してプロジェクト番号(※)を追加します。

※Google Cloudで作成したプロジェクト番号でDuet AIを利用する際にプロジェクトに紐づける必要があります
そしてこのメールが届いたら申請作業は完了です。

セットアップ手順
次にgcloud services enable コマンドを使用して、Duet AI の Cloud AI Companion API を有効にします。
(gcloud services enable cloudaicompanion.googleapis.com)

自分のアカウントに以下のロールを付与します。
Cloud AI Companion User (cloudaicompanion.user)
Service Usage Viewer (serviceusage.serviceUsageViewer)

最後にVSCodeの拡張機能から「Google Cloud Code」で検索してインストールして完了です。

Duet AIの使い方
基本的な見方

①:Duet AIの状態(アクティブ)
②:Duet AIが使えるGoogle Cloudのプロジェクト
③:Duet AIのチャット欄
主な使い方
1.コード生成支援
2.チャットでコード生成
3.コードの説明
4.リファクタリング
5.コンソール機能
6.BigQuery
1.コード生成支援
コメントもしくは関数名からユーザーの意図を把握してコードの完成形を提示してくれます。
コメントからのコード生成

関数名からのコード生成

2.チャットでコード生成
GitHub Copilot Xのようにチャットからでもコードを生成してくれます。

GCPでCloud ShellからIAMのロールを付与するコードに関する作成依頼をしたところ、コード生成だけでなく説明もしてくれました。
3.コードの説明
コードの説明機能も当然あります。

ユーザーが描いたコードを選択すると「Explain this」と「Generate tests」ボタンがチャット側に現れます。「Explain this」を選択するとコードについて説明してくれます。
4.リファクタリング
ユーザーが作成したコードをリファクタリングしてくれます。

上記のように分かりづらいコードをシンプルなコードに修正してくれました。
5.コンソール機能
「GitHub Copilot」や「AWS CodeWhisperer」にはなかった「Duet AI」の特徴として、Googleのコンソール上でもDuet AIを使うことができます。
Google Cloudのコンソール画面を開いてトップバーにあるDuet AIアイコンをクリックします。

Duet AIのチャット欄が右側に出てくるのでここで質疑応答ができます。

初期メッセージは英語になっていますが日本語のプロンプトも対応しています。
※ここではクラウドの使い方や設定方法など全般的なことについて質問できます
一つの例として、「Cloud Shell Editorを起動する方法について教えてください。」
というプロンプトを入力したところ、実行方法とCloud Shell Editorについて教えてくれました。

6.BigQuery
Googleならではの機能として2023年11月現在は英語版のみですがBigQueryにも対応しています。
テーブル「company」から社員番号と社員名を取得するというコメントを書いたところ、2行目にSQLのクエリを2行目に生成してくれました。

カラム「name」に‘test’という値を入れる方法についてコメントに書いたところ、 SQL文を生成してくれました。

Duet AIでコーディング検証
最後にDuet AI Chatにサポートを受けつつ「クライアントとサーバー間でチャットができるプログラム」をコーディングしてみました。
まずはプロンプト入力してDuet AIにコードを生成してもらいましたが、エディターに貼り付けて実行してみるとエラーが表示されました。

エラーの内容としては「websocket」モジュールが見つからないというメッセージです。
エラーを解消するために次にnpmコマンドでwebsocketをインストールしました。
しかし再度実行しても同じエラーメッセージが出力されます。
これに関してDuet AIに質問したところ「websocket」モジュールをインストールしてくださいと回答がありました…。
インストールしてもエラーの解消にならなかったため、再度質問しても同じ回答を繰り返しています…。

websocketモジュールのインストール方法について質問して、回答通りに実行してもエラーが解消されませんでした…。
念のため英語で質問しても同様でしたので断念します。

まだプレビュー版のため回答の精度には課題があるのかと思われます。
コーディングサポートAI 4サービス比較
最後に先に検証した「GitHub Copilot」「GitHub Copilot X」「AWS Code Whisperer」と今回の「Duet AI in Google Cloud」の性能を主観的に比較してみました。

率直な感想として開発で使うとなると使い勝手の面で「GitHub Copilot」と「GitHub Copilot X」をハイブリッドで使うのが良さそうです。
しかし「Duet AI」はプレビュー版にも関わらずコード生成能力もチャット機能も他と引けを取らない性能でした。
(参考:まるで電動アシスト自転車!?開発者の強い味方「GitHub Copilot」とは)
(参考:GitHubのChatGPTでコーディング!?「GitHub Copilot X(Chat)」とは)
(参考:AmazonのAIでコーディング??「AWS CodeWhisperer」とは)
まとめ
今回は「GitHub Copilot」「GitHub Copilot Chat」「AWS CodeWhisperer」に続き「Duet AI in Google Cloud」を検証してみました。
実際に使ってみて「Duet AI in Google Cloud」の強み弱みはこのような感じかと思います。
強み
- コンソールからでも利用できる
- Cloud Shell EditorやVSCodeだけでなくGCPのコンソールからでも利用できるためクラウド周りの設定が便利
- チャット機能も搭載
- GitHub CopilotとGitHub Copilot Xが統合されたような機能なので使い勝手がいい
弱み
- 日本語に弱い
- BigQueryのSQLワークスペースをはじめ英語のみをサポートしている箇所がある
- 利用するまでの手順が少し複雑
- GitHub CopilotやAWS CodeWhispererのようにインストールしてすぐ使えるわけではない
- 使い勝手はGitHubの方がよい
- コードの正確性や提案力はGitHub CopilotやGitHub Copilot Xの方が優れていると感じる
全体感を通して2023年11月現在はプレビュー版ですが大きな可能性を感るサービスです。
特にコンソール操作が便利なのでGCPに関わる開発で真価を発揮しそうだと感じました。
これで4つのコーディングサポートAIを試したことになりますが、それぞれ特徴がありましたので開発環境に合わせていずれかを選択するのがいいかと思いました。
次回は「ChatGPT」の最新モデルについて解説します。
(ChaGPTの進化が止まらない。話題の「GPT-4 Turbo」「GPTs」とは)
今回のコラムに関連のある資料

SIer様・ベンダー様向けAzure OpenAI Service開発支援サービス
Azure OpenAI Service開発支援サービスの紹介資料です。 AI業界の市場動向や主な課題、船井総合研究所のAI開発の特徴や事例などがご確認いただけます。