메뉴 건너뛰기

close

 
  OpenAI 로고
OpenAI 로고 ⓒ OpenAI

오픈AI의 챗GPT는 발표되자 마자 뛰어난 능력으로 이목을 끌었습니다. 과제에 치어사는 대학생으로써, 제게 이런 인공지능 서비스는 원하는 작업을 명령하면 그에 알맞는 답변을 가져다 주는 챗GPT는 마법과 같았습니다.

특히 대학 수업에서 코딩 과제를 풀 때는 사막에 내리는 단비와 같았죠.

하지만, 챗GPT 서비스를 사용해본적 있냐고 동기들에게 물어본 결과, 사용평은 대부분 무언가 자연스러워 보이지만 유용할지 의문이 드는 존재였다고 합니다.

"챗GPT는 말은 그럴싸 하지만 거짓말을 너무 자주하고 내가 원하는 답을 주긴 하는데 뭔가 애매해! 조선시대에 맥북이 있었다고 하기도 한다니까."

그런데, 문제는 인공지능이 아니라 우리였을수도 있습니다. 인공지능 비서의 숨겨진 능력을 완벽하게 활용하지 못하고 있는건 아니었을까요?

프롬프트를 아시나요

프롬프트란, 인공지능에게 무언가를 질문하거나 요구할 때 필요한 초기 문장입니다. 인공지능은 이러한 프롬프트를 기반으로 사용자에게 답변합니다.

위의 사례와 같이 무언가를 질문해도 엉터리 답변을 내놓거나 거짓 정보를 마치 진실인 것처럼 자신만만하게 제공하는 경험을 한번씩은 겪어보시지 않으셨나요? 이러한 문제를 인공지능 모델의 성능에도 문제가 있을 수 있지만 "과연 적절한 프롬프트를 제공했는가?"를 먼저 생각해볼 필요가 있습니다.

인공지능 모델은 자신에게 주어진 프롬프트에 굉장히 많은 영향을 받기 때문인데, 프롬프트에 몇가지의 적절한 조치만 취해준다면 인공지능 비서의 성능을 훨씬 끌어올릴 수 있습니다.

이러한 작업은 인공지능에게 여러번에 걸쳐서 질문해야 하거나 잘못된 정보로 인해 헤매는 경우를 훨씬 줄여주고 작업물의 품질을 한단계 올려주기 때문에 챗GPT 등의 서비스를 자주 사용하는 대학생이나 직장인분들에게 굉장히 중요한데요. 이에 전문적으로 프롬프트를 다루는 분야인 '프롬프트 엔지니어링'이 생길 정도였습니다.

그렇다면 프롬프트 엔지니어링이 뭘까요? 

 
   프롬프트를 편집하고 있는 엔지니어 아이콘 (Designed By Freepik)
프롬프트를 편집하고 있는 엔지니어 아이콘 (Designed By Freepik) ⓒ Freepik

제가 챗GPT를 사용하면서 프롬프트 엔지니어링이라는 개념을 알고난 뒤에는 조금 막막했습니다. "프롬프트 + 엔지니어링? 너무 추상적이야"란 생각이 들어서입니다.

현재 사용되는 언어기반 인공지능 모델들의 원리는 훈련 과정에서 입력받은 데이터들을 일반화하여 저장하고 저장된 정보들을 프로그래밍 언어가 아닌 자연스러운 문장으로 검색할 수 있는 일종의 저장고와 같습니다.

예를 들어, 훈련 과정에서 사용된 데이터들 중 '5월 5일은'이라는 문장 다음에 '어린이날'이 올 확률이 90%라는 정보를 저장하고 있다는 것입니다. 그리고 이 후 '5월 5일은'이라는 값을 입력받으면 가장 다음에 이어질 확률이 높은 '어린이날'을 출력합니다.


프롬프트 엔지니어링은 이러한 인공지능이 답변을 하는 근본적 방식을 이해하고 인공지능 모델이 입력받은 질문 다음의 답변을 쉽게 예측할 수 있게 만들거나 인공지능이 훈련받은 데이터들 중 좀 더 질 높은 답변이 함께 존재할 확률이 높은 질문들의 형식을 예측하고 만드는 기술입니다.

인공지능도 학습이 필요하다 

그럼 어떻게하면 높은 품질의 답변을 받아낼 수 있는 질문을 만들까요?

