0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

✅ 1. 埋め込み(Embedding)

$$
\mathbf{e}_i = \mathbf{E} \cdot \mathbf{one_hot}(w_i)
$$

  • 意味:語彙中の単語 $w_i$ をベクトルに変換する
  • $\mathbf{E} $:語彙サイズ × 埋め込み次元の行列(学習対象)
  • $\mathbf{e}_i $:単語 $w_i$ に対応する埋め込みベクトル

✅ 2. 自己注意(Self-Attention)

$$
\text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^\top}{\sqrt{d_k}} \right)V
$$

  • 意味:ある単語が他の単語にどれだけ注意を向けるかを決定し、情報を加重平均する
  • $Q, K, V$:Query, Key, Value の行列(それぞれ線形変換された入力ベクトル)
  • $\sqrt{d_k}$:スケーリング因子(安定化のため)

✅ 3. 多頭注意(Multi-Head Attention)

$$
\text{MHA}(X) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O
\quad \text{where} \quad \text{head}_i = \text{Attention}(XW^Q_i, XW^K_i, XW^V_i)
$$

  • 意味:異なる「視点」(ヘッド)で注意を学習し、多様な意味関係を捉える
  • 各 $W^Q_i, W^K_i, W^V_i$ は学習パラメータ行列

✅ 4. 残差接続とLayerNorm

$$
\text{LayerNorm}(x + \text{SubLayer}(x))
$$

  • 意味:勾配消失の防止と学習安定化のための構造
  • LayerNorm:特徴ごとに正規化(均一性の付与)

✅ 5. FFN(Feed Forward Network)

$$
\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2
$$

  • 意味:各トークンを非線形変換する2層MLP
  • 全トークンに独立に適用(位置ごとの深い変換)

✅ 6. 言語モデリング出力(Softmax)

$$
P(w_{t+1} \mid w_{\leq t}) = \text{softmax}(z)
\quad \text{where} \quad z = h_t W^T + b
$$

  • 意味:現在の隠れ状態 $h_t$ に基づいて次の単語の確率を出力
  • softmax により語彙全体にわたる確率分布となる

✅ 7. クロスエントロピー損失

$$
\mathcal{L} = - \sum_{i=1}^V y_i \log(\hat{y}_i)
$$

  • 意味:モデル出力 $\hat{y}$(確率)と正解ラベル $y$ との誤差を計測
  • $V$:語彙サイズ。
  • **最尤推定(MLE)**に基づく損失関数

✅ 8. トークン列の生成(関数形式)

$$
\text{LLM}(w_1, \dots, w_t) = w_{t+1}
\quad \text{または} \quad
\text{LLM}\theta(x) = \arg\max{w} P(w \mid x; \theta)
$$

  • 意味:過去の文脈 $x$ に対して次単語 $w$ を予測(または確率的にサンプリング)

✅ 9. 位置エンコーディング(例:sin/cos形式)

$$
\text{PE}{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right), \quad
\text{PE}
{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)
$$

  • 意味:トークンの順序を明示的に表す
  • 各位置 $pos$ にユニークなベクトルを与え、学習可能な埋め込みと加算

✅ 10. 最小二乗回帰(応用例)

$$
\min_x | Ax - y |^2
$$

  • 意味:文脈 $A$(単語ベクトル行列)から意味ベクトル $y$ を再構成する最適な係数 $x$ を求める
  • 応用:要約生成、意味解析、文埋め込み

✅ 出力制御パラメータ一覧

パラメータ名 設定値 説明
temperature 2.0 **出力のランダム性(創造性)**を調整する。値が高いほど多様な出力に。
通常は 0.7〜1.0。2.0 は非常に自由度が高く「破天荒」な出力になる。
max_tokens 256 出力される最大トークン数(単語や記号の単位)
例:256トークン ≒ 日本語で200文字程度。
top_p 1.0 確率質量によるサンプリング制限(nucleus sampling)。1.0で制限なし(≒全候補から選ぶ)。
frequency_penalty 0.5 繰り返し抑制(頻出単語のペナルティ)。同じ語を繰り返し使うことを控えさせる。0.0〜2.0の範囲。
presence_penalty 0.6 新規性促進(既出語の再出現へのペナルティ)。新しい単語の導入を促す。

✅ 使用例(JSON形式)

{
  "temperature": 2.0,
  "max_tokens": 256,
  "top_p": 1.0,
  "frequency_penalty": 0.5,
  "presence_penalty": 0.6
}

✅ 備考

  • temperaturetop_pは通常どちらか一方だけ調整します。両方高いと出力がかなり予測不能になります。
  • frequency_penaltypresence_penaltyの併用は、詩・物語・創作向けに適しています。
  • temperature: 2.0 は最大限の創造性を狙った設定であり、思考実験や創作プロンプト向きです。

✅ プロンプトエンジニアリング要素表

区分 要素/技法 説明
🎯 目的 指示(Instruction) モデルに明確なタスクや目的を伝える 「要約してください」「Pythonでコードを書いてください」
制約(Constraint) 出力形式・字数・言語などの制限を明示する 「300字以内で」「日本語で」「JSON形式で」
役割指定(Role-play) モデルに仮の役割・専門性を与える 「あなたは医師です」「法律家として答えてください」
🧠 思考誘導 チェイン・オブ・ソート ステップバイステップで考えるよう促す 「まず前提を確認し、次に選択肢を検討し、最後に結論を述べてください」
ゼロショット/少数ショット 例を与えずに指示(ゼロ)/数個の例を提示(少数) 「以下に質問と回答例を挙げます...続けてください」
明示的プロンプト構造 入力/出力を構造化して指示 「Input: xxx\nOutput:」
🧪 形式制御 出力形式指定(Format guide) 表・JSON・コードブロックなど形式指定 「表形式で」「マークダウンで」「Pythonコードで」
文体・トーン調整 語調・語彙・文体などを指定 「論文調で」「カジュアルに」「敬語で」
🌐 言語処理 翻訳/コード変換 言語間・形式間の変換処理を行わせる 「英語を日本語に訳して」「LaTeXにしてください」
要約/抽象化 長文を短く・重要情報のみ抽出 「以下の文章を要約してください」「箇条書きで整理してください」
🧮 論理制御 条件分岐型プロンプト 条件を満たす場合のみ回答、などの論理誘導 「もしAならB、そうでなければCと答えてください」
評価・分類 評価値(スコア)、ラベル付けなどの指示 「この文章のトーンを1〜5で評価してください」
🧰 ツール連携 Chain of Tools / API連携 LLM外部のツールと接続して結果を活用 Pythonコードで実行 → LLMが説明を補足
🤖 生成制御 温度・確率(temperature等) 出力の多様性や確率調整 temperature: 0.2(確定的)〜temperature: 1.5(創造的)
禁止語/キーワード強制 出力中の語彙制御(明示 or ソフト誘導) 「'AI'という語を含めないでください」/「必ず‘多様性’を含めてください」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?