見出し画像

ChatGPTでstep by stepもロールプレイもやめたらプロダクト開発で使える精度になったよ

プロダクトマネジメントのコーチをしています。プロダクト開発の中でもGPT4を使うケースが増え、相談されることが増えてきました。

ChatGPTのGPT4を用いた際の、専門家として信用できる精度で推論させるための工夫の一部を紹介します。精度が必要な専門職かつ中級者向けになると思います。「機密情報の入力をどうさけるか」といった運用の話は今回はしません。

やったことと起きたこと

一通り論文を読んで試したり、試行錯誤しました。
その結果、専門家として業務レベルで使える程度のものができるようになってきました。

クライアントのプロンプトを添削する仕事も増えつつあります。副作用として、日本語なのに日本語と感じられない自然言語に目覚めてきました。この片鱗についてお話しします。

分かったこと

分かったこととして、精度を業務レベルで用いるためにまずはじめにとりくむことは下記です。

・接待モードを切る
・指示の質が回答の質になる
・step by stepは楽だが精度は高くない
・マルチターンでのCoTは精度を損なわせる
・ロールプレイは精度を損なわせる

ChatGPTの接待モード

chatGPTは接待モードで動作している

接待モードとはChatGPTのふるまいのことです。ChatGPTは単純なQ&Aではなく、ユーザーが満足するような回答をするようにデザインされており、欠けた情報を補完したり、ユーザーの関心を引くために提案したりします。ここでは分かりやすい4つの例を紹介します。

・質問文で省略されている意図や指示を補完し、回答の前に表示する
・回答が長くなる場合には人が読みやすいように詳細を省き、重要な情報を強調する
・ユーザーにとって理解しやすく、要点を把握しやすい文章が提供できるように、文章の最後にまとめを示す
・ユーザーが求めたら求めただけ答える

実例を見ていきましょう。

・質問文で省略されている意図や指示を補完し、回答の前に表示する

質問: 「最も古い言語は何ですか?」
省略された意図の補完: 質問者は、歴史上で最も古い言語について知りたいと考えられる。

回答: 歴史上最も古い言語を特定することは難しいですが、一般的には、シュメール語が最も古い言語の一つとされています。紀元前3000年頃にメソポタミア地域で使われていました。

質問: 「その映画の評価はどうですか?」
省略された意図の補完: 質問者は特定の映画の評価や評判を知りたいと考えられるが、具体的な映画名が省略されている。

回答: お尋ねの映画のタイトルが省略されているため、具体的な評価を提供することはできません。もし映画のタイトルをお知らせいただければ、その映画に関する評価や評判をお伝えすることができます。

・回答が長くなる場合には人が読みやすいように詳細を省き、重要な情報を強調する

情報を段落に分ける: 長い文章を読むのが難しいため、段落ごとに1つのアイデアや主題に集中し、読み手が追いやすくします。
箇条書きを利用する: 複数の要点がある場合、箇条書きを使って情報を整理し、一目で分かりやすくします。
重要な情報を最初に書く: 質問に対する答えや要約を文章の最初に書き、その後で詳細を説明することで、読み手がすぐに重要な情報をキャッチできるようにします。
不要な詳細を省く: 情報が多すぎると読み手が混乱するため、主要なポイントに焦点を当て、関連性の低い情報は省略します。
シンプルな言葉を選ぶ: 難解な言葉や専門用語は避け、一般的でわかりやすい言葉を使って、できるだけ多くの人に理解されるように努めます。

・ユーザーにとって理解しやすく、要点を把握しやすい文章が提供できるように、文章の最後にまとめを示す

文章の最後にまとめを示す: 文章の最後に要点をまとめることで、ユーザーが重要なポイントを把握しやすくなります。

・ユーザーが求めたら求めただけ答える
たとえば「プロダクト開発について重要なことはなにか?」と聞くと様々な要素を答えてくれます。それに対して「もっと他にはありませんか」と聞いていくと、その度に答えてくれます。しかし、徐々に関連性は落ちていきます。


