paint-brush
Claude Sonnet 3.5 システムプロンプトの漏洩: 法医学的分析@tyingshoelaces
5,783 測定値
5,783 測定値

Claude Sonnet 3.5 システムプロンプトの漏洩: 法医学的分析

tyingshoelaces.com9m2024/06/24
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

Claude Sonnet 3.5 システム プロンプト リークのフォレンジック分析。アーティファクトは、コード生成などの構造化出力タスクにとって、定義済み出力の検索および取得システムである RAG にとってのベクトル検索に相当します。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Claude Sonnet 3.5 システムプロンプトの漏洩: 法医学的分析
tyingshoelaces.com HackerNoon profile picture
0-item

目次

  • アーティファクトの紹介

    構造化された出力生成における一歩前進。


  • 考え

    論理的思考は生成プロセスの重要な部分です。


  • 識別子と検索

    アーティファクトの検索と取得は、システム プロンプトの重要な部分です。


  • テンプレート言語構造

    入力変数に基づいて変化するレンダリングテンプレート


  • 結論

    クロードにとっては小さな成果だが、AIにとっては大きな飛躍だ。


  • クロード3.5システム

    システムは完全なプロンプトを表示します

アーティファクトの紹介

構造化された出力生成における一歩前進。


これは、Claude 3.5 Sonnet のシステム プロンプト生成の分析です。この分析のコードへのリンクは、ソースとともに下部にあります。この分析の主な焦点は、アーティファクトの概念の導入と、これがインテリジェントな分類および検索システムの一部としてどのように機能するかです。


「アーティファクトは、ユーザーが変更したり再利用したりする可能性のある、実質的な自己完結型コンテンツ用です。


アーティファクトは、新しい概念を形式化するパラダイム チェンジです。永続データの概念です。永続データは、高度にキュレーションされ構造化されたコンテンツ ライブラリにアクセスするための足がかりです。固定参照を提供することで、反復処理がブロックされなくなり、出力を段階的に改善および改良できるようになります。これは、冗長な LLM 出力の一時的な性質を制御するための一歩です。


コード補完などの機能タスクにおける生成 AI の固有の問題の 1 つは、単純な変更に対してファイル全体を繰り返すことが多いことです。同じコンテンツを繰り返すのではなく、前後の違いを出力する「差分」機能に対する需要が非常に高くなっています。


したがって、成果物には 2 つの目的があります。まず、成果物は、出力をどのように、どこで必要とするかを示す参照ポイントとして機能します。これは、スコープの設定や参照ポイントの定義のようなものです。これにより、LLM が元の問題から焦点を失うことがなくなり、出力の構造と分類が維持されます。


ボーナスポイントとして、オートコンプリート機能もあります。ベースコードと変更の範囲を定義することで、LLM が特定のタスクまたは問題に、意見を述べてキュレーションされた方法で焦点を当てるように指示できるようになりました。これにより、ズームの不規則なシフトがなくなり、進行中の作業全体がプロンプトに表示されます。「残りのコードはここに」と誤ってコードを消去したエンジニアは、感謝します。範囲の設定は、次の場所で確認できます。


「会話の文脈を抜きにして、それ自体で理解できる自己完結型の複雑なコンテンツ」


制御されていない冗長な出力から具体的な成果物に焦点を移しています。会話のコンテキストを無視するように明示的に指示していることは注目に値します。これは、キュレーションされたデータを参照して品質を保証する方法です。これは、入力の冗長性とランダム性の可能性を制御する品質管理メカニズムです。


これらすべてが、検索用のアーキテクチャと一体化しています。厳選されたアーティファクトの豊富なライブラリを持つことで、制御されたデータセットから検索するようにシステムを指示できるようになりました。すべての大手 AI プロバイダーが、厳選された高品質のデータへの投資に力を入れていることはわかっています。アーティファクトは、冗長な入力と出力を構造化するための一歩です。


プロンプトでは、入力から離れてシステム定義の調査にマッピングすることに焦点が当てられていることがわかります。除外基準の例をいくつか示します。


「有用であるかどうかは現在の会話のコンテキストに依存するコンテンツ。

ユーザーによって変更または反復される可能性が低いコンテンツ。

ユーザーからのリクエストで、一回限りの質問のようです。


