🥭

OpenAI プロンプト学習は不要?プロンプト生成機能誕生!

2024/10/06に公開

はじめに

OpenAIでプロンプトを生成する機能が追加されたと話題になっています。これまで生成AIからより良い回答を得るためにプロンプトエンジニアリングを学習して実践し身に着ける必要がありました。このプロンプトを生成する機能が追加されたことにより、プロンプトが生成AI活用に対して重要なのは変わらないですが、プロンプト作成やその学習のアプローチは今後変わっていきそうです。

そもそもプロンプトのコツとは?

YouTubeや書籍などで様々な情報がありますが、OpenAI公式でも情報を公開しています。
https://platform.openai.com/docs/guides/prompt-engineering
6つトピックをあげていますね。
日本語にするとこんなかんじでしょうか。

  • より関連性の高い回答を得るために、詳細を含める
  • モデルに特定の役割や人格を採用するよう指示する
  • 入力の異なる部分を明確に示すために区切り記号を使用する
  • タスクを完了するために必要な手順を指定する
  • 例を提供する
  • 望ましい出力の長さを指定する
    今回のプロンプトを生成する機能は上記を踏まえたものと考えられます。

ためしてみる

実際に試してみましょう。
プロンプトを生成する機能はChatGPT画面では使うことができず、APIのPlaygroundで使用することができます。
下記にアクセスしましょう。
https://openai.com/index/openai-api/
PlaygroundをクリックしてChat画面を表示したうえで、星マークをクリックします。

どのようなプロンプトを書きたいか入力して「Click」を押下します。

すると下記のようにプロンプトが生成されます。
プロンプトの大枠は非常に良いと思います。ただ、中身については利用者によって変更箇所があるかなと思います。このため、プロンプトを生成して、その後人が要件に合わせて変更を加えて最終化するアプローチが良さそうですね!

生成されたプロンプト(OpenAI)
要約された文書をもとに、魅力的で情報豊富なブログ記事を作成してください。

- ドキュメントをレビューし、重要なポイントを洗い出します。
- 読者に価値を提供するために、ポイントを掘り下げて説明を追加します。
- 読みやすく、親しみやすい口調で文章を組み立てます。
- 適切なサブヘッドラインを使用し、構造を明確にします。

# 手順

1. **ドキュメントのレビュー**: 元の要約文書を読み、記録した重要なポイントを確認します。
2. **ポイントの展開**: 重要ポイントを基に、追加情報を調べ、必要に応じて詳細を加えます。
3. **文章の構成**: 序文、本文、結論の順に情報を整理し、流れるような構成を作成します。
4. **スタイルとトーンの調整**: フレンドリーで読みやすい口調を保ちつつ、専門的な知識を伝えるバランスを取ります。
5. **再確認と校正**: 誤字脱字や文法を見直し、読みやすさをさらに向上させます。

# 出力形式

- 日本語のブログ記事形式で出力してください。
- 段落ごとに整理し、適切なサブヘッドラインを配置してください。
- 目標の読者に合わせて内容を調整してください。

# 例

**入力要約**: 「この技術は最新のAIアルゴリズムを使用してデータ解析を行い、より高精度な予測を可能にします。」

**出力ブログ記事**: 
1. **最新技術の紹介**
   最新のAIアルゴリズムは、データの解析を一新します。この技術を用いることで、従来の方法では得られなかった高精度な予測を行うことが可能になりました。
2. **AIアルゴリズムの利点**
   高度なデータ解析によって、・・・ 

(現実の例は最低300〜500字程度の長さが理想的です)

生成されたプロンプトを試してみる

それでは、直近ニュースになったOpenAI Dev Dayですが、Realtime APIが話題になっていますね。この公式アナウンスを元にしたブログ記事作成を例に生成したプロンプトを試してみましょう。
まずは、公式アナウンスですが下記URLとなります。
https://openai.com/index/introducing-the-realtime-api/
これをNotebookLMで概要を出力します。

で、ChatGPTのGPT-4oにもどり、生成したプロンプト+概要をインプットします。

