【コピペ可】ChatGPTの精度を高める手法「CoT(Chain of Thought)」とは? プロンプトで効果的に活用するコツをわかりやすく紹介!

【コピペ可】ChatGPTの精度を高める手法「CoT(Chain of Thought)」とは? ChatGPT
【コピペ可】ChatGPTの精度を高める手法「CoT(Chain of Thought)」とは?

はじめに

本記事ではChatGPTの精度を高める手法の1つである「CoT(Chain of Thought)」について紹介します。CoTを効果的に活用することで、複雑なタスクにも対応することができるようになります。

すぐに使えるプロンプト例も紹介していますので、ぜひ最後までご覧ください!

ChatGPTとは

「ChatGPT」とはOpenAIという会社が作った、対話型のAIツールです。あなたがコンピューターやスマホでチャットをするように、ChatGPTに何か文章で質問すると、それに答えてくれます。

ChatGPT
Get instant answers, find creative inspiration, learn something new.

ChatGPTはたくさんの本やインターネット上の文章を読んで学んでいるので、さまざまな質問に自然な言葉で答えることができます。たとえば、宿題の質問をしたり、ある話題について詳しく知りたいときなどに便利です。

ChatGPTは2022年に世界中に公開されてから、多くの人が使うようになりました。また無料で使えることから、公開からわずか5日で100万人以上のユーザーが登録しました。

今では仕事の場面で使われるだけでなく、学校の課題を助けてくれたり、日常生活でも様々な場面で使われています。

プロンプトとは

ChatGPTを使うときには、ChatGPTにどのような質問をするかを指示する必要があります。この指示のことをプロンプトといいます。

例えばChatGPTに

晩御飯の献立を考えて

と質問すると、ChatGPTは晩御飯の献立を考えてくれます。このときの「晩御飯の献立を考えて」という部分がプロンプトです。

chatgptプロンプトサンプル
chatgptプロンプトサンプル

プロンプトにはChatGPTには上記のような質問を記述しても良いですし、何か解かせたいタスクや文章の校正、要約やアイデア出しなど、様々な使い方があります。

プロンプトエンジニアリングとは

プロンプトをどのように作成するかによって、ChatGPTの出力結果が大きく変わります。ChatGPTからより良い出力を得るために、プロンプトを工夫することをプロンプトエンジニアリングといいます。(厳密にはChatGPTだけでなく他の生成AI全般で使われる用語です)

Prompt Engineering Guide
A Comprehensive Overview of Prompt Engineering

プロンプトエンジニアリングとして既に様々な技術やノウハウが公開されていますが、現在進行形で新しいテクニックが発見されている分野でもあります。

例えば「Few-shot learning」というChatGPTの出力を制御するためのテクニックがあります。こちらについては以下の記事で詳しく紹介しています。

CoT(Chain of Thought)とは

今回はChatGPTを使ったプロンプトエンジニアリングの一つであるCoT(Chain of Thought)について紹介します。

Chain-of-Thoughtは入力から直接出力を得るのではなく、その出力に至るまでの推論過程を一歩ずつ明示させることによって、最終的な出力の精度を高める技術です。各単語の頭文字を取って「CoT(シーオーティー)」と略されます。「ChatGPTに『Let’s think step by step』『一歩ずつ考えよう』など問いかけると精度が上がる」という言説とともに耳にしたことがあるかもしれません。

CoTは計算問題や文章の要約やアイデア出しなど、様々な場面で応用できます。

計算問題を例に見てみましょう。

プロンプト

ケンは、35個のチョコレートを持っていました。
15個を友達にあげ、その後8個を買い足しました。
ケンは現在何個のチョコレートを持っているでしょうか。

出力

チョコレートは22個あります。

この回答は不正解です。しかし、「計算過程を示してください」と指示を追加するとどうでしょうか。

プロンプト

ケンは、35個のチョコレートを持っていました。
15個を友達にあげ、その後8個を買い足しました。
ケンは現在何個のチョコレートを持っているでしょうか。
計算過程を示してください。

出力

ケンが持っていたチョコレート:35個

友達にあげたチョコレート:15個

買い足したチョコレート:8個

計算:35個 - 15個 + 8個 = 28個

答え:ケンは、28個のチョコレートを持っています。

このように計算過程を示すことで正解が得られます。

この手法がうまくいく理由は明確にはわかっていませんが、複数の推論ステップを要求するタスクにおいて、すべてのステップを同時に行うことができないためであると考えられます。「35 – 15 + 8」の答えを得るためには、足し算と引き算を別々に計算する必要があります。私たち人間も口に出さないまでも、一歩ずつ推論しています。

なおCoTは結論に至った後にその過程や理由を後付けするのでは意味がありません。既に導かれた結論に対して説明を与えても、それが結論に影響を与えることはないためです。推論ステップの最後に結論が導かれるようにしてください。

CoTとFew-shot learningの組み合わせ: Few-shot-CoT

Chain-of-Thoughtは単体で使われることもありますが、他のプロンプトエンジニアリングのテクニックと組み合わせて使うことでより高い精度での出力を得ることができます。

例えばFew-shot-CoTCoTFew-shot learningを組み合わせた手法です。

Few-shot learningについては以下の記事で詳しく紹介していますので参考にしてみてください。

Few-shot-CoTを使うことで、ChatGPTに問題を解くための思考過程を段階的に示す「Chain-of-Thought (CoT) 」を具体的な例題と解答を通して学習させることができます。

プロンプト

