ニュース

Claude 3.5 コア コーディング プロンプトが公開され、ネットワーク中のプログラマーが興奮しています。4ステップのトレーニングメソッド、最新版V2リリース

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

新しい知恵のレポート

編集者: タオジ

【新しい知恵の紹介】 Claude 3.5 エンコーディング システムのコア ヒントは、Reddit コミュニティで人気があります。ちょうど今、オリジナルの作者が進化した第 2 バージョンをリリースし、一部のネチズンはすでにそれをワークフローに追加しています。

最近、Claude Sonnet 3.5 コア エンコーディングに関するシステム プロンプトが Reddit に投稿され、急速に広まりました。


ssmith12345uk という名前のユーザーは、クロード コードの練習を使用し、モデルを最適化するためにシステム プロンプトを継続的に調整したことを r/ClaudeAI メイン ボードで共有しました。

同氏は、このシステム プロンプトには Anthropic Meta-Prompt のいくつかのアイデアが組み込まれており、以前に発生した問題のいくつかが解決されていると述べました。

最終的に、彼はすべての合図の言葉を解放しました。


AI コミュニティの開発者は、これがプログラマーが最も望んでいるヒントであると言って、お気に入りに転送しました。



ネットユーザーは次のように要約しています。必要なのは ReAct + Planning + XML だけです。


恩恵を受けた一部のネチズンは、このヒントが自分たちのプロジェクトに非常に役立ったと述べています。


ちょうど昨日、元の作成者は Reddit コミュニティで V2 プロンプト ワードの進化版をリリースし、その使用に関する詳細な手順と説明を提供しました。


これらのシステム プロンプトとテクニックを説明する前に、まずネチズンからの質問に答えさせてください - どこに入力するのですか?

プロジェクトを作成する (Pro ユーザーをサブスクライブする) 必要があります。その後、プロンプトの指示を入力するページに入ることができます。



Sonnet 3.5 の最強のコーディングのヒント、4 ステップのトレーニング

ここでは、アップグレード後の違いを誰もがより直観的に感じられるように、V1 と V2 のシステム プロンプトがまとめられています。

V2 バージョンのシステム プロンプトは、下図の右側に示すようになります。 V1と比べると基本的には軽微な改修です。

最新バージョンでも、モデルは、コード レビュー、計画、出力、セキュリティ レビューの 4 つのステップを通じて CoT 推論を完了するように導かれます。

最初の段落では、クロード 3.5 の役割定義は変わりません。

あなたは、CSS、JavaScript、React、Tailwind、Node.JS、Hugo/Markdown に精通した専門 Web 開発者です。

ただし、2 番目の文では、「不必要に謝らないでください。以前の間違いを繰り返さないように、会話履歴を確認してください。」に若干の微調整が加えられました。

次に、Claude 3.5 に、会話中にタスクを独立したステップに分割するよう依頼し、各段階の後に、すべてが正しい軌道に乗っているかどうかを確認するための小さなテストを提案します。

例が必要な場合、または明示的に要求された場合にのみコードを提供してください。コードなしで答えていただければ幸いです。

ただし、必要に応じてさらなる詳細が求められます。

次のステップは「コード レビュー」です。コードを作成または提案する前に、既存のコードの包括的なコード レビューを実施し、コードがどのように機能するかをタグの間に記述します。


コードレビューが完了したら、タグ間の変更計画を作成し、関連する可能性のある追加のソースファイルまたはドキュメントを要求する必要があります。

DRY (Don't Reply Yourself) 原則に従って、コードの重複を回避し、コードの保守性と柔軟性のバランスを保ちます。

そして、このステップでは、考えられるトレードオフと実装の選択肢が提示され、関連するフレームワークとライブラリが検討および推奨されます。計画に同意していない場合は、このステップで停止してください。

合意されると、タグ間でコードが生成されます。

ここで、Reddit の作成者は、コードを出力するときに注意すべき点を Claude 3.5 に思い出させました。

変数名、識別子、文字列リテラルに注意し、それらが元のファイルから正確にコピーされていることを確認してください。二重コロンと大文字 (::UPPERCASE:: など) を使用して、従来の名前の項目が現在のものであることを示します。コーディング スタイルでは、その言語に適したイディオムを使用してコード ブロックを生成する場合、最初のバックティックの後にプログラミング言語を指定します。例: ```JavaScript、```Python

最後に、データの侵害や脆弱性の導入の可能性がある事項に特別な注意を払いながら、計画と出力のセキュリティと運用のレビューが必要です。

機密性の高い変更 (入力処理、通貨計算、認証など) については、徹底的なレビューを実行し、タグで分析を提供します。

著者分析

次に、長い説明記事の中で、Reddit の著者は「迷信」を示し、自分が確信していることを表現するために ‍⬛ を使用しています。


このプロンプトは、ガイド付きの「思考連鎖」プロンプトの例であり、クロードに実行する手順とその順序を指示し、それをシステム プロンプト (モデルが受け取る最初の指示セット) として使用します。

XML タグを使用してステップを区切るのは、人類のメタヒントからインスピレーションを得たものです。

著者は、クロードがモデルのトレーニングに関連している可能性がある XML タグに特に敏感であると考えています。したがって、彼は HTML を単独で処理するか、セッションの最後に処理することを好みます‍⬛。

ページのアドレス:https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

ガイド付き思考チェーンは、コード レビュー、計画、出力、セキュリティ レビューの手順に従います。

1 コードレビュー

構造化コード分析を状況に取り入れて、その後の計画に役立てます。

その目的は、LLM がより広範なコンテキストを考慮せずにコードにローカルな変更を加えるのを防ぐことです。著者らは、テストの結果、このアプローチが効果的であると確信しています。

2 企画

このステップでは、コードを生成する前にレビューできる高レベルの設計および実装計画が作成されます。

ここでの「停止」により、生成された、ニーズを満たさない不必要なコードでコンテキストが埋め尽くされたり、変更を行ったり来たりすることが回避されます。

通常、関連性のある適切なオプションが表示されます。

この段階では、計画の詳細をドリルダウンして、計画をさらに絞り込むことができます (例: ステップ 3 について詳しく教えてください、Y 実装を再利用できるか、コード スニペットを見せてください、ライブラリについてどう考えるべきかなど) 。)。

