Search
Duplicate
🔗

#4 프롬프트 엔지니어링 잘하는 법

Issue
Issue 4
날짜
2023/08/30
시즌
Season 2
작성자

 Cover Story

프롬프트 엔지니어링 잘하는 법: Chain of Thought

최근에 서점에 가보신 적이 있나요? 요즘 서점에는 ChatGPT와 관련된 책들이 가장 잘 보이는 위치에 놓여 있습니다. 책들을 살펴보면 주로 ChatGPT를 어떻게 질문해야 하는지 설명하고 있습니다. 이제는 누가 AI를 더 잘 만드냐보다도, 누가 더 잘 활용하느냐가 중요해지고 있습니다.
그 기술 중 하나가 ‘프롬프트 엔지니어링’입니다. 프롬프트(Prompt)란, 쉽게 말해서 기계에게 내리는 명령어입니다. 즉, 프롬프트 엔지니어링은 챗봇에게 어떻게 질문해야 우리가 원하는 결과를 얻을 수 있을지 연구하고 설계하는 과정이라고 볼 수 있습니다.
뉴스를 보신 분들이라면 프롬프트 엔지니어라는 새로운 직업이 뜨고 있다는 말을 들어보셨을 수도 있는데요. 신조어가 아닌가 싶지만, 사실 연구자들은 이미 대규모 언어 모델(LLM)을 연구하는 과정에서 언어 추론 능력을 극대화할 수 있는 방법을 탐색해왔습니다. 그리고 가장 널리 알려진 방법 중에 하나가 바로 ‘Chain of Thought(연쇄 사고)’입니다. 이번주 뉴스레터에서는 이 Chain of Thought 논문과 함께 특징을 알아보도록 하겠습니다.

Chain of Thought이란 무엇일까?

Chain of Thought은 Google Brain 팀에서 2022년 1월 공개한 연구입니다. (여기에서 Google AI Blog 원문을 살펴보실 수 있습니다.) 당시에는 GPT-3 방식에서 활용한 프롬프팅이 가장 일반적이었는데요. 질문에 해당하는 예시, 즉 입력-출력 쌍(질문과 답변)을 같이 제공하여 추론하도록 요청하는 것입니다. 하지만 Chain of Thought 방식은 그 이름에서 알 수 있듯이 연쇄적인 사고과정을 제시합니다. 논문에서 제시한 예시를 통해 비교해보도록 하겠습니다.
기존 Few-shot 프롬프팅
Q: 로저는 테니스공을 5개 가지고 있습니다. 그는 2개의 테니스공 캔을 더 삽니다. 각 캔마다 3개의 테니스 공이 들어 있습니다. 이제 그는 몇 개의 테니스공을 가지고 있나요? A: 정답은 11입니다. Q: 식당에는 23개의 사과가 있었습니다. 점심을 만들기 위해 20개를 사용하고 6개를 더 샀습니다. 그들은 이제 얼마나 많은 사과가 있나요?
정답은 27입니다. (X)
Chain-of-Thought 프롬프팅
Q: 로저는 테니스공을 5개 가지고 있습니다. 그는 2개의 테니스공 캔을 더 삽니다. 각 캔마다 3개의 테니스 공이 들어 있습니다. 이제 그는 몇 개의 테니스공을 가지고 있나요? A: 로저는 5개의 테니스공으로 시작합니다. 3개의 테니스공이 들어있는 2개의 캔은 6개의 테니스공입니다. 5 + 6 = 11. 답은 11입니다. Q: 식당에는 23개의 사과가 있습니다. 점심을 만들기 위해 20개를 사용하고 6개를 더 구입했다면, 그들은 지금 몇 개의 사과를 가지고 있습니까?
식당에는 기본적으로 23개의 사과를 가지고 있습니다. 그들은 20개를 점심을 만드는 데 사용했습니다. 그래서 그들은 23 - 20 = 3개를 가졌습니다. 그들은 6개의 사과를 더 샀고, 그래서 그들은 3 + 6 = 9개를 가지고 있습니다. 정답은 9입니다.
정말 사소한 차이인 것 같은데, 사고 과정을 제시해주니 훨씬 더 상세하고 정확하게 알려줍니다. 때문에 주로 논리적인 추론이 필요한 산술 추론, 상식 추론, 기호 추론 등에서 큰 효과를 보입니다. 이런 문제의 특징은 어떻게 그러한 결과가 도출되었는지 설명해주는 전개 과정이 중요하다는 것입니다.
연구진에 따르면, 사고 과정을 설명하는 것은 사전 훈련(Pre-trained) 중 획득한 지식을 활성화하고 추론에 필요한 관련 지식에 접근할 수 있는 가능성을 높입니다. 즉, 추론에 필요한 정보가 더 주어지기 때문에 사전 훈련 중 관련된 부분을 참고할 수 있는 폭이 넓어진다는 것입니다.

Chain of Thought의 특징을 알아보자

