Search

「ChatGPT、これやって」うまくやってもらうために知っておきたい4 ... - GIZMODO JAPAN

ChatGPTを使っていてわりとあるのが、「変な答えが返ってくる…」。ChatGPTは確かに賢いですが、まだ発展途上でもあり、「聞き方」「言い方」がうまくないとそういう結果になることもあります。

経験上、ChatGPTが微妙にズレた回答をするのは、自分がした質問がごちゃごちゃしているとき。もうちょっと言うと、自分の中で「本当にして欲しいこと」が整理されておらず、質問の後ろに書かれていることが多いです。

対するChatGPTは前にある文言を重要だととらえる傾向にあるように思います。結果として「本当にして欲しいこと」がスルーされたり誤解されたりしてしまう…そんな印象です。

どうしたもんかな…と思っていたら、GitHubで公開されている『Prompt Engineering Guide』が大いに参考になりました。効果的なプロンプト(質問)を作るには「自分がやって欲しいこと」を4つの要素に分解して考えるといいというのです。

「指示」「処理して欲しいデータ」「予備知識」「出力形式」

その4つの要素とは以下。インストラクションから考え、書くのがポイントです。

インストラクション(質問・指示)

・絶対にやって欲しいことを簡潔・明瞭に記載する。

・絶対に最初に書く。

インプット(入力)

・インストラクションで処理してもらいたいテキスト・コードなどを貼り付ける。

コンテクスト(予備知識)

・やって欲しいことをこなす際に、絶対に必要になる知識や文脈。

アウトプット(出力)

・どういう形式で回答して欲しいかを定める。

実際にこれらに沿ってChatGPTに投げるプロンプトを書くとこんな感じになります。

スクリーンショット2023-04-0418.30.13
※インプット(## Input ##)に書かれているのは架空の歴史的事件です。「飯綱」の読みは英訳で「Izuna」と書かせたかったので「いずな」を採用しています

インストラクションは段違いに重要

インストラクション(質問・指示)とは要するに「ChatGPTにして欲しいのは結局これ!」です。ほかの3つは書く必要がないケースもありますが、インストラクションだけは必ず必要です。例で言えば「英語でタイトルをつけてください」「英語に翻訳してください」がこれに当たります。

スクリーンショット2023-04-0418.33.10
ChatGPTの回答。わりとうまく訳してくれました

こちらが先ほどのプロンプト例を書くに当たって「欲しかった回答」です。こういう回答を得るためには「原文にないタイトルを生み出す」「指定した文章の翻訳」はやってもらわないといけません。絶対に自分ではやりたくないので誤解・スルーされないよう、最初に、明確に書きます

サラッと書いてますが、実際に使っていく上ではここがいちばん難しいと思います。「つまるところ自分は何を求めているのか」を事前に言語化しておく必要があるのですから。

それはなかなかに索漠とした問いなわけですが、「インストラクションは要するに何?」という思考の軸を得てからは、的確なプロンプトを組むまでが早くなり、欲しい回答をもらえるのも早くなりました。

インプット・コンテクスト・アウトプット=必要になることもある指示・情報

ほかの3つはこんな感じです。

インプット

インプットは「インストラクションを実行するに当たってChatGPTに絶対に伝えなければいけない処理対象」です。上の例では翻訳して欲しい文章がそれに当たりますが、エクセルのデータをカンマ区切りなどで貼り付けて処理してもらうこともできます。

コンテクスト

コンテクストは日本語に訳すと文脈という意味ですが、ここでは「予備知識」のほうがイメージに近いと思います。「ChatGPTがインストラクションを実施する際に必要になるが、直接処理の対象にはならない情報」といった感じの括りです。

例の中では、いくつかの単語の意味を書いていますが、これはChatGPTがうまく認識できなかったためです。飯綱小路景清村正(造語)はもちろんのこと、齋藤一と松平容保(歴史上の人物)についてもうまく訳せませんでした(齋藤一をなぜか西郷隆盛と間違えていました)。それっぽい翻訳にするためには伝える必要がある情報だったわけです。

アウトプット

アウトプットは回答の形式などに関するオーダーといったところです。例の中では「タイトルを太字にして欲しい」「## Input ##の翻訳以外はいらないですよ」と指定しています。これはインストラクションに含めると、文章が簡明でなくなるためです。

自分は「140文字以内で」「表にしてください」「必ず箇条書きにしてください」などをアウトプットに書くことが多いです。ChatGPTの使い方としてプログラムのコードを書かせるというのがありますが、「Pythonコードで出力してください」などのように言語を指定するのもここが良いかもしれません。

まとめ

この3つの重要度はインストラクションに対して決まり、重要なものほど上に書くべきです。そして繰り返しになりますが、インストラクションとは切り離して考え、書いたほうが良いです。


本稿は上述の『Prompt Engineering Guide』の「Elements of a Prompt」の章に書かれている内容を、非エンジニアリング分野での応用例と自身の経験を添えてまとめたものです。同ガイドはエンジニア向けではありますが、ChatGPTを活用したいという人には幅広くおすすめできます。英語ではありますが、一読の価値ありです。

最後になりましたが、貴重なノウハウをまとめてくださったDAIR.AIに感謝申し上げます。

実際の会話

## Instruction ##

1. ## Input ## の内容を踏まえて、英語でタイトルをつけてください。

2. ## Input ## を英語に翻訳してください。

## Input ##

幕末、京都は祇園の飯綱小路景清村正で新撰組と長州藩士が斬り合いになったことがある。齋藤一が30人をなぎ倒し、坂本龍馬は連れ立っていた長岡晋太郎と逃げ惑った。ところが、松平容保の使者が現れ、仲裁を行った。状況を踏まえ、本件を記録することは禁じられた。

## Context ##

1. 飯綱小路景清村正(いずなこうじかげきよむらまさ)は、道路につけられた名前です。

2. 齋藤一(さいとうはじめ)は新撰組三番隊の隊長を務めた人物です。

3. 松平容保(まつだいらかたもり)は会津藩の藩主と京都守護職を務めた人物です。

## Output ##

1. タイトルは太字にしてください。

2. ## Context ## 以下は翻訳しなくて良いです。

ChatGPT

Title: A Forbidden Record: The Clash between the Shinsengumi and Choshu Samurai in Gion, Kyoto

During the end of the Edo period, there was an altercation between the Shinsengumi and Choshu samurai in Kyoto at the Izuna Koji Kagekiyo Muramasa in Gion. Saito Hajime, a captain of the Shinsengumi, cut down 30 people, while Sakamoto Ryoma, accompanied by Nagaoka Shintaro, fled in confusion. However, a messenger of Matsudaira Katamori, the lord of Aizu domain and Kyoto’s protector, appeared and mediated the situation. Considering the circumstances, it was forbidden to record this incident.

Source: Prompt Engineering Guide, OpenAI

Adblock test (Why?)



from "構成" - Google ニュース https://ift.tt/KLFnrOk
via IFTTT

Bagikan Berita Ini

0 Response to "「ChatGPT、これやって」うまくやってもらうために知っておきたい4 ... - GIZMODO JAPAN"

Post a Comment

Powered by Blogger.