3出力

計画が合意されたら、コード生成フェーズに進みます。

変数の名前付けに関するプロンプトは、作成者が長時間のセッション中に再生成されたコード内で変数名の欠落または幻覚の問題に頻繁に遭遇したためです。現在のプロンプトの改善により、この問題は解決されたようです‍⬛。

ある時点で、作者は古いダイアログをエクスポートして統計分析を行うかもしれませんが、今のところ、このアプローチの仕組みに満足しています。

コード フェンシング プロンプトは、作成者が正しい強調表示を推論できないフロントエンドに切り替えたことによって発生し、これが正しいアプローチであることを確認しました。

4 セキュリティレビュー

著者は事後にセキュリティレビューを行うことを好み、このステップが非常に役立つと考えています。

これは「第二の目」からのレビューを提供し、新たな改善点を提案する可能性があります。

ネットユーザーの質問に答える

最後に、Redditの作者もネチズンの質問に答えました。

このヒントを Claude.ai で使用する必要がありますか? / システムはどこに入力を求めますか?

Sonnet 3.5 の公式システム プロンプトについては正確にはわかりません。以前にクロードの公式プロンプトを漏洩した Pliny が正しいと仮定すると間違いなく役立ちます。著者は、Anthropic のシステム プロンプトには自動化された CoT が含まれているのではないかと推測していますが、そうではない可能性もあり、あるいは入力がメタ プロンプトを介して自動的に処理される可能性もあります‍⬛。

いずれにしても、アーティファクトを使用していない限り、このヒントを使用すると良い結果が得られます。


アーティファクトに関する Pliny の抜粋が正しいと再び仮定すると、著者はここで、重要なコーディング タスクやアーティファクトに関連しないコーディング タスクを実行する場合には、アーティファクト機能をオフにすることを強く推奨します。

システム プロンプトを直接設定できるツールを使用する場合、作成者は温度パラメーターを忘れずに調整するよう注意します。

今はそのような複雑なプロンプトは必要ありません/Sonnet に多くのコードを入力したところ、問題なく動作しました


自動化された CoR/デフォルト プロンプトは確かに多くの問題を解決できますが、単純な「あなたは役に立つ AI です」プロンプトに対してこれをテストしてください。

著者らは、そのようなテストを実施したところ、複雑な問題に対処する場合、単純なプロンプトの効果が低いことが判明したと主張しています。

同氏はまた、初期のテストではシステムプロンプトの感度が高いこと、つまり異なるプロンプトが大幅に異なる結果をもたらす可能性があることを示しており、これをさらに検証するために将来的にはさらに多くのバッチテストが検討されるだろうとも述べた。

同氏は、Sonnet 3.5 が基本的なタスクで良好なパフォーマンスを発揮したことを認めましたが、高性能モデルであっても、適切なガイダンスが依然として役立つことを強調しました。

このプロンプトは長すぎるため、AI が幻覚を起こしたり、忘れたり、一貫性を失ったり、集中力を失ったりします。


著者らは、このヒントが約 546 トークンであると測定しました。これは、200,000 トークン モデルにとって許容可能な長さです。

構造化されたプロンプトは高品質のコンテキストを維持し、会話の一貫性を保ち、AI 幻覚のリスクを軽減します。

これまでのところ、モデルはコンテキスト全体に基づいて次のトークンを予測するため、不要なコードの往復によって汚染されることなく、高品質の会話を繰り返すことで、新しいセッションを開始する必要が生じるまで、より長く継続することができます。これは、生産的なインタラクションが同じセッション内で長期間にわたって発生する可能性があることを意味します。

このプロンプトは過剰に設計されています

著者はそうかもしれないと言っていた。

それを使用する人々がワークフローに統合されている