接待モードによって、精度や詳細さが犠牲になることがある

このようにChatGPTはユーザーを満足させるふるまいを行うことで、様々な使い方をするユーザーでも利用しやすくなっている特徴があります。ChatGPTはリリース後5日で100万ユーザー、2ヶ月で1億ユーザーと、人類史上最速で広まったのも、この使い勝手の良さが大きいと思います。

ただし、ユーザー満足を重視するあまり、精度や詳細さが犠牲になることがあるということです。


接待モードを切る

どのような接待的な機能がされているのかを特定した上で、それをしないように指示すると止めます。

・まとめや結論は指示以外では書かないでください
・詳細でないことや重要ではないことも省略せずに書いてください

もし接待モードが切れない場合、「○○をやめるともっと助かります」というように、切るとユーザーの満足が高まることを明示すると切れる場合があります。

ただしこのような指示にも量的が限界があるようで、増やしすぎると無視するようになります。利用目的に悪影響を及ぼす接待モードを切るようにしています。悪影響を及ぼす接待モードはマルチターンでのCoTのところで解説します。

次は接待モードを確認するプロンプトの一例です。

ユーザーが回答に満足できるように、chatGPTが行っている配慮にはどのようなものがあるのかを解説してください。たとえば「質問文で省略されている意図や指示を補完し、回答の前に表示する」といったものです。


指示の質が回答の質になる

接待モードがあるため、雑な問いかけでも補完してくれるので、ほどほどに精度が引き上げられるのです。

そこで同程度の労力で精度の高い回答を求めようとして、期待した結果にならず、ChatGPTもこの程度かと判断してしまうかもしれません。

専門家が満足する精度にまであげるためには、そもそもの指示の質を上げる必要があります。国語の問題文のように、出題者が暗黙ルールに沿って答えさせようとする指示の出し方では精度は出ないということです。

良くも悪くも大衆向け(マス向け)の調整に偏っているため、専門家が求める水準まで高めるには相応の労力がかかっています。労力をかけると専門家から見ても十分に利用できる精度になります。

ここに気づかなかったら、ちょっとしたアシスタントくらいにしか使わなかったでしょう。気づけたのは幸運でした。

これから具体的にほどほど向けのテクニックについて、精度が落ちる点を紹介します。


step by stepは楽だが精度は高くない

質問文にstep by stepと入れるだけで推論精度が上がるテクニックがZero-shot CoTです。結論に至るまでの推論の過程を回答させることで推論の質が上がります。

これは一つ一つの指示をChatGPT自身に作らせているようなものです。ChatGPTが作る指示はほどほどによいものですが、ほどほどです。

では、どうすれば精度が上がるか?

自分でステップを全て記述して指示をすれば精度が大きく伸びます。補完させることなく解釈の揺れも起きないほど明瞭な指示を表現するとびっくりするくらい伸びます。
※ただし自然言語ですが人が読むには大変な文字列になります。

おそらく2023年4月時点では多くの人が日常会話の延長でChatGPTに指示を出していると思いますが、精度や正確性はそれほど引き出せていない気はします。今後、LLMに対する自然言語を獲得したり、LLM側がチューニングされることで改善されると思います。


マルチターンでのCoTは精度を損なわせる

マルチターンとCoTの簡単な説明をします。

マルチターンとは、ChatGPTとコンテキストを維持したまま会話を何度か往復させることです。これは検索エンジンが、検索ワードとその結果という1回のやり取りしか扱わなかったシングルターンタスクだったことに対して、ChatGPTではそれまでのやりとりを踏まえた回答をしてくれることが大きな違いになりました。

CoT(Chain of Thought)は日本語では思考連鎖になり、推論の過程を提示することで回答の精度が上がるというものです。step by stepもCoTの一種です。

CoTそのものは精度をあげるために役に立つのですが、マルチターンが絡むとやっかいなものになります。今のChatGPTではCoTを選択的に選べないのです。つまり、極端に言えば、ChatGPTでの複数回のやり取りは何でもかんでもCoTとして利用されやすいということです。

