AI, 이것만 알면 됩니다 ① - 프롬프트

2023. 3. 27. 08:40AI • 빅데이터 인사이트

AI, 이것만 알면 됩니다 ① - 프롬프트

무서운 속도로 발전해가는 AI를 이해하기 위해 필요한 지식을 쉽게 풀어 썼습니다. 

챗GPT로 인해 본격적으로 시작된 AI 시대, 이것만은 꼭 알아가세요!

 

목차

프롬프트가 대체 뭐야?

프롬프트가 중요한 이유

유망직업: 프롬프트 엔지니어 

좋은 프롬프트를 위한 트릭이 있다?


프롬프트가 대체 뭐야?

마이크로 소프트가 챗GPT를 인수한지 약 한 달이 지난 지금, GPT가 탑재된 '빙챗'에서는 이미지를 생성할 수 있게 됐습니다. 

출처=MS 빙 이미지 크리에이터

 

챗GPT 처럼 질문에 대해 그럴듯한 답변을 내놓거나

빙챗처럼 그럴듯한 이미지를 만들어내는 AI 모델을 '생성형 AI'라고 합니다.

영어로는 Generative AI model 이죠. 

 

프롬프트란, 생성형 AI에게 입력하는 '명령어'를 의미합니다. 

위의 이미지의 경우

"조명으로 다리가 빛나는 광안리 밤바다에 고양이 2마리를 함께 그려줘"가 프롬프트가 되겠네요. 

프롬프트란, 
생성형 AI에게 입력하는 명령어

 

 

프롬프트가 중요한 이유

원하는 결과를 얻기 위해선 적절한 프롬프트를 쓰는 것이 중요합니다.

위 이미지를 만들어 낸 프롬프트에도 적어도 5가지의 키워드가 사용됐습니다.

  • 조명으로 빛나는 다리
  • 부산 광안리 
  • 밤바다
  • 고양이
  • (고양이) 2마리

이 중 하나라도 빠지거나 추가된다면, 다른 결과가 나오게 됩니다.

한번 밤하늘에 별을 추가해 봤습니다. 

출처=MS 빙 이미지 크리에이터

 

프롬프트가 중요한 이유에는 한 가지가 더 있습니다.

바로 '모델의 가중치를 업데이트하지 않고' 

원하는 결과를 뽑아내기 위해서 좋은 프롬프트가 필요합니다.

 

오픈 AI가 챗GPT 서버를 운영하기 위해서 하루에 십만 달러 - 한화로 따지면 하루에 약 1억 3천만원을 쓴다는 것만 생각해 봐도

생성형 AI에 들어가는 컴퓨팅 자원이 엄청나다는 것을 알 수 있죠. 

출처=넷플릭스

 

주어진 단어의 '문맥'이라는 정보 네트워크 구조를 바탕으로 다음에 올 단어 확률적으로 예측하는 게 챗GPT 같은 언어모델의 핵심 원리입니다.

 

예전에 이슈였던 고양이 판독 AI 모델에서는 맞고 틀리고가 중요했다면,

문맥을 활용한(in-context learning) 언어모델은 하나의 단어와 다른 단어 간의 연관성이 확률로 표현된다는 점이 큰 차이입니다. 

 

계산 비용이 큰 이유 또한,

생성형 AI가 방대한 데이터셋을 가지고 학습하여 단어마다의 정보 네트워크 구조를 생성하기 때문이죠.

 

그래서 좋은 프롬프트는

  1. 생성형 AI 모델을 원하는 방향으로 유도하는 가이드 역할과 함께
  2. 최단 토큰 내 원하는 결과물에 도달하여 컴퓨팅 자원을 아끼는 것을 목표로 합니다.

 

 

유망직업: 프롬프트 엔지니어

생성형 AI 모델의 결과물은 입력되는 명령어에 따라서 천차만별입니다.

 

지금까지는 인터넷에서 빨리 정확한 검색을 하는 정보검색 대회가 있었다면,

이제는 원하는 결과물을 빨리 정확하게 만드는 프롬프트 대회가 생겨날 수도 있습니다. 

 

생성형 AI를 잘 다루는 프롬프트 엔지니어의 몸값이 높아지면서, 프롬프트 엔지니어가 새로운 유망직업이 되고 있습니다.

 

원하는 결과를 이끌어내기 위한 최적의 가이드를 제시하는 것이 프롬프트 엔지니어의 역할입니다.

AI가 사용자의 의도에 맞는 답을 내놓을 수 있도록

