見出し画像

専門的なプロンプトを書いてみる: 自然言語処理応用

前回、「自然言語処理応用: 専門知識でプロンプトを書く」という記事を書きました。↓こちら

要約すると、専門知識を有すると、具体的にどういった専門的なプロンプトを書けるのか?を解説した内容です。

今回の記事では、上記で紹介した「一般的なプロンプト」と「専門的なプロンプト」の効果検証を説明していきます。

1: メカニズムへの深い理解

比較するプロンプトは下記です。

一般的なプロンプト:
「下記の文章に対して、できる限り品質の高い要約をしてください」
専門的なプロンプト:
「下記の文章に対して、筆者が主張したいことの候補を、インテント認識で合計3個、重要なものから順に出力して、その結果に基づいて、できる限り品質の高い要約をしてください」

このプロンプトを使って、僕が海外向けに運用しているPodcastの台本(日本語版)を要約させてみます。

青色のフォーカス部分が、プロンプトの差分です

出力結果

僕の評価は「差分あり」です。

・左側の青い範囲が、右側の要約全体と同じ趣旨になっている。違いは、左側には具体例や背景などの枝葉の情報が含まれている。
・一方、右側は、インテント認識の結果を要約の骨にした結果、具体例や背景などの無駄な肉を削ぎ落とせている。
・左側の下2つの段落(青い範囲外)の内容は、「おまけ(本筋と直接の関係のない)の用語コーナー」と「締めのメッセージ」。つまり、本筋と関係のない情報を削ぎ落とせていない。
・左側全体として、台本の各段落を断片的に切り貼りした印象

「要約」を評価する軸は、「本質的な情報を骨として、無駄な肉をどれだけ削ぎ落とせているか」が一般的かなと思いますが、これであれば右側が優秀そうです。

「ここの段落は個別で読みたい」「この用語に関する情報は網羅的に拾いたい」などの個別の要望がある場合は、プロンプトでそれ専用の条件指定する必要があります。

そういった個別ケースを除いた、一般的な要約タスクとしては「インテント認識」を利用したプロンプトを推奨できるかなと結論づけました。「インテント認識」とは、自然言語処理の専門知識なのですが、↓こちらで体系的にまとめたのでご参考くださいませ。

2: 意図的なバイアスの調整

比較するプロンプトは下記です。

一般的なプロンプト:
「アメリカの19世紀の歴史について、詳しく教えて。」
専門的なプロンプト:
「アメリカの19世紀の歴史について、transformerベースのモデルが参照しがちな初期のコーパスに基づいて詳しく教えて。」

出力結果

青色のフォーカス部分が、プロンプトの差分です

僕の評価は「差分なし」です。

これは僕のミスなのですが、そもそもGPTはtransformerを取り入れている(笑)ので、デフォルト(つまり左側)でもプロンプトでやりたかったことを処理している可能性が高く、「プロンプトで明確に指示する必要性は薄い」という結論になりそうです。

言い換えると、他のモデルを利用する時には比較検証をする価値があるかもしれません。ちなみに、別のトピックとして、人工知能の歴史的発展についても試してみました。

青色のフォーカス部分が、プロンプトの差分です

やはり、こちらも「差分なし」のようです。

ここでちょっと深掘ってみます。

差分がある場合にだけ注目するのではなく、差分がなかった場合にも同じぐらい注目して「なぜないのか?」を追求することは、プロンプトの開発をする上でとても重要な姿勢だと考えています。

なぜなら、原理原則に立ち返ると、出力結果に最も影響を及ぼすのはプロンプトであるはずです。そのプロンプトが違うのに、出力結果に差分がないとすると、下記のいずれかだと思われます。
A)そのプロンプトの差分は、指示として機能しない自然言語である
B)そのプロンプトの差分は、本来は指示として機能する自然言語だが、その機能がモデルの処理に内蔵されているため、処理の方向性に結果として変化がない

Bの具体例: 翻訳タスクをする時に、精度を高めたいがために「トークン化、ステミング、レンマタイゼーションをstep-by-stepで実行してください」とか「隠れ状態や文脈ベクトルの工程に注意してください」とかをプロンプトで指示する場合です。GPTモデルのようなtransformerを組み込んでいるモデルは言われなくてもやるので、それをプロンプトで明示的に指示したところで出力の品質に差はないと思われます。

いずれにせよ、AであれBであれ、そのプロンプトが冗長であるという結論になりますが、次からプロンプトへの解釈が変わりますので、このように差分がない時こそ、その原因をぜひ考えてみてください。

補足

実は、先ほどのトピックの選定には要件があります。下記のようなカテゴリの情報抽出には、「transformerベースのモデルが参照しがちな初期のコーパスに基づいて」というプロンプトが効果を持つ可能性があります。

  1. 専門的・新しいトピック: 新しい研究、新しい技術、最近の出来事やトレンドなど、初期のコーパスには含まれていないであろうトピックを問う場合、このフレーズの有無で回答の内容や品質に大きな違いが生じる可能性がある。

  2. 異なる視点や解釈: 歴史的な出来事や文化的な事象には、多様な解釈や視点が存在することがあります。フレーズを使用した場合、一般的に認識されている、または初期のコーパスで主流だった視点が提供される可能性が高い。

  3. 詳細な情報や深い洞察の要求: モデルに深い洞察や詳細な情報を求める場合、このフレーズを用いると、一般的で基本的な情報が優先される可能性がある。

  4. コンテクストや背景情報: あるトピックの背景情報やコンテクストが求められる場合、フレーズを使用すると、一般的な情報が提供されることが期待される。

  5. 文化やサブカルチャーに関する情報: 特定の文化やサブカルチャーに関する深い理解や、そのコミュニティ内での最新の動向や見解を求める場合、初期のコーパスに基づく情報は時代遅れや不正確である可能性がある。

  6. 意見や評価の要求: あるトピックや出来事に関する一般的な意見や評価を求める場合、このフレーズを使用すると、より広く受け入れられている意見や評価が提供される可能性がある。

コーパスとは、モデルの学習するために整理されたデータベースのことで、初期のコーパスに採用されるデータは、一般的で幅も広く、信頼性の高い情報が採用されます。具体的には、Wikipedia、Common Crawl、BookCorpusとかです。

次回の第3回は、本格的な専門的プロンプトを解説します。

他SNSの発信


この記事が気に入ったらサポートをしてみませんか?