以下は明確なふるまいを表したものではありませんが、イメージしやすいかなと思った解説です。

人の認知特性として短期記憶力、ワーキングメモリといった記憶に関する性質があります。人は保持できる情報が限られており、作業を進めるうちに使わない情報は忘れていくことになります。

よく問題解決手法のモデルとして発散と収束が挙げられます。人は選択肢の中から選んで収束させているように思うかもしれませんが、忘れるという機能によっても収束が促進されているわけです。

ところがChatGPTは、忘れることなく、それまでのやり取りを用いて回答します。そのため、一度ブレストをさせて何かを選ぶと、後々になっても、選ばれなかったブレストの内容が再登場することになります。

ここでの結論としては、精度の高い回答を求めるには最短距離で結論を出力させる必要がある、ということです。まるで工場のように鉄板を無駄なく連続加工することで最終製品にするようなものです。

人間との打ち合わせのように様々な議論をしながら会話をしていくと、まあまあ納得はできるけどぼやけた回答になりやすいです。


ロールプレイは精度を損なわせる

ロールプレイとは「あなたは○○のプロフェッショナルです。その立場から回答してください」というように、ChatGPTに何らかのふるまいをさせて回答に反映させることです。

このロールプレイも接待モードのようなものです。ユーザーを喜ばせようと、足りない意図や指示を補完し、回答してくれます。この補完の精度が回答の質を制約します。

指示
あなたは経営学修士を持つマーケティングのプロフェッショナルです。様々な経験をし、いくつもの製品を成功に導いてきました。今回、新作マンガを担当することになりました。この新作マンガをヒットさせるための方法を考えてください。

回答
新作マンガをヒットさせるためには、以下のようなマーケティング戦略を考えることが重要です。

ターゲット市場の特定: まず、どの年齢層や性別、趣味嗜好にマンガをターゲットにするかを明確にします。これにより、適切なマーケティングチャネルと宣伝方法を選ぶことができます。

SNSを活用したプロモーション: Twitter、Instagram、FacebookなどのSNSを活用して、作品のティーザーやキャラクター紹介を行い、ファン層を広げましょう。また、インフルエンサーや有名人とコラボレーションして、広告効果を高めることもできます。

オリジナルグッズの展開: 作品のキャラクターやデザインを使ったオリジナルグッズを開発し、ファンの関心を引きつけることができます。これにより、ブランドの認知度を高めることができます。

イベントやコラボカフェの開催: マンガのテーマに合わせたイベントやコラボカフェを開催し、ファンとの交流を深めることができます。こういったイベントでは、サイン会やトークショーなどを行い、ファンの熱狂を盛り上げましょう。

アニメ化や実写化の検討: 作品の人気が高まれば、アニメ化や実写化を検討することができます。これにより、さらに多くの人々に作品を広めることができます。

クロスプロモーション: 他の人気作品や企業とのコラボレーションを行い、相互のファン層を広げることができます。例えば、同じ出版社の人気作品とのコラボや、食品やアパレルなどの企業とのタイアップが考えられます。

これらの戦略を実行することで、新作マンガの人気を高め、ヒット作品へと導くことができるでしょう。

マーケティングやマンガの分野に詳しくない人が回答を見たら「すごい」と思うかもしれません。ところが専門家から見たら「使えない」レベルです。もし専門家であれば自分の専門分野でロールプレイさせてみて、回答について評価してみてください。ほどほどの答えかもしれませんが、第一線のプロの答えとはほど遠いと思います。

とくに注意なのが相性です。指示や質問の対象の領域が、ロールと相性が良いのであれば回答の精度はあがりますが、相性が悪いと、ピントが外れたことを自信満々で話す回答ができあがります。

ロールプレイに似た「○○風」の例を出しましょう。

指示
ガンダルフが日本の秋葉原の牛丼屋に入って、カレーを注文しました。この出来事を指輪物語風に描いてください。