プロンプトは、システムのコンテキストと手元のタスクに積極的に焦点を合わせています。プロンプトは、非常に具体的な出力に関連しない入力を明示的に除外しようとしています。したがって、アーティファクトは、生成されたテキストと、舞台裏の構造化データの両方で具体的な参照ポイントとして機能します。これにより、高速で正確な検索とフォーカスが可能になります。これは、次のような場合に非常に役立ちます...

考え

論理的思考は生成プロセスの重要な部分です。


プロンプト エンジニアは、信頼性の高い出力を得るための鍵の 1 つは、LLM に複数のステップから成る構造化された論理的思考プロセスの形成を義務付けることだと長い間主張してきました。プロンプトでは、これが正式に認められています。


「1. アーティファクトを呼び出す前に、<antthinking> タグ内の 1 文で、アーティファクトが良質なアーティファクトと悪質なアーティファクトの基準に照らしてどのように評価されるかについて簡単に考えます。コンテンツがアーティファクトなしでも問題なく機能するかどうかを検討します。アーティファクトに値する場合は、別の文で、それが新しいアーティファクトなのか、既存のアーティファクトの更新なのか (最も一般的) を判断します。更新の場合は、以前の識別子を再利用します。


ここでは、タスクと出力を分析するために、構造化された複数ステップのプロセスを実行することをシステムに義務付けています。ここでも、冗長なコンテンツの強力な定義に向かい、成果物の検索および取得システムを暗示しています。


「<antthinking>階乗を計算する Python スクリプトを作成することは、優れたアーティファクトの基準を満たしています。これは、それ自体で理解でき、再利用または変更される可能性が高い自己完結型のコードです。これは新しい会話なので、既存のアーティファクトはありません。したがって、新しいアーティファクトを作成しています。」</antthinking>


<antthinking>このリクエストは、既存の factorial-calculator アーティファクトを直接変更するものです。これは新しいアーティファクトではなく、スクリプトをより堅牢にするための更新です。継続性を維持し、コードの進化を示すために、factorial-calculator 識別子を再利用します。</antthinking>


ここでは、定義された出力を生成するための論理的思考プロセスの実装を見ることができます。アルゴリズムが同じ論理的ステップを踏むようにすることで、インテリジェントで繰り返し可能な生成プロセスの種が得られます。


このロジックを人間の思考プロセスにマッピングできます。まず、論理的かつ合理的な問題解決アプローチがあります。これをハード アーティファクトで補完します。LLM データ セットは脳ですが、アーティファクトは特定の出力に到達できるようにするスキルと知識です。


競合するモデルをすべて想像すると、それらが論理的思考プロセスの複製に依存していることがわかります。私たちは本質的に、人間の論理的思考プロセスを模倣するロボット脳を作成しています。私たちは、脳を動かす不足している部分、つまり知識、構造、検索プロセスを構築しています。


これにより、システムのプロンプトと指示は非常に貴重な資産になります。「論理的思考」の理解と洗練は、生成プロセスの重要な部分です。


コードには、この構造化された思考のいくつかの基本的な実装が見られます...

識別子と検索

アーティファクトの検索と取得は、システム プロンプトの重要な部分です。


“<antartifact identifier="factorial-script" type="application/vnd.ant.code" language="python" title="シンプルな Python 階乗スクリプト"> def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1)


では、application/vnd.ant.code とは何でしょうか? アプリケーションは十分に単純で、VND はベンダー、ANT は Anthropic (Claude の作成者) とコードです。これは、そのアーキテクチャに関する洞察です。LLM を使用して人々が達成しようとしているタスクをリストする、ある種の分類法と構造化データを期待します。


  1. コーディングタスク

  2. プレゼンテーション

  3. 文書

  4. 分析

  5. 他にもたくさんあります...


たとえば、PowerPoint プレゼンテーションを試すための疑似コードを作成することもできます。

 <antartifact identifier="powerpoint-presentation" type="application/vnd.ant.presentation" purpose="business" title="Simple powerpoint presentation"> Slide 1: Title slide Slide 2: Introduction Slide 3: Problem statement Slide 4: Solution </antartifact>


これは、製品コードとはまったく異なるものですが、興味深い精神的なパラダイムです。冗長な出力を制御し構造化するには、入力と出力を分類および標準化するための論理的かつ合理的なプロセスに遭遇する必要があります。


