ChatGPT さん、プロンプトエンジニアリングに関するブログ記事を書いてください [パート 1] | Mendix

メインコンテンツへスキップ

ChatGPTさん、Prompt Engineeringに関するブログ記事を書いてください[パート1]

大規模言語モデル (LLM) は数年前に突如登場し、私たちの仕事のやり方に革命を起こすと期待されています。LLM の登場によって多くの業界が確実に変化しましたが、同時に新しいスキル セットの需要も生み出しました。その中で最も重要なスキル セットの 1 つが、プロンプット エンジニアリングです。

プロンプト エンジニアリングでは、技術的な精度と創造性の両方を融合し、生成型人工知能 (AI) モデルが望ましい結果を生み出すように指示を巧みに構造化します。

プロンプトを効果的に構造化することで、エンドユーザーは、間違った、捏造された、または無意味な応答を回避し、正確で高品質でカスタマイズされた関連性の高い応答を得ることができます。今日のより高度なモデルでは、最小限の入力でモデルがユーザーの意図を解釈することが容易になり、よりユーザーフレンドリーになり、その代わりに、ユーザーは LLM に理解しやすいように言語を適応させています。この例を以下の画像で確認できます。

 

エンドユーザーとチャットボット間の一般的な会話では、プロンプト エンジニアリングには、チャットボットの応答をガイドする特定の質問や指示の作成が含まれ、明確さと関連性が確保されます。これらのプロンプトは、処理のために言語モデルに送信され、LLM の応答が API 経由で返されます。

当然ながら、プロンプト エンジニアリングのスキルを習得するのは、初心者にとって依然として難しいことです。適切な出力が得られないと、イライラすることがあります。これは多くの場合、適切な質問をしていないか、適切なプロンプトを提供していないことに起因します。このブログ記事では、練習と実験を通じて、正確で効果的なプロンプトを作成する技術を習得する方法を学びます。プロンプトで思考ツリー手法を使用するなどの基本的な概念から高度な概念まで、幅広く取り上げます。

このブログは、別の投稿で始まったアイデアを基に作成されています。 関数呼び出しと生成 AI でよりスマートなアプリを構築する方法特に関数呼び出しに慣れていない場合は、まずこれを読むことを強くお勧めします。

さまざまなプロンプトタイプ

理解を深めるために AIモデルの動作方法対話プロセスに関係するプロンプトの種類を理解することが重要です。上の画像に示されているように、システム プロンプトとユーザー プロンプトの両方が API 呼び出しを介して言語モデルに送信されます。これらのプロンプトは、AI の応答を導く上で異なる役割を果たします。

システムプロンプト

当学校区の システムプロンプト AI モデルの基本的な動作とガイドラインを表します。モデルに役割、トーン、倫理規定、主題の指定などを与えます。これはプロンプト エンジニアによって設定されます (または、このブログ投稿を読んだ後、あなたによって設定されます)。このタイプのプロンプトの例は次のとおりです。あなたは、次のような情報だけを提供してくれる親切なアシスタントです。 Mendix" - 役割、内容、制限事項に関する直接的なガイドラインを提供します。読み進めていくと、追加のより高度なサンプルが見つかります。

ユーザープロンプト

A ユーザープロンプト もう一つの基本的なタイプです。これは、この記事の冒頭で共有した画像に描かれているように、LLMに送信されるユーザーの入力、質問、またはリクエストです。これは、エンドユーザーが好きなことを何でも書き込める場所です。たとえば、「クールなアプリを作るためのアイデアを5つ教えてください Mendix"。 もちろん、より複雑な問い合わせの場合、エンドユーザーはこの投稿を使用してプロンプト スキルを向上させ、LLM からより信頼性の高い適切な結果を得ることができます。

コンテキストプロンプト

プロジェクトやユースケースによっては、モデルにコンテキスト情報を追加する必要がある場合があります。通常、この情報は コンテキストプロンプト or 会話履歴は、システムとユーザーのプロンプトと同じやり取りで送信されます。会話の履歴情報をキャプチャして、エンドユーザーとの一貫性を維持し、コンテキストを認識します。これは、開発者がアプリケーション内で設定します。たとえば、 Mendixマイクロフローを使用して捕捉され、 チャット完了(履歴付き)操作.