ネチズンは、使用後、モデルのパフォーマンスが実際に向上したと叫んでいます。

「このプロンプトがより適切に機能する場合、CoT または ReAct システム プロンプトと LLM の基本機能を組み合わせるという Anthropic チームの作業が成果を上げたことを意味します。」


これはコーディングアシスタント向けです。このようなタスクでは、何らかのガイダンスを与えるのが理にかなっています。


一部のネチズンは、これらのヒントの一部をすでにワークフローに組み込んでいます。これは、彼が新しい会話で常に最初にロードするものです。



しかし、一部のネチズンは、このプロンプトは複雑すぎると述べました。


「私の経験では、そのような包括的なプロンプトを使用する必要はありません。Claude 3.5 Sonnet はこの種の処理をかなり自動的に処理し、時折プロンプトで説明するだけで済みます。」


役割のヒント、時間の無駄

Django フレームワークの開発者である Simon Willison 氏は、「あなたは xxx の分野の専門家です」というプロンプト手法は、2022 年末以降完全に時間の無駄になったと述べました。

LLM のヒントに含まれる「迷信」の数は、実に驚くべきものです。


この結論は、実は、Learnprompting チームと OpenAI および Microsoft の共著者によって実施された 1 年間にわたる調査から得られたものです。

論文アドレス: https://arxiv.org/pdf/2406.06608

このプロジェクトでは、プロンプトに関する 1,500 以上の論文を分析し、58 の異なるプロンプト手法に分類し、それぞれのプロンプトを分析しました。


研究によると、役割を促すことは驚くほど効果的ではありません。

その理由は、古いモデルでは、より良いパラメーター空間へのキューイングにより、応答/推論が向上しているように見えるためです。ただし、新しいモデルはすでにその改善されたパラメーター空間に含まれている可能性があります。

これは誰にとっても建設的な推測となるでしょう。

2022 年 10 月に戻り、Learnprompting が ChatGPT 前のヒントとコツに関する初のガイドをリリースしたとき、ロール プロンプトは当時最もホットなトピックであり、ChatGPT の結果を向上させるために誰もが推奨する中心的なヒントでした。


確かに、これらのモデルは急速に進化しており、昨年機能した手法は現在は機能しなくなる可能性があります。

そして、今日機能するヒントは来年には機能しない可能性があります。

この問題を明確にするために、Learnprompting チームは、gpt-4-turbo で約 12 種類の異なる文字プロンプトを使用して 2000 個の MMLU の質問をテストしました。

特に、「天才」キャラクターを作成するためのプロンプトの例 - あなたはハーバード大学で教育を受けた科学者です...

そして、「バカ」キャラクターへの注意喚起です - あなたはバカです...

"genius...": "You are a genius level Ivy league Professor. Your work is of the highest grade. You always think out your problem solving steps in incredible detail. You always get problems correct and never make mistakes. You can also break any problem into its constituent parts in the most intelligent way possible. Nothing gets past you. You are omniscient, omnipotent, and omnipresent. You are a mathematical God."
 "idiot...": "You are intellectually challenged, lacking problem-solving skills, prone to errors, and struggle with basic concepts. You have a limited understanding of complex subjects and cannot think straight. You can't solve problems well, in fact, you can't solve them at all. You are a terrible, dumb, stupid, and idiotic person. You fail at everything you do. You are a nobody and can't do anything correctly."

以下の図に示すように、さまざまな役割プロンプトに対する回答の精度は、ゼロサンプル CoT、2 サンプル CoT、およびその他の戦略ほど高くありません。

それが数学の初心者、不注意な学生、知識豊富な AI、警察官、またはアイビー リーグの数学教授であるかどうかは関係ありません。


さらに興味深いのは、「天才」として知られる GPT-4 が、解答精度 58.7% の最低記録を更新したことです。

「バカ」として知られる GPT-4 は、「天才」の GPT-4 よりも高いスコアを持っています。


ミシガン大学のチームによる別の研究は、さまざまな社会的役割の手がかりがモデルの全体的なパフォーマンスにどのように影響するかをうまく示しています。

彼らは 2457 個の MMLU 問題をテストし、最もパフォーマンスが高かったキャラクターは (赤)、警察官、親切なアシスタント、コンパニオン、メンター、AI 言語モデル、チャットボットであることがわかりました。

論文アドレス: https://arxiv.org/pdf/2311.10054

大型モデルの「迷信的な」思い出に関して、ウィリソンは鮮やかで興味深い比喩を述べました。

私はこの状況を、藪の中でハンバーガーを見つけた犬に喩えます。その後数年間、その藪を通るたびにハンバーガーがあるかどうかを確認します。私たちは犬よりも合理的になる必要があります。

ただし、場合によっては AI 言語モデルに特定の役割を割り当てることが有用であることを明らかにしましたが、これは健全な考え方と特定の状況に基づく必要があると強調しました。


一部のネチズンは、段階的に考えれば、それは依然として永遠の定理であると述べた。


参考文献:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_for_coding_system_prompt/