これは、入力が入ると、エンティティの抽出と分類を実行する、別個の実戦で鍛えられたアルゴリズムを実行することを意味しているのではないかと思います。次に、この構造化データは、アセットの検索と取得のプロセスで実行されます。テキストの場合はベクター データベースを使用し、その他の定義済み出力の場合は、このアーティファクトの概念を導入しました。たとえば、React Code タスクは次のようになります。


 "INPUT: Create a react component for a metrics dashboard", "ENTITY_EXTRACTION: Coding, React, Metrics Dashboard", "ENTITY_SEARCH: Retrieve code artifacts for Metrics Dashboard where type = React", "SYSTEM_PROMPT: create_system_prompt(artifact_id='metrics-dashboard-component', type='application/vnd.ant.code', language='react')"


多くのことが行われており、本質的には無制限の理論上のタスク プールに対して、高品質の例と分類法をキュレートするために、舞台裏で必要な大変な作業がわかります。これを自動化するために、舞台裏で他の AI 分類アルゴリズムとの反復処理が行われます。


しかし、私たちが見る限り、その本質は、独自のテンプレート言語に基づいた、高度な検索および取得システムです。

テンプレート言語構造

入力変数に基づいて変化するレンダリング テンプレート。


私は何年も前に Drupal 開発者としてキャリアをスタートしました。プロンプトを読んで、私の目に飛び込んできた言葉は TWIG でした。Twig は、PHP から HTML でテンプレートをレンダリングするためによく使用される HTML テンプレート言語です。Claude は、構造化データ (おそらく LLM の外部で抽出) に基づいて入力とコンテキストを調整する同等のアプローチをほぼ確実に使用するでしょう。


Claude Sonnet 3.5 も似たようなものを使用しているようですが、これはまったく理にかなっています。LLM へのテキスト入力に基づいて、テキスト ブロックを体系的に生成する必要があります。これらは、プロンプトを生成するためにまとめられる動的タグです。


  1. <antartifact></antartifact>

  2. <アーティファクト情報><アーティファクト情報/>

  3. <例></例>

  4. <ユーザークエリ></ユーザークエリ>

  5. <例のドキュメント文字列></例のドキュメント文字列>

  6. <アシスタントの応答></アシスタントの応答>


これは、一種の関数呼び出しアプローチを活用します。各タグには特定の目的があります。これは抽象化として機能し、モデルに各特定の目的に適したカテゴリとタイプを見つけるように指示します。プロンプトの構築は次のようなものになると思います。大規模な推測疑似コードが届きます...


 function generate_reference() { context=artifact_type, artifact_id, task examples = search_examples_by_type('react', 'hooks', 'current_ids') return structured_data } function generate_system_instruction(structured_data) { <antartifact> <artifacts_info {{ attribute(version, '1.00') }}> <% artifact_introduction %> <% artifact_selection %> <% artifact_elimination %> <% artifact_usage %> <% artifact_instruction {{ type(code, 'data-code') }} {{ type(react, 'data-react') }} %> </ artifacts_info/> <example {{ for react_example in react_code_artifact }}>{react_example }</example> <example_docstring {{ for example_thought_process in curated_artifact_generation_example }}>{example_thought_process }<example_docstring /> <user_query>{sanitized_user_query}</user_query> <assistant_response>{sanitized_user_query}</assistant_response> </antartifact }


これで、思考プロセスがブロックに分割されました。高度な検索と取得にマッピングされたエンティティ抽出。論理的な思考プロセスの構築ブロックです。基礎となるデータは、出力の品質の鍵となります。

結論

クロードにとっては小さな成果だが、AIにとっては大きな飛躍だ。


コード生成などの構造化出力に対するアーティファクトは、ベクトル検索が RAG に対して行うのと同じようなものです。アーティファクトは、構造化出力の検索および取得システムです。


Claude 3.5 には、構造化された合理的な思考プロセスの証拠が見られます。これは、Generative AI において重要であると常に予想されていたことですが、これは正式な証明です。


開発者やマーケティング担当者の大群が、厳選された成果物のライブラリを構築する様子が目に浮かびます。このライブラリには、分類、検索、取得のタスクを通じてアクセスします。しかし、真の前進は永続性の概念です。


アーティファクトを扱うことで、一時的なものを超えた参照ポイントが得られます。これは、洗練されて再利用できるものです。私たちにはすでに考えと詳細な出力がありました。そして今、私たちには記憶と専門知識があります...

クロード3.5システム

システムプロンプトの完全版