LLMのプロンプトエンジニアリング FL#98に参加してきた
LLMのプロンプトエンジニアリング FL#98 - connpass
こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。
会の概要
以下、イベントページから引用です。
LLMのポテンシャルを最大限活かし、期待通りの精度の高いアウトプットを引き出すためには、LLMの能力や特性を正しく評価、把握し、綿密な設計に基づいたプロンプトを組み立てることが必要です。 本書では、まずLLMを理解することから始め、その上で、プロンプトにはどんなことを組み込み、どのような構造にすべきか、本来の意味での「プロンプトエンジニアリング」を行う方法を説明しています。 そんな本書をテーマにして、訳者である服部 佑樹氏、佐藤 直生氏にご講演いただきます。
会の様子
講演
本書は、「魔法を解き明かす」というのがコンセプトだそうで、How to本ではなくLLMの限界が記されているような書籍になっているということでした。
また、プロンプトエンジニアリングというのは広い言葉になってしまっていますが、ユーザーの問題空間とLLMのドキュメント空間を結ぶ翻訳作業であるという前提があるそうで、そこを念頭に読んでもらった方がいいという話がありました。
LLMは会話相手ではなく次の文章の流れを予測するものであり、決定論的分割や文字レベルの操作、視覚的直感の欠如といった問題も抱えているので、LLMの苦手を補うような設計思想が重要だということでした。
他にも、LLMの苦手な分野として、相手の顔色を伺いながら「間違えたかな...?」と思ったら後戻りするみたいなことが挙げられるということです。
また、倫理的な問題としてコカインの作り方を聞いても出せないようにしたり、中立性と社会的責任のバランスを考えることが大切だということでした。
次に、LLMの基本構造としては「ループ」があり、コンテキスト処理の実装を考えるとお金をジャブジャブ使うことは難しく、LLMの制約だけではなくアプリケーションの制約にも照らしわせて活用することが大切だという話がありました。
次に、プロンプトのコンテンツとして、ボイラープレート的な静的な設計や特定の状況に応じた詳細情報を出すような動的な設計という2つがあるという話でした。
Few-shotプロンプティングはフォーマットを渡すなどは良いものの、例がアンカリングバイアスや誤パターンの検知を導き出してしまうリスクや中間部分は無視されがちだという特性もあるので、こうした特性に注意したほうが良いそうです。
最後に、エンジニアリングにおいては停止制御といったlogprobなど、速さや賢さだけではなくコストも意識してモデル選択をすることが重要だということでした。(賢いモデルは賢くてどんどん高いモデルになっていく)
パネルトーク
講演のあとは服部さんと佐藤さんのパネルトークがありました。以下、内容を常体かつ箇条書きで記載していきます。
AI系のプロジェクトで楽しかったことは?
LLMの評価をして改善されているか?を考えるようなプロジェクトでは、LLMの評価の評価、といったものも出ていて面白かった。特にコードではなく自然言語の評価というのは難しかった。
これからのエンジニアに必要な能力は?
アメリカのエンジニア解雇はAIによって解雇というわけでは実態としてはないと思っている。
また、生成AIをプロダクトに使うスキルというのが存在するんだろうなと考えている。
あとはレビュー能力。ソースコードリーディング能力みたいなのは必要になってくるんだろうと思う。
書籍にアップデートしたい情報は?
やや古いなという情報はあった。モデルの進化によって必要ではなくなっているテクニックもある。Ⅲ部はアプリを作る人だけが見れればいいのかな?とは思っている。最低限4章までは読んでもらえるといいと思う。
Q&A
最後にQ&Aセッションがありました。以下、内容を常体かつ一問一答形式で記載していきます。
システムプロンプトはデグレの可能性もあると思うが、コードの改修で済むならコードの改修を優先すべきか?
システムプロンプトはリーンに進化をさせていくべきだと思う。
評価の自動化はできるのか?
試しにデータを入れてみるとかは自動化できるかもしれないが、基本的には自動化といのは難しいので、リアルユーザーのフィードバックを基軸に改修するとかはある。
MCP流行の理由は?
抽象化に利益があるから。多少は人間の責任が少なくなっている。とはいえ仕様の詰めは甘いので、現段階ですぐに使うというのは無理(ただし将来はデファクトスタンダードになると思う)
あと、デファクトスタンダードが早い段階で決まったというのは優位性があると思う。
Geminiでは大量のプロンプトを入れても問題なく処理できるようになっているが、どう考えているのか?
精度が上がってきている印象はあるので難しい。サービス提供者としての責任を放棄しないようにすることは重要。
GitHub Copilot Agentを活用するためのプロンプトデザイン
IDE内での戦いは終焉に近づいている印象があり、プロンプトデザインというよりはプラットホーム内でのコミュニケーションデザインが重要になってきている印象が強い。
LLMシステムの評価はどのようにやればいいのか?
PoCくらいならそんなやらなくてもいい。評価戦略より前に検証戦略の方が重要だとは思っている。(リアルユーザーのデータをどう取るのか?というのがある)
会全体を通した感想
書籍紹介だけでもかなり盛りだくさんの内容でしたし、まさに生成AIを活用したアプリケーション開発に携わっている身としては勉強になる内容でした。
また、Q&Aを聞いていると、自分が知識として持っていた内容がどうも古いようだということがわかったりして、ここ半年くらい生成AI関連のキャッチアップが遅れていたというだけでここまで置いていかれるような領域になっているんだなあというのを改めて実感しましたし、軽い危機意識のようなものも生まれるイベントでした。