DeepLearning.AIのPrompt Engineeringの講座をやったのでメモ

2023年7月1日

DLAI – Learning Platform Beta

ChatGPT Prompt Engineering for Developersを受講しました。これはスタンフォード大学とOpenAI社からそれぞれ講師が出て、プロンプトエンジニアリングの正道を学ぶことができるもの。

for Developersなのでコードを中心とした説明だが、GUIでChatGPT使う時も役に立つし、コードベースで勉強していると「やっぱAPI経由で利用したほうがいろいろ便利かも?」と思ってしまう。

以下、章立て。

  • 基本概念
    • ガイドライン
    • 試行を繰り返す
  • 具体的な利用シーン
    • 要約
    • 推測
    • 変換
    • 拡張
    • チャットボット(API限定)

毎にメモ

ガイドライン

原理原則の話。

原則1:明確で具体的な指示を書く

  • 戦術1:区切り文字を使って、入力の異なる部分を明確に示す
  • 戦術2:構造化されたアウトプットを求める(JSON、HTMLのような)
  • 戦術3:条件が満たされているかどうかをモデルに確認させる
  • 戦術4:"Few-Shot"のプロンプティング

割と一般的に知られてきたセオリー。戦術3はステップバイステップに似たようなやり方で、ステップ毎に状態を確認し、条件分岐を賭けるテクニック。

原則2:モデルに "考える "時間を与える

  • 戦術1:タスクを完了するために必要なステップを指定する
  • 戦術2:結論を急ぐ前に、まずモデル自身が解決策を導き出すよう指示する

試行を繰り返す

原理原則を守っても、一発でよいアウトプットが得られるとは限らない。アウトプットを見て、試行錯誤するのが重要、という話。

要約

  • 形式の指定
    • 文字数や単語数の指定
    • 出力形式の指定
  • 内容
    • 重要なところだけを抽出して要約
    • Todoが発生した内容について要約
    • ○○について議論が発生した部分について要約

ただ要約を指定するだけじゃなく、要約の軸を指定することで望ましい結果が得られると思いました。

推測

  • 感情分析
  • 文章中に存在する5つのトピックを抽出

トピック抽出は要約に近いですね。

変換

  • 翻訳
  • トーンの変換(フランクな文章からビジネス文章にする)
  • フォーマット変換
  • スペルチェック/文法チェック

スペルチェック時に、出力形式としてHTMLを指定し、間違っている部分を赤文字にする、などのテクニックもあり。

応用で表記ゆれチェックも出来そう。インプットの文章から同じような意味の固有名詞を抽出して、みたいな。

拡張

事例だと、顧客から投稿されたレビューを元にAIに返信を記載させることができる。

チャットボット

割愛。

個人的なまとめ

今のところ、アイディア出しのためのテキスト生成を一番使っています。敷いて分けるなら「拡張」かな?ネーミングルール案を20個出して、みたいな。

この講座は本当に基本的なテクニックが多かったですが、ネットの自称プロンプトエンジニアの情報を追いかけるより、地に足ががついた情報を元に自分でプロンプトを書けるようになればいいと思いました。

Posted by tera