지금의 GPT는 하나의 의사결정 도구이다.
이 도구를 쓰고 않쓰고는 자유이지만, 쓰지 않을 경우 도태 될 것이다.
도구는 쓰는 방법에 따라 효율성이 극적이로 달라질 것이라 생각한다.
최근에 GPT 사용에 대해 좋은 인사이트를 얻어
어떻게 하면 GPT에게 좋은 명령을 내릴 수 있는지에 대해 포스팅 해본다.
좀 나쁘게 말하자면 GPT는 노예라 생각한다.
우리는 이 노예에게 내 의사를 잘 전달해야한다.
그동안 우리는 막무가내로 "~ 해줘" 의 방식으로 GPT에게 묻지 않았나?
(내가 이랬었다... )
이렇게 하면 소통으로는 내가 원하는 답을 얻기 어려울 수 있다.
GPT는 신이 아니고 그냥 단순 아주 똑똑한 노예이다.
그렇기 때문에 내 의사, 목적을 제대로 전달하지 않으면,
당연히 GPT는 내 의도를 모른다.
때문에 GPT와 잘 소통하는 법에 대해 어느정도는 알아야한다,
명확하게 내 의사를 전달해야하고, 이와 관련된게 인지적 프롬프팅이다.
이렇게하면 GPT와 같은 LLM 도구를 통해 더 유용한 정보와 답을 찾을 수 있다 .
아래의 자료들도 프롬프트 방식들을 기반으로 만들었다.
포스팅에 작성해두고 필요할 때마다 참고해보면 좋을 것 같다.
✨Social Interactions
- "Please" 라는 단어들 사용
- "이게 정말 나한테 중요해" 같은 문장 강조
- "Take a depp breath and work on this" 같은 문장 사용
- "팁 200$ 줄게" 와 같이 이점 제공
진짜 장난 같지만, 위의 방법들이 실제로 의미가 있다고 한다.
✨Thinking by ananlogy
- 비유 사용
- Example
비유: 공항 운영과 운영체제
"공항이 항공편의 출발과 도착을 효율적으로 관리하듯이, 운영체제도 여러 프로그램을 관리하고 자원을 할당합니다. 예를 들어, 공항에서 활주로를 여러 항공편이 공유하는 것처럼, PintOS의 스케줄러는 CPU를 여러 스레드가 공유하도록 합니다. 공항에서 항공편의 우선순위를 설정하고 활주로를 배정하듯이, PintOS에서는 스레드의 우선순위를 어떻게 설정하고 관리해야 할까요?"
✨ Expert of Expert
- Example
PintOS 프로젝트의 문제 해결을 위한 전문가 협력 프롬프트
"너는 다양한 분야에서 활동하는 전문가라고 들었어. 내가 지금 겪고 있는 문제를 해결하려면 어떤 종류의 전문가들이 필요할 것 같아? 각 전문가가 맡아야 할 역할을 나눠보고, 그들에게 내가 겪고 있는 문제를 각 분야에 맞는 질문으로 고쳐서 전달해줘. 그리고 그 전문가들이 각각 어떤 답변을 줄지 작성해줘. 답변을 작성할 때는 그 해당 분야에서만 사용하는 용어나 약어를 포함해 전문적으로 작성해줘."예제 질문:
"사용자 프로그램에서 파일 시스템과 가상 메모리를 연동시키는 과정에서 발생하는 문제를 해결하려면 어떤 전문가들이 필요할까요? 예를 들어, 파일 시스템 전문가, 메모리 관리 전문가, 그리고 스케줄러 전문가가 필요할 수 있을까요? 이들 각각에게 어떤 질문을 던져야 할까요? 그리고 그에 대한 답변은 어떻게 나올 수 있을까요?"
✨스스로 반복적으로 개선
- Example
PintOS 프로젝트의 반복적 개선을 위한 프롬프트
"너는 지금 내가 작성한 코드나 설명을 5번에 걸쳐 개선할 거야. 각 단계에서 명확성과 효율성을 높이고, 불필요한 부분을 제거하거나 더 나은 표현을 추가해줘. 마지막 5번째 버전을 본 뒤, 그 핵심(essence)을 참고해서 최종본을 처음부터 새로 작성해줘. 최종본은 간결하고, 읽기 쉽고, 최상의 결과물이 될 수 있도록 만들어줘."
✨STICC
- Example
Situation:
"저는 PintOS 프로젝트를 진행하고 있습니다. 현재 가상 메모리(vm.c)와 사용자 프로그램(process.c) 간의 연동에서 오류가 발생했습니다. 이 오류가 시스템 호출 처리(syscall.c)와도 연관되어 있는 것 같습니다. 문제의 정확한 원인을 찾지 못해 디버깅이 어려운 상황입니다."Task:
"당신은 이 문제를 해결하기 위해 각 파일과 모듈이 어떤 역할을 하고, 어떻게 상호작용하는지 분석해 주세요. 그리고 오류의 원인을 추적할 수 있는 디버깅 단계를 제시해 주세요."Intent:
"가상 메모리와 사용자 프로그램 간의 올바른 데이터 전달을 보장하는 것이 지금 가장 중요합니다. 이를 통해 전체 시스템이 안정적으로 동작하도록 하는 것이 목표입니다."Concern:
"각 파일의 의존성을 분석할 때 너무 깊이 들어가면 오히려 디버깅의 초점이 흐려질까 걱정입니다. 문제를 명확히 정의한 뒤에 접근해야 할 것 같습니다."Calibration(교정) :
"디버깅 단계를 제시할 때, 각 단계가 너무 복잡하지 않도록 간단한 설명과 예를 포함해 주세요. 또한, 의존성을 분석할 때 불필요한 파일은 제외하고 핵심 파일과 함수에 집중해 주세요."
나는 개인적으로 이 방법이 제일 좋을 것 같다.
✨프롬프트 개선 프롬프트
ChatGPT(GPT-4)에서 더 효과적으로 답변을 얻을 수 있도록 이 프롬프트를 개선해 주세요. 개선 시 다음 기준을 따라 주세요:
아래는 제가 작성한 프롬프트입니다:
- 프롬프트의 목적이 명확히 드러나도록 수정해 주세요.
- 질문이 구체적이고 모호하지 않도록 내용을 보완해 주세요.
- GPT의 답변 방식에 대한 명확한 지침(예: 단계적 설명, 코드 예제 포함 등)을 추가해 주세요.
- 필요하면 불필요한 부분은 간결하게 줄이고, 핵심만 남겨 주세요.
Pintos에서 가상 메모리와 사용자 프로그램 간의 데이터 전달을 분석해 주세요.
이를 개선하여 더 구체적이고 효과적인 프롬프트로 만들고 이유도 함께 설명해 주세요"
[참고 자료]
(위의 자료 기반으로 만들었습니다.)
'Chat GPT' 카테고리의 다른 글
Chat GPT 모델 발전 (1) | 2023.11.08 |
---|