ChatGPT 프롬프트 엔지니어링이란?

ChatGPT 프롬프트 엔지니어링이란?

오늘은 ChatGPT의 프롬프트 엔지니어링에 대해서 알아보겠습니다. 지피지기면 백전백승이라고 하는데, 프롬프트가 무엇인지 부터 알아보겠습니다.

프롬프트란?

프롬프트(prompt)는 컴퓨터 터미널 또는 터미널 에뮬레이터의 CLI(커맨드 라인 인터페이스)의 명령줄 대기모드를 나타내는 말이었습니다. 일반적으로 커맨드 프롬프트(command prompt) 또는 셸 프롬프트(shell prompt) 라고 불렸으며, 지금은 우리가 컴퓨터에서 마우스나 터치패드로 입력하지만 예전에는 키보드로만 명령어를 입력해야 했고, 이런 키보드로 명령어를 입력하는 곳을 프롬프트라고 합니다.

그리고 최근 ChatGPT가 유행하면서 ChatGPT에게 명령을 내리는 곳을 프롬프트라고 하게 되었고, 이제는 개발자가 아니더라도 대중적으로 프롬프트라는 단어가 유행하게 되었습니다.

프롬프트

프롬프트 엔지니어링?

프롬프트 엔지니어링은 생성형 인공 지능(생성형 AI) 솔루션을 안내하여 원하는 결과를 생성하는 프로세스를 통틀어 말합니다. 기본적으로 생성형 AI는 인간을 모방하려고 시도하지만 고품질의 관련성 높은 결과물을 생성하려면 자세한 지침이 있어야지 좋은 결과가 나오게 됩니다.

컴퓨터는 기본적으로 GIGO라는 Garbage in Garbage out이라는 방식으로 동작하는데요. 아래 그림처럼 쓰레기가 들어가면 쓰레기가 나온다는 뜻으로, 컴퓨터에게 정확한 명령어를 내리는 것의 중요성을 뜻하는 단어입니다. ChatGPT역시 컴퓨터의 하나이고, ChatGPT에게 적절한 요청을 해야지 올바른 결과를 받아 볼 수 있습니다.

gigo

즉, 프롬프트 엔지니어링에서는 AI가 사용자와 더 의미 있게 상호 작용하도록 안내하는 가장 적절한 형식, 구문, 단어 및 기호를 선택하여 원하는 결과가 나오도록 하는 일련의 과정을 뜻합니다. 프롬프트 엔지니어는 여러 시행착오를 거쳐 애플리케이션의 생성형 AI가 예상대로 작동하도록 하는 사람들을 말합니다.

어떻게 보면 ChatGPT와 사람 사이의 통역사라고 생각하면 될 것 같습니다. 우리가 여행지에서 통역사가 없어도 바디 랭기지 등으로 소통을 할 수 있지만, 정확한 계약 등을 하기 위해서는 통역사가 있는 것이 더 좋은 것과 같은 이치입니다.

프롬프트 엔지니어링 기법의 이해

아래 2가지 예시를 살펴보겠습니다.

먼저 우리가 일반적으로 ChatGPT를 사용하는 형태인, 간단하게 야구 모자를 쓴 여자 만화 캐릭터를 그려줘라는 프롬프트로 작성한 그림입니다. 무언가 조금 아쉬운 느낌인데요.

야구 모자 소녀

아래는 좀 더 구체적인 프롬프트를 통해서 만든 그림입니다. 두 이미지의 차이가 느껴지시나요? 이것이 프롬프트의 차이라고 할 수 있습니다. 구체적이고 명확한 프롬프트를 사용하면 보다 정답에 가까운 이미지를 어을 수 있습니다.

그럼 좀 더 나아가 주요 프롬프트 엔지니어링 기법을 통해서 프롬프트 엔지니어링을 이해해 보도록 하겠습니다. 다만 주의할 점은 프롬프트 엔지니어링을 한다고 해서 100% 원하는 결과를 얻을 수 있는 것은 아닙니다. 프롬프트 엔지니어링 기법을 통해 조금 더 나은 결과를 얻는 결과론적인 방법이라고 이해하시면 좋을 것 같습니다.

ChatGPT Shot 기법?

데이터 관련 업종에 종사하시는 분이 아니시라면 잘 들어보시지 못한 용어이긴 한데요. 데이터 분석에서 Way라는 것은 분류의 기준이고, shot은 예시를 뜻합니다. chatgpt에서도 Shot을 동일하게 사용할 수 있는데요.

바로 ChatGPT에게 답변해야 할 예시나 양식을 보여주는 형태로 프롬프트 엔지니어링을 하면 됩니다.

예를 들어 아무런 예시가 없는 Zero-Shot 엔지니어링은 아래와 같습니다. 삼행시를 요청해서 3줄로 나오긴 했으나, 우리가 아는 삼행시와는 다른 결과가 나왔습니다.

zero-shot prompt

이 때 one-shot의 예시를 넣어서 프롬프트를 하게 되면 우리가 원하는 결과를 얻을 수 있습니다. 바로 제가 손흥민이라는 것으로 삼행시를 어떻게 짓는지 알려주고 나서 홍길동으로 삼행시를 지어달라고 요청하니 훨씬 좋은 결과가 나왔습니다. 물론 그래도 조금 이상한 뜻인거 같지만 앞선 내용보다는 정답에 가까운 프롬프트가 되었습니다.

이럴 때에 더 많은 삼행시 예시를 보여주고 프롬프트 엔지니어링을 하게 되면 좀더 좋은 결과를 얻을 수 있습니다. 이러한 방식은 Few-shot이라고 합니다. 몇개의 예시를 더 추가한 다음 삼행시를 요청했더니 조금 더 나은 결과를 얻을 수 있었습니다.

이러한 방식이 있는데요. 오늘은 Zero-shot 개념에 대해서 알아보았고, 다음 시간에 다른 기법들에 대해서도 알아보도록 하겠습니다.

다른 기법들은 아래 포스팅에서 확인해보시기 바랍니다.

Similar Posts

3 Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다