プロンプトチェーン

Apr 08 2023
大規模な言語モデル プロンプトをアプリケーションに連鎖させることを容易にするビジュアル プログラミング ツールが登場しています。これは主に会話型 UI です。背景 多くのチャットボット開発フレームワークには、その機能に LLM が含まれています。

大規模な言語モデル プロンプトをアプリケーションに連鎖させることを容易にするビジュアル プログラミング ツールが登場しています。これは主に会話型 UI です。

背景

多くのチャットボット開発フレームワークの機能に LLM が含まれています。この機能は、既存のチャットボット開発アフォーダンスを補完することを想定しています。ただし、LLM のこれらのチャットボット開発フレームワークの実装は、本質的に非常によく似ています

この最初の実装に続いて、会話フロー生成と会話デザイン アシスタントの第 2 波が続きました。これはCognigyによって主導されました。続いてYellow AI、Kore AIと続きます。

L LM は、オープンエンドの機能を備えた非常に汎用性の高いものです。

Voiceflow と Botpress は、プロンプトを LLM に送信し、生成された応答から値を抽出できる程度まで、プロンプト チェーンに似た機能を導入しました。

この記事では、ネイティブ プロンプト チェーン ビジュアル プログラミング インターフェイスを設計および構築する際の基礎となる原則について考えたいと思います。

ネイティブ プロンプト チェーン ユーザー インターフェイス

ビジュアル プログラミング UI を介して大規模言語モデル プロンプトをチェーンする場合、機能の大部分はオーサリング プロセスを容易にする GUI になります。

以下は、プロンプト エンジニアリングおよびプロンプト チェーン オーサリング用の GUI がどのようなものかを示すイメージです。このデザインは、ワシントン大学と Google が実施した研究に基づいています。

ソース

インターフェイスは、オーサリング プロセスの複数のレベルで粒度を提供する必要があります。チェーンのプロセスを考慮すると、チェーン間に接続があることは明らかです。

プロンプト チェーン ツールまたは LLM チェーン ツールは、チェーンのステップ間のデータ変換をサポートする必要があります。ほとんどの場合、LLM が非構造化データを返すことを考慮すると、ある程度の構造化とデータ変換が必要になります。

2 番目の要素は、LLM の若干予測不可能な性質です。LLM は、同じプロンプトに対して複数の応答を生成できます。これにより、望ましくない応答がプロンプト チェーンでカスケードされるという課題が生じます。予期しないデータがチェーン全体に伝播される場合。

コードのコンパイルがないため、特定のモデルのトレーニングを必要とせずに、実行時にプロンプ​​トをカスタマイズできます。

LLM チェーン アプリケーションは、プロンプトと呼ばれる自然言語命令を取り込むだけで、新しいタスクを簡単に吸収できます。

確かに、現実世界のアプリケーションの多くには、複雑で、多くの場合並列する複数ステップのタスクが含まれており、チェーンの単一インスタンスでは課題が生じます。

以下の機能スタックを考慮すると、大規模言語モデル (LLM) と生成 AI に基づくプロンプト チェーン アプリケーションには、次の 3 つの主要コンポーネントが必要になります。

⏺ LLM

ヘルパー

コミュニケーション

ソースから適応

LLM

多くのチェーン/ノードでは、LLM 出力は LLM によって提供されるように編集せずに使用できます。ほとんどの場合、このビューはユーザーに表示されるか、LLM アプリ (別名 Gen アプリ) の次のチェーンにデータ変換が必要になる場合があります。

LLM 出力はどのチェーンに分岐するかを決定するため、これらのチェーン/ノード エッジにはルールと条件が含まれている必要があります。

最後の考慮事項は、LLM を分類子として使用することです。LLM は、生成機能または予測機能で実装できます。生成 AI は、LLM の最も人気があり、最もアクセスしやすい側面です。予測はより扱いが難しく、より微調整するか、少なくとも正確なプロンプトが必要です。

LLM をチェーン内の分類子 (つまり予測)として利用することで、チェーン アプリケーションの意思決定ノードがインテリジェントかつ柔軟になります。

エッジでの意思決定を迅速にコード/スクリプト化したいという誘惑は常にあります。連鎖遷移点とも呼ばれます。これは応急処置です。ただし、LLM チェーン アプリケーションに再び剛性が導入されます。

ヘルパー

