Amazon BedrockのPlayground機能の特徴と、ChatGPTとの違いを知る

# はじめに
Amazon Bedrockは、複数のベンダーが提供する生成系AIの大規模言語モデル(LLM)を活用して、様々なタスクを実行するためのプラットフォームです。

Amazon Bedrockが持つ機能の中でも、**Text Playground**と**Chat Playground**は、テキストデータを操作し、分析する際の重要なツールとして位置づけられています。
しかし、これらの機能は一見似ているため、どちらをいつ使うべきかが不明瞭であると感じる方も多いでしょう。
また、これらはユーザーが画面上で利用できる機能であるため、ChatGPTと比較されることがあります。

本記事では、Text PlaygroundとChat Playgroundの違い、さらにはこれらとChatGPTとの違いを明確にし、各ツールの適切な使い方を理解できることを目的としています。

# Text Playground
Amazon BedrockのText Playgroundは、ユーザーがAWSマネジメントコンソールを利用して、テキストデータをモデルに入力し、その結果をリアルタイムで確認できるインタラクティブな環境を提供します。
## Text Playgroundの使い所
このツールは、**モデルの動作を試したり、その性能を確認したりする**際に、非常に役立ちます。

Text Playgroundでは、ユーザーは任意のテキストプロンプトを入力できます。
プロンプトは、モデルに対する質問や指示を含む短いテキストであり、これに対してモデルが応答します。
ユーザーがプロンプトを送信すると、モデルが生成したテキストを即座に表示できます。

Text Playgroundでは、一度に一つのプロンプトをモデルに送信することができ、そのプロンプトに対するモデルの応答を得ることができます。
これにより、特定のプロンプトに対するモデルの反応や、モデルが生成するテキストのスタイルやトーンを確認することができます。

また、Text Playgroundは、モデルのパラメータを画面上で調整しながら、テキスト生成の結果を確認することができます。
これにより、ユーザーはモデルの挙動を細かくコントロールし、期待する結果を得ることができます。

Text Playgroundは、**生成系AIのモデルとテキストデータを簡単に組み合わせてテストできる場**として、データサイエンティストや開発者、研究者にとって非常に便利なツールと言えます。

また、Text Playgroundには、AWSマネジメントコンソール上のリクエストをAPIで再現する場合のリクエストパラメータをコピーする機能があります。
動作を確認したら、画面上の「View API request」を押すと、パラメータをコピーすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/03f02e91-631f-85d1-8409-d634a35d3cbd.png)

# Chat Playground
Amazon BedrockのChat Playgroundは、ユーザーがAWSマネジメントコンソールを利用して、自然言語でモデルと**対話できる**インタラクティブな環境を提供します。
ここでは、ユーザーがテキストプロンプトを送信し、モデルからの応答をリアルタイムで受け取ることができます。

使い勝手から見て、ChatGPTと比較されるのは、このChat Playgroundと言えるでしょう。

## Chat Playgroundの使い所
Chat Playgroundはモデルとの対話や実験、テストに適していると言えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/4bcb6c59-bc4d-9ff4-186e-65ba42a3a656.png)

Chat Playgroundは、テキストプロンプトを送信するだけでなく、対話形式でモデルとやり取りできる点が特徴です。
ユーザーは一連のプロンプトを送信し、それぞれに対するモデルの応答を確認できます。
これにより、モデルとの対話がスムーズに進み、より深い理解や洞察を得ることができます。

Chat Playgroundでも、Text Playgroundと同じく、設定を調整することができます。
ユーザーは、利用可能なモデルをドロップダウンメニューから選択し、それぞれのモデルの特性やパフォーマンスを確認できます。
また、Text Playgroundと同じく、推論パラメータの設定も調整可能で、ユーザーは生成されるテキストの長さやスタイルをコントロールできます。

## Instructions(指示)機能を使いこなす
プロンプトの入力欄の上に「Add instructions」というリンクがあります。
このInstructionsを追加する機能を使うと、モデルに対して特定のスタイルやトーンで応答するよう指示できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/c4081816-4672-c95a-d475-50a2f10a6f41.png)

以下は、その具体例です。