ブログ記事案が生成されました。
中身は要チェックですが、ブログの構成や章立ては良い感じかなと思いました。

出力されたブログ記事案
OpenAIのリアルタイムAPI発表:革新するマルチモーダルな体験

2024年10月1日、OpenAIは全ての有料開発者向けに「リアルタイムAPI」のパブリックベータ版を発表しました。この新技術は、開発者が低レイテンシでマルチモーダルなアプリケーション体験を構築できるように設計されており、自然な音声対話や効率的な開発プロセスを実現します。ここでは、その主要なポイントを掘り下げて解説します。

1. 自然な音声対話体験の実現
このリアルタイムAPIは、従来のChatGPTの音声モードと同様に、6種類のプリセット音声を利用することで、より自然な音声対話を提供します。これにより、複数のモデルを組み合わせる必要がなくなり、単一のAPI呼び出しだけで高度な会話体験が可能です。例えば、言語学習アプリや教育ソフトウェア、カスタマーサポートなど、多様なアプリケーションに応用することが期待されています。

ユーザー体験を一段上に
音声アシスタントやカスタマーサポートの分野で、音声認識や合成を駆使したシームレスな対話体験が求められる中、リアルタイムAPIはその需要に応えるものです。会話の流れがスムーズになることで、よりリアルなコミュニケーションが可能になります。

2. 効率的な開発プロセス
従来の音声アシスタント開発では、音声認識、テキスト処理、音声合成といった複数の技術を個別に統合する必要がありました。しかし、このAPIはその複雑な作業を簡略化し、単一のAPIで全てのプロセスを処理します。これにより、開発者は短期間で高品質な音声体験を構築できるようになりました。

時間とリソースの節約
音声処理に関する複雑なコードを書いたり、複数のライブラリを連携させる必要がないため、開発のスピードアップが可能です。これにより、開発者は新しいアイデアや機能の実装により多くの時間を割くことができ、アプリケーション全体の改善が期待できます。

3. 安全性とプライバシー
APIの不正使用を防ぐために、リアルタイムAPIには自動監視や人間によるレビューなど、多層的なセキュリティ対策が講じられています。また、ChatGPTで使用されているGPT-4oモデルと同様の高度な音声モードを活用し、安全かつプライバシーを重視した運用が可能です。

データ保護の重要性
AI技術が進化する中で、データの安全性とプライバシー保護はますます重要になっています。OpenAIは、ユーザーのデータが安全に扱われるよう、厳格な監視体制を整えています。この点は、開発者だけでなく、最終的なユーザーにとっても信頼性を高める要素となるでしょう。

4. 今後の展望
現在、少数のパートナーとテストを進めながら段階的に展開されていますが、今後さらに多くの機能が追加される予定です。視覚や動画などのモダリティのサポートやレート制限の引き上げ、公式SDKの提供、プロンプトキャッシングなどの拡張が計画されています。

進化し続ける技術
将来的には、音声以外のモダリティもサポートすることで、さらに多様なアプリケーションが開発されるでしょう。リアルタイムAPIの可能性は無限大であり、今後のアップデートによってさらに強力なツールへと成長することが期待されます。

まとめ
OpenAIのリアルタイムAPIは、自然でスムーズな音声対話体験を提供し、開発者が効率的にアプリケーションを構築できる強力なツールです。安全性とプライバシー保護に優れ、今後の展開によってますます多くのユースケースで活用されることが期待されます。このAPIを活用することで、未来のコミュニケーションのあり方が大きく変わるでしょう。

Claudeでも同様の機能がある

実はClaudeにも同様の機能があります。
以前下記記事でも特集しています。
https://zenn.dev/acntechjp/articles/9c6ca88a241b21
OpenAIと比較してみましょう。
同じ文言を入力してプロンプトを生成してもらいます。

すると出力されます。

内容は下記です。Claudeの場合はAPIの出力フォーマット(マークダウン)を意識したプロンプトになっていますね。

