本文へ移動
カテゴリ

Webマーケ

Webマーケの記事すべてSEOサイト運営データマネジメントビジネス・マーケ概論広告

インタビュー

インタビューの記事すべて

おすすめサービス

おすすめサービスの記事すべて

おすすめ勉強法

おすすめ勉強法の記事すべて

おすすめ書籍

おすすめ書籍の記事すべて

データサイエンス

データサイエンスの記事すべてデータ解析品質工学多変量解析機械学習生成AI統計学

プログラミング

プログラミングの記事すべてPythonRSQLプログラミングスクール

スタビジについて

記事一覧運営者情報お問い合わせ

プロンプトエンジニアリングのコツや例文をまとめていく!テキスト版と画像版!

目次
ウマたんウマたん

当サイト【スタビジ】の本記事では、最近話題の生成系AIのアウトプットをハンドリングするのに大事なプロンプトエンジニアリングについてまとめていきます。AIに対する指示文をプロンプトと言いますが、このプロンプトが筋の良いアウトプットを出す上で非常に重要なのです。

こんにちは!

データサイエンティストのウマたん(@statistics1012)です!

昨今生成系AIの進化がスゴイですが、そんな生成系AIを上手く扱うためにプロンプトという指示文が大事になってきます。

この記事ではそんなプロンプトを操るプロンプトエンジニアリングについてまとめていきたいと思います!

プロンプトエンジニアリングの需要爆発!?

生成系AIの登場により、プロンプトエンジニアリングという言葉が生まれ、プロンプトエンジニアという職種が生まれました。

これは、今までプログラミング言語という名の「機械に人間の意図を伝える言語」を扱っていたものが自然言語で操れるようになったことによる変化です。

つまりプロンプトを上手く操れる人というのは従来の熟練プログラマーと同じような価値を持つと考えて良いんです!

プロンプトエンジニアの需要は増えてきており、現にプロンプトエンジニアの年収が場合によっては5000万円を超えるなんて話もあります!

ウマたんウマたん

プロンプトエンジニアで5000万円!?

が、、、注意が必要です。

現在は過渡期なのでプロンプトを上手く扱える人の価値が高まっていますが、これはここ数年で誰もが扱えるレベルまで標準化するかもしれません。

また高年収のジョブは、プロンプトだけを扱えるのではなく、後述するLangChainなどのライブラリを使って複雑なプロンプトの処理を制御したりそれをソフトウェアに組み込んだり一気通貫で出来る人である可能性が高いです。

とはいえ、今プロンプトエンジニアリングを学んでおくことは先行者利益を得る意味でも大いに意味があります!

ということで、プロンプトエンジニアリングをしっかり学んでいきましょう!

ウマたんウマたん

プロンプトエンジニアリングはプロンプトエンジニアという職種を手に入れるためというよりも自分の作業を効率化したりして労働生産性を高めて稼げる力を手に入れるためのものと捉えた方がいいかも!

AIに日本語で指示を出してプログラムのように動かすこの流れは、「Software 3.0」とも呼ばれています。

プロンプトエンジニアリング:テキスト生成編

さて、生成系AIにはいくつかのタイプがありますがここではメジャーなテキスト生成系と画像生成系AIについて見ていきたいと思います。

まずはテキスト生成系AI!

テキスト生成系AIにはOpenAIの開発するGPTモデルやGoogleのPaLM、MetaのLLaMAなどのたくさんのモデルがあり、それらを総称して大規模言語モデル(LLM)と呼びますが、どのモデルに対してもプロンプトエンジニアリングのテクニックは効果的です。

それではどんなことに注意してプロンプトを作成していけばよいのか簡単に見ていきましょう!

役割を与える

これはChatGPTをある程度使ったことのある人にとっては当たり前のテクニックかもしれませんが、かなり有効です。

プロンプトの前に「あなたは〇〇です」と付け加えるだけで出力の精度が大きく変わる可能性があります。

小学生が書いたようなアウトプットがほしければ小学生という役割を与えればよいですし、専門性のある文章がほしければ専門家の役割を与えてあげましょう!

サンプルを与える

適切な解答を導きたいときにプロンプトに対して欲しいアウトプットの組み合わせをこちらでいくつか用意してプロンプトの中に含ませるテクニックがあります。

これをfew-shot learningと言いますが、タスクによってはかなり効果的です。

実際に僕自身がサンプルを与えてfew-shot learningをした上でChatGPTを使った事例を取り上げてみましょう。

あるサービス開発しているときに、あるデータを特定のカテゴリに分類したいタスクがありました。

というように※実際とは違うデータ・カテゴリです

このとき、サンプルを与えないで

と指示出しをするよりも

というようにサンプルを与えてあげることで適切な分類回答が得やすくなります。

