ラック・セキュリティごった煮ブログ

セキュリティエンジニアがエンジニアの方に向けて、 セキュリティやIT技術に関する情報を発信していくアカウントです。

【お知らせ】2021年5月10日~リニューアルオープン!今後はこちらで新しい記事を公開します。

株式会社ラックのセキュリティエンジニアが、 エンジニアの方向けにセキュリティやIT技術に関する情報を発信するブログです。(編集:株式会社ラック・デジタルペンテスト部)
当ウェブサイトをご利用の際には、こちらの「サイトのご利用条件」をご確認ください。

デジタルペンテスト部提供サービス:ペネトレーションテスト

"Prompt Engineering Guide"からプロンプトエンジニアリングを学んでChatGPTを駆使しよう!

はじめまして、南と申します。
私はAIに関する開発、および啓発を中心に活動しています。
WBCも盛り上がりましたが、プロ野球も開幕となり、試合やその結果を見ながら、一喜一憂するのが楽しい毎日を過ごしております。

はじめに

みなさんご存じのChatGPT。
ChatGPTはプロンプトに指示文を送ることにより、その結果として返答を得ます。 
この指示文を工夫することで出力の精度を改善する手法をプロンプトエンジニアリング(Prompt Engineering)といい、質問として入力される文字列(プロンプト)の内容が出力される回答の質を左右すると言われています。

難しく説明すると前述になりますが、簡単に言うとAIさんに対して質問上手になろうと話です。皆さんの周りにぐぐり上手な人はいますよね、ChatGPTに対してもぐぐり上手?プロント上手?になれる方法がPrompt Engineeringです。

うちのチーム(AIプロダクト開発グループ)も私も様々な検証を行っておりますが、世の中にはプロンプトエンジニアリングを扱ったサイトがたくさん存在する一方、プロンプトエンジニアリングの基礎を確認できる立ち返れるような情報源を探すのって苦労しませんか?

そんな悩みを解消してくれる、プロンプトエンジニアリングの基礎を理解・再確認するための決定版ともいえるサイト「Prompt Engineering Guide」の日本語訳が登場しました。 

これを期に、プロンプトエンジニアリングはさらに日本に根づくと思っています。「Prompt Engineering Guide」とは何か、このサイトの登場がどのような意味を持つのかについて、私のここまでの所感に重ねる形でお話します。

「Prompt Engineering Guide」について

「Prompt Engineering Guide」は、AIの研究の海外コミュニティ「DAIR.AI」が作成した、ChatGPTなどのAIの性能を十分に引き出すためにはどのような指示文が効果的なのかを体系的に学べるサイトです。

www.promptingguide.ai

ITmedia NEWSの紹介記事のタイトルが『「プロンプトエンジニアリング」の“教科書”、日本語版が登場 無償でAIの上手な使い方を解説』となっていることからもわかる通り、網羅的に情報を得ることができるサイトとなっております。

このサイトは10のトピックから構成されています。

一般ユーザが「ひとまず文章生成を目的として読むべき項目」として、以下の項目が最初に記載されています。
- 「はじめに(Introduction)」でプロンプトの基本的な使い方、「プロンプトエンジニアリング技術(Techniques)」で応用的な使い方について学ぶことができます。 
- 「プロンプトアプリケーション(Applications)」として、発展的な用い方について説明がなされています。

そして、本記事が"教科書"という位置づけがなされている理由についてですが、それは以下によるところが大きいです。
- 「リスクと誤用(Risks & Misuses)」がプロンプトエンジニアリングに潜むリスクに関する言及があること。
- 学術的な一次ソースとなる文献が「論文(Papers)」にてリスト化されており、その一次ソースをもとにプラクティス化されていること。

やはり論文や製品ドキュメントなどの一次ソースが最重要になると考えておりますが、その一次ソースをベースにした記事作成および、そのリストがまとまったところにあるというのは、非常にありがたいものと感じております。

プロンプトエンジニアリングを実際に行ってみて

次に私がプロンプトエンジニアリングを行ってみて、実際に感じた点・苦労した点についてお話しします。

それに重ねる形で「Prompt Engineering Guide」がどのような位置づけで活用されることが想定されるかを見ていきたいと思います。

実際にどういう手順で入力すべきかをなかなか理解できなかった

ノウハウ集としての情報はさまざま提供されても、「実際にどの段取りで入力すればよいのか」「英語と日本語で扱いの差が割とあったら嫌だな」など、小さいながらも、意識しないといけなそうな点が自分のなかでひっかかり、そこに対する感触を得るところからスタートしました。

その意味で具体的に最も貢献してくれたサイトが「プロンプトエンジニアリング基礎編」になります。 

このサイトはChatGPTを提供するOpenAIの記事である「Best practices for prompt engineering with OpenAI API」を日本語化するだけでなく、プロンプト入力ための完全な例が与えられているためです。

最初にプロンプトエンジニアリングを学ぶという点では、「プロンプトエンジニアリング基礎編」のほうが迷う点が少ないという意味でおススメできます。 

そのうえで「Prompt Engineering Guide」を読むことで、体系的な知識を最短で身につけることができると感じております。

ピンポイントで欲しい文章がかんたんに取り出せない

身もふたもない話ですが、結局のところ、欲しい文章を得るのにはさまざまな理由から苦労します。

苦労する要素をシンプルに述べると、以下の2つに集約されます。
- ある業界に関連する文章を作成しようと試みるが、その専門知識がないことに起因して上手に生成できない。
- プロンプトエンジニアリングで改善するにも、改善できる範囲に限界がある。

前者に関してさらに細かくいうと、以下の通りになります。
- 業界の知識がないと、そもそも適切な指示文が思いつかない。
- ChatGPTなどは「必ずしも真実を述べてくれるわけではない」という点があることから、生成された文章の妥当性の担保は個別に行う必要がある。

これらは当面の要素が変わる余地はないと思われることもあり、専門的な業界知識・業務知識はますます重要になると強く感じております。 

また、後者に関しては、あくまでChatGPTは「汎用的な生成モデル」の位置づけによるものであり、専門的な用語を生成するためのモデルでないことに起因しているケースになります。 

このようなケースにおいては、既存のモデルに対してさらに学習を行っていくFine-tuningという手法が存在し、こちらも専門的な知識をもとに行うべきものとなっています。
その一方で、たたき台レベルのもので問題ない、そこまで混み入ったものでなくてよい場合においては、非常にスピード感持って作れるなと感じております。 
この限界ラインを判断するための材料として、限界まで引き出すための基本的なテクニックを網羅的に知るのに「Prompt Engineering Guide」は非常に有用だと思っております。

ほかの人に説明しにくかったけど…

「Prompt Engineering Guide」の日本語訳の価値は、「他の人に説明するときの基準」としても大きく寄与すると考えられる点にあると思っております。 
資料作りをしていても、「ここをベースに文章を組み立てていけばOK」と考えられるのは、とても大きいものであると感じます。 
これは私に限らず、プロンプトエンジニアリングに取り組む人たちが共通言語で会話できるようになることで、プロンプトエンジニアリングの普及に拍車をかけるものになると考えております。

さいごに

ChatGPTおよびプロンプトエンジニアリングはエンジニアだけでなく、一般の人たちも使う汎用的なスキルになっていくことが想定されます。 
また、AIモデルの進化に伴いプロンプトエンジニアリングそのものも変化するものと思います。
その一方で、使いこなすための専門知識の価値はさらに増すだろうとも肌で感じます。
いずれにしても、プロンプトエンジニアリングは、今後の生産性に大きく貢献してくれるものと強く確信しております。