가장 효과적인 방법은 똑같은 주제의 질문에 대해 여러번 반복하면서 최적의 질문을 찾는 것입니다. 그러나 주어진 질문에 대해 더 나은 답변을 할 가능성이 높은 질문 방식 또한 존재했습니다. 논문 기재 사이트 아카이브에서는 여러 인공지능의 성능을 개선할 수 있는 질문 방법들에 대해 발표를 하고 있는데요. 그중 직접 조사한 효과적인 질문 방법 5가지를 소개하겠습니다.

첫 번째, 미사여구를 자제하고 최대한 본론만 말하세요. 인공지능에게 질문하는 것에 주저나 사과와 같은 본론과 상관없는 문구를 덧붙이는 것은 인공지능이 다음으로 답변할 값을 찾는데에 본문과 관련없는 값을 출력할 확률을 높입니다. 예를 들어, "다시 물어봐서 정말 미안한데 혹시 가능하다면 5월 5일에 대해 알려줄 수 있을까?"는 "5월 5일에 대해 알려줘"로 고칠 수 있습니다.

두 번째, 어린이 청자를 설정해보세요. "미적분에 대해 설명해줘"과 같이 복잡한 설명을 요청하고 나서 인공지능의 답변이 상세하지 못해 다시 질문하거나 포기하신 적이 있나요? 요청을 "초등학생도 이해할 수 있게 미적분에 대해 설명해줘"라고 수정한다면, 인공지능이 좀 더 상세한 정보 제공자들과의 관계를 쉽게 찾아낼 수 있습니다.

 세 번째, 부정문을 쓰지 마세요. "바나나에 대해 생각하지 마"라는 말을 들으면 우리는 저절로 바나나가 생각나게 됩니다. 인공지능 또한 이와 유사합니다.

인공지능은 문구 전체의 유사도를 고려하여 답변하기 때문에 "생각하지 마" 라는 문구가 있음에도 바나나와 관련된 값 근처에서 답변을 할 가능성이 매우 높습니다. 무언가를 금지시키고 싶다면 하지 말라고 하는 것보다 바람직한 행위를 지정 해보세요.

네 번째, 단계별로 작업하게 만드세요. 인공지능은 자신이 출력한 답변 또한 다시 다음의 답변을 예측할 때 사용합니다. 이때 복잡한 작업을 한번에 답변하게 만드는게 아닌 단계별로 진행하게 지시한다면 인공지능은 자신의 작업에 대해 단계별로 분류하여 답변할 것입니다. 이러한 답변들은 다시 다음 답변을 출력할 때 예측 과정에서 큰 영향을 끼쳐 더 정답에 가까운 값을 출력하게 만들어줍니다.

다섯 번째, 예제를 함께 제공하세요. 인공지능에게 질문하기 전에 기대하는 답변과 유사한 질문, 답변등을 나열한 후 질문하는 방식을 멀티샷, 그 반대를 제로샷 이라고 부릅니다.

예를 들어, "3 x 1 = 3, 3 x 2 = 6" 과 같은 예제를 제공한 뒤 3 곱하기 3에 대한 질문을 할 경우 곱하기와 관련된 답변의 유사도 높은 정답을 찾을 가능성이 이전과 비교해서 훨씬 높아지기 때문에 정답을 출력할 가능성 또한 매우 높아집니다.

이 외에도 다양한 질문 방식들이 있는데요. 알아볼수록 사람에게도 똑같이 적용되는 질문 방식인 것 같기도 해 흥미로웠습니다. 이러한 방식들을 이용하면 인공지능이 좀 더 자세하게 설명하도록 만들어 답변의 신뢰도를 높이거나 생각하지 못하고 있던 창의적인 아이디어를 만들어 내도록 유도할 수 있습니다.

여러분들도 업무나 과제 속에서 간단한 프롬프트 엔지니어링을 통해 인공지능 비서가 가지고 있는 잠재력을 활용하고 일상 속 효율을 끌어 올려보는건 어떠신가요? 

덧붙이는 글 | 프롬프트 및 챗GPT 활용법 관련 설명에는 다음 홈페이지를 참고해 작성했습니다. (https://arxiv.org/html/2312.16171v2)


#인공지능#AI#OPENAI#프롬프트#챗GPT
댓글
이 기사가 마음에 드시나요? 좋은기사 원고료로 응원하세요
원고료로 응원하기

인공지능 기술에 관련해 관심이 많은 학생입니다.




독자의견

연도별 콘텐츠 보기