採用はこちら!

Shinonome Tech Blog

株式会社Shinonomeの技術ブログ
3 min read

【ChatGPT】ワイの妹がChatGPTなわけあらへん(5)【勉強日記】

【ChatGPT】ワイの妹がChatGPTなわけあらへん(5)【勉強日記】第5話「プロンプトエンジニアリングのコツって?~ゼロショット学習/フューショット学習編~」

自己紹介

  • 名前:yuuki
  • 役職:ChatGPT調査担当

やりたいこと

  • 学生や社員がChatGPTに対して興味を持ってもらったり触るハードルを下げる
  • プロンプトエンジニアリングについて少し詳しくなれる
  • ChatGPTに入れる内容を考えるときの背景知識が得られる

やること

  • 対話形式でキャラクターが話しながらChatGPTについて学んでいく物語をブログにする

登場人物

このブログは以下の登場人物がChatGPTについて学んでいくお話です。

  • 兄者:怪しい関西弁
  • 妹:今回はバリバリの関西弁です

前回

【ChatGPT】ワイの妹がChatGPTなわけあらへん(4)【勉強日記】
【ChatGPT】ワイの妹がChatGPTなわけあらへん(4)【勉強日記】第4話「プロンプトエンジニアリングの応用例」

第5話「プロンプトエンジニアリングのコツって?~ゼロショット学習/フューショット学習編~」

【兄者】プロンプトエンジニアリングの世界を探求すると言っても、妹的にはどんなのが気になってるん?

【妹】兄者、みんなChatGPTに詳しくなってきて、あたしもっとChatGPTについて詳しくなりたいんやけど、プロンプトエンジニアリングに関するテクニックとか教えてくれへんか?

【兄者】おおお!それならゼロショット学習がオモシロイと思うで!

【妹】ほんまに?どんなもんなん?

【兄者】ゼロショット学習はな、訓練データに含まれていない新しいタスクやドメインに対しても、モデルを訓練できる手法やで。
通常、機械学習のモデルを訓練するには、大量の訓練データが必要やけど、ゼロショット学習では、事前に訓練されたモデルを利用することで、新しいタスクやドメインに対応することができるんや。

【妹】あーなるほど。具体例とかあるんか?

【兄者】あるで!例えば、車のブランド名を入力すると、そのブランドに関する特徴を説明する文章を生成するってプロンプトがあるとしようや。
そのプロンプトに対して、ある車のブランド名を入力した場合に、そのブランドに関する文章を生成するモデルを訓練したとするやんか。
そうすると、訓練データに含まれていない別の車のブランド名を入力しても、そのブランドに関する文章を生成できるようになるわけや。例えば、BMWってブランド名を入力したら、BMWについてのデータがなくてもBMWに関する文章が生成できるというわけや。

【妹】なるほど。でも、欠点とかもあるんちゃう?

【兄者】ああ、それもあるで。たとえば、訓練データが充実している場合に比べると、精度が低下することがあるんや。
それに、事前に訓練されたモデルを利用するため、新しいタスクやドメインに対応するための情報を含んでいない場合、モデルが正しい結果を出すことができない場合もあるんや。

【妹】ほんまやね。でも、とってもオモシロそうやね。ありがとう、兄者!

【兄者】えええ、こっちこそありがとうやで!まだ何かあったら聞いてくれや!

【妹】ちなみにフューショット学習ってのも聞いたことあるんだけど、それって何?

【兄者】おお、フューショット学習か。それはね、少ないサンプルデータで新しいタスクに対応できる方法なんや。

【妹】ゼロショット学習とは違うんやな?

【兄者】まったくや。ゼロショット学習はサンプルデータが一切ない状態から新しいタスクに対応するやつやで。

【妹】フューショット学習の利点って何なん?

【兄者】そりゃ、限られたデータで高い精度が求められるタスクに対して有用なんや。例えば、ある画像分類モデルを訓練する場合、サンプルデータを多数用意することができない場合でも、フューショット学習を利用することで、新しい画像分類タスクに対応できるんや。

【妹】なるほど、具体的な例はあるん?

【兄者】ああ、例えば、犬・猫・ウサギの画像を分類するモデルを作る場合やな。その場合、犬・猫・ウサギの画像データを少数用意して、それを利用してモデルを訓練することで、新しい画像を分類できるんや。

【妹】フューショット学習を使うときの注意点ってあるん?

【兄者】ああ、そうやな。フューショット学習は限られたデータで高い精度が求められるタスクに対して有用な手法やけど、サンプルデータに含まれる情報の共通化が前提になるから、一般的なタスクに対して使うときは、適切な使用方法を検討する必要があるで。あと、サンプルデータが少ない場合は、過学習に陥る可能性があるから、注意が必要やな。

【妹】なるほど、勉強になったわ。ありがとう、お兄ちゃん!

【兄者】おお、お役に立てたみたいで何よりや。そしたら次はもう少しテクいところも話していこか。

あとがき

今回はゼロショット学習とフューショット学習についての回でした。
筆者は、自分が打っているプロンプトがゼロショット的なのかフューショット的なのかをざっくり理解しながらChatGPTと話した方が良さそう!くらいの理解でして、ここらへんを突き詰めて考えている人はすごいなと思います…!
全体を見るとようやく中盤といったところまで進行ができたので、引き続きご覧ください!

まとめ

  • 良いプロンプトを送るには、知識としてゼロショット学習とフューショット学習を理解しておくと良い
  • ゼロショット学習はサンプルデータが一切ない状態からタスクに対応する手法で、データがない内容についても対応できる分、精度が落ちる
  • フューショット学習は少ないサンプルデータで新しいタスクに対応できる手法で、サンプルデータを多数用意することができない場合でもある程度精度が上げられるが、過学習してしまい偏った出力しか出なくなる恐れがある