生成されたプロンプト(Claude)
あなたは優秀なコンテンツライターです。与えられた要約を元に、魅力的で読みやすいブログ記事を作成する任務があります。以下の手順に従って、要約を充実したブログ記事に展開してください。

まず、要約された文書を確認してください:

<summary>
{{SUMMARY}}
</summary>

この要約を基に、以下の指示に従ってブログ記事を作成してください:

1. 要約の内容を十分に理解し、主要なポイントを把握してください。

2. ブログ記事の構造を以下のように設定してください:
   - キャッチーなタイトル
   - 導入部(読者の興味を引く短い段落)
   - 本文(3〜5つの小見出しを含む)
   - まとめ(主要ポイントの再確認と締めくくりの文)

3. 要約の各ポイントを詳しく説明し、例や具体的な情報を追加して内容を充実させてください。

4. 読者にとって価値のある情報や洞察を提供するよう心がけてください。

5. 文章は簡潔で分かりやすく、かつ魅力的な表現を使用してください。

6. 必要に応じて、読者の興味を引く質問や、行動を促す呼びかけを含めてください。

7. ブログ記事全体の長さは800〜1200字程度を目安としてください。

8. 専門用語がある場合は、簡単な説明を加えてください。

9. 文章全体を通して、親しみやすく、会話的なトーンを維持してください。

最後に、完成したブログ記事を<blog_post>タグ内に記述してください。タイトルは<title>タグ、本文は<body>タグ内に記述してください。

それでは、与えられた要約を魅力的なブログ記事に変換してください。

OpenAIとClaudeが生成したそれぞれのプロンプトを評価してみる

どちらが良いのかなと思いまして、比較、評価してみましょう。
比較、評価してもらうためのプロンプトは下記のとおりです。
比較、評価にはGPT-4oとClaude 3.5 Sonnetを使います。

比較、評価してもらうためのプロンプト
2種類のプロンプトを生成するAIに「要約された文書をブログ記事にする。日本語のプロンプトでお願いします。」とリクエストしました。
「OpenAI」「Claude」のそれぞれが生成したプロンプトをもとに、それぞれを比較、評価してください。
"""
## OpenAIが出力したプロンプト
"""
要約された文書をもとに、魅力的で情報豊富なブログ記事を作成してください。

- ドキュメントをレビューし、重要なポイントを洗い出します。
- 読者に価値を提供するために、ポイントを掘り下げて説明を追加します。
- 読みやすく、親しみやすい口調で文章を組み立てます。
- 適切なサブヘッドラインを使用し、構造を明確にします。

# 手順

1. **ドキュメントのレビュー**: 元の要約文書を読み、記録した重要なポイントを確認します。
2. **ポイントの展開**: 重要ポイントを基に、追加情報を調べ、必要に応じて詳細を加えます。
3. **文章の構成**: 序文、本文、結論の順に情報を整理し、流れるような構成を作成します。
4. **スタイルとトーンの調整**: フレンドリーで読みやすい口調を保ちつつ、専門的な知識を伝えるバランスを取ります。
5. **再確認と校正**: 誤字脱字や文法を見直し、読みやすさをさらに向上させます。

# 出力形式

- 日本語のブログ記事形式で出力してください。
- 段落ごとに整理し、適切なサブヘッドラインを配置してください。
- 目標の読者に合わせて内容を調整してください。

# 例

**入力要約**: 「この技術は最新のAIアルゴリズムを使用してデータ解析を行い、より高精度な予測を可能にします。」

**出力ブログ記事**: 
1. **最新技術の紹介**
   最新のAIアルゴリズムは、データの解析を一新します。この技術を用いることで、従来の方法では得られなかった高精度な予測を行うことが可能になりました。
2. **AIアルゴリズムの利点**
   高度なデータ解析によって、・・・ 

(現実の例は最低300〜500字程度の長さが理想的です)
"""
## Claudeが出力したプロンプト
"""
あなたは優秀なコンテンツライターです。与えられた要約を元に、魅力的で読みやすいブログ記事を作成する任務があります。以下の手順に従って、要約を充実したブログ記事に展開してください。

