🤖

Duet AI Assisted operations検証

2023/10/20に公開

こんにちは、SREディビジョンの小林です。
この記事では Duet AI Assisted Operationsの各機能紹介と、検証結果について記載しております。
各機能は、以下の項目でまとめています。

  • 機能概要
  • 利用における条件
  • 検証内容
  • 類似製品、他製品との違い(Duet AI in Cloud Consoleのみ)
  • 本機能のメリット
  • どのようなユーザにフィットするか
  • 実運用、開発に利用できるかの考察、使用感

Duet AI Assisted Operationsとは

現在プレビュー版のDuet AIの中でもGoogle Cloudの運用支援にフォーカスしている機能となります。
主な機能として以下の3点が取り上げられています。
各機能の詳細については、それぞれの項目で解説します。

  • Duet AI Cloud Console
  • Summarize logs with Duet AI
  • Trobuleshoot erros with Duet AI

https://cloud.google.com/duet-ai

Duet AI in Cloud Console

機能概要

Google Cloudコンソール内のDuet AIペインを用いてチャットベースで疑問点等を解消する機能となっています。
リソースの説明から作成方法など幅広く対応しています。
プレビュー版リリース当初は、答えられる質問の種類が少なかったですが、徐々に増えているように見受けられます。
以下、簡単な操作画面の解説になります。

  1. 画面上部赤枠のDuet AIアイコンをクリックします。

  2. 画面右側にチャット専用画面が表示されます。
    Enter a prompt hereへ質問を送信することで回答を得ることが可能です。

利用における条件

  • リージョン等の制約はなし
  • プレビュー版を申し込むことで利用可能

検証内容

  • 以下の簡単な構成についての質疑
    • Webサーバはnginx
    • WebサーバとSQLサーバが接続する必要がある
    • Webサーバは、ロードバランサを介して負荷分散を実施する
  • 構築を実施するユーザはGoogle Cloudの利用が初めての想定

1. 🤖構成する必要があるリソース、構築手順について質問

# 質問文

以下の要素をGoogle Cloudを用いて構築したいと考えています。
構築する必要があるリソースや構築手順について簡単に説明していただけますでしょうか。
構築するユーザは、Google Cloudへの知見がなく、今回が初めての構築となります。

・Webサーバはnginx
・WebサーバとSQLサーバが接続する必要がある
・Webサーバは、ロードバランサを介して負荷分散を実施する
# 回答文

わかりました。では、以下の手順で構築を進めていきましょう。
1. まず、Google Cloud Platform Consoleにログインします。
2. 次に、プロジェクトを作成します。
3. プロジェクトを作成したら、VPCネットワークを作成します。
4. VPCネットワークを作成したら、サブネットを作成します。
5. サブネットを作成したら、インスタンスを作成します。
6. インスタンスを作成したら、nginxをインストールします。
7. nginxをインストールしたら、SQLサーバをインストールします。
8. SQLサーバをインストールしたら、WebサーバとSQLサーバを接続します。
9. WebサーバとSQLサーバを接続したら、ロードバランサを作成します。
10. ロードバランサを作成したら、Webサーバをロードバランサに登録します。
これで、構築は完了です。
スクリーンショット

構築にあたってGoogle Cloudで必要となるリソース簡単な構築手順について質問しています。
詳細な内容は省かれていますが、回答された内容に問題はなく、この回答を元に深掘りすれば構築が可能と考えられます。
質問文の中にも簡単にと含めているので、回答内容が省かれている可能性があります。

試しに簡単にを省いて質問したところ、かなりの長文で詳細に答えてくれました。
以下、一部抜粋しております。

「コンソールを開く」ボタンをクリックします。
「Compute Engine」メニューをクリックします。
「インスタンス」タブをクリックします。
「インスタンスを作成」ボタンをクリックします。

2. 🤖リソースの説明についての質問

# 質問文

GCEインスタンスとは、どのようなリソースでしょうか。
Webサーバ構築に必要なことは分かりましたが、
他のユースケースについても知りたいです。
5〜7行の箇条書きで答えてください。
# 回答文

GCEインスタンスとは、Google Cloud Platform上で動作する仮想マシンです。
GCEインスタンスは、ウェブサーバ、アプリサーバ、バックオフィスアプリケーション、データベース、キャッシュ、メディアストリーミング、マイクロサービス、仮想デスクトップ、開発環境など、さまざまなアプリケーションを実行するために使用できます。
GCEインスタンスは、使いやすく、スケーラブルで、信頼性が高く、セキュリティが強いです。
GCEインスタンスの詳細については、GCEインスタンスとは*1をご覧ください。

*1:共有されたリンク

スクリーンショット

リソースレベルのでの質問になります。
ただ、データベースなどGCEインスタンスで推奨されていないサービスまで記載があったのが気になりました。
他リソースについてもいくつか質問しましたが、概要レベルでは、どれも問題なくGoogle Cloudを利用した構築や運用を実施する上での事前知識の取得に活かすことができる印象です。
1度の質問でドキュメントの提示までしてくれる点が一番のお気に入りです。

