本記事の内容
- プロンプトエンジニアリングの基本事項
- プロンプトエンジニアリングの技術
- プロンプトエンジニアリングのChatGPT活用
本記事の執筆者
うぃる(@willblog13)
この記事を書いているぼくは、TechAcademy「はじめてのプロンプトエンジニアリング」の第1次募集の修了者。
無事に基礎固めが終わって、今は書籍や論文を使いつつ、独学・発信を続けています。
今回は、そんなぼくが「プロンプトエンジニアリングとはなんぞや」ということをまとめていきます。
本記事を読めば、プロンプトエンジニアリングの全体像が掴めます。
そして、ChatGPTなどをうまく使いこなせると、生産性や仕事の効率は爆上がりします。
将来性のあるプロンプトエンジニアリングを一緒に学んでいきましょう。
それでは、早速いきます。
はじめてのプロンプトエンジニアリングコースの体験レビュー【TechAcademy】
続きを見る
プロンプトエンジニアリングとは
プロンプトエンジニアリングとは、AIの中でも自然言語処理を担うLLMを効率的に使用するために、プロンプトを開発・最適化するスキルです。
用語の意味
- AI=人工知能
- LLM=大規模言語モデル
- プロンプト=命令文章
比較的新しい学問分野で、最近のAIの発展に伴い注目されています。
あれは人工知能の能力が低いのではなく、こちらのプロンプトが悪い場合がほとんどです。
AIが実行すべきタスクに対して適切な質問や指示を与え、よりよい結果を出力させるのが「プロンプトエンジニアリング」。
そのプロンプトを設計するのが「プロンプトエンジニア」です。
さて、ここまでの文章で「LLM」「プロンプト」「プロンプトエンジニア」などの言葉が出てきました。
以下では、各用語に対して深掘りを進めていきます。
LLM(大規模言語モデル)とは
大規模言語モデル(Large Language Models、LLM)とは、巨大なデータセットとディープラーニングを用いて構築された言語モデルのこと。
従来の自然言語モデルと比較しても、「計算量」「データ量」「パラメータ数」が大幅に多いことから「大規模」と言われています。
大規模言語モデルは、人間に近い会話を可能としており、さまざまな処理を行えることから、現在世界で注目されています。
プロンプトとは
プロンプトとは、AI(人工知能)にタスクを処理させるための入力文を指します。
AIがユーザーの質問や問いに対して適切な応答をするためには、プロンプトの存在が非常に重要。
逆に言えば、このプロンプトがいい加減だと、微妙な結果や誤った情報が出力されることがあります。
プロンプトエンジニアとは
プロンプトエンジニアとは、適切なプロンプトを設計し、AIから返ってくる出力の質を上げる役割を担っています。
ChatGPTで「〇〇について教えて」程度なら誰でも可能ですが、もっと高度な出力結果を得るためには、細かい条件設定等が必要になります。
そこで登場するのが、プロンプトエンジニア。そして、その際に必要となるスキルがプロンプトエンジニアリングです。
ChatGPT等の出現により、このプロンプトエンジニアの需要は日に日に高まっています。
プロンプトエンジニアになるには?仕事・スキル・年収・将来性を解説
続きを見る
プロンプトエンジニアリングの基本事項
ここでは、プロンプトエンジニアリングの基本事項を解説していきます。
プロンプトエンジニアリングの役割や重要性、基本原則をかんたんに紹介していきます。
プロンプトエンジニアリングの役割と重要性
プロンプトエンジニアリングの大きな役割は、ユーザー側がAIの課題や弱点をカバーすること。
ちなみに、AIの課題や弱点が以下のとおりです。
- バイアス問題
:AIの出力は学習データに影響を受けるため、データに誤情報や偏見が混じっていると生成物にも影響を及ぼす - 情報の不正確性
:誤った情報を出力したり、質問に対して回答できないことがある - 攻撃に対する脆弱性
:意図的に誤った情報を学習させる攻撃などにはまだ弱い
AIの技術は、驚異的な進化を遂げてきましたが、まだ課題や弱点が残っているんです。
この課題に対して多くの企業や組織が解決に取り組んでいますが、まだそれも不完全。
なので、そのような課題や弱点を補うための"プロンプトエンジニアリング"技術が重要となっています。
プロンプトエンジニアリングの原則
プロンプトエンジニアリングの原則が以下の3点。
- 実験と検証を繰り返す
- 前提や条件を明示する
- シンプルに書く
- 専門用語など難しい言葉を減らす
- 誤字や文法のミスをなくす
実験と検証を繰り返す
なぜなら、求める回答を一発で得られることは稀だからです。
また、出力の品質を高めるためには、試行錯誤が重要。
実際、ぼくも何度もプロンプトを作成していますが、なかなか求めているものが一発で得られることは少ないですね。
- 試しにプロンプトを作成してみる
- 回答を得る
- 得られた回答を評価する
- 見つけた改善点でプロンプトを再作成する
- 再び回答を得て検証する
この繰り返しです。
プロンプトは形式・内容・長さ・言い回しなど、さまざまなかけ算によってできあがるので、一つ一つ検証しながら作成していきましょう。
前提や条件を明示する
というのも、前提や条件を与えるだけで回答の精度は格段にアップするからです。
また、「箇条書きで」「やさしい口調で」など出力の形式条件を与えることも可能です。
シンプルに書く
今の言語モデルは長すぎるテキストだとうまく処理できずに、出力の精度が下がります。
ここにはトークン数という考え方があるのですが、複雑なので省略しますm(_ _)m
専門用語など難しい言葉を減らす
なぜなら、専門用語など難しい言葉・頻度の低い言葉は「未知の単語」として扱われることがあるからです。
なので、できるだけ簡単な言葉を使いましょう。個人的な見解としては、かしこい中学生や高校生あたりに伝えるイメージですかね。
誤字や文法のミスをなくす
もちろん誤字や文法のミスをなくすと、出力の品質は低下します。
また、ミスがあると間違った回答を得ることもあるので要注意です。
プロンプトエンジニアリングの技術
今回は、プロンプトエンジニアリングの技術をちょこっと紹介します。
基本的なプロンプト技術が以下の3つです。
- Zero-shotプロンプティング
- Few-shotプロンプティング
- Chain-of-thoughtプロンプティング
それぞれ初心者でもわかりやすいように解説しますね。
Zero-shotプロンプティング
Zero-shotプロンプティングは、言語モデルに新たな学習データを追加することなく、タスクに対応するプロンプトエンジニアリングの技術です。
たとえば、何も追加情報なく「体調不良で会社を休むためのメールを書いて」というプロンプトなど。
このようなプロンプトを与えたときに、言語モデルは学習データ内から無数のメール例を参考に、"それっぽい"メールを生成できます。
上記のように、こちらから新たに学習データを与えないプロンティングを「Zero-shotプロンプティング」と言います。
しかし、Zero-shotプロンプティングが通用しない場合もあるんですよね。。。その場合は、次に紹介する「Few-shotプロンプティング」を使用します。
Few-shotプロンプティング
Few-shotプロンティングは、言語モデルがわずかな例(ショット)を新たに学習し、期待する出力を得る手法です。
AIに「こういう場合、こう出力するんだよ~」と教育してから、出力をしてもらうイメージ。
たとえば、先程のメールを考える場合、以下のようになります。
最初に示している入力と出力が、Few-shotの部分です。
出力: 「件名: 明日の欠勤について
お疲れ様です。[自分の名前]です。
本日の朝から腹痛が続いており体調が悪いため、本日は欠勤いたします。
また、予定されていた業務は[ 同僚 ]さんにお願いします。
腹痛が治り次第、改めてご連絡差し上げます。
以上、よろしくお願いいたします。」
入力: 「昨日から38度以上の熱があるため、本日を休みます。」
出力:
と入力した結果、
お疲れ様です、[自分の名前]です。
昨日から38度以上の熱が続いており、体調が思わしくありません。したがって、本日は休むことを許可していただきたくお願い申し上げます。
本日の業務については、可能であれば[同僚の名前]さんに引き継ぎます。
熱が下がり次第、出勤する予定ですが、何か変更があれば再度ご連絡させていただきます。
ご理解のほど、よろしくお願いいたします。
と出力されました。
「腹痛」の部分が「38度以上の熱」に置き換わっており、意味の通る文章になっていますよね。
これがFew-shotプロンプトです。
今回はシンプルな例を使いましたが、複雑なタスクや不確定性の高い問題を解決する場合にも役立ちます。
Chain-of-thoughtプロンプティング
Chain-of-thoughtプロンプティングとは、出力に至るまでの過程を1歩ずつ明示するやり方です。
論より証拠ということで、下記のプロンプトを参考にしてください。
上記のように、推論ステップを明確に示すことで、質の高い結果を得られます。
この他にもさまざまなプロンプトエンジニアリングの技術があります。
学習したい方は下記の記事を参考に、自分にあった学習方法を見つけてください。
プロンプトエンジニアリングの効果的な学習方法5選【まとめ】
続きを見る
プロンプトエンジニアリングのChatGPT活用
おそらく今一番利用されているAIツールが、ChatGPTだと思います。
そこで、今回はプロンプトエンジニアリングをChatGPTに活用する場面を紹介していきます。それが以下のとおり。
- コンテンツの生成
- ビジネス文章の生成
- 情報収集
- データ分析
- その他(自動翻訳、要約等)
具体的なプロンプトを用いて、解説していきますね。
コンテンツの生成
最初の活用方法が「コンテンツの作成」です。
具体的には以下のようなコンテンツ。
- ブログ記事
- SNS投稿のアイデア
- 動画の台本
- プレゼン資料
- AI画像
しかし、コンテンツを生み出す際のアシスタントとしては超優秀。ぜひプロンプトエンジニアリングをマスターしていろんなコンテンツを作成してみましょう。
【15分】ChatGPTでブログ記事を作成する方法・手順
続きを見る
ビジネス文章の生成
ブログやSNSのようなコンテンツだけでなく、ビジネス文章にも使用できます。
具体例としてメール文章を生成してみましょう。
上記のように、普通に業務に使えるレベルのメール文章を生成できます。
プロンプトエンジニアリングを学んでAIを上手に使いこなせば、圧倒的に業務効率はアップしますね。
情報収集
続いての活用方法は情報収集です。
今まで情報収集としえばGoogleでの検索でしたが、ChatGPTを使えばもっと効率的に情報を集めることができます。
個人的にはGoogleの延長線上として使うのがいいかと。
Googleでは絞りにくい情報などを聞けるのがChatGPTのメリットですね。
データ分析
また、情報収集とセットでデータ分析にも活用できます。
最近はCode Interpreterなどの機能もリリースされ、さらに分析しやすくなりました。
具体例として、日本の人口データを総務省から取得し、Code Interpreterにかけてみると以下のような出力を得られます。
ヤバくないですか?
どんどん進化するChatGPTの機能とプロンプトエンジニアリングをかけ合わせれば、まだまだAI活用の可能性は広がりそうです。
その他(自動翻訳、要約等)
最後はおまけです。
すでにご存知かと思いますが、ChatGPTは自動翻訳や要約にもつかえます。
翻訳や要約に関しても、プロンプトエンジニアリングを学べば、さらに精度は向上するはず。
上記のように、ChatGPT×プロンプトエンジニアリングでさまざまな可能性が広がります。
なので、プロンプトエンジニアリングは今後価値のあるスキルになることは間違いないです。
ぜひ積極的に知識を取得していきましょう。
はじめてのプロンプトエンジニアリングコースの体験レビュー【TechAcademy】
続きを見る
プロンプトエンジニアリングのまとめ
- プロンプトエンジニアリングは、プロンプト(命令)を開発・最適化するスキル
- 実験と検証を繰り返すことがプロンプトエンジニアリングの原則
- プロンプトエンジニアリングを学べば、ChatGPTの活用の幅が広がる
プロンプトエンジニアリングは、今後ビジネスマンにとって必須スキルになると思います。
なぜなら、どの業種でもChatGPTをはじめとしたAIの活用が求められるからです。
IT業界はもちろん、建設、金融、医療などさまざまな場面でAIが活用されることは間違いない。
だからこそ、今のうちにプロンプトエンジニアリングを学んでおきましょう。
周りよりすこし早く学んでおくだけでも、会社内のキャリアアップ、転職などに役立ちますよ。
プロンプトエンジニアリングについて学んでみたい方は下記をどうぞ。
はじめてのプロンプトエンジニアリングコースの体験レビュー【TechAcademy】
続きを見る
すこしでもあなたのプロンプトエンジニアリング学習に役立てれれば幸いです。
それでは、また。