연구진이 제시한 Chain of Thought의 장점을 살펴봅시다.
1.
Chain of Thought을 통해 문제를 세분화된 중간 단계로 분해할 수 있습니다. 우리가 원하는 만큼 추론 과정을 더 상세하게 기술할수록, 더 정교한 추론 과정을 출력할 것입니다.
2.
모델의 결과가 어떻게 추론되는지 해석이 가능합니다. 만약 올바르지 않은 추론 결과를 냈다면, 어느 단계에서 잘못된 추론을 했는지 살펴볼 수 있습니다.
3.
언어를 통해 할 수 있는 모든 추론(수학, 상식 추론 등) 작업에 확대 적용이 가능합니다.
4.
이미 만들어진 언어 모델에 새로운 학습 과정 없이도, 프롬프트에 Chain of Thought을 추가하는 것만으로 성능을 향상시킬 수 있습니다.
그렇다면 얼마나 성능이 개선될까요? 산술 추론(Arithmetic Reasoning) 데이터셋(GSM8K)에 대해서 가장 큰 PaLM 모델에 Chain of Thought 프롬프팅 방법을 적용하여 무려 17.9%에서 58.6%까지 성능을 끌어올렸습니다. GPT-3에서도 15.6%에서 49.6%로 약 3배 가까이 개선되었습니다. 산술 추론 데이터는 다른 종류의 문제에 비해 조금 더 복잡한 구조를 가지고 있어 더욱 효과적으로 나타난 것입니다. 한편, 단순한 사고 단계만으로도 추론이 가능한 경우에는 성능 개선 효과가 크지 않았습니다.
프롬프팅 방식에 따른 LaMDA와 PaLM 성능 개선 실험 결과
흥미로운 것은 Chain of Thought 프롬프팅 방식을 적용한 것이 GPT-3의 미세 조정 학습(Fine-tuning)보다 좋은 성능을 보였다는 것입니다. 시간과 비용을 들여 추가적인 학습을 진행하는 것보다, 질문을 더욱 정교하게 하는 것이 효과적일 수 있다는 것을 의미합니다.
하지만 정말로 언어 모델이 ‘추론’을 하는지에 대해서는 여전히 알 수 없습니다. 단순히 형식을 베끼고 앞서 말한 것처럼 정보에 더 많이 접근해서 결과가 더 잘나오는 것일 수도 있고요.
안타깝게도 아직 규모가 작은 언어 모델에서는 결과가 잘 나오지 않는다는 한계도 존재합니다. 연구진은 62B와 540B의 PaLM 모델을 기반으로 성능을 평가했는데요. 62B 모델이 틀리던 문제를 540B 모델은 맞히는 것을 발견했습니다. 그리고 이에 대해서 540B의 언어 모델이 언어를 더 잘 이해하기 때문에 프롬프트 엔지니어링의 효과가 잘 나타난 것으로 본다고 말했습니다.

나도 프롬프트를 만들 수 있을까?

지금까지 Chain of Thought의 특징에 대해 알아보았는데요. 그러면 정말 누구든 Chain of Thought 방식으로 프롬프트를 만들어도 효과가 있을까요? 연구자들이나 전문가들만할 수 있는 것은 아닐까요?
다행히도 Chain of Thought 프롬프트 방식은 작성자에 민감하지 않습니다. 연구진들은 작성자들에게 별다른 가이드를 제시하지 않은 뒤 프롬프트를 작성해보라고 해보았는데요. 그중에는 머신러닝에 대해 잘 모르는 사용자들도 있었습니다. 그러나 작성자 특성에 상관 없이 모두에게서 성능 개선의 효과가 나타났다고 밝혔습니다.
이는 여러분들도 직접 프롬프트를 만들 수 있다는 의미입니다. 이런 특성 덕분에 프롬프트를 거래하는 시장이 형성되기도 했습니다.
개인적으로 Chain of Thought 방식이 시사하는 바가 크다고 생각합니다. 사실, 사람과 대화를 할 때도 상대방이 당연히 알 것이라고 가정하면 잘못된 대화가 오가기도 합니다. 똑같은 의미라도 ‘나는 이런 경험이 있고, 그래서 이렇게 생각한다.’처럼 친절한 문장 하나를 더 추가하면 상대방도 그 맥락을 쉽게 이해할 수 있고 더 좋은 대화가 오갈 수 있습니다. 본인의 생각도 더욱 정교화할 수 있고요. 정말 가는 말이 고우면, 오는 말도 곱다는 격언에 딱 맞아 떨어지지 않나 싶습니다.

 deep daiv. 새로운 글

Humans of daiv. #4 김정국

분야를 막론하고 ‘잘 안다’라는 느낌이 들기란 쉽지 않습니다. 이 정도면 됐다 싶다가도, 내가 아는 세계가 전부가 아니라는 생각에 하염없이 겸손해지기도 합니다. ‘배움에는 끝이 없다’는 명제를 재확인할 수 있죠.
인공지능을 공부하는 사람이라면 한 번쯤 전문성에 대해 고민해 본 적이 있을 것입니다. 그리고 꽤나 많은 사람이 더 넓은 바다로 가기 위해 대학원이라는 관문을 거친다. deep daiv.에서 인공지능 공부를 시작해 데이터사이언스 대학원까지 진학한 김정국의 이야기를 소개합니다.
문의사항 manager@deepdaiv.com