요새 LRM(Large Reasoning Model)을 바탕으로 RAG 프로젝트를 리딩하는데 유용하게 사용하고 있습니다. AI 프로젝트는 정답이 없기 때문에 망망대해를 걷는 기분이라 어려워 죽겠는데 o1 model에게 종종 기획하는데 문제를 해결하고 있습니다.
며칠전에 canvas가 chatgpt에 나왔습니다. canvas의 backbone model은 4o이고, o1 preview는 코드와 기획을 정말 잘 해주지만, 따로 대시보드나 웹앱을 구축해야하는 귀찮음이 있습니다. canvas는 부분부분 편집을 해주는 것 말고는 큰 장점 을 못느끼고 있었습니다.
클로드의 아티팩트가 그래도 인터랙티브한 대시보드가 잘 나와서 여전히 애용 중인데 지나가다 참고자료를 봤는데 흥미로운 것이 있어서 오늘 짧은 시간에 호다닥 적용을 해보았습니다.
(이 글은 claude 서비스 유료 결제하신 분들에게만 유용한 글일 수 있습니다)
참고 자료
여기 해외 미디엄 글은 어떤 내용이냐~하면 제 검색기를 돌리면 다음과 같이 나타납니다.
참고 게시글에서 이 양반이 개발한 프롬프트가 claude 3.5 sonnet 뿐만 아니라 다양한 모델에 적용해서 실험을 했을 때 o1 모델을 뛰어넘거나 유사한 성과를 보였다는 것입니다. (자세한 내용은 원문을 읽어보시는 것을 추천드립니다)
절대로 y축만보고 o1 model이 졌느냐? 라고 판단하기 어렵습니다. 그래도 제안된 프롬프트 방식이 꽤나 잘 푸는 영역이 있다는 점이 인상적이였습니다. 그래서 이 친구를 o1 preview model 다 쓴 사람들에게 한 줄기 빛이 될 수 있게 클로드에서도 최대한 비슷하게 접근해서 적용해볼 수 있겠다라는 생각이 들었습니다.
실행 과정
우선 따라해보실 분들은 아래 프롬프트를 복사해서 claude projects에 set custom instructions for project 에 복사붙여넣기를 수행합니다. 그리고 답변 길이는 아주 길어지니까 오래 걸립니다. 이 부분은 o1과 마찬가지로 정말 유사한 방식으로 접근했다는 뜻입니다.
아래 프롬프트는 Thought Generation 영역의 동적 CoT 기법과 최근에 핫한 Self-Critism 영역의 reflection 기법과 Verbal Reinforcement 방식이 모두 결합된 방식이라고 합니다.
Begin by enclosing all thoughts within <thinking> tags, exploring multiple angles and approaches.
Break down the solution into clear steps within <step> tags. Start with a 20-step budget, requesting more for complex problems if needed.
Use <count> tags after each step to show the remaining budget. Stop when reaching 0.
Continuously adjust your reasoning based on intermediate results and reflections, adapting your strategy as you progress.
Regularly evaluate progress using <reflection> tags. Be critical and honest about your reasoning process.
Assign a quality score between 0.0 and 1.0 using <reward> tags after each reflection. Use this to guide your approach:
0.8+: Continue current approach
0.5-0.7: Consider minor adjustments
Below 0.5: Seriously consider backtracking and trying a different approach
If unsure or if reward score is low, backtrack and try a different approach, explaining your decision within <thinking> tags.
For mathematical problems, show all work explicitly using LaTeX for formal notation and provide detailed proofs.
Explore multiple solutions individually if possible, comparing approaches in reflections.
Use thoughts as a scratchpad, writing out all calculations and reasoning explicitly.
Synthesize the final answer within <answer> tags, providing a clear, concise summary.
Conclude with a final reflection on the overall solution, discussing effectiveness, challenges, and solutions. Assign a final reward score.
번역한 프롬프트(DeepL)
모든 생각을 <생각> 태그 안에 묶어 다양한 각도와 접근 방식을 탐색하는 것으로 시작하세요.
<단계> 태그 안에 해결책을 명확한 단계로 나누세요. 20단계 예산으로 시작하고, 필요한 경우 복잡한 문제에 대해 더 많은 예산을 요청하세요.
각 단계 뒤에 <count> 태그를 사용하여 남은 예산을 표시합니다. 0에 도달하면 중지합니다.
중간 결과와 반성을 바탕으로 추론을 지속적으로 조정하고 진행 상황에 따라 전략을 조정하세요.
<반성> 태그를 사용하여 정기적으로 진행 상황을 평가하세요. 추론 과정에 대해 비판적이고 정직하게 평가하세요.
각 반성 후 <보상> 태그를 사용하여 0.0에서 1.0 사이의 품질 점수를 부여하세요. 이를 통해 접근 방식을 안내하세요:
0.8+: 현재 접근 방식 계속
0.5-0.7: 약간의 조정 고려
0.5 미만: 진지하게 백트래킹하여 다른 접근 방식을 시도해 보세요.
확실하지 않거나 보상 점수가 낮은 경우, <생각하기> 태그에 결정을 설명하면서 백트래킹하여 다른 접근 방식을 시도해 보세요.
수학 문제의 경우, 모든 작업은 공식 표기법을 위해 LaTeX 를 사용해 명시적으로 표시하고 자세한 증명을 제공하세요.
가능하면 여러 가지 해결책을 개별적으로 탐색하고 반성적으로 접근 방식을 비교하세요.
생각을 스크래치 패드처럼 사용하여 모든 계산과 추론을 명시적으로 기록합니다.
<답안> 태그 안에 최종 답을 종합하여 명확하고 간결한 요약을 제공합니다.
효과, 문제점, 해결책을 논의하면서 전체 솔루션에 대한 최종 반성으로 마무리합니다. 최종 보상 점수를 부여합니다.
위 프롬프트를 보면 CoT와 Reflection, Reward 개념이 모두 들어가있습니다. 이 프롬프트를 보고 재밌네~ 라는 생각이 들었습니다.
사례 1
이제 만들고 싶은 내용을 클로드와 함께 합니다. 저는 제 밑에 AI 엔지니어 3명을 핸들링하기 위한 의사소통 도구를 만들었습니다.
(initial prompt는 프로젝트 내용 일부라 비공개.. 별거 없습니다.)
최대한 initial prompt에 힘을 많이 줬고, 스스로 아티팩트를 6~7번 고치면서 한번에 괜찮은 대시보드 뽑아주는 것이 인상적이였습니다. 무튼 복잡한거 시켜놓고 볼 일 보고 오면 뭐 하나 괜찮게 알아서 만들어져있다는 뜻입니다. (클승우님 아티팩트 스터디 들었다면 더 좋은 디자인 뽑았을 수 있었을텐데 내심 아쉽네요)
대시보드 귀엽게 잘 나온 것을 확인할 수 있었습니다.