← AI Engineer
프롬프트 · 평가

프롬프트 짜기는 글쓰기다 — 태그로 붙잡고 쪼개서 묻는다

태그로 감싸는 것을 빠뜨려 성능을 못 내는 흔한 실수, 긴 문서에서 물을 때 물음을 맨 끝에 두는 쪽이 맨 앞보다 훨씬 잘 맞았다는 사내 실험, 적어 놓은 추론이 실제 추론과 어긋날 수 있어 물음을 쪼개는 쪽으로 가는 이유가 나옴. 학습 뒤에 나온 문서를 골라 미리 아는 것으로 맞히지 못하게 한 실험 설계도 구체적임. 다만 두 판 앞의 모델을 두고 한 이야기라 지금 그대로 옮기기 전에 다시 재야 함.

Karina Nguyen Anthropic발표 2024-08-2655분 32초AI Engineer

한줄 코멘트. 적어 놓은 추론이 실제로 밟은 길과 다를 수 있다는 대목이 이 발표에서 가장 오래 남는다. 그래서 한 자리에서 생각을 적게 하는 대신 물음을 쪼개 따로 답하게 하고 모으는 쪽을 든다. 다만 두 판 앞의 모델을 두고 한 이야기라, 태그니 물음 자리니 하는 요령은 지금 판에서 다시 재고 옮겨야 한다.

1. 프롬프트 짜기는 글쓰기다

앤스로픽에서 모델 쪽 일을 한다는 사람이 발표한다. 하는 일의 대부분이 사람들과 짝을 지어 프롬프트를 함께 만지는 것이라고 말한다.

깔아 두는 설명은 이렇다. 모델은 앞말이 주어졌을 때 다음 말의 확률을 셈하고, 안에 든 장치가 입력의 어느 자리를 볼지 정한다. 그러니 잘 짠 프롬프트는 그 눈길이 맞는 자리를 향하게 하는 것이다.

그리고 값 이야기가 붙는다. 프롬프트로 나아지는 이유는 다시 학습시키지 않고 쓰는 순간의 계산만으로 되기 때문이다.

이 일을 창작 글쓰기의 한 갈래로 부른다. 대학에서 창작 수업의 글제 과제를 하던 일에 빗댄다.

2. 왜 어려운가

막히는 자리를 셋으로 나눈다.

원하는 것은 아는데 모델에서 가장 좋은 것을 끌어내는 법을 모르는 경우, 원하는 것을 어렴풋이만 알아 설명하지 못하는 경우, 그리고 원하는 것 자체를 모르는 경우다.

셋째와 둘째에 대한 처방이 같다. 예시를 여럿 준다. 다만 조건이 붙는다 — 서로 다르게, 그리고 가장자리 경우까지 담아서 준다.

이 일을 가설을 세워 보는 일이라고 부른다. 이걸 할 수 있나 없나를 묻고 시험해 보는 것이고, 되풀이할수록 그 모델의 강점과 약점이 손에 잡힌다는 것이다.

3. 태그를 안 쓰는 실수

가장 자주 짚는 실수가 하나 있다. 아무것도 태그 안에 넣지 않는 것이다. 그래서 성능을 못 낸다고 말한다.

왜 그런지도 밝힌다. 처음 맞춰 학습시킨 형식이 그것이었기 때문이다. 나중에야 고객들이 다른 형식도 필요로 한다는 것을 알게 됐다고 말한다.

청중이 다른 형식과 견줘 봤느냐고 묻자 이렇게 답한다. 태그를 쓰면 거의 다 맞고 다른 형식은 그만큼은 아니다.

첫 사례는 옷을 골라 주는 일이다. 아무 안내 없이 관련 있는지만 묻는 *제로샷으로 시작하고, 이게 완벽한 물건은 아니다라고 그 자리에서 인정한다.

그다음 둘을 얹는다. 하나는 판단 전에 생각할 자리를 따로 주는 것이고, 다른 하나는 예 아니오 대신 1에서 10으로 점수를 매기게 하는 것이다. 기준을 함께 적어 준다 — 이를테면 여름에 겨울옷을 권하지 말라는 식이다.

4. 적어 놓은 생각이 진짜 생각은 아니다

생각을 적게 할 것인가 쪼갤 것인가

한 자리에서 풀 것인가 쪼갤 것인가

생각을 적게 한다적어 놓은 추론이실제로 밟은 길과늘 같지는 않다
쪼개서 묻는다혼자 서는 물음으로 나누고각각 따로 답하게 한 뒤그 답들을 모아 다시 묻는다
적어 놓은 추론이 진짜 근거가 아닐 수 있다는 것이 쪼개는 쪽으로 가는 이유다. 따로 떼어 놓고 물으면 앞의 답에 끌려가는 정도가 줄어든다고 말한다.

이 발표의 가운데다.

생각을 적게 하는 방법은 적어 놓은 추론이 실제 추론을 그대로 비춘다는 것을 전제로 한다. 그런데 최근 논문에서 늘 그렇지는 않다는 것을 찾았다고 말한다.