프롬프트를 만들고 실험하기 때문에 'AI 조련사'라고도 불립니다.

 

'빙 이미지 크리에이터' 채팅창 위에도

몇 가지 명령어 후보군이 띄워져 있는 것을 볼 수 있는데, 이 또한 프롬프트 엔지니어링의 한 분야입니다.  

 

코딩을 할 줄 몰라도 영어와 같은 자연어만 할 줄 알면 되기 때문에 얼핏보면 프롬프트 엔지니어는 누구나 할 수 있어 보이지만,

 

생성형 AI는 입력된 말의 뉘앙스에도 반응하기 때문에 AI 모델에 대한 높은 이해도와 많은 언어적 경험이 필요한 직군입니다. 

 

 

좋은 프롬프트를 위한 트릭이 있다?

구체적으로 설명할 수록 원하는 결과물을 얻을 가능성이 높아집니다. 이처럼 좋은 프롬프트를 만드는 몇 가지 트릭이 있습니다. 

  • Instruction Prompting
  • Self-consistency
  • CoT(Chain of thought)
  • ... and so forth

 

첫번째로, 질문을 구체화하는 것이 Instruction Prompting 입니다. 

AI 모델에게 질문의 의도를 설명하고, 시범 예제를 주면서 질문하는 것이죠.

Instruction Prompting 방식으로 길들여진 모델의 경우, 사용자의 의도에 부합하는 대답을 하도록 훈련되기 때문에 

적은 대화만으로도 만족스러운 답을 빨리 찾으므로 계산 비용이 줄어듭니다.  

 

두번째인 Self-consistency는 하나의 질문에 대한 답으로 여러 개의 후보군을 제시하고,

이 중 가장 좋은 답을 고르는 방식으로 훈련하는 프롬프트입니다. 가장 좋은 답의 기준은 대체로 다수결에 방식에 따릅니다. 

 

마지막으로 CoT는 단계적으로 사고를 할 수 있도록 질문하는 방식입니다.

[일반적인 프롬프트]
훈련용 Q: 철수는 5개의 테니스 공을 가지고 있어. 그가 테니스 캔볼 2박스를 추가로 샀어. 각 캔볼에는 테니스공이 2개씩 있다면, 철수는 몇 개의 테니스 공을 갖고 있는 걸까?
훈련용 A: 정답은 11개야.
테스트용 Q: 카페에 사과 23개 있어. 그 중 20개를 점심 만드는 데 썼고, 6개를 더 샀어. 그렇다면 몇 개의 사과가 남았을까?
테스트용 A: 정답은 27개야. (❌)

일반적인 프롬프트 방식으로 훈련했을 땐, 간단한 산수여도 정확한 답을 찾지 못합니다. 

이 경우 단계적 사고를 할 수 있도록 도와주면 금세 정답을 찾아냅니다. 

[CoT 프롬프트]
훈련용 Q: 철수는 5개의 테니스 공을 가지고 있어. 그가 테니스 캔볼 2박스를 추가로 샀어. 각 캔볼에는 테니스공이 2개씩 있다면, 철수는 몇 개의 테니스 공을 갖고 있는 걸까?
훈련용 A: 철수는 5개의 공으로 시작했어. 공이 3개씩 든 볼캔 2박스의 공은 총 6개야. 5 + 6 = 11이니까, 정답은 11개야.
테스트용 Q: 카페에 사과 23개 있어. 그 중 20개를 점심 만드는 데 썼고, 6개를 더 샀어. 그렇다면 몇 개의 사과가 남았을까?
테스트용 A: 카페에는 사과가 원래 23개 있었어. 그 중 20개는 점심 만드는 데 썼으니까, 23 - 20 = 3이므로 3개 남았어. 근데 6개를 더 샀으니까 3 + 6 = 9로 정답은 9개야. (⭕️)

하지만 프롬프트 포맷, 훈련 예제, 그리고 질문 순서에 따라 결과가 드라마틱하게 달라집니다.

그래서 이젠 파이썬 코드를 일부 적용하여 단순 논리연산을 처리하는 방향으로 진화했다고 하니 대단하죠?

 

 

1편에서 프롬프트의 정의부터 중요성, 프롬프트 엔지니어, 방법론까지 알아봤습니다. 

AI의 변화 속도가 빠른 만큼 프롬프트 또한 점점 쉬워질 것으로 예상되는 만큼, 일반 사람들도 참여하는 프롬프트 대회가 열릴 날도 머지 않아 보입니다.