まず、要約された文書を確認してください:

<summary>
{{SUMMARY}}
</summary>

この要約を基に、以下の指示に従ってブログ記事を作成してください:

1. 要約の内容を十分に理解し、主要なポイントを把握してください。

2. ブログ記事の構造を以下のように設定してください:
   - キャッチーなタイトル
   - 導入部(読者の興味を引く短い段落)
   - 本文(3〜5つの小見出しを含む)
   - まとめ(主要ポイントの再確認と締めくくりの文)

3. 要約の各ポイントを詳しく説明し、例や具体的な情報を追加して内容を充実させてください。

4. 読者にとって価値のある情報や洞察を提供するよう心がけてください。

5. 文章は簡潔で分かりやすく、かつ魅力的な表現を使用してください。

6. 必要に応じて、読者の興味を引く質問や、行動を促す呼びかけを含めてください。

7. ブログ記事全体の長さは800〜1200字程度を目安としてください。

8. 専門用語がある場合は、簡単な説明を加えてください。

9. 文章全体を通して、親しみやすく、会話的なトーンを維持してください。

最後に、完成したブログ記事を<blog_post>タグ内に記述してください。タイトルは<title>タグ、本文は<body>タグ内に記述してください。

それでは、与えられた要約を魅力的なブログ記事に変換してください。
"""

GPT-4oの比較、評価結果

GPT-4oの比較、評価結果としては、「実務的で確実な手順を求める場合はOpenAI、より自由でクリエイティブなアプローチを求める場合はClaudeが適している」とのことでした。

GPT-4oの比較、評価結果
両方のプロンプトには、要約を基にブログ記事を作成するという目的がありますが、アプローチや細かい指示の内容に違いがあります。以下は、OpenAIとClaudeのプロンプトの比較と評価です。

### 1. **文章の構造と指示の明確さ**
- **OpenAI**のプロンプトは、具体的なステップを詳細に説明しています。各ステップで何をすべきかが明確で、特に「ポイントの展開」や「文章の構成」の指示は非常に実務的です。ドキュメントのレビューからポイントの掘り下げ、文章のトーン調整、最終的な校正まで、全てが論理的に説明されています。
- **Claude**のプロンプトは、やや自由度が高く、要約を理解した上で、ライターが自分で記事を構築することを求めています。特に「キャッチーなタイトル」や「読者の興味を引く質問・行動を促す呼びかけ」の指示は、記事の魅力を高めるための工夫が強調されています。しかし、具体的な手順というよりは、ライターが判断を要する部分が多いです。

### 2. **トーンとスタイルの指示**
- **OpenAI**は「フレンドリーで読みやすい口調」を明確に求め、専門知識を伝えるバランスを取るよう指示しています。特に「スタイルとトーンの調整」という具体的な項目を設けており、ライターが意識すべきポイントがはっきりしています。
- **Claude**も「親しみやすく会話的なトーン」を推奨しており、シンプルで魅力的な表現を意識するよう求めていますが、やや抽象的な指示に留まっている印象です。

### 3. **出力形式と内容の要求**
- **OpenAI**のプロンプトは、ブログ記事を段落ごとに整理し、適切なサブヘッドラインを配置するように求め、また「目標の読者に合わせて内容を調整」するという具体的な指示を与えています。このように、実際のブログ記事の形式をかなり具体的に設定しており、出力例も示されているため、初心者にも分かりやすいです。
- **Claude**のプロンプトでは、ブログ記事の長さ(800~1200字)や、小見出しの数(3~5つ)などの指示があり、より記事全体のボリュームや構成に対する具体的なガイドラインを示しています。形式的な面では、ブログ記事の要素(タイトル、導入部、本文、まとめ)についてしっかりと定義している点が優れています。

### 4. **ライティング支援の観点**
- **OpenAI**のプロンプトは、手順を一歩ずつ追う形式で、よりフォーマルな文章や実務的なライティング支援が強調されています。読みやすさや校正の重要性にも言及しているため、品質を重視するライティングに向いていると言えます。
- **Claude**のプロンプトは、よりクリエイティブで、魅力的な記事作成に焦点を当てています。キャッチーなタイトルや読者を引き込むための質問など、マーケティング的な要素も取り入れているため、エンターテイメントやセールス寄りのブログ記事には有用です。

### 総評:
- **OpenAI**のプロンプトは、文章の構成や手順が非常に詳細で、ライティングに不慣れな人やよりフォーマルな文章が求められる場合に最適です。
- **Claude**のプロンプトは、自由度が高く、クリエイティブな要素を取り入れた魅力的な記事を作成するのに適しています。特にマーケティングやセールス関連のコンテンツ作成に向いています。

どちらのプロンプトも、それぞれの目的に応じて有用であると言えますが、**実務的で確実な手順を求める場合はOpenAI**、**より自由でクリエイティブなアプローチを求める場合はClaude**が適しているでしょう。

Claude 3.5 Sonnetの比較評価結果

Claude 3.5 Sonnetの比較、評価結果としては、「OpenAIのプロンプトはより構造化されており、汎用性が高いです。一方、Claudeのプロンプトはより詳細で具体的な指示を提供しており、特定の形式のブログ記事を生成するのに適しています。」とのことでした。

Claude 3.5 Sonnetの比較評価結果
それぞれのプロンプトを比較・評価すると、以下のような特徴が見られます:

構造と詳細さ:

OpenAIのプロンプトは、より構造化されており、「手順」と「出力形式」を明確に分けています。
Claudeのプロンプトは、1つの連続したリストとして指示を提供していますが、より詳細な指示が含まれています。


具体性:

OpenAIのプロンプトは、各ステップでの具体的な行動を示していますが、比較的簡潔です。
Claudeのプロンプトは、ブログ記事の構造や長さなど、より具体的な指示を提供しています。


柔軟性:

OpenAIのプロンプトは、入力される要約の形式を特定せず、より汎用的です。
Claudeのプロンプトは、要約を<summary>タグ内に配置することを想定しており、より特定の入力形式を想定しています。


出力フォーマット:

OpenAIのプロンプトは、日本語のブログ記事形式での出力を指定していますが、具体的なタグ付けは要求していません。
Claudeのプロンプトは、<blog_post>、<title>、<body>タグを使用した特定のフォーマットを要求しています。


例示:

OpenAIのプロンプトは、簡単な入力例と出力例を提供しています。
Claudeのプロンプトは、具体的な例を提供していませんが、より詳細な指示を通じて期待される出力を説明しています。


トーンと表現:

両方のプロンプトが読みやすく親しみやすい文章スタイルを求めていますが、Claudeのプロンプトはより明確に「会話的なトーン」を指定しています。


追加情報:

Claudeのプロンプトは、専門用語の説明や読者の興味を引く質問の追加など、より多くの具体的な要素を要求しています。



総合評価:
両方のプロンプトは効果的ですが、それぞれ異なる強みがあります。OpenAIのプロンプトはより構造化されており、汎用性が高いです。一方、Claudeのプロンプトはより詳細で具体的な指示を提供しており、特定の形式のブログ記事を生成するのに適しています。
使用目的や期待される出力の詳細さによって、どちらがより適切かが変わってくるでしょう。より自由度の高い記事を求める場合はOpenAIのプロンプト、より構造化された具体的な記事を求める場合はClaudeのプロンプトが適していると言えます。

私個人的な見解

Claudeのほうが具体的な指示になっているかもしれませんが、OpenAIの方が構造化して書かれており、人間があとで補正するときに補正しやすいなと思いました。

さいごに

いかがでしたか。このプロンプトを生成する機能は生成AIを活用するうえで有効だと考えています。特に生成AIによりよい回答を出力してもらうためにプロンプトをどう作ったらよいかわからないという方は活用してみてはいかがでしょうか。

Accenture Japan (有志)

Discussion