대안과제인 프롬프트 엔지니어링 가이드를 읽으며..
들었던 생각은 이 다양한 프롬프트를 이용해 방탈출 게임 문제 소스를 모으면 어떨까였다..
업무상.. 방탈출 게임을 기획해야 할 일들이 있는데,
방탈출 게임이라는게 어느정도는 유형이 있어서..
프롬프트 개념으로 연결해서 문제를 모아봐도 재미있겠다는 생각을 했다.
어느정도 문제 Pool이 모이면 이걸 학습시켜서 방탈출 봇을 만드는것도 재밌을 것 같다..
(살아있다면;;)
우선, 프롬프트 의미를 이해해야 하는데 아티클의 예제는 개념적으로 이해가 되었지만 이걸 어떻게 내 업무에 활용할지 쉽게 연결이 되지는 않았다.
지난주부터 다른 분들이 하는 것을 보며 느낀 것은, 일단 이해 안되는 것부터 물어보자였는데… 나도 우선 gpt를 켰다. 그리고 좀 뻔뻔하지만 물었다. ㅋㅋ
“방탈출 문제를 만들어야 하는데 Few-Shot Prompting, Chain-of-Thought Prompting, Self-Consistency, Tree of Thoughts, ReAct Prompting 의 의미를적용해서 문제를 제시해볼래?”
방탈출이라는 개념을 이해할까? 라는 고민이 들었지만,
다행히 escape puzzle로 이해하고 답변을 제시했다.
처음에는 아주 개념적인 글들을 내놓았다.
그래서 다시 각 유형별로 제시 해줘.
각 결과를 공유하면,
Few-shot Prompting
Few-show의 예시는 몇 가지 문제 유형을 예로 제시하고 이후 부터 문제를 계속 만들어 보는 것입니다.
gpt에서 제시한 예제를 보겠습니다.
🧞♂️gpt추천 Prompt
다음은 방 탈출 퍼즐의 예와 해결 방법입니다. 이 예시를 읽은 후 다음에 나오는 새로운 퍼즐을 풀어보세요.1. 퍼즐: 잠긴 서랍을 열려면 3자리 코드를 알아야 합니다. 방 안의 단서를 통해 숫자 5, 8, 2를 알 수 있습니다.
해답: 암호는 582입니다.2. 퍼즐: 네 가지 색의 모양이 있는 그림이 있습니다: 빨간색 원, 파란색 사각형, 녹색 삼각형, 노란색 별입니다. 문 옆에 있는 키패드에는 색깔 버튼이 있습니다.
해결 방법: 도형의 변의 개수(삼각형, 사각형, 별, 원) 순서대로 버튼을 누르세요.새 퍼즐: 3시 15분에 멈춰 있는 시계와 달과 별 그림이 그려진 3:15라고 표시된 페이지가 있는 책을 발견했습니다. 어떻게 해야 할까요?
이 프롬프트를 복사해서 다시 gpt 새로운 창에 넣으니 gpt가 위의 패턴대로 새 퍼즐을 해석했습니다.Chain-of-Thought Prompting
CoT는 문제를 해결할 때 단계별로 해석을 해보는 것입니다. ‘프롬프트 엔지니어링 가이드’에서 gpt가 너무 건너뛰면서 생각할 때 나올 수 있는 오류를 잡기 위해 “단계별로 해석해보자” 라는 매직프롬프트를 입력했는데 이렇게 문제를 해석할 때 어떻게 해석했는지를 정리하며 제시하라는 이야기입니다.
🧞♂️gpt추천 Prompt
각 단계에서 자신의 사고 과정을 설명하면서 다음 방 탈출 퍼즐을 풀어보세요.퍼즐: 나침반과 X가 표시된 지도를 찾았습니다. 나침반 바늘이 자신이 서 있는 곳의 왼쪽을 가리키고 있습니다. X를 찾으려면 어떤 단계를 거쳐야 할까요?
위의 프롬프트를 입력했을 때 제시되는 문제에 대해 아래와 같은 답변을 얻었습니다.
이 프롬프트를 사용하지 않고 문제만 제시할 때는 어떤 결과를 얻을지 궁금해서 새창을 열어 “단계별로 생각해” 라는 말은 제외하고 입력해보았습니다.
결과적으로 맞는 이야기를 제시해 주고 있기는 하지만 왠지 함축적으로 풀이를 제시한 것 같은 느낌입니다. (생각보다 극적인 차이는 없었음…아마 이건 문제의 특성도 있을 것 같음)Self-Consistency
이 프롬프트는 같은 질문을 여러번 하면서 가장 일관된 답을 찾는 것인데..아래와 같이 사용할 수 있습니다.
🧞♂️gpt추천 Prompt
이 퍼즐을 세 번 풀고 매번 해결책을 제시하세요.퍼즐: 벽에 2, 4, 8, 16과 같은 일련의 숫자가 표시됩니다. 그 아래에는 시퀀스의 다음 숫자를 묻는 키패드가 있습니다. 어떤 숫자를 입력하시겠습니까?
답변
물론 일관성을 제시하지 않고 해도 답은 32이가 나왔지만, 일관성 프롬프트를 넣으니 조금 더 명확해졌습니다.
ReAct Prompting
새로운 정보가 제공되면 이전의 답을 다시 고려하는 것을 의미하는데
gpt가 추천해준 문제를 보면 다음과 같습니다.
🧞♂️gpt추천 Prompt
이 퍼즐을 풀어보세요. 초기 퍼즐을 풀고 나면 재평가를 위한 새로운 정보가 제공됩니다.
초기 퍼즐: 숫자가 적힌 일련의 초상화가 있습니다: 3, 1, 4, 1, 5. '다음 숫자는 무엇인가요?"라는 질문이 적힌 키패드가 있습니다.
새로운 정보: 초상화가 유명한 수학자의 모습이라는 것을 알 수 있습니다.
ReAct와 Consistency 프롬프트는 답을 더 강화하고 검증하는 면에서 의미가 깊었던 것 같습니다.
이외에도 여러개의 프롬프트 방식으로 다양한 유형의 방탈출 문제들을 gpt와 만들어 보았습니다. 방탈출 문제라는게 완벽하게 논리로 떨어지는 것도 있지만 어느정도 유추를 해야하는 문제들도 있습니다. 때문에 프롬프트 엔지니어링을 고려하지 않고 그냥 말했을 경우 미묘하게 의심쩍은(?) 답변을 할 때도 있습니다.
프롬프트 엔지니어링을 고려하지 않고 방탈출 문제를 제시했을 때는 gpt도 뭔가 확신이 없어 보이는 답변을 한다.
이런 부분에서 프롬프트를 다양화 해서 사용하는게 조금 더 명확하게 문제의 유형을 이해하고 답변을 정교하게 하는 것 같습니다.
최초의 이 문제의 출발은 방탈출 문제는 수집하려고 한것이므로
** 프롬프트로 학습 시키고 - 문제 해결 진행하고 - 같은 유형의 문제를 추가로 요청
의 순으로 추가 문항을 요청했다.
위의 캡처 화면은 few shot의 예제로 뽑은 방탈출 문제를 학습시키고 추가 요청을 했을 때 제시한 문제이다. 초기 요청한 것보다 한단계를 더 거치니.. 방탈출 문제가 제시되는 방의 컨셉까지 일부 이야기 하며 굉장히 정성스럽게 문제를 제시한다.
*** 과제 후 느낀점.
과제를 할 때 내가 모든 것을 완벽하게 이해하고 적용 방법을 머릿속으로 생각해서 진행하려고 했는데, 이번에는 그냥 떠오른 주제로 처음부터 내가 학습하고자 하는 프롬프트를 제시해달라고 했다.. 내가 하고 싶은 주제로 이해하니 훨씬 더 와닿고 빠르게 이해가 되었다.
일단 묻자.. 일단 하자………….
다양한 프롬프트로도 계속 문제유형을 요청하면서 이제 다음에는 gpts 방탈출봇을 만들어봐야겠다.