Amazon Q vs Duet AI【個人的まとめ】

## はじめに
こんにちは、Datadog Japan で Sales Engineer をしている [**AoTo**](https://qiita.com/AoTo0330) です。

この記事は **[<font color="#6495ED">AoTo Advent Calendar 2023</font>](https://qiita.com/advent-calendar/2023/aoto) 11日目**の記事です。

AWS re:Invent でついに発表された、AWS による Generative AI アシスタント「[**Amazon Q**](https://docs.aws.amazon.com/amazonq/latest/aws-builder-use-ug/what-is.html)」ですが、これに先立って Google Cloud Next ’23 では「[**Duet AI**](https://cloud.google.com/duet-ai/docs/overview)」が発表されていました。

ちなみに、[**Microsoft Copilot for Azure**](https://azure.microsoft.com/ja-jp/products/copilot) は11月15日前後に Preview の発表と申請が開始されています。

この Gen AI アシスタント機能が、各クラウドサービスプロバイダー上でどのように利用できるのか、現時点での差異や非機能的な面を掘り下げていきます。

:::note warn
この記事は、2023/12/11 時点での情報を元に執筆しています。最新のアップデートは各社の公式ドキュメントよりご参照ください。
:::

## 使用感
**Amazon Q** と **Duet AI** はそれぞれ、マルチモーダルなチャット AI アシスタントとして、各クラウドプラットフォーム上で提供している複数の基盤モデルを元に構成されていると明言されています。
それぞれの主要な基盤モデルを書き出してみるとこのような感じです。

| Amazon Web Services | Google Cloud |
| --- | --- |
| Amazon Titan, Jurassic-2, Claude 2, Llama 2 | PaLM 2, Llama 2, Codey |

:::note info
ちなみに、Amazon Q で利用されている基盤モデルについて質問をすると、関連のありそうな LLM には「Sorry, I can't answer that question. Please ask me a different question about AWS」と返答が来ますが、明らかに違う種類のモデルについては、違うと答えます。

![AmazonQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/3d4c8553-1e85-c1dd-d7b9-667fb99cb7ac.jpeg)

:::

これらの違いがあるものの、チャットに利用できる言語はどちらも英語であり、返答に大きな品質の差を感じることはありません。

どちらも特定の質問へ返答しないように工夫がなされ、ハルシネーションへの対策も行なっています。ですが、リンク切れの発生やコードの内容の正確性についてはそのまま信用して利用するにはまだ難しい点を感じます。

ちょっとした点として、Amazon Q は<INS>ウィンドウサイズを自由に変更できる</INS>点が嬉しいです。AWS ドキュメント上では<INS>位置と大きさを自由に変更して</INS>ドキュメントに被らないように調整でき、AWS Management Console 上でも左右に大きさを広げることができます。

![ManagementConsole_AmazonQ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/8413b816-3785-247c-e5fe-139a7786e5fb.png)

一方で Duet AI は Cloud Console で利用する際は<INS>固定の大きさか、全画面で表示しても画面の半分ほどの幅</INS>にしかなりません。

![CloudConsole_DuetAI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/738fa587-7ae1-6e1f-65d9-098326196d2f.jpeg)


## 使える場所
それぞれを利用できる場所をまとめてみると、以下のようになります。

|  | Amazon Q(CodeWhisperer) | Duet AI |
| --- | --- | --- |
| Console | AWS Management Console | Google Cloud Console |
| IDEs | Visual Studio Code, JetBrains IDE(, AWS Cloud9, Lambda Console, JupyterLab, SageMaker Studio) | Visual Studio Code, JetBrains IDE, Colab Enterprise, Cloud Workstations, Cloud Shell Editor |
| Language | Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, ShellScript, SQL, Scala | Bash, C, C++, C#, Dart, Go, GoogleSQL, Java, JavaScript, Kotlin, Lua, MatLab, PHP, Python, R, Ruby, Rust, Scala, SQL, Swift, TypeScript, YAML |
| Document | **AWS Document** | - |
| Mobile | AWS Console Mobile(pending) | - |
| BizApp | - | **Google Workspace** |

ここから言えることとして、<INS>Amazon Q はドキュメント上で利用できるため普段使いとして重宝しそう</INS>という点です。実際に、既に様々な AWS の情報を調べる際も Amazon Q のアイコンが表示されており、AWS に認証済みのブラウザであればそのままチャットに質問を投げられます。

これに対して、<INS>Duet AI は　Google Cloud のエコシステム全体に適用</INS>されており、Google Workspace で活用できる機能には Google Meet の会議内容の要約や Google Docs から Google Slide を作成したりなど、LLM に限らないマルチモーダルなアシスタント AI としての幅が広がっています。

## 有効化方法
| Amazon Q | Duet AI |
| --- | --- |
| `AmazonQFullAccess`を持つ IAM ユーザーやグループ、ロール | `Cloud AI Companion API`の有効化、`Cloud AI Companion User`と`Service Usage Viewer`を持つプリンシパル  |

どちらも、サービスを利用するために適切な権限設定が必要です。それぞれアカウント、プロジェクトの単位で有効化されるので、適切な権限が設定されていれば、一気にその配下のユーザーが利用できます。


## 挨拶
少し真面目にまとめすぎたので、最後にそれぞれ挨拶してみました。

| Amazon Q | Duet AI |
| --- | --- |
| ![HellotoAmazonQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/b0d6eb40-69c9-127a-9ba9-1fcac94bf887.jpeg) | ![HellotoDuetAI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/266eb9e9-e93d-d009-1319-2012f731be52.jpeg) |

 Amazon Q は「Sorry, I can't answer that question. Please ask me a different question about AWS.」と返します。<INS>AWS の内容以外を受け付けない**真面目なアシスタント**</INS>です。
 Duet AI は「Hello! How can I help you today?」と返してくれます。<INS>明るく挨拶を返してくれる**気さくアシスタント**</INS>です。

 ## おわりに
**Amazon Q**, **Duet AI** も AWS, Google Cloud を利用していく上で欠かせない、優秀なアシスタント AI です。現在のところはアシスタント AI チャットボットとして利用することが多いですが、他にも IDE 上でコードアシスタントとして利用したり、マルチモーダルなモデルとしてクラウドサービス全体のエコシステムで活用する機会が増えるように思います。

 今後は Amazon Q や Duet AI というサービス名自体のカバー範囲自体も広がっていくことが予想されるので、どの機能を指して呼ばれているかを意識してみると良いかもしれません。