この概念を理解するには、ユーザーがチャットボットと対話しながら、次のように質問しているところを想像してください。 「どうやって始めればいいの?」 以前のやり取りでユーザーが Mendix、LLMは質問が Mendix アプリ。コマンドベースのインタラクションなど、コンテキストが必要ない場合には、次のような問い合わせが考えられます。 "電気を付ける" LLMは履歴的な会話を必要としないので、開発者は次のような操作を使用することができます。 チャット完了(履歴なし).

プロンプト作成に必須のベストプラクティス

新しいチーム メンバーをオンボーディングするときは、そのメンバーに与えるタスクが最も効率的かつ迅速に実行されるようにする必要があります。これはプロンプトの開発にも当てはまります。プロンプトの種類とテクニックをいくつか理解できたので、プロンプト作成に不可欠なベスト プラクティスを理解することが重要です。

  • 明確にし: プロンプトには、LLMが理解できる明確で正確なメッセージを強調した関連詳細が含まれていることを確認してください。複雑な言葉は避けてください。たとえば、次のような文章を変更することができます。 「手続き的方法論を評価する…」 より正式な学術論文である 「プロセスを説明してください…」。
  • 背景を説明する: LLMに背景ストーリー、シナリオ、説明を提供すると、コンテキストが確立されるため、通常、より正確な結果が得られます。たとえば、エンドユーザーに次のことを学んでもらいたい場合、 Mendixプロンプトにはこの詳細を含める必要があります。
  • 詳細と制限事項を記載する: プロンプトに詳細や制限事項を指定すると、ユースケースに対してより具体的で適切な応答が提供されます。これには、LLM に各応答にソースや例を含めるように要求するなどの指示を含めたり、回答を 100 語に制限したり、出力を JSON 形式で書き込んだりするなど、結果の表示方法を調整したりすることができます。
  • LLMに役割を担わせる: LLM にペルソナとその役割に関するコンテキストを提供することで、モデルをパーソナライズしてユースケースにより適合させることができます。たとえば、データ サイエンスについて教えるアプリを構築するとします。その場合、プロンプトには、データ サイエンスに不慣れな対象者を対象とする教授の役割を含める必要があります。
  • プロンプトを改良し、繰り返し作業する: プロンプトのテストと改善は、非常に重要なプラクティスです。場合によっては、モデル構成 (GPT3.5-Turbo から GPT4o-mini など) などの小さな変更でも、LLM の動作に大きな違いが生じる可能性があります。これらの変更と結果を文書化すると、ユースケースに最適なプロンプトを見つけるのに役立ちます。オプションで、可能な場合は、他の人にプロンプ​​トをテストしてフィードバックを得ることで、反復的な改良の別の形式を実現できます。

プロンプトテクニックトップ5

ユースケースが複雑になるほど、プロンプトも複雑になる可能性があります。ただし、最初の結果がすぐに期待どおりでなくても心配する必要はありません。むしろ、次のいずれかのプロンプト手法を使用して、プロンプト スキルを向上させてください。

プロンプトテクニック それは何ですか 使用例とプロンプトの例
面接パターンアプローチ インタビュー形式のアプローチを使用すると、モデルはエンドユーザーにフォローアップの質問をして、より適切な回答を提供できます。 使用事例: 映画推薦エンジン。

プロンプト指示: 「あなたは映画推薦の専門家として行動します。ユーザーに一連の詳細な質問を一つずつ尋ね、映画の好みを理解します。」

指示プロンプト 指示は、AI モデルにタスクの実行方法を指示します。要約や翻訳、スタイル、形式などの出力の種類に関するガイダンスになります。 使用事例: Mendix ML Kit Python スクリプト ジェネレーター

プロンプト指示: 「あなたは、Pythonのエキスパート開発者として、 Mendix MLキット。出力/応答は、Pythonスクリプトで、 Mendix 「MLキット」

数ショットプロンプト 例を提供することで、モデルがタスクやパターンを動的に学習するのに役立ちます。また、システムプロンプトの一部になることもできます。 使用事例: 英語-スペイン語翻訳者

プロンプト指示: 「あなたは英語の文章をスペイン語に翻訳するのを手伝ってくれる親切なアシスタントです。例えば、「こんばんは」をスペイン語に翻訳すると「Buenas Noches」になります」

思考の連鎖 複雑なタスクを、特定の順序で実行される個別のステップに変換することで簡素化します。 使用事例: 研修医のための医療診断。