他にもたくさんあるのですが、もっと色々知りたい方は以下のスタアカのプロンプトエンジニアリングコースをチェックしてみてください!

以下のコースではどんなプロンプトにも使える汎用的なプロンプトをいくつか取り上げています。

ちなみに海外のpromptbaseというサービスでプロンプトが売り買いされているのでそちらから人気なプロンプトを購入してみるというのも筋の良いプロンプトを手に入れる一つの手です。

答えの前に考える手順を書かせる「Chain of Thought(CoT)」というコツもあります。くわしくは以下の記事で解説しています。

Chain of Thought(CoT)とは?AIに考える手順を書かせて正解に近づける仕組みを分かりやすく解説!Chain of Thought(CoT、思考の連鎖)とは、AIが答えを出すまでの考えの道筋を順に書き出しながら、最終的な答えにたどり着く方法です。本記事では、意味や効果の具体例、「ステップバイステップで考えて」などの使い方、考えすぎやコストといった注意点を分かりやすく解説します!

LangChainを使ったプロンプトエンジニアリング

ここまでどんなプロンプトを使えば筋の良いアウトプットを出力してくれるか簡単に見てきましたが、ここからさらに踏み込んでテキスト生成系AIのAPIを利用してプログラムを組む際はまたひと手間必要です。

複雑なプロンプトの流れをプログラムで組む際に役立つのがLangChainというライブラリなのです!

LangChainの特徴

LangChainの公式サイトには以下のように記述があります。

LangChain は、言語モデルを利用してアプリケーションを開発するためのフレームワークです。私たちは、最も強力で差別化されたアプリケーションは、API を介して言語モデルを呼び出すだけでなく、次のことも行うと信じています。

  1. データを意識する: 言語モデルを他のデータ ソースに接続する
  2. エージェント的である: 言語モデルがその環境と対話できるようにする

そのため、LangChain フレームワークは、そのようなタイプのアプリケーションを可能にするという目的を念頭に置いて設計されています。
(出典:LangChain公式サイト)

そうなんです。LangChainは言語モデルを利用してアプリケーションを作る際に効果を発揮します。

その上で2つの特徴を取り上げている通り、他のデータソースに接続したり対話できるように過去のやり取りを参照したりなどできるようになります。

現状ChatGPTのAPIをそのまま利用すると、インターネット上のデータソースを参照して答えを返したり過去のやり取りを保持して参照しながら答えを返すみたいなことをするにはかなり手間がかかります。

そこら辺の処理をLangChainでは簡易的によしなにやってくれるので、アプリを構築する際に非常に便利なのです!

LangChainをPythonで使ってみよう!

それでは、簡単にLangChainをPythonで実装していきましょう!

まずは、ライブラリ「langchain」と、OpenAIのモデルを使うための「langchain-openai」をインストールしていきましょう!

pip install langchain langchain-openai

続いて必要なメソッドをインポートしていきます。

from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
import os

続いてOpenAIのAPIキーを取得して環境変数にセットしましょう!

os.environ["OPENAI_API_KEY"] = "<OpenAIのAPIキー>"

そしたら早速LangChainの出番です。

以下のように記載してあげてください。

llm = ChatOpenAI(model="gpt-6-luna")
agent = create_agent(
    model=llm,
    checkpointer=InMemorySaver()  # 過去のやり取りをメモリに保存しておく
)
config = {"configurable": {"thread_id": "1"}}  # 同じthread_idのあいだは会話がつながる

def conversation(prompt):
    result = agent.invoke({"messages": [{"role": "user", "content": prompt}]}, config)
    # 保存されているやり取りをすべて表示
    for message in result["messages"]:
        message.pretty_print()

conversation("データサイエンスを勉強するための方法を3つ教えて下さい。")

以前のLangChainではConversationChainとConversationBufferMemoryを使っていましたが、今はcreate_agentに会話の履歴を保存するcheckpointer(InMemorySaver)を渡す形になっています。

conversationの中身は何でも大丈夫ですので好きなプロンプトを入れてみてください。

以下のような回答が返ってくることが分かると思います。

LangChain※回答のパターンは必ずしも完全一致しません(画像は以前のLangChainで実行したときの画面です)

これではシンプルな一問一答のやり取りですが、続いて以下のように問いかけてみましょう。

conversation("1つ目についてもっと詳しく")

LangChain2

こちらを見てみるとちゃんと今までの過去のやり取りが格納されており(画像ではHistoryという箇所。今のコードでは1つ目の質問と回答も一緒に表示されます)、それをふまえてちゃんとAIが1つ目について詳しく教えてくれています。

LangChainに関しては以下の記事で詳しく解説しているのであわせてチェックしてみてください!