回答
太古の時代から語り継がれる物語がある。その中には、勇敢なホビットたちや力強いエルフ、意志の強いドワーフ、そして、偉大なる魔法使いガンダルフが登場する。そしてある日、ガンダルフは異世界の冒険へと旅立った。

この物語は、ガンダルフが未知なる世界、遥か東の地「日本」と呼ばれる土地へ足を踏み入れた時から始まる。彼は名も知らぬ「秋葉原」という場所に降り立ち、そこで目にしたのは、奇妙な光景であった。街の中心に立つ、電気が走る建物たち、そして街を歩く人々。彼らは、まるでガンダルフがこれまで見てきたどの世界とも違う様相を持っていた。

彼は新しい冒険に興味を持ち、街を歩く人々の中に溶け込むことに決めた。しばらく歩くと、彼は「牛丼屋」と呼ばれる小さな店にたどり着いた。その店は地元の人々で賑わっており、美味しそうな香りが立ち込めていた。

ガンダルフは決意した。「ここで食事を取らねばならぬ」と。彼は店に入り、陽気な店員に出迎えられた。彼は、日本の言葉を話すことができず、どうすればよいのか悩んでいた。しかし、彼は魔法使いである。心を落ち着かせ、彼は言葉の壁を越える魔法を試みた。

それが成功し、彼はついに日本の言葉を話すことができるようになった。彼はカウンターに座り、メニューを見つめながら、考え込んでしまった。

ちょっと面白いですね。でも、ほどほどです。
お金払って読みたいですか? 暇つぶしにはなりますが、私にとってはお金を払うほどではありません。


簡単さを求めるか、精度や正確さを求めるかを判断して使う

自分が素人の分野で、ほどほどな回答が素早く欲しい場合には、接待モードやstep by stepは大変役立ちます。自分に必要だけど得られない人脈があり、行き詰まっているときには、ほどほどの回答でも大変ありがたいものです。

また、ほどほどで構わないものにも役立ちます。メールでの配慮の行き届いた返信です。労力をかけても見返りが少ないけれども、しかたがないからしているようなことにはうってつけでしょう。

でも、ほどほどでしかないことには注意が必要です。最高だけが生き残る場所では力不足です。たとえばエンタメのようなトップが生き残るような市場では、ほどほどが生き残る場所はありません。

改めて、今のところ専門家が使えるくらいに精度を上げる方法は以下です。
・補完させることなく解釈の揺れも起きないほど明瞭な指示を表現する

こうすることで分野によっては専門家が採用できる精度のものがでてきます。

さて、今回は精度にフォーカスして解説しました。精度を上げる方法であるstep by stepや、CoT、ロールプレイが、ほどほどまでは簡単に精度をあげられるが、限界が以外と低いという話をしました。


おまけ

もちろん今回の方法だけで欲しい結果が得られるわけではありません。たくさんの下準備が必要です。そのひとつを紹介します。

LLMに精度の高い情報があるのか評価する必要があります。たとえば下記のように、評価の度合いごとにで出力させて正確さを評価すると、妥当なところと甘いところがみつかりします。

「アジャイル開発という方法を用いる際の失敗の深刻さを推測し、0-100で評価してください」という質問に対して、評価の結果が下記となる場合の回答を教えてください。

質問:
評価が1となる行動を3種類書いてください
評価が10となる行動を3種類書いてください
評価が30となる行動を3種類書いてください
評価が50となる行動を3種類書いてください
評価が70となる行動を3種類書いてください
評価が100となる行動を3種類書いてください

評価の段階:
0は、ほとんど軽微な失敗
50は、担当者が右往左往する困ったことになる失敗
100は、今回の方法が台無しになってしまう失敗

反響があればもっと紹介していこうと思います。

twitterはこちら、プロダクト開発についてたまにつぶやいてます。
https://twitter.com/N_A

過去の登壇スライドはこちら
https://speakerdeck.com/moriyuya

お仕事の依頼はこちら
https://note.com/mryy/n/n036d6fb9691d

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