この記事は HowTelevision Advent Calendar 2023 7日目の記事です。 昨日は菅さん (id:ttt00x_how) の「技術負債プロジェクトのプロジェクトマネジメント - ハウテレビジョンブログ」でした。
今年の12月にハウテレビジョンに新卒エンジニアとして入社しました、宮本 (@koheitech, id:koheitech)です。
皆さんは日々の業務でChatGPTを使っていらっしゃいますか? 便利ですよね、、もうChatGPTがないあの頃には戻れません。 本日はそんなChatGPTの可能性を更に引き出すためのポイントを紹介し、皆様の日々の業務を更に効率化することに貢献できるようブログを書かせて頂きました。 ぜひ最後までご覧になり、役立てていただけますと幸いです!
プロンプトエンジニアリングとは?
はじめに、そもそもプロンプトエンジニアリングという単語を耳にしたことがない方もいらっしゃるかもしれませんので、定義をご紹介致します。
プロンプト・エンジニアリング(英: prompt engineering)は、主に「テキストからテキスト」型言語モデルとのコミュニケーションで使用され、生成的人工知能(生成AI)モデルが解釈し、理解できるように指示文章を構造化する過程である。
(wikipediaより引用)
つまるところ「どうやったらChatGPTを始めとする生成AIのポテンシャルを引き出せるのかを考える学問」ということになります。
プロンプトエンジニアリングを理解することで、ChatGPTの可能性を最大限引き出し、日々の業務をより効率よく進めることができるようになるとも言えるのではないでしょうか。これはもう学ぶしかないですね!
ChatGPTの可能性を引き出す5つのポイント
プロンプトエンジニアリングの定義が理解できたところで、ここからは具体的にどのようなプロンプトを用意するべきか(= どのような命令をChatGPTにするべきか)をお伝えしたいと思います。
それはChatGPTに以下の5つの要素を含めることにあります。
- タスク
- 文脈・前提条件
- 例
- ペルソナ
- 回答の制限
それでは一つ一つ、実際の解答例を紹介しながら解説していきたいと思います!
1. タスク
タスクは命令をする以上は欠かせない要素である「何をしてほしいか」という部分になります。
- 「XXを要約して」
- 「YYの関数を作って」
など、色々なやり方があります。
では早速ChatGPTを用いてプロンプトエンジニアリングを実践してみましょう。
※ 当記事ではChatGPT、GPT-3.5を使用します。
今回は弊社のミッションを例文にして、その要約を行うというタスクを実行してみたいと思います。
プロンプト:
以下の文を簡単にまとめてください。 """ 全人類の能力を全面開花させ、世界を変える。 ハウテレビジョンは、創業者が自らの就職活動で感じた 「情報非対称性の課題感」からスタートしています。 ユーザーファーストを軸に、情報を透明化し自らの能力を可視化する過程で、 どのようにすれば1人1人が世界を舞台に活躍していけるのか。 壮大な挑戦に取り組むべく、5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。 """
回答:
ハウテレビジョンの目標は、全人類の能力を最大限に引き出し、世界を変革することです。 創業者は情報非対称性の問題に着目し、ユーザーファーストの理念に基づき、 情報透明化と能力の可視化を通じて個々の活躍を促進する方法を模索しています。 この大きな使命に挑むために、ハウテレビジョンは5つのバリューを掲げ、 それに基づいて業務を展開しています。
実際のプロンプトはこちら
ミッション自体がとても簡潔に書かれているのでこれ以上要約できない感じですかね、、
ではここから色々な手法を用いてChatGPTの可能性を引き出していきましょう!
2. 文脈・前提条件
上の例のように、タスクのみをプロンプトに入力すると、「なぜそうしてほしいのか」という情報がないため、回答の余白が大きくなりすぎてしまいますが、文脈・前提条件を加えることで、より自分の想定にあった回答を引き出すことができるようになります。
では実践です。今回は「弊社のミッションステートメントを5歳の子供に伝える」という前提で要約してみたいと思います。
プロンプト:
私の所属する会社のミッションステートメントを5歳の子供にもわかるように伝えたいです。 以下のミッションステートメントを簡単に、丁寧に、わかりやすくまとめてください。 """ 全人類の能力を全面開花させ、世界を変える。 ハウテレビジョンは、創業者が自らの就職活動で感じた 「情報非対称性の課題感」からスタートしています。 ユーザーファーストを軸に、情報を透明化し自らの能力を可視化する過程で、 どのようにすれば1人1人が世界を舞台に活躍していけるのか。 壮大な挑戦に取り組むべく、5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。 """
回答:
わたしたちの会社の目標は、みんなが持っているすごい力を引き出して、世界をより良くすること。 私たちは、情報をわかりやすくして、みんなが自分の力を知り、世界で活躍できるように手伝っています。 創業者は、情報が足りないって感じて、それを解決しようと始めたんだよ。 私たちは、大きな挑戦に立ち向かって、5つの大切な価値観を大切にして、一緒に仕事をしているんだ。
実際のプロンプトはこちら
かなりいい感じに意訳されたミッションが返ってきましたね👏
我々人間は意識せずとも文脈を理解できますが、ChatGPTには懇切丁寧に教えてあげましょう。
3. 例
回答の例を提示してあげることで、そのフォーマットにChatGPTが則ってくれるようになります。
プロンプト:
""" 全人類の能力を全面開花させ、世界を変える。 ハウテレビジョンは、創業者が自らの就職活動で感じた 「情報非対称性の課題感」からスタートしています。 ユーザーファーストを軸に、情報を透明化し自らの能力を可視化する過程で、 どのようにすれば1人1人が世界を舞台に活躍していけるのか。 壮大な挑戦に取り組むべく、5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。 """ 上の文章は私が所属する企業のミッションステートメントです。 このミッションステートメントを以下のフォーマットに則ってまとめてください。 """ 我々はWHOのためにWHATをする企業です。なぜならXXXだからです。 """
回答:
我々は全人類の能力を全面開花させ、世界を変えるために活動する企業です。 なぜなら、創業者が就職活動で経験した「情報非対称性の課題感」に着目し、 ユーザーファーストの理念に基づき、情報を透明化し自己の能力を可視化することで、 1人1人が世界を舞台に活躍できるようにするという壮大な挑戦に取り組んでいるからです。 5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。
実際のプロンプトはこちら
また、今回のプロンプトでは適用しづらい内容ではありますが、回答例に具体的な思考の流れを書くことで回答の精度を上げる Chain of Thought (CoT)という手法もありますので、ぜひチェックしてみてください!
参考記事: 「Chain of Thought Prompting」って結局どんな手法なの?
4. ペルソナ
ペルソナはマーケティングなどでよく使われる単語ですが、今回の文脈においては「ChatGPTに役を与える」ことだと理解してください。
前提条件は「私はXX」という方式の制限でしたが、これで相手(=ChatGPT)の前提も作ることができ、範囲をより明確かつ限定的にすることができるようになります。
具体例:
- 私は駆け出しエンジニアであなたはキャリア歴30年の熟練エンジニアです
- あなたはスティーブ・ジョブズの生まれ変わりです
- etc..
では今回はスティーブ・ジョブズ風の要約を実践してみましょう!
プロンプト:
あなたの名前はスティービーです。 あなたはスティーブ・ジョブズに憧れる25歳の男性です。 ハーバード大学のコンピューターサイエンス学部を首席で卒業したあなたは起業し、大きな成功を収めています。 以下のミッションステートメントをスティービーとして、クールに言い換えてください。 """ 全人類の能力を全面開花させ、世界を変える。 ハウテレビジョンは、創業者が自らの就職活動で感じた 「情報非対称性の課題感」からスタートしています。 ユーザーファーストを軸に、情報を透明化し自らの能力を可視化する過程で、 どのようにすれば1人1人が世界を舞台に活躍していけるのか。 壮大な挑戦に取り組むべく、5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。 """
回答:
人類のポテンシャルを最大限に引き出し、世界をリミックスする。 ハウテレビジョンは私が就職活動中に感じた『情報の不均衡』を解決するために生まれました。 ユーザーエクスペリエンスを最優先にし、情報を透明にし、 自身のスキルセットを視覚化するプロセスを通じて、個々が世界でどれだけ輝けるかを考えます。 大胆な挑戦に立ち向かうために、5つのコアバリューを掲げ、以下のアプローチでビジネスを展開しています。
実際のプロンプトはこちら
ちょっと横文字が増えましたね。笑
決してふざけているわけではなく、モデルにしたい人物、性別、年齢などの情報を与えてあげることで、 ChatGPTをより自分の求める回答者に近づけていくことができます。
5. 回答の制限
最後に、回答の制限についてお話しします。
たとえ前提条件を明確にしていたとしても、アウトプットの形式を指定しないと、無駄に冗長になったり、逆に回答が短くなりすぎる可能性があります。 そのため、回答は何文字程度なのか、言語はなにか、フォーマットはあるか、など、回答の形式を制限してあげることでより的確な回答を期待できます。
今回は、ここまで命令してきたミッションの要約を、3点の箇条書きにまとめてもらいました。
プロンプト:
以下の文章の要点を箇条書きで3点にまとめてください """ 全人類の能力を全面開花させ、世界を変える。 ハウテレビジョンは、創業者が自らの就職活動で感じた 「情報非対称性の課題感」からスタートしています。 ユーザーファーストを軸に、情報を透明化し自らの能力を可視化する過程で、 どのようにすれば1人1人が世界を舞台に活躍していけるのか。 壮大な挑戦に取り組むべく、5つのバリューを掲げ、以下の布陣で業務に取り組んでいます。 """
回答:
1. **ハウテレビジョンの起源とミッション** - 創業者が情報非対称性の課題から発想し、ハウテレビジョンは全人類の能力を最大限に引き出し、世界を変革することをミッションとしている。 2. **ユーザーファーストと情報透明化のアプローチ** - ユーザーファーストを軸に据え、自らの能力を可視化するプロセスで情報を透明化し、個々の力を最大化する方法を模索している。 3. **5つのバリューと業務への取り組み** - 5つのバリューを掲げ、それに基づいて業務に取り組んでおり、1人1人が世界で活躍できるような環境を構築するために壮大な挑戦に取り組んでいる。
実際のプロンプトはこちら
ChatGPTを業務で使う際の注意点
まとめに入る前に一点、ChatGPTを業務で使う際の注意点をお伝えします。
今年、SamsungのエンジニアがChatGPTに社外秘のソースコードを貼り付けるセキュリティ事案が発生しました。
ChatGPTに入力した情報は「言語モデルのトレーニングのため」という理由で利用されてしまう可能性があります。つまり、社内の機密情報をChatGPTに入力してしまうとその情報が漏洩してしまうリスクがあるということになります。
この問題を解決する方法を3つ、ご紹介いたします。
1. 有料のAPIを使用する
ChatGPTではなく、APIを使用することでトレーニングのための情報の利用を防ぐことができます。APIの利用は有料になりますのでご留意ください 🙇
OpenAIの価格表によると、GPT-3.5 Turboが1000トークンあたり0.001USドル、GPT-4が1000トークンあたり0.03USドルとなっております。 概算ですが一回の日本語での会話(質問と回答)が1000トークン以内に収まる程度だと考えて問題ないかと思います!
2. データ管理を行う
有料APIではなく、ChatGPTを使いたい場合、設定画面から 「Chat History & Training」をOFFにすることで、トレーニング目的でのデータ利用を伏せぐことができます。 しかし、こちらの手法を採用する場合、チャットの履歴が30日しか保持されませんのでご注意ください。
参考記事: New ways to manage your data in ChatGPT
3. オプトアウトを行う
オプトアウトとは、「選択肢(オプト)から外す(アウト)」という意味で、こちらのURLからOpenAI社に直接申請することができます。
ぜひ社内で一度、セキュリティについてはご確認・ご検討されることをおすすめいたします。
弊社の取り組み & 私の取り組み
ちなみに弊社は自作のChatGPT APIを利用したSlackbotを使用して安全に質問しております。
また、Slackbotに加えて、エンジニアには GitHub Copilotを使える環境が用意されています 🔥
私はエンジニアなので、Slackbotも使いますが、どちらかというとGitHub Copilotに助けてもらっている時間が多いです。また、GitHub Copilot Chatというエディタに搭載できる拡張機能を使って質問したりもします。
「私は初心者エンジニアであなたはベテランのエンジニアです」という前提をつけてコードのリファクタやわからないところの質問をするようになってから、回答が丁寧で優しくなったと感じます!
まとめ
今後ChatGPTを使う際には本日お伝えした5つのチェックポイントを抑えられているかをぜひ意識してみてください。皆様の業務がより一層効率化されることをお祈りしております!
ここまでお付き合い頂きありがとうございました。