例1: フォーマルなトーンでの応答を指示
```
Instruction: 「フォーマルなトーンでお答えください。」
Prompt: 「気候変動について情報を提供してください。」
Expected Response: 「気候変動は、主に人間の活動、特に温室効果ガスの排出によって引き起こされる地球の気候の長期的な変化を指します。これは社会全体で取り組むべき重要な課題であり、持続可能な実践を通じてこの問題に対処することが不可欠です。」
```

例2: エンターテイニングなスタイルでの応答を指示
```
Instruction: 「エンターテイニングで魅力的なスタイルでお答えください。」
Prompt: 「コーヒーについて教えてください。」
Expected Response: 「ああ、コーヒー！「朝は誰とも話したくない」を「おはよう、世界！」に変えてくれる魔法のポーションです！エチオピア高地の原産で、この魅惑的な飲み物は、一口ずつ、何世紀にもわたって人々の心をつかんできました！」
```

例3: 簡潔に回答することを指示
```
Instruction: 「簡潔にお答えください。」
Prompt: 「光合成とは何ですか？」
Expected Response: 「光合成は、植物が太陽光をエネルギーに変えるプロセスで、二酸化炭素を取り込み酸素を放出します。」
```

これらの例のように、Instructions(指示)を設定することで、モデルの応答が変化します。
ユーザーはこれらの指示をカスタマイズして、特定のコンテキストや目的に合わせた応答をモデルから得ることができます。

# Text PlaygroundとChat Playgroundの使い分け
Chat PlaygroundとText Playgroundは似ているようでいて、厳密にはそれぞれ異なるユースケースに適していますが、基本的にユーザーはChat Playgroundを使いこなせれば問題ないでしょう。

Chat Playgroundは対話形式のインタラクションに適しており、ユーザーは連続したプロンプトを送信し、それぞれに対する応答をモデルから受け取ることができます。
これは、ChatGPTと同じく、対話のコンテキストを保持しながら、モデルとの対話を進める場合に有用です。

Text Playgroundは単一のプロンプトに対する応答だけを生成するのに適しています。
対話のコンテキストを考慮せず、一度のプロンプトに対するモデルの反応を確認したいだけであれば、Text Playgroundで十分です。

記事執筆時点では、Chat PlaygroundとText Playgroundは対話するかしないかの違いであり、基本的にはChat Playgroundが使えればモデルの動作確認には十分ですが、前述のパラメータのコピー機能はText Playground側にしかありませんので注意が必要です。

# Playgroundの設定を調整する
両方のPlaygroundを実行する際に調整できる設定について解説します。
画面上でトライアンドエラーによって設定を調整し、期待する結果を得るまでパラメータの変更を繰り返して確認することができます。

## ストリーミングオプション
リアルタイムでテキストを生成するためのオプションで、画面上でチェックされていると、テキストが1文字ずつ流れるように生成されます。
チェックの状態で料金などが変わることはなく、基本的にはチェックされた状態のままで問題ないでしょう。
このオプションは、ストリーミングをサポートするモデルでのみ利用可能で、記事執筆時点では一部のモデルに対応しないものがありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/80e8cf37-bb94-bda8-f86c-0d436ec1a483.png)

## モデルプロバイダとモデルの選択
ドロップダウンメニューからモデルプロバイダを選択し、その後、利用可能なモデルを選択します。
カスタマイズ (ファインチューニング) したモデルも選択できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/28b72f0b-fa96-29eb-6f16-a70bdc8c14dc.png)
記事執筆時点で、選択できるモデルは以下の通りです。

* AI21 Labs
    * Jurassic-2 Mid (Model ID: ai21.j2-mid-v1)
    * Jurassic-2 Ultra (Model ID: ai21.j2-ultra-v1)
* Amazon
    * Titan Text G1 - Lite (Model ID: amazon.titan-text-lite-v1)
    * Titan Embeddings G1 - Text (Model ID: amazon.titan-embed-text-v1)
    * Titan Text G1 - Express (Model ID: amazon.titan-text-express-v1) ※限定プレビューリリース
    * Titan Text G1 - Agile (Model ID: amazon.titan-text-agile-v1)