【5分で分かる】LangChainのPythonでの使い方 -チュートリアル-当サイト【スタビジ】の本記事では、大規模言語モデル(LLM)を上手く扱う上で非常に便利なLangChainというライブラリについて概要からPythonでの使い方まで見ていきたいと思います。LangChainを使うことで複雑な処理に対応したプログラムを簡潔に書くことができるのでLLMを組み込んだサービスを作るときなどに重宝します!

以下のスタアカのプロンプトエンジニアリングコースでもLangChainの使い方について詳しく取り上げています!

プロンプトエンジニアリング:画像生成編

続いて、画像生成系AIのプロンプトエンジニアリングについて見ていきましょう!

画像生成系AIにも、Stable diffusionやMidjourneyやDALL-Eなど様々なモデルが存在しますが、基本的にどのモデルでも同じようなプロンプトが効果的なことが多いです。

プロンプトを探す際はMidjourneyを利用することをオススメします(※現在は無料版が存在せず利用するとなると有料版になってしまいます)。

Midjourneyでは他人の出力した画像とプロンプトを確認することができますので、気に入った画像があればそれを参考にしてプロンプトを組み立てることで理想の画像を生成できる可能性が高くなります。

Midjouney

以下のように特定の画像のプロンプトも確認できます。

Midjouney

画像生成AIについては以下の記事で詳しく解説しているので、参考にしてみてください。

画像生成AIの仕組み・手法とおすすめサービス10選を紹介!当サイト【スタビジ】の本記事では、画像生成AIについて紹介します。画像生成AIの仕組みからその手法、おすすめのサービスまで徹底的に解説していきます!本記事を読んで画像生成AIに触れていきましょう!

Midjourneyの始め方を知りたい方は以下の記事をチェックしてみて下さい。

Midjourney(ミッドジャーニー)の使い方4STEPと生成のコツ3つ当サイト【スタビジ】の本記事では、Midjourney(ミッドジャーニー)ついて解説していきます。テキストの説明文から画像を生成するAIであるMidjourney!使い方や画像生成のコツを理解して、自分アイデアを画像にしていきましょう!

本物の人が写っている写真のような画像を生成するためには

おそらく最も需要のあるリアルな写真を生成する方法はどうすればよいのでしょう?

「real photography」や「professional photography」などというプロンプトを入れてあげると割とそれっぽい人物写真が出来上がります。

以下はこんなに短文でリアルな画像ができあがるのか!?と感激した例です。

Midjouney3

たったこれだけの短文でこんなにリアルな画像が出来上がるんです!!

ちなみに以下のようにカメラのタイプやクオリティを入れることも効果的なようです。

Midjouney4

画像生成AIを上手く扱うためには、自分の好きな画像をMidjourneyやプロンプトベースなどのプロンプト売買プラットフォームで見つけて、それを参考にしながら試行錯誤していくことです。

他にもたくさんあるのですが、もっと色々知りたい方は以下のスタアカのプロンプトエンジニアリングコースをチェックしてみてください!

プロンプトエンジニアリング まとめ

ここまでで、生成系AIを自在に操る上で非常に重要なプロンプトエンジニアリングについて見てきました!

ウマたんウマたん

プロンプトエンジニアリングを利用して色んな価値を生み出していこう!

プロンプトエンジニアリングについてより詳しくは当メディアが運営するスタアカの以下のコースを是非チェックしてみてください!

スタアカは業界最安級のAIデータサイエンススクールです。

スタアカ(スタビジアカデミー)のトップページ

【価格】 ライトプラン:1,280円/月(全コースが受講し放題)
プレミアムプラン:129,800円(通常149,800円・買い切り)
【オススメ度】
【サポート体制】
【受講形式】 オンライン形式
【学習範囲】 統計学・機械学習・ディープラーニングを網羅的に学ぶ
生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ
SQLとPythonを組み合わせて実データを使った様々なワークを行う
実践的なビジネスフレームワークを学ぶ
マーケティングの実行プラン策定

AIデータサイエンスを学んで市場価値の高い人材になりましょう!

データサイエンスやAIの勉強方法は以下の記事でまとめています。

【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。 【これだけ!】AI(人工知能)の勉強ロードマップを徹底的に解説!当サイト【スタビジ】の本記事では、AIを勉強するロードマップについて徹底的に解説していきます。まずは、AIの概要について理解して統計学の基本知識・機械学習の基本知識・Pythonでの実装・インフラ周りの知識などを包括的に理解していきましょう!

プロンプトエンジニアリングを学ぶ上で以下のサイトも参考になるので是非参考にしてみてください!

スポンサーリンク

ウマたんスタビジ編集長

大学院は理系の統計科学研究室で、ベイズ統計学・時系列分析・異常検知を研究。日系・外資の消費財メーカーのデータサイエンティストを経て、現在は会社を経営しながらデータサイエンティストとして働いています。

スタビジアカデミー

読んだ内容を、スタアカの「プロンプトエンジニアリング」コースで身につける

データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。