💻 プロンプティングTips
技術者必見!
要因分析プロンプトワークフロー
先日、よく似たタイミングで、以下の二つのトピック希望をいただきました。
「Mamoruさんが、普段のお仕事でどのようにプロンプトワークフローを活用しているか、教えてください。」
「〇〇社の技術者です。品質管理部門で働いていますが、ChatGPTを使って要因分析を簡易化するプロンプトワークフローを扱ってほしいです。」
私は普段、アメリカでエンジニア(本業)として働いています。
まさしく、二つ目の『要因分析』は、私が普段の業務でLLMに助けてもらっているタスクの一つなのです。
そこで今回は、私が普段使っている要因分析プロンプトワークフロー例をご紹介します。
実際には、もっと長いワークフローですが、ここではエッセンスのみ短縮版でお届けします☝️
分野外の方にはマニアックな内容かもしれませんが、後述のプロンプトワークフローの解説は役に立つと思います。また、応用アイデアも列挙していますので参考にしてください。
技術者や研究者の方ならご存じと思いますが、新しい製品を開発したり、研究していると、日常的に様々な(予想外の)問題に直面します。
装置の予期せぬトラブル(お客様からの苦情)、予想外の実験結果など・・・
他にも、企業の安全管理部門では、社内で起こった重大事故やヒヤリハットなど、起こった(起こる手前の潜在的な)問題について、その要因を分析し、その問題が起こるリスクを最小化するための色々な対策が、日々議論されています。
ただ、こうした分析を実施して信頼性のある対策まで落とし込むためには、できるだけたくさんの要因を洗い出す必要があります。
そのためには、多様な(視点が異なる)メンバーを集め、何度も会議を繰り返します。
特定のグループメンバーのみで要因分析を行うと、アイデアが偏ってしまい様々なリスクを考慮した対策に結びつかないからです。
経験のある方なら共感いただけると思いますが、この作業は本当に面倒です。。。
特に、お客さんからのクレームに対して説明する時は、それなりの説得力が求められ、信頼性の高い対策を練るために多大な時間を要します。
このタスクを高効率化するために、以下のようなChatGPTのプロンプトワークフローを利用しています。
実際のプロンプトを見てみましょう!
要因分析プロンプトワークフロー(簡易版)
# オブジェクト指向型要因分析ワークフロー
あなたは、インシデントイベントの背後にある要因を理解することに特化した品質管理の専門家です。
## 入力情報
あなたの最初の発言は、「私はインシデントイベントを客観的に分析することにより、プロセスの要因についての洞察を得るお手伝いをします。**インシデントイベントの詳細を提供してください。**」です。
入力情報には、インシデントイベントの時系列、発生事象、直接的な影響などが含まれます。
インシデントイベントから、問題を構造化し、抽象化されたオブジェクトを使用して、プロセスの要因をより深く理解します。以下の順番でタスクを進めてください。
## タスク 1: 問題の構造化と探索
「思考の木」の思考方法と「幅優先探索」を使用して、[原因;[インシデントイベント]]リストを生成してください。
思考の木を利用して、考えられる原因と結果の組み合わせを深堀りしてください。
幅優先探索を利用して、問題の各層を広く浅く探索し、見過ごされがちな要素を網羅してください。
## タスク 2: インシデントイベントの抽象化
タスク1の結果をもとに、以下のすべてのオブジェクト項目を使用してインシデントイベントを抽象化ししてください。
[記憶]
[知識]
[経験]
[感覚]
[感情]
[思考]
[行動]
[状況]
[不確実性オブジェクト]:イベントの発生における不確実性または曖昧さを表します。
[ランダムサプライズオブジェクト]:イベントのランダム性または予期しない要素を表します。
## タスク 3: インシデントイベントの要因分析
・すべてのオブジェクト項目を利用して、プロセス内のインシデントイベントの要因に関する多角的な見解を探る包括的な箇条書きリストを作成してください。
・上位レベルの概要から始め、関連する側面を含めてネストされたサブポイントを詳しく説明してください。
・より詳細なポイントを該当する上位レベルの項目の下にインデントして、階層構造のリストを構築してください。
・一行説明を避け、各項目に3つ以上のサブトピックをリストアップしてください。
・微妙なニュアンスを捉えるためにネストされたレイヤーを展開し、階層構造を維持してください。
・思考方法:思考の木、幅優先探索を利用してください。
アシスタントの役割:
プロンプトの指示に従って、プロセスの要因を明らかにするお手伝いをしてください。
各タスクを順番に進め、出力を提供した後、次のタスクに進むべきかを問うときは、私の回答を待ってください。
タスク2では***確実にすべてのオブジェクト項目を使用してください。
*** タスク3が完了したら、ファクトチェックチェックリストを要求してください。チェックリストには、タスク3で生成されたリストの各サブポイントについて特定の詳細を確認するための質問が含まれるべきです。
実行例は以下の通り。以下の点に着目してご覧ください。
・LLMがリードしてタスクを進行(ユーザーからの指示は最小限)
・ワークフロー(後述)に沿って、前ステップの情報をどのように後ステップで利用しているか
回答例(GPT-4)
プロンプト解説:
このプロンプトは以下のワークフローで進行しています。
問題、または課題の特定
問題の構造化と探索
抽象化と分析
ファクトチェックリストの生成
改善案の策定(ファクトチェック結果を入力)(上記テストには含まれず)
まずステップ1では、ユーザーから具体的なインシデントの情報を取得します。
ステップ2では、ステップ1で取得したインシデント情報を元に、「原因」ー「結果」の組み合わせを生成します。
この時、「思考の木」を使って、深さ方向(原因→結果→原因→結果→・・・)に深堀りすると同時に、「幅優先探索」を使って、様々な視点からの原因を(横方向に)生成することが、情報漏れを防ぐポイントです。
ステップ3では、ステップ2の要因を抽象化(オブジェクトごとに分類、整理)します。ステップ2では、対象とする特定のイベントに対する要因に偏っていますが、抽象化することで、より幅広い(潜在的な)問題への対応が可能になります。
ステップ4では、ステップ3の要因が、本イベント前に実際に存在していたかどうか、を検証するためのチェックリストを生成します。
さすがにLLMは、特定の組織、イベントに対してこうした要因が存在していたかどうか判断することはできませんので、ここは人間の手で実施します。
実行例には含めていませんが、実際のワークフローでは、ステップ5で(人間が調査した)ファクトチェック情報をLLMに与えて、改善策を取得します。
ステップ2~3の要因の洗い出しと抽象化、は人間が実施すると非常に時間がかかる上に、「漏れ」が発生することも多いです。
これこそLLMの得意な部分で、大幅な時間短縮と情報の網羅性向上が期待できます。
チューニングアイデア:
最後に、このプロンプトワークフローの応用例、チューニングアイデアを、思いつくままに列挙しておきます。(それぞれ検証したわけではありませんので、あくまでもアイデアです。)
目的に応じて、「思考の木」「幅優先探索」を別の手法(フレームワーク)に変更する
抽象化カテゴリを、分類したいカテゴリ・視点に変更する
異なる分野への応用
マーケティング:AIDMA、3C分析、4P分析ワークフレームなどを用いて、マーケティングプランを策定する
経営戦略:TOWS分析を用いて、経営戦略を策定する
人材育成:ロバートカッツ理論を用いて人材育成プランを策定する
下にいくほど、応用範囲、チューニング幅が大きくなっています。
要するに、問題・課題があり、それを解決するためのフレームワークがあれば、ChatGPTを使って高効率化できる可能性が高いです。
注意点:
全ての情報をLLMに生成してもらうのではなく、ステップ4のようにファクトチェックリスト(質問リスト)を生成し、実際のシチュエーションに応じた情報を人間が入力できるようにデザインしておくことが重要です。
それを元に計画を策定することで、(実際の状況が考慮された)実現可能性の高い情報が得られるからです。
いかがでしたか?
このような分析は、網羅性の高い情報を生成できるLLMの得意なタスクの一つです。
うまく利用すれば、大幅な時間短縮&情報品質(情報の漏れを防ぐ)の向上が可能ですので、ぜひ試してみてください!