ヘルパーは、礼儀正しさ、共感などの側面を考慮して、LLM 出力の評価を支援します。ヘルパーは、プロンプトを再ランク付けしたり再送信したりすることもできます。

粒度は実稼働実装の要件であるため、プロンプト チェーン アプリケーションを調整することが重要になります。データの処理と変換には、一種のスクリプトが必要になります。

スクリプトは、制御手段やデータ変換などを実装するためにチェーン作成者に与えられる開発アフォーダンスをカプセル化します。

コミュニケーション

コミュニケーションはいくつかのレベルで行われ、非構造化会話データの形式でユーザー データが入力されます。

ユーザーに最適な応答を選択するよう求める、またはいくつかの可能性に基づいて曖昧さを解消するなど、その他のユーザー アクション。

そしてもちろん、サードパーティ システム (API) は、エンタープライズまたは運用環境の実装について調査されます。

PromptChainer の設計を検討する

PromptChainerインターフェースにはチェーン ビュー ビジュアライザーがあり、ノード エッジまたは「チェーン間」を含むチェーン構造を作成、編集、読み取り、削除できます [A]

ノード ビューアは、個々のノードまたはチェーンの実装、改善、テストをサポートします [B]。各ノードのプロンプトの編集はここで実行できます。

PromptChainer は、キャッシュのクリア、実行ログの表示などのオプションを備えたチェーンのエンドツーエンド [C] の実行もサポートしています。

ソース

ワシントン大学と Google Research が実施した定量的調査に基づいて、ユーザーがチェーンを構築およびデバッグする方法に関する発見が行われました。

[1] ユーザーは、LLM の制限を軽減するだけでなく、アプリケーションを拡張可能にしてスケールできるようにチェーンを構築したいと考えています。

[2] 一部のユーザーは一度にチェーンのステップを 1 つずつ構築しましたが、他のユーザーは、すべてのステップを埋める前に、すべてのステップの抽象的なプレースホルダーをスケッチしました。

[3] 複数の LLM プロンプトとチェーンの間の相互作用は複雑になる場合があり、プロンプトのローカルとグローバルの両方のデバッグが必要になります。

以下の画像を考慮して、各ノードまたはチェーンの説明を次に示します。

[1] チェーンへの入力を定義する

[2,3] LLM 出力を使用して入力をフィルタリングし、分岐します。

[4] LLM 出力をノード出力として直接使用します。

[5] 一般的なデータ変換用に事前実装された JavaScript 関数。

[6] LLM 出力をノード出力として直接使用します。

[7] 外部関数を呼び出してプロフェッショナル サービスを LLM に接続します。

[8] 事前定義されたヘルパーでは不十分な場合に備えて、ユーザー定義の JS 関数。

[9] LLM 出力をノード出力として直接使用します。

[10] 人間が設計した基準 (礼儀正しさなど) によって LLM 出力をフィルタリングまたは再ランク付けします。中間データ ポイントの外部 (エンド ユーザー) 編集を有効にします。

ソースから適応

結論は

現在、基盤モデルと大規模言語モデルに基づいて構築されたアプリケーションに対して使用されている用語がいくつかあります。これらの用語は、Gen Apps、Generative Apps、LLM Apps、Prompt Chaining、LLM Chaining などです。

大規模モデルを基盤として構築し、何らかの形で LLM の力を活用する必要があると言えば十分でしょう。

このニーズは次の原則によって支えられます。

  1. プロンプト
  2. LLM の予測機能と生成機能を活用します。
  3. プロンプトの連鎖。並列方式と直列方式の両方で。
  4. チェーン/ノードとエッジ、ノード/チェーン間をプログラミングするためのビジュアル エディター。
  5. LLM 応答データ変換。
  6. LLM チェーン アプリケーションは入力と出力の両方で会話型になります。または、出力で RPA コンポーネントをカプセル化することもできます。

私は現在、 HumanFirstチーフ エバンジェリストです。私は AI と言語が交わるあらゆる事柄について調査し、執筆しています。LLMチャットボットボイスボット、開発フレームワーク、データ中心の潜在スペースなどに及びます。

https://www.linkedin.com/in/cobusgreyling
NLU デザインの Cobus Quadrant™ 会話デザイン機能の Cobus Quadrant™

PromptChainer: ビジュアル プログラミングによる大規模言語モデル プロンプトの連鎖。