見出し画像

プログラミングに学ぶ:トップダウンに使うプロンプトエンジニアリング

末端のほうで小さいことに生成AIを使っても大幅な生産性向上は見込めません。上流工程で使うことが重要です。上流工程で使うヒントをプロンプトでプログラミングした経験をヒントにお話しします。


プロンプトエンジニアリングのトップダウンとボトムアップ

プロンプトエンジニアリングのトップダウンとボトムアップとは何でしょうか?

  • トップダウン:戦略的で構想段階で使います

  • ボトムアップ:実用的で最終段階で使います

いずれの使い方にも用途があります。プログラミング用の使い方を例にトップダウンへと進化するのをお勧めします。

初期のプログラミング用プロンプト

先日、GPT-4に「オセロのプログラムを書いて」と言ったら、途中で一度詰まりましたが、書いてくれました。詰まって書き直したところを置き換えてコピペしたらそのまま動いたので関心しました。
かつてはもう少し苦労しました。初期化と終了処理しか自動的には書いてくれなくて、プログラマから嘲笑されたりもしました。
このとき、学んだのは次の2つです:

  • 処理フローを出力させて、それから詳細化するとうまくいく

  • 予め最適なライブラリを教えてもらい、ライブラリを指定して書かせるとうまくいく

トップダウンに上流工程で使うプロンプト

上流工程で使うプロンプトは次のように使います:

  • 目的の妥当性を検証するプロンプトを作ります

  • 処理のフローを設計するプロンプトを作ります

  • 生成された処理フローの個別部分を生成するプロンプトを作ります

  • 生成された個別部分の妥当性を目的に合わせて検証するプロンプトを作ります。

これらの4つのプロンプトを適宜、組み合わせ、検証することで処理の自動化を図ります。プログラミングやカスタマサポートでは目的の妥当性を検証することはあまりありませんが、アイディアを出したり、マーケティングする上では重要なステップです。
全体フローを設計し、それから個別部分の実装をするというのは、かつて、トークンサイズ制限が小さいときには、必須でした。一度に全部出せなかったからです。トークンサイズ制限はどんどん大きくなり、Google Gemini Pro 1.5では1Mトークンになっています。制限は緩くなりましたが、計画ステップと実践ステップを分けるというのはトークンサイズ制限とは別に有効な方法だと思います。実行する上での見通しもよくなりますし、ハルシネーションの影響を個別実現の前に検証することもできます。

トップダウンへの進化

ボトムアップで使うのも悪くはありませんが、得られる生産性の向上は10%とか20%とかです。飛躍的な生産性向上は難しいです。トップダウンのプロンプトエンジニアリングの適用領域を拡大することが企業のAI活用に必要です。マーケティング、事業開発、ソフトウェア開発などにその機会が眠っています。

むすび

場当たり的な対応を脱して、体系的に生成AIを企業活動に組み込んでいきたいものです。



この記事が気に入ったらサポートをしてみませんか?