グーグルも注目、プロンプトエンジニアリングの最前線、「Prompt Poet」が示す可能性
グーグルが注目するプロンプトエンジニアリング技術
同じ大規模言語モデル(LLM)でも、プロンプトの精度によってアウトプットの内容や精度は大きく変わる。プロンプトエンジニアリングの重要性が注目されている所以だ。プロンプトエンジニアリングの最新技術として関心を集めているのが、10億ドル規模の評価額を持つAIスタートアップCharacter.aiが開発し、その後グーグルに買収された「Prompt Poet」だ。 Prompt Poetは、LLMの応答を最適化するための高度なプロンプト作成を、ユーザーフレンドリーな低コードテンプレートシステムで簡素化するツール。Character.aiは、LLMに性格を吹き込み、任意のキャラクターを演じさせるプラットフォームを開発してきた。これに伴い、同社は日々数十億のプロンプトを構築する必要があった。効率的に高精度のプロンプトを大量に作成するために生まれたのが、Prompt Poetということだ。 Prompt Poetが注目される理由を知るには、まず従来のプロンプトアプローチを理解する必要がある。 従来のプロンプトアプローチでは、Pythonのf文字列(f-strings)やその周辺のラッパーが業界標準として使用されてきた。f文字列とは、文字列内に変数や式を直接埋め込むことができるPythonの機能。たとえば、ユーザーの名前を含むメッセージを作成する場合、以下のように書ける: #######python name = “太郎” message = f”こんにちは、{name}さん!” # 結果: “こんにちは、太郎さん!” ####### この方法は、シンプルなプロンプトを作成する際には非常に便利だ。しかし、複雑なプロンプトを作成する場合、f文字列は急速に複雑になる。ユーザーの過去の対話履歴、現在の文脈、特定のキャラクターの設定、そしてシステム指示を組み合わせた複雑なプロンプトを作成する場合を考えてみたい: #######python prompt = f”””システム: あなたは{character_name}です。以下の指示に従ってください。 指示: {system_instructions} ユーザーの過去の対話: {‘\n’.join([f’- {msg}’ for msg in user_history])} 現在の文脈: {current_context} ユーザー: {user_query} {character_name}:””” ####### このようなコードは、文字列の連結や条件分岐が増えるにつれて急速に複雑化し、可読性が低下。さらに、プロンプトの構造を変更する際には、コード全体を大幅に書き換える必要も出てくる。プロンプト生成ロジックとデータ処理ロジックが混在することも複雑化を招く要因となる。これらは特にプログラミングの経験が少ない人やプロンプトデザイナーにとって大きな障壁となってしまうため、避けるべきものとなる。