類似機能、他製品との違い

  • Bard
    • より詳細な内容で回答
      • 同様の質問文を実施した際により詳細な回答を得ることが出来ました。
        nginxの導入を提示する箇所は同様ですが、Bardの場合は、より具体的な手順についても回答してくれました。
        以下いくつかの回答を抜粋しています。
        # 構成する必要があるリソース、構築手順について質問
        Webサーバをインストールする
        Compute Engineインスタンスに接続して、Webサーバをインストールします。
        sudo apt update
        sudo apt install nginx
        
        # 構成する必要があるリソース、構築手順について質問
        具体的なユースケースとしては、以下のようなものが挙げられます。
        
        ECサイト:Webサーバを使用して、商品の販売や顧客管理を行う。
        会員サイト:Webサーバとデータベースを使用して、会員情報の管理やサービス提供を行う。
        業務システム:Webサーバやデータベースを使用して、業務処理を行う。
        ゲーム:Webサーバやバックエンドサービスを使用して、ゲームを実行する。
        ビッグデータ分析:HadoopやSparkを使用して、ビッグデータを分析する。
        
      • Bard固有の 他の回答 を利用することでより精度の高い回答がもらえることがあるため、今回の質問においては、Bardが優れています。
      • 回答の情報量が多いため、ある程度の知識があった場合に利用するのが良いと思います。

本機能のメリット

  • 作業の流れを容易にイメージ
    • 条件を提示するだけで構築手順を簡単に教えてくれるため、未経験者であってもある程度の構築イメージを持つことは可能であると考えています。
    • Google Cloudへの知見がない場合は、必要となるリソースを1から調査したり、導入方法も手探り状態となります。このコストをカットできる点は、非常に大きなメリットになります。
  • 用語調査およびドキュメント調査の時間短縮
  • ブラウザコンソール内で操作を完結できる
    • 個人的にこの機能が最も良いと思います。
      BardやChat GPT等でもタブを分けることで似たような形で実現可能ですが、ドキュメント用のタブを別途開いている場合などは、タブ切り替えの操作が必要となります。
      細かな点ではありますが、このような操作を削ることも大きなメリットと考えています。

どんなユーザにフィットするか

上記のメリットを踏まえた上で以下のユーザには、フィットするものと考えます。

  • ブラウザコンソールで操作を完結させたいユーザ
  • 用語・ドキュメントに関する調査時間を短縮したいユーザ
  • Google Cloudへの知見があまり深くないユーザ

実運用、開発に利用できるかの考察、使用感

今回は、初歩的な内容のみのやり取りとなったため回答の精度に問題を感じることは少なかったです。
複雑な構成や多くの条件を抱える構成などの場合は、回答の精度に問題が発生する可能性があるかもしれません。この点は、追加検証を実施していきたいです。
現状は、用語の調査ドキュメントリンクの場所を聞く際にメリットを感じることが大きいと思います。
他GAIサービスとも機能面で大きな差異がないため、コンソール内で完結させる必要がない場合には、他GAIサービスを利用するのが適切なケースも存在しそうです。

また、細かな点となりますが、Duet AIペインのサイズを変更できないのが難点かと思います。
この点が改善された場合は更に使い勝手が増すため、今後のアップデートに期待しております。

Summarize logs with Duet AI

機能概要

ロギングで確認できるログエントリがどういったログか確認する機能です。
内部の動きとしては、ログエントリの内容を定型分でDuet AI in Cloud Consoleに送信するものとなっております。
以下、簡単な操作画面の解説になります。

  1. ロギング画面へ移行し、確認したいログをクリックします。
  2. 画面中央赤枠のExplain this log entryをクリックします。
  3. 画面右側にチャット専用画面が表示されます。
    特定の定型文で質問が送信され、即座に回答を得ることが可能です。

利用における条件

  • リージョン等の制約はない
  • プレビュー版を申し込むことで利用可能
  • 対応言語は英語のみ

検証内容

  • 検証環境で発生しているログを対象に確認
  • カスタムログを書き込んで対象ログを確認

プレビュー版リリース当初は、回答できるログが非常に少なかったですが、こちらも期間を置くごとに徐々に増えているように見受けられます。現状答えられないログがほとんどない状態です。
以下、チュートリアルのエラーログに対しての回答です。

もちろん。ログエントリを説明する箇条書きは次のとおりです。 
・TestClassクラスのテストメソッドでエラーが発生しました。
・このエラーは、「テンプレート 2 のレンダリング中にエラーが発生しました」というメッセージを含むjava.lang.RuntimeException によって発生しました。
・チュートリアルサービスのバージョンv1でエラーが発生しました。
・プロジェクトIDは **project id** です
・エラーは**timezone** に受信されました。

*英語での回答をGoogle翻訳で翻訳しています。

