nikkie-ftnextの日記

イベントレポートや読書メモを発信

『LLMのプロンプトエンジニアリング』、LLMの仕組みを踏まえてプロンプトの原理を説明。プロンプトを書いてLLMアプリを開発する方々に届け!

はじめに

七尾百合子さん、お誕生日 61日目 おめでとうございます!1 nikkieです。

1周目としてざっと読んだログです。
少なくともあと1周はするぞ〜!

目次

『LLMのプロンプトエンジニアリング』

原著は2024年11月リリース。
高速での翻訳に感謝です2
なお副題は原著の「The Art and Science of Building Large Language Model–Based Applications」(大規模言語モデルベースのアプリケーション構築の人文科学と自然科学)の方が体を表していると思います。

翻訳者のお一人 服部さんは「Prompt Engineering Guide」を翻訳された方でもあります。

感想:LLMアプリケーション開発している方にオススメ

  • Ⅰ部 基礎:私にはめちゃめちゃよかった
  • Ⅱ部 中心的なテクニック:あんまり腹落ち感ないので繰り返し読む
  • Ⅲ部 プロンプト作成のエキスパート:ここもよかった

LLMにプロンプトを書いてアプリケーションを作った経験がある身には学びが豊富でした3
Ⅰ部とⅢ部でこれまで断片的に知っていた知識が体系化されたのが私にはよかったです。
この本はハーケンになりました

上のツイートにもありますが、Ⅰ部は数式を使わずに大規模言語モデルにチャットできるのはこういう仕組みということを説明していたのがよかったです(Scienceの部分)。
LLMはトークが認識単位なので、strawberryの中のrの数は間違えるけれど、typoの検出はできるというように、原理から説明していました。
読む中で知っていることが整理されていって夢中で読んでましたね。

またⅢ部はツールの使用やCoT、ReActなど、2024年前半くらいまでの研究の流れを体系立てて説明していました。

Ⅱ部の腹落ち感があまりないのは、ここで解説されるような長いプロンプトを論文の実装に眺めるだけで、自力で書いたことがないからなように思います。
他の部と比べて自分の持っている知識が整理されていく感覚は少なかったのですが、記載が間違っているとは全く思いませんでした。
Lost in the Middleプロンプト末尾の情報ほどモデルに影響を与える(だからサンドイッチが導き出される)と説明は体系立っていましたね。

私の経験からプロンプトが機能しないときって、Pythonの実装ミスで訓練データ(Web上テキスト)で見かけないような形式になっていることが多いんですよね。

  • Python("aaaaaa" "bbbbbb" "cccccc") という文字列連結により、横に長い改行皆無という見慣れない形式
  • textwrap.dedent()を忘れて、全行インデントされたmarkdownという見慣れない形式

これの説明が「赤ずきんの原則」というのは初めて聞きました。
他にも「チェーホフの銃の誤謬」など、初めて聞く理論名がありましたね。

終わりに

『LLMのプロンプトエンジニアリング』、数式なしで日本語で読め、LLMアプリケーションのプロンプトにすぐ活かせる知識が詰まっていると思います。

以下のツイートの「驚くだけでなく、何故驚くかを言語化し続けてください。」にピンポイントな書籍だと感じました👏

思想が強い締めですが、俗に言われるコスパ・タイパなるものを考えても、LLMアプリ開発者が参考にすべきは、驚きに満ちたツイートのプロンプトよりも、『LLMのプロンプトエンジニアリング』や類書ではないでしょうか

おまけ:見かけた評判


  1. 麗花さん、お誕生日おめでとうございます!
  2. 私は英語論文を読んで知っていた概念がほとんどでしたが、初見だとするとカタカナ語が多いのが気になるかもしれません。とはいえ分野の訳書はまだ少ないと思うので、訳語を突き詰められるかというと現実的に難しそうです
  3. アプリケーションの中のプロンプトに限らず、ソフトウェアエンジニアリングができるエージェントに書くプロンプトにも活かせると思います