대안이 쪼개는 쪽이다. 물음을 혼자서도 뜻이 통하는 작은 물음들로 나누고, 각각을 따로 떼어 놓은 자리에서 답하게 한 뒤, 그 답들을 한자리에 모아 다시 묻는다.

효과도 든다. 그렇게 하면 한쪽으로 쏠리는 정도가 준다는 것이다. 답하기 과제에서 앞의 방법에 가까운 성능을 내면서 적어 놓은 것과 실제가 어긋나는 정도는 나아졌다고 말한다.

쪼갤 때 붙이는 조건도 실용적이다. 필요 이상으로 쪼개지 말라는 것이다.

5. 긴 문서에서 찾아내기

긴 문서에서 찾아내나 재는 법

문서를 토막 낸다학습 뒤에 나온 것으로 골랐다
토막마다 문제를 만든다답 하나에 오답 셋
무작위로 다시 붙인다아주 긴 문서로 만든다
찾아내나 잰다어디에 묻어 두었나까지 바꿔 가며
학습한 뒤에 나온 문서를 골랐다는 것이 이 설계의 요점이다.

사내 실험을 소개한다. 목표는 긴 문서에서 특정한 것을 제대로 떠올릴 확률을 높이는 방법을 재는 것이었다.

설계가 깔끔하다. 고른 문서가 학습을 끊은 시점보다 뒤의 것이다. 미리 알고 있는 것으로 맞히는 일을 막으려는 것이다.

방법은 문서를 토막 내고 토막마다 객관식 다섯 문제를 만들되 오답을 셋 붙인다. 그러고 그 토막들을 무작위로 다시 붙여 아주 긴 문서로 만들어 시험한다.

무엇을 바꿔 가며 쟀나

바꾼 것결과
물음을 앞에 둘까 뒤에 둘까뒤에 두는 쪽이 훨씬 잘 맞았다
관련 대목을 끌어와 적게 할까조금 느려지지만 더 잘 맞았다
예시를 몇 개나 줄까없음·둘·다섯으로 나눠 쟀다
문서를 얼마나 길게7만과 9만 5천 토큰으로 나눠 쟀다
어느 모델에작은 쪽에서 올라간 폭이 더 컸다

왜 뒤가 나은지는 가설만 댄다. 끝쪽에 더 눈길이 간다는 것이고, 가운데를 잊는다는 논문이 있지만 그 논문을 읽지 않았고 여기에 그대로 들어맞는지도 확인하지 않았다고 밝힌다.

6. 실무 요령

발표가 든 것들

요령무엇을 하나
말을 미리 넣어 두기답하는 자리에 「알겠다」를 미리 적어 지시를 되짚게 한다
모른다고 말하게 두기근거가 없으면 없다고 하게 해서 지어내는 것을 막는다
좋은 예시 고르기실제로 다룰 것과 닮았나, 충분히 다양한가, 답 갈래마다 고른가
뉘앙스를 못 잡을 때나쁜 예를 함께 주고, 흔한 오해를 짚어 준다
여러 번 뽑아 고르기같은 물음을 여러 번 뽑아 가장 흔한 답을 고른다
둘을 견주게 하기두 답이 서로 맞는지 다른 모델에게 묻고, 어긋나면 버린다

여러 번 뽑아 고르는 방법은 셈이 딱 떨어지는 일에 주로 쓸모 있다고 단서를 단다.

마지막 물음에 답하며 앞을 내다본다. 프롬프트 짜는 일은 남을 것이고, 지어낸 자료를 쓰는 일이 늘 것이며, 사람이 매기는 대신 모델이 매기는 쪽이 더 크게 키울 수 있는 길이라고 말한다.

7. 발표가 밝히지 않은 것

두 판 앞의 이야기다. 여기 나오는 모델 이름과 맥락 길이가 지금 것이 아니다. 발표자 스스로도 그때는 옛 판을 썼고 새 판이 훨씬 나을 것이라고 말한다. 그러니 태그니 물음 자리니 하는 요령은 지금 판에서 다시 재야 한다.

거의 다 맞는다는 말에 수가 없다. 태그를 쓰면 그렇다고 하는데 무엇을 몇 개나 재서 나온 값인지가 없다.

뒤에 두는 쪽이 낫다는 것에도 값이 없다. 얼마나 나은지가 없고, 왜인지는 본인이 확인 안 했다고 밝힌다.

쪼개는 방법의 값이 없다. 한 자리에서 푸는 쪽에 「가까운」 성능이라고만 하고 얼마나 가까운지가 없다. 대신 몇 번을 부르게 되는지, 그만큼 값이 얼마나 드는지도 없다.

작은 쪽에서 더 올랐다는 것도 폭이 없다. 어느 쪽이 결국 더 잘했는지도 나오지 않는다.

세부는 블로그와 문서로 넘긴다. 실제 프롬프트는 글에서 보라며 지나간다.

용어

*제로샷
예시를 하나도 안 주고 바로 시키는 방식