소식

Claude 3.5 코어 코딩 프롬프트가 공개되어 네트워크 전체의 코더들이 흥분하고 있습니다!4단계 훈련법, 최신 V2 버전 출시

2024-07-16

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

새로운 지혜 보고서

편집자: 타오지(Taozi)

[새로운 지혜 소개] 핵심 Claude 3.5 인코딩 시스템 팁은 Reddit 커뮤니티에서 인기가 있습니다. 방금 원본 작성자가 진화된 두 번째 버전을 출시했으며 일부 네티즌은 이미 이를 작업 흐름에 추가했습니다.

Claude Sonnet 3.5 코어 인코딩에 대한 시스템 메시지가 최근 Reddit에 게시되어 입소문이 났습니다!


ssmith12345uk라는 사용자는 r/ClaudeAI 메인 보드에서 Claude 코드 연습을 사용하고 시스템 프롬프트를 지속적으로 조정하여 모델을 최적화했다고 공유했습니다.

그는 시스템 프롬프트가 Anthropic Meta-Prompt의 일부 아이디어를 통합하고 이전에 직면했던 일부 문제를 해결한다고 말했습니다.

결국 그는 큐 단어를 모두 공개했습니다.


AI 커뮤니티 개발자들은 코더들이 가장 원하는 팁이라며 즐겨찾기에 전달하기도 했습니다!



네티즌들은 이렇게 요약했습니다. ReAct + Planning + XML만 있으면 됩니다.


혜택을 받은 일부 네티즌들은 이 팁이 프로젝트에 큰 도움이 됐다고 말했습니다.


바로 어제, 원저자는 Reddit 커뮤니티에 V2 프롬프트 단어의 진화된 버전을 발표하고 그 사용에 대한 자세한 지침과 설명을 제공했습니다.


이러한 시스템 프롬프트와 기술을 설명하기 전에 먼저 네티즌의 질문에 답해 보겠습니다. 어디에 입력해야 합니까?

프로젝트를 생성해야 하며(Pro 사용자 구독) 프롬프트 지침을 입력하는 페이지로 들어갈 수 있습니다.



Sonnet 3.5를 위한 강력한 코딩 팁, 4단계 교육

여기에 V1과 V2 시스템 프롬프트를 모두가 업그레이드 후의 차이를 좀 더 직관적으로 느낄 수 있도록 정리했다.

V2 버전의 시스템 프롬프트는 아래 그림의 오른쪽과 같습니다. V1과 비교하면 기본적으로 사소한 수리입니다.

최신 버전에서도 모델은 여전히 ​​코드 검토, 계획, 출력 및 보안 검토의 4단계를 통해 CoT 추론을 완료하도록 안내됩니다.

첫 번째 단락에서 Claude 3.5의 역할 정의는 동일하게 유지됩니다.

귀하는 CSS, JavaScript, React, Tailwind, Node.JS 및 Hugo/Markdown에 능숙한 전문 웹 개발자입니다.

하지만 두 번째 문장에서는 "쓸데없이 사과하지 마세요. 이전 실수를 반복하지 않도록 대화 기록을 검토하세요."라는 부분을 약간 수정했습니다.

다음으로 Claude 3.5에게 대화 중에 작업을 독립적인 단계로 나누도록 요청하고 각 단계 후에 모든 것이 올바른 방향으로 진행되고 있는지 확인하기 위한 작은 테스트를 제안합니다.

예제가 필요하거나 명시적으로 요청되는 경우에만 코드를 제공하세요. 코드 없이 답변할 수 있다면 가장 좋을 것 같습니다.

다만, 필요한 경우 추가 설명을 요청할 예정입니다.

다음 단계는 "코드 검토"입니다. 코드를 작성하거나 제안하기 전에 기존 코드에 대한 포괄적인 코드 검토를 수행하고 태그 간 작동 방식을 설명합니다.


코드 검토를 완료한 후에는 관련될 수 있는 추가 소스 파일이나 문서를 요청하여 태그 간 변경 계획을 세워야 합니다.