プロンプト指示: 「あなたは、研修医が患者の初期評価のために一連の質問をするのを支援するために設計された診断アシスタントです。あなたの目標は、患者の症状、健康歴、その他の関連変数を特定して正確な評価に到達することです。その結果に応じて、看護師または医師に転送されます。まず、患者に主な症状と来院理由について尋ねます。次に、…」

思考の木 意思決定ツリーと同様に、モデルが評価して正しい結果への道筋を見つけられるように、複数の思考ラインが含まれています。 使用事例: サポートアシスタントボット

プロンプト指示: 「あなたは、サポート チケット、ライセンス、ハードウェアに関する問い合わせなど、従業員のリクエストに応じて IT 部門をサポートする有能なアシスタントです。リクエストの種類に応じて、以下の手順に従ってください。」

ユーザーが…について質問した場合

リクエストが曖昧または不完全な場合は、…

リクエストがライセンスまたはハードウェアに関するものである場合は、まず…

ユーザーがサポートチケットについて知りたい場合は…」

 

このシリーズの第2部では、関数呼び出しの実際の例を、以下のリンクから取得してツリーオブ思考プロンプトで紹介します。 サポートアシスタントスターターアプリ.

基本からより複雑な問題まで: プロのようにプロンプ​​ティングする旅の始まり

ユースケースが複雑になり、明確なコンテキストがなくなると、モデルは「幻覚」と呼ばれる捏造された情報や無関係な情報を生成する可能性が高くなります。背景があまり必要ない場合、この問題ははるかに少なくなります。これらの幻覚を軽減することは、プロンプト エンジニアリングの大きな課題の 1 つです。それでは、これをどのように達成できるかを探る旅に飛び込んでみましょう。

まず、質問に答えるチャットボットの簡単な例を考えてみましょう。次のように書き始めます。

You are a helpful assistant who helps users with their questions and requests.

さて、企業用のボットを作成し、何らかのコンテキストを提供したいとします。次のような記述になります。

You are a helpful assistant who provides information about Mendix. 
Please collect any publicly available information about the company for the user’s question.

このプロンプトは、ユーザーが特定の企業に関する公開情報を取得するのに役立ちますが、要求がより技術的になったり、回答にアクセスできなかったり、簡単にアクセスできなかったりすると、幻覚状態になることがあります。

そこで、ユーザー エクスペリエンスを向上させるために、次のような指示を出すようになります。

You are a helpful assistant who provides information about Mendix. 
If the user has a technical question, include the Mendix documentation link. 
If the user is struggling with a bug, check Mendix Forum or Documentation for a solution. 
Please provide the source of the information in your response. 
Lastly, if you are not sure about the response, do not try to create one but rather inform the user that you do not know the answer.

ここから、Few-Shot プロンプトや指示プロンプトなどの他のタイプを使用してシステム プロンプトの強化を開始できます。

You are a helpful assistant who provides information about Mendix.

1. For technical questions, include a link to the Mendix documentation. 
Example: If the user asks about connecting to OpenAI, you can answer: 
“You can connect your Mendix App with OpenAI by using the OpenAI Connector. 
More information can be found here: https://docs.mendix.com/appstore/modules/genai/openai/.”

2. For bug-related issues, refer to the Mendix Forum or Documentation. 
Example: If the user says that they created their first app and have an encryption issue, you can answer 
“An encryption key might be missing. 
More information can be found here: https://community.mendix.com/link/space/app-development/questions/99504..”

3. If unsure about a response, inform the user rather than guessing. 
Example: “I do not know the answer. Please provide more information or check the Mendix Documentation (https://docs.mendix.com/) for an answer.”

確かに、リクエストごとに公開情報を検索するのは、モデルに解釈の余地を与え、幻覚の可能性を高めるため、最も実現可能なソリューションではないかもしれません。さらに、知識が一定期間に制限され、最新のデータが提供されません。これを軽減するには、モデルを会社のナレッジ ベースと統合することで、回答を求めるための制御された範囲を提供できます。これにより、誤った応答の可能性が減り、最新のライブ情報が提供されます。

これをさらに詳しく調べる このシリーズのパート2。

GenAIのユースケースに取り組んでいて、サポートが必要な場合やフィードバックを提供したい場合は、ぜひご連絡ください。カスタマーサクセスマネージャーに連絡するか、 #genaiコネクタ のチャンネル Mendix コミュニティSlack。 ここでサインアップ!

チェックすべき追加のリソース: プロンプトライブラリ

言語を選択してください