本機能のメリット

  • ワンクリックでログサマリーを確認できる
    • この機能が1番気に入っています。ログエントリから該当するボタンをワンクリックするだけでDuet AIペイン内に回答文を返してくれるため、非常に楽に利用できます。
  • ログ内容をしっかりとまとめてくれる
    • ログ内容に見慣れていない場合は、どのようなログなのかを判断することが難しいため、ワンクリックで操作を完結できるのは、素晴らしいです。
    • 実際のログ内容も箇条書き5行程度でまとめられており、どのようなログなのか判別しやすいようになっています。

どんなユーザにフィットするか

  • ブラウザコンソールで操作を完結させたいユーザ
  • ロギングで確認できるログへの知見が浅いユーザ
  • アラート対象のログエントリの棚卸しを実施するユーザ
    • かなり具体的な例となっていますが、ログアラートを設定する際には、設定したアラートに対してログエントリを棚卸しする必要があります。
      多くのログエントリの棚卸しをする際に1件1件ログエントリを開いて中身を確認するのは、非常に時間もコストもかかり、精神的にも疲れます。
      本機能を用いていれば、これらの作業の1つ1つがワンクリックで完結できるため、このコストを抑えることが可能です。

実運用、開発に利用できるかの考察、使用感

繰り返しになりますが、ワンクリックで可能な点が非常に良い機能だと考えています。
プレビュー版リリースから回答精度も向上してきているため、今後のアップデートにより期待が高まります。
現状の問題点としては、英語のみの対応となっており、設定から英語に変更する必要がある点かと思います。
この点が改善されれば、更に利用しやすい機能になっていきます。
今後監視設計を実施していく必要があるユーザの方々は、ぜひ利用することを検討してみてはいかがでしょうか。

Trobleshoot errors with Duet AI

機能概要

Error Reportingで出力されたエラー内容から
トラブルシューティングを提示してくれる機能となっています。
Summarize logs with Duet AIと似た機能です。
以下、簡単な操作画面の解説になります。

  1. Error Reporting画面へ移行し、確認したいエラーをクリックします。
  2. 画面上部赤枠のTROUBLESHOOTING SUGEESTIONS.をクリックします。
  3. 画面右側にチャット専用画面が表示されます。
    特定の定型文で質問が送信され、即座に回答を得ることが可能です。

利用における条件

  • リージョン等の制約はない
  • プレビュー版を申し込むことで利用可能
  • 対応言語は英語のみ

検証内容

  • 検証環境で発生しているログを対象に確認
  • カスタムログを書き込んで対象ログを確認

Summarize logs with Duet AIと同じくプレビュー版当初から回答できるログが徐々に増えているように見受けられます。
Error Reportingの内容に対して、どのようなとラブルシューティング手順を実施したら良いか簡単な内容で提示してくれます。
以下、検証内容の抜粋になります。

・ログで特定のエラー メッセージを確認してください。
・アプリケーションのソース コードをチェックして、エラーがないか確認してください。
・アプリケーションの構成をチェックして、エラーがないかどうかを確認してください。
・アプリケーションの環境にエラーがないか確認してください。
・アプリケーションの依存関係をチェックして、エラーがないかどうかを確認します。

*英語での回答をGoogle翻訳で翻訳しています。

回答からも分かる通り、トラブルシューティングの流れは回答してくれますが、
ログ内容からどのようなエラーが発生しているかについてまでは、回答してくれないものが多かったです。

本機能のメリット

  • ワンクリックでError Reportingへの対応方法を確認できる機能が有効

どんなユーザにフィットするか

  • ブラウザコンソールで操作を完結させたいユーザ
  • Error Reportingに対してのアクションイメージが湧かないユーザ
    • 具体的な指示はないものの、ある程度の指針は回答してくれるため、ファーストアクションの判断材料して有効と考えています。

実運用、開発に利用できるかの考察、使用感

現状の回答精度では、ファーストアクションの判断材料として有効ですが、具体的なトラブルシューティング方法までを提示しないケースが多かったように感じます。
また、英語のみの対応となっているため、この点も運用する際のハードルの1つとなります。
ですが、Summarize logs with Duet AIでも取り上げた通り、ワンクリックで対応できることが大きなメリットとなっているため、今後回答精度が向上することと日本語対応することでより優れたサービスになると考えています。

まとめ

全体通して、他サービスと比較して遜色ない機能を有していると考えています。
その点を踏まえて、ブラウザコンソールでの操作の完結ワンクリック操作は、非常に優れている機能となっています。
Duet AI Cloud Console以外は、日本語対応していない点は、運用する際の課題となりますが、今後のアップデートで改善されるものと考えています。
また、プレビュー版リリース当初から回答できるものが徐々に増えているように見受けられるため、今後が一番楽しみなサービスです。
Google Cloudを利用する際には、今後必須になると考えられるため、今後も情報をキャッチアップを続けていきます。

Discussion