Skip to content

Latest commit

 

History

History
253 lines (170 loc) · 14.3 KB

basic-prompt.md

File metadata and controls

253 lines (170 loc) · 14.3 KB
weight title description icon date lastmod draft toc
33
良いプロンプトの基礎
生成AIを上手に使うために
Thumb_Up
2024-01-20T05:57:52+09:00
2024-01-20T05:57:52+09:00
false
true

利用者から生成AIへのの指示、プロンプトを扱うための技術は「プロンプトエンジニアリング」と呼ばれています。

{{% alert icon="📖" context="light" %}} AI(人工知能)から望ましい出力を得るために、指示や命令を設計、最適化するスキルのことです。
ChatGPTなどの生成AIを使いこなすために注目されるようになりました。
生成AIは、命令(プロンプト)の出し方によって、出力されるコンテンツの質が大きく異なるため、より適切なものを入力するスキルが求められています。
参考:野村総合研究所 プロンプトエンジニアリング {{% /alert %}}

ここでは様々な論文や書籍、Webサイトで紹介されてきたプロンプトの原則を3つ紹介します。

{{% alert icon="" context="info" %}} 詳しい技術についてはDair.AIが公開しているPromptengineeringGuideやGENERATIVE AI FOR BEGINNERSのプロンプト・エンジニアリングの基礎をご参照ください。P4Usの[リンク集]({{% relref "/docs/links" %}})にも掲載しています。 {{% /alert %}}

{{< table "table-responsive" >}}

日時 このページで使用した生成AI
2024/1/20 ChatGPT(GPT-3.5)
{{< /table >}}

🌞 明確な指示を出す


指示が明確ではないと生成AIの回答の質は低下します。
回答の質は「利用者が求めている生成物かどうか」なので、きちんと利用者の目的・意図を伝えましょう。

次のプロンプトは悪い例です。

システムメンテナンスの告知文つくって

{{% alert icon="🤖" context="success" %}} もちろんです。以下はシステムメンテナンスの告知文の例です。


【システムメンテナンスのお知らせ】

いつも弊社のサービスをご利用いただき、誠にありがとうございます。お客様により良いサービスを提供するため、システムメンテナンスを実施いたします。メンテナンス作業の詳細は以下の通りです:

日時: メンテナンス開始日時:[日付] [時刻] メンテナンス終了予定日時:[日付] [時刻]

影響範囲: このメンテナンス作業中、以下のサービスが一時的に利用できなくなります:

  • [サービス名1]
  • [サービス名2]

メンテナンスの目的: このメンテナンスは、システムの安定性とパフォーマンスを向上させるためのものです。お客様によりスムーズで安全なサービス提供を継続できるよう、定期的なメンテナンスが必要です。

お客様へのお願い: メンテナンス中、サービスが一時的にご利用いただけなくなりますことをお詫び申し上げます。何かご不明点やご質問があれば、お気軽にお問い合わせください。

何か予定されている作業がある場合、メンテナンスの終了予定時刻をご考慮いただき、ご迷惑をおかけいたしますことをご理解いただきたく存じます。

ご理解とご協力を賜りますようお願い申し上げます。ご不便をおかけいたしますが、お客様により良いサービスを提供できるよう努力いたします。

何かご質問があれば、お気軽にお問い合わせください。今後とも変わらぬご愛顧を賜りますようお願い申し上げます。

以上、ご理解とご協力を賜りますようお願い申し上げます。

お客様のご協力に感謝いたします。

[会社名またはサービス名] [連絡先情報]


このテンプレートを必要に応じてカスタマイズし、システムメンテナンスの告知にご利用いただけます。 {{% /alert %}}

一見すると丁寧に長い文章を作ってくれたように見えますが、利用者の目的・意図が分からないので、回答も抽象的です
より明確な指示を心がけた例と比較してみましょう。

あなたはWebシステム運用のスペシャリストです。
以下の文脈と要件に従って、利用者向けの告知文を作成してください。
 
### 文脈 ###
運用している[WebシステムA]の「XXX」項目内にある機能「YYY」を廃止する。
理由は、学術論文データベースである[DB-W]が今まで使用していたSOAP APIが20XX年12月31日で終了し、RESTAPIに移行するため。
よって12月24日を以って「YYY」は使用不可となる。
 
### 条件 ###
* 「[WebシステムA]をいつもご利用いただきありがとうございます。」から始める
* 最初から最後まで丁寧な言い回しを心がける
* 告知文は日本語で400文字程度とする

{{% alert icon="🤖" context="success" %}} [WebシステムA]をいつもご利用いただき、誠にありがとうございます。この度、システムの運用に関する重要なお知らせがございます。

2023年12月24日をもって、本システム内の「XXX」項目にある「YYY」機能の提供を終了させていただくこととなりました。これは、本機能が依存している学術論文データベース[DB-W]のSOAP APIが同年12月31日でサービス終了となり、新たにREST APIへと移行されるためです。

皆さまには、ご利用いただいている機能の一部を終了させる形となり、大変ご迷惑をお掛けいたしますが、今後とも[WebシステムA]を宜しくお願い申し上げます。なお、移行期間中に何かご不明な点などございましたら、お気軽にサポートまでお問合せください。 今後とも、皆さまの研究支援に努めてまいりますので、何卒ご理解とご協力を賜りますようお願い申し上げます。 {{% /alert %}}

きちんと要件を書くことで、利用者の目的・意図に沿った回答が生成されました。
また構造的に指示を出すと精度が向上することも明らかになっています。

具体的に、明確な指示を出す方法をいくつかあげます。

- 条件を指定する