코드 중복을 방지하고 코드 유지 관리성과 유연성의 균형을 유지하려면 DRY(Don't Repeat Yourself) 원칙을 따르십시오.

그리고 이 단계에서는 가능한 절충안과 구현 선택 사항이 제시되고 관련 프레임워크와 라이브러리가 고려 및 권장됩니다. 계획에 동의하지 않은 경우 이 단계에서 중지하세요.

합의되면 태그 사이에 코드가 생성됩니다.

여기에서 Reddit 작성자는 Claude 3.5에게 코드를 출력할 때 주의해야 할 사항을 상기시켰습니다.

변수 이름, 식별자 및 문자열 리터럴에 주의하고 원본 파일에서 정확하게 복사되었는지 확인하십시오. 일부 항목에서는 관례적으로 명명된 항목이 그대로 유지됨을 나타내기 위해 이중 콜론과 대문자(예::UPPERCASE::)를 사용하십시오. 코딩 스타일, 해당 언어에 적합한 관용구를 사용하여 코드 블록을 생성할 때 첫 번째 백틱 뒤에 프로그래밍 언어를 지정하십시오. 예: ``JavaScript, ``Python

마지막으로, 계획 및 출력에 대한 보안 및 운영 검토가 필요하며, 데이터를 손상시키거나 취약점을 초래할 수 있는 문제에 특별한 주의를 기울여야 합니다.

민감한 변경 사항(예: 입력 처리, 통화 계산, 인증)의 경우 철저한 검토를 수행하고 태그에 분석을 제공하세요.

저자 분석

다음으로 Reddit 작성자는 긴 설명 글에서 ‍⬛를 사용하여 "미신"을 나타내고 자신이 확신하는 바를 표현합니다.


이 프롬프트는 Claude에게 수행할 단계와 순서를 알려주고 이를 시스템 프롬프트(모델이 수신하는 첫 번째 지침 세트)로 사용하는 안내식 "사고 사슬" 프롬프트의 예입니다.

XML 태그를 사용하여 단계를 구분하는 것은 Anthropic 메타 힌트에서 영감을 받았습니다.

저자는 Claude가 모델 훈련과 관련이 있을 수 있는 XML 태그에 특히 민감하다고 생각합니다. 따라서 그는 HTML을 단독으로 처리하거나 세션이 끝날 때 처리하는 것을 선호합니다‍⬛.

페이지 주소: https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

안내적 사고 체인은 코드 검토, 계획, 출력, 보안 검토 등의 단계를 따릅니다.

1 코드 검토

구조화된 코드 분석을 맥락에 맞게 가져와 후속 계획을 알립니다.

그 목적은 LLM이 더 넓은 맥락을 고려하지 않고 코드를 로컬로 변경하지 못하도록 방지하는 것입니다. 저자는 테스트를 통해 이 접근 방식이 효과적이라고 확신했습니다.

2 계획

이 단계에서는 코드를 생성하기 전에 검토할 수 있는 높은 수준의 설계 및 구현 계획을 생성합니다.

여기서 "중지"는 우리의 요구 사항을 충족하지 않거나 수정하기 위해 왔다 갔다 하는 생성되고 불필요한 코드로 컨텍스트를 채우는 것을 방지합니다.

일반적으로 관련성이 있고 적절한 옵션을 제공합니다.

이 단계에서는 계획의 세부 사항을 드릴다운하여 더욱 구체화할 수 있습니다(예: 3단계에 대해 자세히 설명, Y 구현을 재사용할 수 있는지, 코드 조각 표시, 라이브러리에 대해 어떻게 생각해야 하는지 등). .).

3 출력

계획이 합의되면 이제 코드 생성 단계로 넘어갈 차례입니다.

변수 이름 지정에 대한 프롬프트는 작성자가 긴 세션 중에 재생성된 코드에서 변수 이름이 누락되거나 환각되는 문제에 자주 직면하기 때문입니다. 현재 프롬프트 개선으로 이 문제가 해결된 것 같습니다‍⬛.

어느 시점에서 저자는 이전 대화를 내보내고 일부 통계 분석을 수행할 수 있지만 지금은 이 접근 방식이 작동하는 방식에 만족합니다.

코드 펜싱 프롬프트는 작성자가 올바른 강조 표시를 추론할 수 없는 프런트 엔드로 전환하여 발생했으며 이것이 올바른 접근 방식임을 확인했습니다.

4 보안 검토

작성자는 사후에 보안 검토를 수행하는 것을 선호하며 이 단계가 매우 유용하다고 생각합니다.

이는 "두 번째 눈"의 리뷰를 제공하며 새로운 개선 사항을 제안할 수 있습니다.

네티즌의 질문에 답하다

마지막으로 레딧 작성자도 네티즌들의 질문에 답했다.

Claude.ai에서 이 팁을 사용해야 합니까? / 시스템 프롬프트는 어디에 입력해야 합니까?

우리는 Sonnet 3.5의 공식 시스템 프롬프트를 정확히 알지 못합니다. 이전에 Claude의 공식 프롬프트를 유출한 Pliny가 정확하다고 가정하는 것이 확실히 도움이 될 것입니다. 저자는 Anthropic의 시스템 프롬프트에 자동화된 CoT가 포함될 수 있다고 추측하지만, 그렇지 않을 수도 있고 입력이 메타 프롬프트‍⬛를 통해 자동으로 처리될 수도 있습니다.

그럼에도 불구하고 Artifacts를 사용하지 않는 한 이 팁을 사용하면 좋은 결과를 얻을 수 있습니다.


Artifacts에 대한 Pliny의 발췌가 정확하다고 다시 가정하면, 저자는 사소하지 않거나 Artifacts와 관련된 코딩 작업을 수행할 때 Artifacts 기능을 끌 것을 강력히 권장합니다.

시스템 프롬프트를 직접 설정할 수 있는 도구를 사용하는 경우 저자는 온도 매개변수를 조정해야 한다는 점을 상기시킵니다.

이제 그렇게 복잡한 프롬프트는 필요하지 않습니다/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

대형 모델의 "미신"을 상기시키는 것과 관련하여 Willison은 생생하고 흥미로운 비유를 만들었습니다.

나는 이 상황을 개가 덤불 속에서 햄버거를 발견하고 다음 몇 년 동안 그 덤불을 지나갈 때마다 버거를 확인하는 것에 비유합니다. 우리는 개보다 더 합리적이어야 합니다.

그러나 어떤 경우에는 AI 언어 모델에 특정 역할을 할당하는 것이 유용할 수도 있지만 이는 건전한 사고와 특정 상황을 기반으로 해야 한다고 강조했습니다.


일부 네티즌들은 차근차근 생각해 보면 여전히 영원한 정리라고 말했다.


참고자료:

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