* Anthropic
    * Claude (Model ID: anthropic.claude-v1)
    * Claude (Model ID: anthropic.claude-v2)
    * Claude Instant (Model ID: anthropic.claude-instant-v1)
* Cohere
    * Command (Model ID: cohere.command-text-v14)

## 推論パラメータの調整 (オプション)
デフォルト設定はほとんどのプロンプトに適していますが、特定のユースケースには適していない場合があります。
モデルの推論パラメータを調整することで、生成されるテキストのコンテキスト、スタイルなどが変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/c26a38a3-116d-6e21-66b5-b3b6e08b22c9.png)
このパラメータの定義はモデルによって微妙に異なるため、複数のモデルを使用する場合には、その違いに注意が必要です。

# ChatGPTとの違い
Amazon BedrockのChat Playgroundは、その使い勝手からChatGPTと比較されやすいと考えられます。
以下に、扱えるモデルの違いを除く、両者の特徴の違いを整理しました。

## Amazon Bedrockだけが持つ特徴
最大の特徴であり、ChatGPTとの明確な違いと言えるのは、**Amazon Bedrockではユーザー独自のモデルをトレーニング(ファインチューニング)してデプロイすることができ、Chat Playgroundの会話に使える**点です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/59f3e54d-f820-d78a-2437-ba5e1ff113e2.png)

また、リクエストする時の推論パラメータを画面上で調整することができます。

さらに、AWSの他のサービスと同様に、AWSのセキュリティポリシーやプラクティスに基づいて認証を管理できるため、企業で求められるレベルのセキュリティ要件を満たすことができます。

## ChatGPTだけが持つ特徴
ChatGPTは、プラグイン連携の選択肢が非常に幅広く、様々なプラグインと連携して機能を拡張できます。
これらのプラグインの中には、既に企業が運営するWebサービスのデータを扱えるものや、インターネット上のWebサイトのURLに接続するものがあり、ニーズに応じて回答内容を調整することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211986/e0452f36-cc74-fe31-5784-3aa414d96f47.png)

また、ChatGPTでは過去のチャットの会話履歴を保存して、次にログインした時に、続きから再開することができます。
また、会話履歴を他人に共有するためのURLを発行することもできます。

# まとめ
これまで述べた特徴を踏まえると、Amazon BedrockのText PlaygroundとChat Playgroundは、APIで各モデルにリクエストした時の回答内容を事前に確認するための、実験やテストに使う目的がメインとなりそうです。
特に、ファインチューニングしたモデルからの回答を画面上で素早く確認できることは、Amazon Bedrock独自の特徴であり、開発時の助けになるでしょう。
Text PlaygroundとChat Playgroundで調整できる項目には差がなく、基本的にはChat Playgroundをメインに使えば良いと判断して良さそうです。

Amazon BedrockのPlaygroundをChatGPTと比較すると、チャット形式でモデルと会話できる点では同じですが、記事執筆時点ではプラグインが使えない、AWSマネジメントコンソール上の操作で会話履歴の保存と共有ができないなどの違いがあります。
ユーザーは、これらのサービスの利用目的が異なると割り切って、使い分けていくべきでしょう。

# 参考文献
* [**Amazon Bedrockの公式ページ**](https://aws.amazon.com/bedrock/)
    * Amazon Bedrockの概要と特徴に関する公式情報です。
* [**Amazon Bedrockの料金ページ**](https://aws.amazon.com/bedrock/pricing/)
    * Amazon Bedrockの料金に関する詳細情報です。
* [**Amazon Bedrockの公式ドキュメント**](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html)
    * Amazon Bedrockのサービス概要を説明した公式ユーザーガイドです。
* [**Text Playgroundに関するドキュメント**](https://docs.aws.amazon.com/bedrock/latest/userguide/text-playground.html)
    * Text Playgroundの使用方法と特徴を説明したドキュメントです。
* [**Chat Playgroundに関するドキュメント**](https://docs.aws.amazon.com/bedrock/latest/userguide/chat-playground.html)
    * Chat Playgroundの使用方法と特徴を説明したドキュメントです。