【生成AIの本質を探る】プロンプトに変数を活用するテクニック!GPTの効果的な利用法!

今回は「生成AIの本質を探る」シリーズ第7回目です。

テーマは「文章生成AIのテクニック」です。

これまでの記事で

プロンプトテクニック不要

【生成AIの本質を探る】プロンプトはテクニックじゃない!意識の問題だ!

と伝えましたが

基本的なテクニック以外にあたる
プログラミング思考を活かしたテクニックを紹介します

変数を活用することで、より柔軟で汎用的な指示を出すことができます。

今回は、変数の定義と活用方法について解説しします。

プロンプトに変数を組み込むテクニックを学びましょう!

動画で見たい方はコチラ

変数とは

変数とは 簡単に言うと

情報を入れておく

と思ってください

じゃあその情報が入った箱

どんな風にプロンプトに活かすのか?

大きく分けて2つあります

変数を定義して使う

保守性と汎用性が上がる

一つ目が 変数定義して使う 方法です

こちらのプロンプトをご覧ください

# 変数の定義
- theme: 自然

# 目的
${theme}についてのエッセイを書いてください。

# 手順
1. ${theme}についての基本的な説明を行う。
2. ${theme}が人間の生活に与える影響を詳述する。
3. ${theme}を保護する重要性について議論する。

これは指定したテーマについて
エッセイを書くプロンプトです

(# 変数の定義)という見出しのところで
theme: 自然 と書いております

これは
theme」という名前の箱
自然」という文字格納しています

(# 目的)の部分を見てみると
何やら ${theme} こんな記述があります

${} や {} など とりあえず 変数名(箱の名前)を
括弧で囲むと、変数の値(箱の中身)が呼び出されます

なので
${theme}についてのエッセイを書いてください。
→自然についてのエッセイを書いてください。
と相手には伝わるのです。

じゃあこれ何がいいのか?

保守性の向上

まず1つが 変更箇所少なくなる というメリットがあります

例えば これ 自然 じゃなくて 動物 っていうテーマに変えたい

その場合 # 変数の定義 の
「theme: 自然」→「theme: 動物」に
変えるだけで済みます

しかし
もし変数を使わず 4カ所全てに「自然」と
直接書きこんでいたら
4カ所全て書き直す作業が発生します
これが沢山あるとぞっとしますよね

このように
プロンプトの運用がしやすくなります

汎用性の向上

そして もうひとつのメリットとは
汎用的プロンプトに有効だということです

この エッセイを書く プロンプト を
他の人にも使って欲しいとき

変数化したプロンプトを渡せば
使う側からすると
theme を変えるだけ
好きなテーマについてのエッセイが書けます

使う側は 変数の値だけ この設定だけを
意識すればいいので
かなり使いやすいプロンプトになりますね

変数名は連想しやすい名前が良い

変数を定義して使うときのポイント
変数の名前です

箱の名前連想しやすい名前
比較的いいのではないかと思います

例えば 今回「theme」という箱の名前にしました
でも「X」でもいいんじゃね?
だってただの箱の名前なんだから
記号みたいなもんでしょ?

と思う方も居ると思います!
でもthemeの方が良い結果を導くと思います!

なぜか?

前の記事で「LLMが文章を生成する仕組み」を解説しました

LLMは
次に来る確率高い文字繋いで
文章を生成する と

じゃあ
themeX を 比べた時に
どっちが 次の文字を推測しやすいか?

つまり
この後引き寄せる言葉を決めている
と思うとどっちがいいか?

そう考えると
X という文字よりも theme の方が
なんとなく良い気がしませんか?

なぜなら theme という文字には
theme 自体に 意味を持っていますよね

X っていうのは 何も意味を持っていない

まとめると
この後の文章を生成する方向性を決めていると考えると
箱の名前は 意味がない文字 よりかは
連想がしやすい名前 をつけるといいよ
という事でした

目標までの過程が明確な場合に有効

そして「変数を定義して使う」は
どんな場面で使うのか?

それは
目的達成までの過程明確になっている時です

なぜか?

結論から言うと
変数にする部分 箱に入れる情報 は
汎用的な情報だからです

解説します

例えば 今回のプロンプトは
エッセイを書くっていう事を達成するために
手順がしっかり決まってますよね

つまり ゴールまでの過程がしっかり決まっている

そしてその中から
汎用的な情報を抽出して変数にしています

で 簡単にカレー で例えます と
ざっくり言うと 材料を 切って 炒めて 煮る
で 完成しますよね

しっかり ゴールまでの過程 がもう決まっています

あとは 材料が 玉ねぎなのか じゃがいも なのか

だって 自分が知らない料理を作る場合
手順も分からないから
どこが汎用的な情報か
どこを変数にすればいいか
全く分からないですよね

こんな風に 目的達成までの過程が明確になっている場合
その過程の中で汎用的になっている部分を変数として扱う

かじむー

じゃあ次はゴールまでの過程が曖昧な場合の変数テクニックを紹介するよ!
1 2