원문은 Vectors of Mind에 처음 게재되었습니다.

제 업무는 위험할 정도로 프롬프트 엔지니어1에 가까워지고 있습니다. 글쓰기, 심리측정학, 자연어 처리(NLP)에 대한 제 애정을 결합할 수 있으니, 저는 괜찮습니다. 다음은 가장 강력한 프롬프트 기법 몇 가지입니다.
- 명확하고 구체적인 지시를 사용하기
- 사고 연쇄 추론
- 작업을 수행하기 전에 필요한 정보 수집하기
- 작업을 단계로 나누기
- 전문 용어는 여러분의 친구
- 유용한 문구 모음
1. 명확하고 구체적인 지시#
법률가와 컴퓨터 과학자는 본래 이런 일을 잘합니다. 사실 프롬프트 작성의 즐거움 중 하나는 일반적인 코드에 비해 훨씬 덜 정확해도 된다는 점이며, LLM은 대체로 요지를 파악합니다. 그러나 많은 요청은 단순히 작업과 답변이 취해야 할 형식을 명시하는 것만으로도 개선될 수 있습니다. 예를 들어, 최근에 저는 다음과 같은 식사를 겨우 마련했습니다.

맛은 훌륭했습니다. 물어봐 주셔서 감사합니다. 다른 예시는 다음과 같습니다.
“AI의 역사를 한 문단으로 요약하라.”
“가장 오래된 어족을 연대순으로 정렬한 표를 작성하라. 빠짐없이 제시하라.”2
“인용된 텍스트를 White와 Strunk의 문체로 다시 작성하라. 세 가지 선택지를 제시하라.”
“첨부된 .csv의 2~7열에 대한 피어슨 상관 행렬을 계산하라.”
- 후속 요청: “결과를 고해상도 히트맵으로 표시하는 코드를 작성하라. 포스터에 사용할 수 있을 만큼 충분히 높은 해상도로 하라. 미적 선택에서는 모범 사례를 따르라.”
구체적인 지시에는 흔히 구체적인 예시가 포함됩니다. White와 Strunk는 Elements of Style을 썼습니다. “간결한”, “전문적인”, “훌륭한” 글과 같은 형용사를 사용하는 것보다 그들의 책을 인용하는 편이 낫습니다. 이는 부분적으로 LLM이 특히 구체적인 형용사에 대해 과도하게 응답하는 경향이 있기 때문입니다. 따라서 로봇이 건방진 페르소나를 취하기를 원한다면, Veronica Mars의 베로니카 마스나 Mean Girls의 레지나 조지처럼 행동하라고 말해 보십시오.
2. 사고 연쇄 추론#
LLM은 다음 단어를 예측하도록 방대한 텍스트 말뭉치로 훈련됩니다. 놀랍게도 이것은 LLM이 추론을 근사하는 데 능숙하게 만들지만, 복잡한 작업에서는 빠르게 한계에 도달합니다. 여기서 “복잡하다”는 것은 “1열의 숫자를 모두 더하라”와 같은 작업을 의미할 수도 있습니다. 이는 원샷으로 처리하기가 매우 어렵기 때문에, LLM은 그럴듯해 보이고 대체로 올바른 범위 안에 있지만 정답은 아닌 어떤 숫자를 내놓을 것입니다. 여기에 “단계별로 생각하라”고 덧붙이면 놀라운 효과가 있습니다. 흔히 단계가 무엇인지 직접 지정할 필요조차 없습니다. LLM은 열을 합산하려면 중간 단계로 n1 + n2 + n3 + … + n100 =을 작성해야 한다는 점을 추론할 수 있습니다. 이는 본질적으로 등호 오른쪽에서 더 나은 답을 얻도록 스스로에게 프롬프트를 제공하는 것입니다. 또는 비유하자면, 스스로 생각할 시간을 주는 셈입니다. 어떤 문제에서든 “단계별로 생각하라”는 문구는 LLM의 환각에 대처할 때 여러분이 취할 첫 번째 방어선입니다. 그래도 효과가 없다면, 여러분이 직접 단계를 열거하십시오(이 기법은 뒤에서 다시 다루겠습니다).
3. 작업을 수행하기 전에 필요한 정보 수집하기#
chatGPT에 블로그 게시물을 작성해 달라고 요청하면(저라면 절대 하지 않을 일입니다), 또는 파이썬 함수를 작성해 달라고 요청하면(저라면 분명히 할 일입니다), 실제로 원하는 것이 무엇인지에 관한 세부 사항을 묻지 않고 곧장 작성해 버립니다. “X를 수행하는 함수를 작성하고 싶다. 코딩하기 전에 어떤 정보를 수집해야 하는가?” 또는 “X를 수행하는 함수를 작성하라. 단, 코드를 작성하기 전에 필요한 정보를 먼저 물어보라.”와 같이 말하면 이 문제의 상당 부분을 피할 수 있습니다. 여기서 “X”는 불완전한 설명입니다.
4. 작업을 단계로 나누기#
chatGPT가 과제에 실패하고 사고 연쇄도 도움이 되지 않을 때는 작업을 하위 과제로 나누십시오. 이는 애초에 작업의 절반에 해당하는 경우가 많으며, 공교롭게도 (현재) LLM이 스스로 수행하기 어려운 일이기도 합니다. 다만 이 작업 역시 LLM에 맡길 수 있는 경우가 많다는 점에 유의하십시오3. 예를 들어, 저는 chatGPT에 창의성 검사에 사용할 문항을 만들어 달라고 프롬프트를 입력했습니다(훑어보셔도 됩니다).
Remote Associates Test(RAT)와 유사한 질문을 더 만들어 보려고 합니다. RAT에서는 개인이 겉보기에는 서로 관련이 없어 보이는 세 단어를 연결하는 공통 단어를 찾아야 합니다. 다음은 단어 세트의 예시입니다.
Cottage, Swiss, Cake (정답: Cheese)
High, Book, Chair (정답: School)
Fruit, Gaze, Traffic (정답: Jam)
Cream, Skate, Water (정답: Ice)
Ache, Hunter, Cabbage (정답: Head)
Manners, Round, Tennis (정답: Table)
Falling, Actor, Dust (정답: Star)
Light, Birthday, Stick (정답: Candle)
Salad, Head, Goose (정답: Egg)
Music, Ached, Green (정답: Apple)
모범 사례는 무엇인가? 이를 단계별로 어떻게 생각해야 하는가?
숫자를 합산하는 방법을 이해하는 것과 마찬가지로, chatGPT는 작업을 수행하기 위한 “레시피”를 만들어 내는 데 탁월합니다. chatGPT가 이를 제시한 뒤 제가 할 일은 다음과 같이 말하는 것뿐이었습니다.
“좋아! 이제 그 과정을 따라 새로운 질문 5개를 만들어 줘.”
그다음에는 또 5개, 또 5개를 만들게 했습니다. 이전에는 새로운 문항을 직접 만들어 달라고 요청했는데, 제안된 결과는 끔찍했습니다. 훨씬 더 복잡한 예시에 대해서는, AI 안전 연구소가 (다른 요령들과 함께) 이 기법을 사용해 LLM이 해결할 수 없도록 설계된 문제를 어떻게 풀었는지 확인해 보십시오.
5. 전문 용어는 여러분의 친구#
전문 용어는 유능한 LLM 행동을 끌어당기는 어트랙터 분지입니다. 예를 들어 질병을 설명하고 무엇이 “적응증”인지 물으면 “어떻게 해야 하는가?”라고 묻는 것보다 더 나은 결과를 얻을 수 있습니다. “적응증”이라는 표현은 LLM으로 하여금 여러분의 증상을 지금까지 쓰인 모든 의학 교과서에 대응시키도록 합니다. 반면 후자의 표현은 LLM이 제공하지 않도록 훈련된 의료·생활 조언을 요청하는 것으로 대응됩니다. 기술적이거나 비구어체적인 용어를 사용하면 가장 많은 가드레일과 레딧 수준의 조언이 존재하는 평범한 사용자용 비서 공간에서 벗어날 수 있습니다.
6. 유용한 프롬프트 모음#
제가 자주 사용하는 문구 몇 가지를 소개하겠습니다.
“그게 맞습니까?”
- 다른 사람의 작업을 요약하거나 제가 완전히 익숙하지 않은 아이디어를 설명할 때마다, 제가 쓴 글을 복사해 붙여 넣고 그것이 맞는지 묻습니다. 논쟁의 여지가 있는 부분이 있으면 반론을 제기하는 데 대체로 상당히 능숙합니다.
“정말 확실합니까?”
- 마찬가지로, LLM이 헛소리를 늘어놓고 있다고 의심될 때마다 확실한지 묻습니다. 생각을 바꾼다면 그 주장은 아주 큰 의심을 품고 받아들이십시오.
“브레인스토밍을 도와줘.” “창의적으로 생각해.”
- LLM의 가장 좋은 활용법 중 하나는 아이디어 공간을 탐색하는 데 도움을 받는 것입니다. 때로는 가장 일반적인 답변에서 벗어나도록 격려할 필요가 있습니다.
여러분이 자주 사용하는 프롬프트가 있다면 댓글에 추가해 주세요!
이것도 제가 바라는 것보다 불안정해졌습니다. 그러니 데이터 과학, AI, 또는 심리측정학 분야의 계약 업무가 있다면 연락해 주세요! ↩︎
물론 LLM이 전 세계의 142-420개 어족을 모두 열거할 방법은 전혀 없습니다. 이것이 “불가능한” 일인 만큼(즉, 기본 행동에서 너무 멀리 벗어나 있고, 어떤 엄격한 토큰 한도를 넘어서기 때문에), “빠짐없이”라는 표현은 짧은 응답으로 끌어당기는 중력에 맞서 LLM이 더욱 철저하게 답변하도록 합니다. 이것이 프롬프트 작성의 단점이며, 때로는 애원, 간청, 뇌물, 협박으로 타락하기도 합니다. ↩︎
LLM의 도움을 받아 하위 과제를 나눌 수 있다는 사실은 이 작업 역시 점점 더 자동화될 것임을 시사합니다. 미래 세대가 무엇을 할 수 있게 될지는 아무도 모릅니다. ↩︎