プロンプトでは最初から最後まで丁寧な言い回しを心がけると指示していました。
このように回答に影響を与える条件を指定することができます。
他にも「高校生にでも伝わるように」「組織の執行部向けです」なども考えられます。
フィルターをかけるように、自分が望む生成物に近づくような条件を指定しましょう。


- 出力形式を指定する

プロンプトでは告知文は日本語で400文字程度とすると指示していました。
そのほか、「テーブル形式で」「箇条書きにして」などの指定が可能です。
他の出力形式の例は[基本的なマークダウン記法]({{% relref "/docs/essence/markdown" %}})をご参照ください。


- 具体的な情報を入力する

プロンプトでは
運用している[WebシステムA]の「XXX」項目内にある機能「YYY」を廃止する。
理由は、学術論文データベースである[DB-W]が今まで使用していたSOAP APIが20XX年12月31日で終了し、RESTAPIに移行するため。
よって12月24日を以って「YYY」は使用不可となる。 と指示していました。
極めて重要なので、次のセクションで説明します。


以上のポイントをおさえ、明確な指示を出すためのプロンプトテンプレートもあります。
代表的なテンプレートを紹介しますので、ぜひご活用ください。

テンプレート

# 命令書:
あなたは{プロの編集者}です。
以下の制約条件と入力文をもとに{最高の要約}を出力してください。

# 制約条件:
- 文字数は300文字程度。
- 小学生にもわかりやすく。
- 重要なキーワードを取り残さない。
- 文章を簡潔に。

# 入力文:
{入力文章}

# 出力文:

参考:


📗 具体的な情報を入れる


具体的な情報も回答の質と精度を上げるためには重要です。
この「情報」にはドメイン知識も含まれます。

{{% alert icon="📖" context="light" %}} ドメイン知識(domain knowledge, ドメインナレッジ)とは、特定の専門分野や業界についての知識、知見のこと。
専門家やその領域に詳しい人が持つような体型的な専門知識のことである。
参考:ドメイン知識(ドメインナレッジ) {{% /alert %}}

利用者が持ちうる情報やデータを提供するほど、利用者の目的・意図に沿った回答が返ってくる傾向にあります。

都職員のアイデアが詰まった文章生成AI活用事例集より、「職場で他の職員に説明する際の、資料のドラフト」を作るプロンプトを例に説明します。
(「見出しは#### からはじめてください」は私が追記しています)

# 役割
優秀な企画者

# 指示
DX推進に消極的な職員が前向きに取り組めるようなDXのメリットを説明する資料を作成してください。

# 資料の活用場面
必ずしも全員がデジタルテクノロジーに詳しくない事業所において、DX推進を効果的に進める方法を説明する。

見出しは#### からはじめてください

{{% alert icon="🤖" context="success" %}}

DXのメリットとは何か?

デジタルトランスフォーメーション(DX)は、現代のビジネスにおいて非常に重要な要素となっています。DXのメリットは、消極的な職員が前向きに取り組むために非常に魅力的なものです。以下では、DXのメリットについて説明します。

1. 効率向上

DXは、業務プロセスを効率的に改善するためのツールとして活用されます。自動化されたタスク、データ分析、クラウドベースのシステムを導入することで、業務の効率化が実現され、職員は時間を節約し、より重要な業務に集中できます。

2. リアルタイム情報へのアクセス

DXはリアルタイムで情報にアクセスできる環境を提供します。職員は必要な情報をいつでもどこでも取得でき、迅速な意思決定が可能となります。これにより、業務の遅延やボトルネックが減少し、生産性が向上します。

3. カスタマーエクスペリエンスの向上

DXは顧客との関係を向上させる手段としても機能します。デジタルプラットフォームを活用して、顧客とのコミュニケーションやサービス提供をカスタマイズし、顧客満足度を高めることができます。これは事業成績の向上につながります。

4. リモートワークのサポート

DXはリモートワークをサポートするためのツールとしても重要です。デジタルコラボレーションツールやクラウドベースのシステムを活用することで、職員は場所に縛られずに仕事を行うことができます。これは柔軟性を高め、職員のワークライフバランス向上にも寄与します。

5. 競争力の向上

DXは市場競争力の向上にも貢献します。データ駆動の意思決定、顧客志向のアプローチ、イノベーションを推進することで、競合他社に対して優位性を獲得することが可能です。企業の成長と収益増加につながります。

6. スキルの向上と成長機会

DXの導入は職員のスキル向上と成長機会を提供します。新しいデジタルツールやテクノロジーを学び、活用することで、職員は自己成長を達成し、キャリアの進展が期待できます。

結論

DXのメリットは多岐にわたり、消極的な職員が前向きに取り組む刺激となります。効率向上、リアルタイム情報アクセス、カスタマーエクスペリエンス向上、リモートワークサポート、競争力向上、スキルの向上と成長機会の提供が、DXのメリットの一部です。DXの導入により、事業所全体の成功と職員の満足度を向上させることができます。 {{% /alert %}}

ポイントは、プロンプトの中に必ずしも全員がデジタルテクノロジーに詳しくない事業所において、DX推進を効果的に進める方法を説明する。 という具体的な場面を説明していることです。
他にも「去年○○という理由でDX推進を失敗してしまった経緯がある」や「企画を説明する相手は特にDXのメリットとデメリットがわかっていない」といった実際の文脈をプロンプトに追加すると回答の精度や品質が挙がります。

[生成AI利用の限界と課題]({{% relref "/docs/essence/risk-management" %}})でも触れましたが、生成AIの回答には誤りがバイアスが含まれている場合があります。
その悪影響を少しでも減らすために、具体的な情報の入力を心がけましょう。


良いプロンプトの基本原理は「明確かつ具体的に」です。

他のプロンプトエンジニアリングや良いプロンプトの方針はここに追記するか、応用編に記載します。