# 質問:ストレスを減らすために心がけることを教えてください

# 回答:

## 前提
- ストレスは生活の不可欠な要素であり完全に排除することはできない。
- ストレスを適切に管理することで健康や幸福感を向上させることができる。

## 結論
- 自分自身に合ったストレス管理方法を見つけましょう。ストレスレスポンスに対する個人の反応は異なります。
- ストレスの要因を理解し、それらをコントロールするための計画を立てましょう。
- 健康的なライフスタイルを維持し、バランスの取れた食事や適切な睡眠を心がけましょう。
- ストレス解消のための活動を取り入れましょう。例えば、ヨガ、瞑想、散歩、アートなどが有効です。



# 質問:
健康に生きるための心がけることを教えてください

# 回答:

## 前提

## 結論

出力結果の例

## 前提
- 健康は身体だけでなく精神的な面も含めた総合的な状態である。
- 健康を維持することは自分自身や周りの人々の幸福にもつながる。

## 結論
- 栄養豊富でバランスの取れた食事を心がけましょう。野菜、果物、良質なタンパク質、健康的な脂肪を含む食品を適切に摂取することが重要です。
- 身体を動かすことは健康の基本です。日常的な運動を取り入れ、心肺機能や筋力を維持しましょう。
- 十分な睡眠を確保することで、体の回復や精神的な安定につながります。睡眠の質を高めるために、寝る前のリラクゼーションやスクリーンからの遠ざけなどの習慣を取り入れると良いでしょう。
- ストレスは健康に悪影響を与える要因です。リラクゼーション法や趣味に時間を割くことで、ストレスを軽減する方法を見つけましょう。
- 定期的な健康診断や歯科検診などを受けることで、早期に健康問題を発見し対策をとることができます。

この例では「ストレスを減らすために心がけること」に関して前提→結論のステップを示し、その後に「健康に生きるための心がけること」に関しても同様のステップで出力してもらうように指示しています。

CoTの活用例

Chain-of-Thoughtの実践例をいくつか見てみましょう。

計算問題

プロンプト

エミは、10本の鉛筆を持っていました。
3本を友達にあげ、その後5本を新しく買いました。
エミは現在何本の鉛筆を持っているでしょうか。計算過程を示してください。

出力

エミが持っていた鉛筆:10本

友達にあげた鉛筆:3本

新しく買った鉛筆:5本

計算:10本 - 3本 + 5本 = 12本

答え:エミは、12本の鉛筆を持っています。

複数のステップを含むタスク

Chain-of-Thoughtの応用例として、複雑な論理問題やストーリーの生成にも利用できます。以下にストーリー生成の例を示します。

プロンプト

太郎は、毎朝6時に起きてランニングをします。
その後、7時に朝食をとり、8時に学校に向かいます。
ある日、太郎は目覚まし時計をかけ忘れて7時に起きてしまいました。
彼は朝食を食べてから学校に行くため、どのようなスケジュールを立てるべきでしょうか。
推論過程を示してください。

出力

太郎の通常のスケジュール:

6時:起床

6時15分:ランニング開始

7時:朝食

7時30分:朝食終了

8時:学校に出発

遅く起きた日のスケジュール:

7時:起床

7時15分:朝食開始

7時45分:朝食終了

8時:学校に出発

答え:太郎は、7時に起きた場合でも朝食をとってから学校に行くため、7時15分から朝食を始め、7時45分に朝食を終えて、8時に学校に向かうべきです。

このようにChain-of-Thoughtを使用することで、複数のステップを含むタスクに対しても正確な結果を得ることができます。

プロンプトエンジニアリングを学ぶならCodeCollege

プロンプトエンジニアリングのテクニックはこの他にもたくさんあります。

CodeCollegeの「プロンプトエンジニアリングコース」では、プロンプトエンジニアリングの基礎から応用までを学ぶことができます。プロンプトエンジニアリングのテクニックを身に付けたい方は、ぜひCodeCollegeのコースをチェックしてみてください。

CodeCollege | プログラマー・エンジニアを未経験から目指すためのオンラインプログラミングスクール
プロンプトエンジニアリングの基礎から実践までを学ぶコース。エンジニアリングの基本スキルを習得し、実務での活躍を目指します。

ChatGPTの初期設定や注意事項もサポートします!

これからChatGPTを使ってみたい!という方には「はじめてのChatGPT」コースがおすすめです!

ChatGPTの初期設定やプランの選び方、効果的な質問のコツや注意すべきことなどを網羅したオリジナルテキストをご用意。はじめての方でも安心して使えるよう、基本からしっかりと解説しています。

また疑問や不明点が生じた際、リアルタイムでのサポートが可能なチャットサポートを導入。気になる点を24時間いつでも質問可能です。ChatGPTを使う中で少しでも気になることが出てきたら、お気軽にご質問ください!

CodeCollege | プログラマー・エンジニアを未経験から目指すためのオンラインプログラミングスクール
未経験からプログラマー・エンジニアを目指すなら、現役エンジニア講師から学べるオンラインプログラミングスクール『CodeCollege』。完全オリジナルのカリキュラムと質問し放題の環境で学びを徹底サポートします。

まとめ

本記事ではChatGPTを効果的に活用するためのテクニックである「CoT(Chain of Thought)」について紹介しました。CoTを使うことで、ChatGPTの出力結果を制御することができるようになります。また、CoTを活用することで、複雑なタスクにも対応することができます。

コメント

タイトルとURLをコピーしました